A template consists of text and special labeled blocks and placeholders. The content of blocks can be re-used and parsed multiple times with different placeholder values.
Example 41-1. A typical template
|
Placeholders can be defined in templates and are filled from PHP code with content. The format of placeholder up to version (1.1.x) is
{[0-9A-Za-z_-]+} |
Since version 1.2.x dots are allowed, too.
{[\.0-9A-Za-z_-]+} |
This means, the name of the placeholder can consist of upper- and lowercase letters, underscores and hypens. The name must be placed between curly brackets without any spaces. Valid names are i.e.:
{Placeholder} |
{place2_holder} |
{PLACEHOLDER1} |
{Place-Holder} |
Valid names since version 1.2.x
{Place.Holder} |
Non-valid names are i.e.
{ Placeholder 3 } (spaces) |
{place*holder} (char isn't permitted) |
The format of a block is
<!-- BEGIN [0-9A-Za-z_-]+ --> ... block content ... <!-- END [0-9A-Za-z_-]+ --> |
Since version 1.2.x dots are allowed in block definitions
<!-- BEGIN [\.0-9A-Za-z_-]+ --> ... block content ... <!-- END [\.0-9A-Za-z_-]+ --> |
The rules for the block name are the same like for placeholders. In contrast to placeholders the spaces in the block markup are required.
The nesting of blocks is permitted, but be careful while parsing. You have to set and parse the deepest inner block first and then set and parse from inner to outer.
In IT the whole template file itself is nested in a meta block called "__global__". Most block-related functions use this block name as default.
Example 41-2. The template
|
Example 41-3. The script
|
Example 41-4. The output
|