Dynamische Web-Templates mit Dtemplate

Sobald Dtemplate installiert und konfiguriert ist, besteht der erste Schritt darin, ein Unterverzeichnis namens templates/ im Dokumenten-Root-Verzeichnis des Webservers zu erstellen und dort die Datei color.tmpl abzulegen. Hier der Inhalt dieser Datei:


<html><head></head>
<body>
<h2>My favorite color is $FAVCOLOR$</h2>
</body>
</html>

So sieht im Prinzip jedes Template aus: eine normale HTML-Seite mit Layout-Code, aber ohne die eigentlichen Daten. Die Daten werden durch eine oder mehrere Template-Variablen repräsentiert, die in Dollarzeichen ($) eingeschlossen sind. Im obigen Beispiel ist $FAVCOLOR$ eine Template-Variable, die von der Template-Engine durch den eigentlichen Wert ersetzt wird. Aber nun zu dem Script, welches dieses Template verwendet.

Parsen des Templates und Ersetzen der Template-Variablen

Das eben erstellte einfache Template ist allerdings nur die halbe Miete. Die andere Hälfte besteht aus einem CGI-Script (Listing A) namens color.cgi, die im CGI-BIN-Verzeichnis des Servers abgespeichert werden muss.

Dieses Script sorgt dafür, das die Template-Datei in die Dtemplate-Engine eingelesen und der darin enthaltene Variablen-Platzhalter durch einen tatsächlichen Wert ersetzt wird. Dies geschieht in drei grundlegenden Schritten:

  1. Der Methode new() wird ein Hash übergeben, dessen Schlüssel „file“ auf die Template-Datei verweist, und die Methode erzeugt ein $tmpl-Objekt, welches das Template repräsentiert.
  2. Die Methode parse() des neu erstellten $tmpl-Objekts übernimmt einen Hash von Schlüssel-Wert-Paaren (wobei die Schlüssel den Template-Platzhaltern entsprechen und die Werte den Inhalten, die diese ersetzen) und führt eine Variablen-Interpolation für das Template durch, indem der Platzhalter $FAVCOLOR$ durch den Wert „indigo“ ersetzt wird.
  3. Der Rückgabewert von parse() wird in der Variablen $output gespeichert und nach dem üblichen „Content-Type“-Header an den Browser geschickt.

Listing B zeigt, was Benutzer zu sehen bekommen, wenn sie die Adresse http://server/cgi-bin/color.cgi aufrufen.

Um es noch einmal zu wiederholen: Jedes Dtemplate erfordert mindestens zwei Komponenten – ein Perl-Script mit der Geschäftslogik sowie ein oder mehrere Template-Dateien, die das Layout enthalten.

Die Vorteile der Trennung von Layout und Code

Das Aufteilen einer Webseite auf diese Weise bringt zwei wichtige Vorteile mit sich: Einmal wird das HTML-Layout physisch vom serverseitigen Code getrennt, wodurch Entwickler unabhängig von den Designern an ihrem Teil einer Webseite arbeiten können. Diese Trennung bedeutet, dass ein Designer auch das Aussehen einer Seite ändern kann, ohne mit dem serverseitigen Code in Berührung zu kommen. Zwar muss der Designer auch im neuen Layout die korrekten Variablen-Platzhalter verwenden, aber es ist wesentlich einfacher, einen Variablen-Platzhalter wiederzufinden, als sich durch komplexe Perl- oder PHP-Codeblöcke zu kämpfen, um nach den darin enthaltenen HTML-Stücken zu suchen.

Zweitens kann das Seiten-Template von unterschiedlichen Scripts aufgerufen werden, da es in einer separaten Datei gespeichert ist. Dadurch lassen sich Komponenten der Benutzeroberfläche ganz einfach wieder verwenden, zum Beispiel Menüs, Buttons, Tabellen, Kopf- und Fußzeilen, was wahrscheinlich Wiederholungen und Redundanzen vermeidet.

Page: 1 2 3 4

ZDNet.de Redaktion

Recent Posts

Ymir: Ransomware mit ausgeklügelter Verschleierung

Ymir nutzt fortschrittliche Verschleierungsmethoden. Sie verschlüsselt bestimmte Dateien auf einer Whitelist nicht, um einer Entdeckung…

4 Tagen ago

Fünf auf einen Streich: Baseus Nomos 5-in-1 Desktop Charger Qi2 140W

Das weltweit erste 5-in-1-Tischladegerät mit kabelloser Qi2-Aufladung und einziehbarem Kabel.

4 Tagen ago

RansomHub hebt Datenerpressung auf höhere Stufe

RansomHub kann per Fernverschlüsselung über ein einziges ungeschütztes Endgerät Daten im gesamten Netzwerk verschlüsseln.

4 Tagen ago

Shokz OpenRun Pro 2: Die perfekte Kombination aus Knochenschall und Air-Conduction Technik

Die neuen OpenRun Pro 2 von Shokz sind die neueste Weiterentwicklung der beliebten offenen Sportkopfhörer.…

6 Tagen ago

UPDF: PDF-Software zu einem Viertel des Preises von Adobe

PDF-Bearbeitungssoftware jetzt im Black Friday Sale mit 50 Prozent Rabatt!

7 Tagen ago

Neuer Bedarf an Workplace Services durch DEX und KI

ISG untersucht deutschen Workplace-Services-Markt. Digital Employee Experience (DEX) gilt als Schlüssel für neues Wachstum.

7 Tagen ago