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.
Betroffen sind Chrome für Windows, macOS und Linux. Das von den Anfälligkeiten ausgehende Risiko stuft…
Der Gerichtshof der Europäischen Union entscheidet „endgültig“ über den Rechtsstreit. Dem Urteil zufolge sind von…
Sie betrifft ältere Versionen von Windows 10. Ein weiterer kritischer Bug steckt aber auch in…
Der Downloader nimmt Windows-Rechner ins Visier. RansomHub festigt seine Position als führende Ransomware-Gruppe weltweit.
Britische Bestattungsunternehmen haben bereits reagiert und weisen darauf hin, dass ihre Beerdigungen nicht gelivestreamt werden.
Der neue Apple-Prozessor A18 basiert auf einem 3-Nanometer-Verfahren. Apple verspricht mehr Leistung und eine höhere…