Einführung

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.

Ein typisches Template

<html>
 <body>
  Userlist
  <table>
<!-- BEGIN row -->
   <tr>
    <td>{USERNAME}</td>
    <td>{EMAIL}</td>
   </tr>
<!-- END row -->
  </table>
 </body>
</html>

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:

{[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.:

  • {Placeholder}
  • {place2_holder}
  • {PLACEHOLDER1}
  • {Place-Holder}
Korrekte Platzhalter seit Version 1.2.x z.B.:
  • {Place.Holder}
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

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"truetrue);

  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


<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>
HTML_Template_IT (Previous) Konstruktor (Next)
Last updated: Sun, 19 Dec 2010 — Download Documentation
Do you think that something on this page is wrong? Please file a bug report or add a note.
View this page in:

User Notes:

There are no user contributed notes for this page.