Dynamische Web-Templates mit Dtemplate Teil II

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.

Page: 1 2 3

ZDNet.de Redaktion

Recent Posts

Adobe schließt neun kritische Lücken in Reader und Acrobat

Das jüngste Update bringt insgesamt zwölf Fixes. Schadcode lässt sich unter Umständen ohne Interaktion mit…

6 Stunden ago

Fabrikautomatisierung: Siemens integriert SPS-Ebene

Eine softwarebasierte Workstation soll es Ingenieuren erlauben, sämtliche Steuerungen zentral zu verwalten. Pilotkunde ist Ford.

7 Stunden ago

Ebury-Botnet infiziert 400.000 Linux-Server weltweit

Kryptodiebstahl und finanzieller Gewinn sind laut ESET-Forschungsbericht die vorrangigen neuen Ziele.

19 Stunden ago

Sicherheitslücken in Überwachungskameras und Video-Babyphones

Schwachstellen aus der ThroughTek Kaylay-IoT-Plattform. Dringend Update-Status der IoT-Geräte prüfen.

19 Stunden ago

AWS investiert Milliarden in Cloud-Standort Brandenburg

Fast acht Milliarden Euro fließen in die deutsche Region der AWS European Sovereign Cloud. Das…

22 Stunden ago

Hochsichere Software für Electronic Knee Boards der Bundeswehrpiloten

Im Rahmen der umfassenden Digitalisierung der Bundeswehr ersetzen Electronic Knee Boards die herkömmlichen Handbücher von…

1 Tag ago