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

Umfrage: Angestellte in Deutschland unterschätzen NIS-2-Richtlinie

Fast zwei Drittel halten jedoch eine Umsetzung aller Vorgaben von NIS 2 bis Jahresende für…

2 Stunden ago

Kostenloser Dekryptor für ShrinkLocker

Mit dem Dekryptor von Bitdefender können Opfer von Attacken mit der Shrinklocker-Ransomware Dateien wiederherstellen.

15 Stunden ago

Malwarebytes warnt vor Betrugsmaschen beim Weihnachtseinkauf

In der Vorweihnachtszeit ist vor allem Malvertising auf dem Vormarsch. Cyberkriminelle locken Nutzer über schädliche…

16 Stunden ago

Bedrohungsindex: Deutliche Zunahme von Infostealern im Oktober

Dazu trägt unter der Infostealer Lumma-Stealer bei. Hierzulande dominiert der Infostealer Formbook die Malware-Landschaft.

1 Tag ago

Chrome 131 schließt zwölf Sicherheitslücken

Eine schwerwiegende Anfälligkeit hebelt die Sicherheitsfunktion Seitenisolierung auf. Betroffen sind Chrome für Windows, macOS und…

1 Tag ago

DeepL Voice mit KI für Sprach- übersetzungen

DeepL Voice ermöglicht Live‑Übersetzung von Meetings und Gesprächen in 13 Sprachen.

1 Tag ago