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.
Ein typisches Template
<html> <body> Userlist <table> <!-- BEGIN row --> <tr> <td>{USERNAME}</td> <td>{EMAIL}</td> </tr> <!-- END row --> </table> </body> </html>
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:
{[0-9A-Za-z_-]+}
Seit Version 1.2.x sind in Platzhaltern erlaubt:
{[\.0-9A-Za-z_-]+}
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.:
Blöcke haben folgende Struktur:
Seit Version 1.2.x sind auch Punkt in Blockdefinition erlaubt.
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.
Das Template
<html> <table> <!-- BEGIN row --> <tr> <!-- BEGIN cell --> <td> {DATA} </td> <!-- END cell --> </tr> <!-- END row --> </table> </html>
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();
?>
Die Ausgabe