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.

Themenseiten: Anwendungsentwicklung, Big Data, Datenbank, Software

Fanden Sie diesen Artikel nützlich?
Content Loading ...
Whitepaper

Artikel empfehlen:

Neueste Kommentare 

Noch keine Kommentare zu Dynamische Web-Templates mit Dtemplate

Kommentar hinzufügen

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *