Dynamische Web-Templates mit Dtemplate Teil II

Eine andere Möglichkeit, zum selben Ergebnis zu kommen, besteht darin, das Template in zwei Teile aufzuteilen: einen für das Hauptformular und einen für das Element, das sich wiederholt. Dies ist eine etwas elegantere Alternative zum obigen Beispiel. Hier die zwei Templates:

form.tmpl

und option.tmpl

In diesem Fall muss man die Optionenliste zuerst durch wiederholtes Aufrufen der Methode parse() aus dem Template option.tmpl erzeugen und die Ausgabe jedes Durchgangs an die Ausgabe des vorigen Durchgangs anhängen. Dieselbe Technik kam bereits im ersten Teil dieses Artikels zum Einsatz. Sobald die Optionenliste erzeugt ist, braucht man nur noch das äußere Template zu parsen und die Optionenliste der Variablen $OPTIONS$ zuweisen wie in Listing D.

Beispielanwendung: Verwenden von Dtemplate mit MySQL

Dieses Beispiel zeigt, wie man für dynamische Seiten-Erstellung das Dtemplate-System mit einer MySQL-Datenbank verknüpft. Hier wird von einer vorhandenen MySQL-Tabelle mit Benutzerinformationen ausgegangen (Listing E).

Das Script muss zwei Seiten erstellen, die sich beide aus dieser Tabelle ableiten. Die erste Seite ist ein Index der Benutzernamen, der erstellt wird, wenn das Script ohne Argumente aufgerufen wird. Die zweite Seite enthält Details zu einem bestimmten Benutzer und erfordert, dass der Benutzername dem Script übergeben wird.

Beide Seiten lassen sich vom selben Script generieren, abhängig davon, ob dem Script ein Benutzername übergeben wird oder nicht. Der erste Schritt besteht darin, die Templates für die beiden Seiten zu erstellen. Zuerst die Index-Seite index.tmpl:

Und für einen einzelnen Listeneintrag li.tmpl:

Und hier das Template für die Seite mit den Benutzerdetails detail.tmpl:

Das Script, welches die eigentliche Arbeit erledigt, findet sich in Listing F. Es setzt neben dem Dtemplate-Modul zwei der leistungsfähigsten Module von Perl ein: CGI.pm und DBI.pm.

Page: 1 2 3

ZDNet.de Redaktion

Recent Posts

Google stopft weitere fünf Löcher in Chrome 128

Betroffen sind Chrome für Windows, macOS und Linux. Das von den Anfälligkeiten ausgehende Risiko stuft…

3 Tagen ago

Steuerstreit mit der EU: Apple muss 13 Milliarden Euro nachzahlen

Der Gerichtshof der Europäischen Union entscheidet „endgültig“ über den Rechtsstreit. Dem Urteil zufolge sind von…

4 Tagen ago

September-Patchday: Microsoft schließt kritische Zero-Day-Lücke in Windows Update

Sie betrifft ältere Versionen von Windows 10. Ein weiterer kritischer Bug steckt aber auch in…

4 Tagen ago

CloudEye für 18 Prozent aller Malware-Infektionen in Deutschland verantwortlich

Der Downloader nimmt Windows-Rechner ins Visier. RansomHub festigt seine Position als führende Ransomware-Gruppe weltweit.

4 Tagen ago

Funeral Scams: Neue perfide Online-Betrugsmasche auf Facebook

Britische Bestattungsunternehmen haben bereits reagiert und weisen darauf hin, dass ihre Beerdigungen nicht gelivestreamt werden.

5 Tagen ago

Apple stellt iPhone 16 und iPhone 16 Pro vor

Der neue Apple-Prozessor A18 basiert auf einem 3-Nanometer-Verfahren. Apple verspricht mehr Leistung und eine höhere…

5 Tagen ago