Dynamische Web-Templates mit Dtemplate Teil II

Mit Dtemplate lassen sich einfach und problemlos Funktionen statt Variblenwerte einsetzen oder die Anbindung an eine MySQL-Datenbank bewerkstelligen. Die Template-Engine überzeugt mit umfangreicher Funktionalität und Stabilität.

Im ersten Teil dieses Tutorials ging es um die Grundlagen der Dtemplate-Engine, von der prinzipiellen Funktion der Engine bis zur Verwendung von mehreren Templates für eine einzige Seite. In diesem zweiten Teil sollen einige weitere Techniken erläutert werden, um Dtemplate vollständig auszureizen: sich wiederholende Elemente, die Verwendung einer Funktion anstelle eines Variablenwertes sowie die Anbindung der Dtemplate-Engine an eine MySQL-Datenbank für datenbankgesteuertes Arbeiten mit Templates.

Verwendung von Perl-Funktionen in einem Template

Zum Einstieg etwas Einfaches: die Verwendung des Rückgabewerts einer Funktion im Aufruf der Methode parse(). Bei den Beispielen im vorigen Artikel ging es darum, Template-Variablen durch hart codierte Werte zu ersetzen. Wahrscheinlich möchte man aber gelegentlich eine Template-Variable durch das Ergebnis einer Berechnung oder den Rückgabewert einer Funktion ersetzen. Dieses einfache Template bietet hierfür ein Beispiel:


In diesem Template soll die Variable $NOW$ das aktuelle Datum und die Uhrzeit speichern, daher kann der Wert nicht in einem Script hart codiert werden. Also muss man dieser Variablen den Wert einer Funktion zuweisen, die dynamisch die aktuelle Uhrzeit generiert wie Listing A.

Die Funktion parse() ersetzt die Variable $NOW$ durch den Rückgabewert der Funktion. Dies ist eine wichtige Fähigkeit, wie sich im Folgenden zeigen wird.

Die Verwendung eigener Funktionen in einem Template

So wie man Perls eigene Funktionen zur Zuweisung von Werten an Template-Variablen verwenden kann, lassen sich auch eigene Funktionen definieren. Das folgende Beispiel illustriert dies:


Nun muss man eine Reihe von <option>-Kästchen erzeugen, um die Variable $OPTIONS$ zu ersetzen. Angenommen, die Optionsliste liegt in einem Perl-Array vor, dann kann man eine einfache Perl-Funktion schreiben, die diese Optionsliste mithilfe einer Schleife erzeugt und die Liste der Variablen $OPTIONS$ zuweist wie in Listing B.

In diesem Fall ist der Wert, welcher der Variablen $OPTIONS$ zugewiesen wird, eine benutzerdefinierte Perl-Subroutine. Diese Subroutine liest den Inhalt des Arrays @countries ein und erzeugt eine Reihe von <option>-Elementen, die dann an den umschließenden Codeblock zurückgegeben werden. Die Funktion parse() weist diesen Rückgabewert dem Platzhalter $OPTIONS$ zu, so dass das Ergebnis wie in Listing C aussieht.

Themenseiten: Anwendungsentwicklung, Big Data, Datenbank, Software

Fanden Sie diesen Artikel nützlich?
Content Loading ...
Whitepaper

Artikel empfehlen:

Neueste Kommentare 

Noch keine Kommentare zu Dynamische Web-Templates mit Dtemplate Teil II

Kommentar hinzufügen

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *