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.
Bankhaus Metzler und Telekom-Tochter MMS testen, inwieweit Bitcoin-Miner das deutsche Stromnetz stabilisieren könnten.
Mit 1,7 Exaflops ist El Capitan nun der dritte Exascale-Supercomputer weltweit. Deutschland stellt erneut den…
Der deutsche Hyperscaler erweitert sein Server-Portfolio um vier Angebote mit den neuen AMD EPYC 4004…
Beim Online-Gaming kommt es nicht nur auf das eigene Können an. Auch die technischen Voraussetzungen…
Fast jedes zweite Unternehmen bietet keinerlei Schulungen an. In den übrigen Betrieben profitieren oft nur…
Huawei stellt auf der Connect Europe 2024 in Paris mit Xinghe Intelligent Network eine erweiterte…