Einführung -- Erstellen und Parsen von Templates
Templates
Ein Template besteht aus normalen Text, gesondert gekennzeichneten Blöcken und Platzhaltern.
Der Inhalt von Blöcken kann wiederverwendet werden und mehrfach, jedoch mit unterschiedlichen
Ersetzungen der Platzhalter, ausgegeben werden.
Platzhalter
Platzhalter können innerhalb eines Templates definiert werden und
aus dem PHP Code heraus mit bliebigem Inhalt gefüllt werden.
Sie haben das folgende Format:
Seit Version 1.2.x sind in Platzhaltern erlaubt:
Platzhalter können aus Groß- und Kleinbuchstaben, Unterstrichen und Bindestrichen bestehen.
Der Platzhaltername muss zwischen geschweiften Klammern und ohne Leerzeichen angegeben werden.
Korrekte Platzhalter sind z.B.:
{Placeholder} |
{place2_holder} |
{PLACEHOLDER1} |
{Place-Holder} |
Korrekte Platzhalter seit Version 1.2.x z.B.:
Inkorrekte Platzhalter sind dagegen z.B.:
{ Placeholder 3 } (Leerzeichen sind nicht erlaubt) |
{place*holder} (Das Zeichen * ist nicht erlaubt) |
Blöcke
Blöcke haben folgende Struktur:
<!-- BEGIN [0-9A-Za-z_-]+ -->
... Blockinhalt ...
<!-- END [0-9A-Za-z_-]+ --> |
Seit Version 1.2.x sind auch Punkt in Blockdefinition erlaubt.
<!-- BEGIN [\.0-9A-Za-z_-]+ -->
... block content ...
<!-- END [\.0-9A-Za-z_-]+ --> |
Blockdefinitionen haben dieselben Namenskonvetionen wie Platzhalter.
Verschachtelte Blockdefinitionen sind möglich. Achten Sie jedoch darauf,
dass der innere Block vor dem äußeren geparsed wird.
Der Metablock „__global__“ enthält das gesamte
geladene Template.
Nutzung
Beispiel 42-2. Das Template <html>
<table>
<!-- BEGIN row -->
<tr>
<!-- BEGIN cell -->
<td>
{DATA}
</td>
<!-- END cell -->
</tr>
<!-- END row -->
</table>
</html> |
|
Beispiel 42-3. Das Script <?php
require_once "HTML/Template/IT.php";
$data = array
(
"0" => array("Stig", "Bakken"),
"1" => array("Martin", "Jansen"),
"2" => array("Alexander", "Merz")
);
$tpl = new HTML_Template_IT("./templates");
$tpl->loadTemplatefile("main.tpl.htm", true, true);
foreach($data as $name) {
foreach($name as $cell) {
// Assign data to the inner block
$tpl->setCurrentBlock("cell") ;
$tpl->setVariable("DATA", $cell) ;
$tpl->parseCurrentBlock("cell") ;
}
// parse outter block
$tpl->parse("row");
}
// print the output
$tpl->show();
?> |
|
Beispiel 42-4. Die Ausgabe <html>
<table border>
<tr>
<td>
Stig
</td>
<td>
Bakken
</td>
</tr>
<tr>
<td>
Martin
</td>
<td>
Jansen
</td>
</tr>
<tr>
<td>
Alexander
</td>
<td>
Merz
</td>
</tr>
</table>
</html> |
|