Die Verwendung einer Template-Engine bietet einem die Möglichkeit, gemeinsame Seitenelemente in separate Dateien auszulagern und diese bei Bedarf in die Seiten zu importieren (auch jedes Mal mit unterschiedlichen Daten, falls dies gewünscht wird). Hierfür muss man zuerst die Webseite in separate Dateien („Mini-Templates“) aufteilen und dann für jedes Template ein entsprechendes Dtemplate-Objekt erstellen. Dann kann man jedes Template parsen, bei Bedarf Variablen-Interpolation durchführen und das Ergebnis jedes parse-Durchgangs an die bereits erzeugte Ausgabe anfügen, um eine zusammengesetzte Seite zu erzeugen.
Dies ist einfacher, als es sich anhört. Hier ein Beispiel zur Veranschaulichung: Angenommen, man hat eine Seite, die aus drei Abschnitten besteht – Kopfzeile, Fußzeile und der eigentliche Text. Diese Abschnitte teilt man auf drei separate Template-Dateien mit den Namen header.tmpl (Listing C), body.tmpl (Listing D) und footer.tmpl (Listing E) auf.
Nun braucht man nur noch ein Script, das jedes Template einliest, parst und aus allen dreien eine einzige Seite erzeugt. Ein Beispiel zeigt Listing F.
Da dieses Script mit drei Templates arbeiten muss und daher drei Dtemplate-Objekte erzeugt und referenziert werden müssen, wurde hier eine etwas abweichende Technik angewandt. Zuerst wurde ein Perl-Hash erstellt, der die Namen der Template-Dateien sowie einen bequemen Kurznamen für jede von ihnen enthält. Dann wird mithilfe einer Schleife für jede Datei ein Dtemplate-Objekt erzeugt. Diese Dtemplate-Objekte sind mithilfe der Syntax $templates->{Kurzname} zugänglich, wodurch man auf ihre individuellen Methoden einfach zugreifen kann.
Sobald die Dtemplate-Objekte erzeugt sind, braucht man nur noch jedes zu parsen und die jeweils enthaltenen Variablen durch die eigentlichen Inhalte zu ersetzen. Die Ausgabe jedes Durchgangs von parse() wird an die Ausgabe des vorigen Durchgangs angehängt, so dass Schritt für Schritt die Webseite entsteht. Das Endergebnis sollte etwa so wie in Abbildung A aussehen.
Abbildung A: Aus drei HTML-Templates und einem Logik-Template zusammengebaute Ausgabe |
Der Vorteil? Man kann dieselben Templates für Kopf- und Fußzeile auf der gesamten Website verwenden, indem man sie bei Bedarf einfach importiert. Kopf- und Fußzeile können sogar für jede Seite individuell angepasst werden, indem man Template-Variablen für die veränderlichen Daten verwendet und sie in jedem Script durch unterschiedliche Werte ersetzt (die Variable $TITLE$ in Listing C ist ein Beispiel hierfür).
Aber das Beste ist: Falls man einmal Kopf- oder Fußzeile für die gesamte Website ändern möchte, muss der Designer nur eine einzige HTML-Datei bearbeiten!
Ausgeklügelte Phishing-Kampagne verwendet eine weiterentwickelte Version der Rhadamanthys-Stealer-Malware.
Die EU-Kommission kritisiert die Verknüpfung von Facebook und dem hauseigenen Online-Kleinanzeigendienst. Sie sieht darin einen…
Fast zwei Drittel halten jedoch eine Umsetzung aller Vorgaben von NIS 2 bis Jahresende für…
Mit dem Dekryptor von Bitdefender können Opfer von Attacken mit der Shrinklocker-Ransomware Dateien wiederherstellen.
In der Vorweihnachtszeit ist vor allem Malvertising auf dem Vormarsch. Cyberkriminelle locken Nutzer über schädliche…
Dazu trägt unter der Infostealer Lumma-Stealer bei. Hierzulande dominiert der Infostealer Formbook die Malware-Landschaft.