ContentLion - Open Source CMS

Eigenes Template erstellen

Mittelgroßen bis großen Html-Code in ihrem Plugin sollten sie in unsere Templates auslagern. Das hat den Vorteil, dass Übersetzungen automatisch eingesetzt werden können. Außerdem haben Skin-Entwickler die Möglichkeit Ihr Plugin an den Skin anzupassen.

Zunächst einmal benötigen Sie hierfür ein Template-Objekt. Dies erstellt man so:

$template = new Template();

Nun müssen wir eine Datei hereinladen. Das geht über die load-Funktion. Um die Datei /system/plugins/helloworld/templates/meintemplate.html zu laden, müssen wir das hier aufrufen:

$template->load("plugin_helloworld_meintemplate");

In der Datei kann jetzt erstmal ganz normaler Html-Code rein. Die Ausgabe kann auf zwei Varianten erfolgen. getCode liefert den Quellcode zurück und output liefert ihn sofort aus:

$template->output(); //gibt den Code aus
$code = $template->getCode(); //speichert den Code in $code

Das interessante an den Templates ist aber nicht die pure Ausgabe, sondern die Verwendung von Bedingungen, Variablen und Schleifen. Fangen wir aber mal ganz einfach an. So weißt man Variablen zu:

$template->assign_var("VARIABLE","wert");

Im Template selbst kann man jetzt mit {VAR:VARIABLE} auf den Wert zugreifen.

Schleifen 

Eine Schleife wird im Template so erstellt:

foreach($types as $type){
  $index = $template->add_loop_item("TYPES");
  $template->assign_loop_var("TYPES",$index,"NAME",$type->name);
}

 Zunächst einmal muss mit add_loop_item dies erstellt den Eintrag für die Schleife. Es liefert einen Index zurück, den man bei den Eigenschaften angeben kann. Die Eigenschaften selbst werden mit assign_loop_var hinzugefügt. Im ersten Attribut muss der Name der Schleife angegeben werden, dann der aktuelle Index, dann der Name der Variable und dann der eigentliche Wert. Im Template selbst sieht das dann folgendermaßen aus:

{LOOP:TYPES}
  {VAR:NAME}
{/LOOP:TYPES}

Bedingungen

Man kann Bedingungen nutzen, um gewisse Teile der Seite auszublenden. Dies geht so:

$template->show_if("SUCCEEDED",true);

 Hier wird die Variable SUCCEEDED auf true gesetzt. Im Template können Sie folgendermaßen darauf zugreifen:

{IF:SUCCEEDED}
  Erfolgsmeldung
{/IF:SUCCEEDED}

Wenn man den Spieß umdrehen möchte, und den Bereich nur anzuzeigen, wenn die Bedingung nicht zutrifft, kann man einfach ein ! vor das SUCCEEDED stellen.

Übersetzungen

Alle Texte sollten am besten in die Sprachdateien ausgelagert werden (siehe Plugin Basis). Im Template werden diese dann automatisch ersetzt. Sie können auf die Sprachvariablen (auch Tokens genannt) mit {LANG:VARIABLE} zugreifen.