Eigene Smarty Modifier

Wer in PHP Projekte realisiert und dabei auf die Template-Engine Smarty.net zurückgreift kann sich freuen. Was in der Programmierung unter wiederverwendbare Funktionen/Methoden bekannt ist kann auch in mit der Template-Engine Smarty verwendet werden. Das Ganze nennt sich “Modifier“. Im Grunde ist ein Modifier auch eine Funktion, die immer aufgerufen wird, wenn man diese im Template angibt. Von kleinen Dingen bis hin zu komplexen Aufgaben können so Aktionen durchgeführt werden.

Zwei kleine Beispiele möchte ich euch einmal vorstellen. Sie sind einfach gehalten und es macht nicht unbedingt Sinn sie in realen Projekten zu verwenden, jedoch möchte ich euch anhand dieser Beispiele nur zeigen wie das ganze funktioniert.

Lädt man sich Smarty.net herunter und entpackt es gibt es innerhalb des libs Verzeichnisses einen Ordner namens “plugins“. Hier findet man einige Dateien die mit folgenden Namen beginnen:

  • block.
  • function.
  • modifier.
  • modifiercompiler.
  • weitere

Beispiel 1: Hash-Funktion

Wir nehmen einmal an, wir wollen innerhalb des Templates aus einer Smarty-Variable oder einem Text den MD5 Hash anzeigen lassen. Unsere Datei im Plugin Verzeichnis sähe so aus:

Unser Aufruf im Template sähe so aus:

Dann sähe unsere Ausgabe wie folgt aus:

Das “test” könnte man durch eine Smarty-Variable, z.B. $test ersetzen.

Beispiel 2: mailto-Objekt

Unsere Modifier sähe so aus:

Folgendes würde im Template stehen:

So sähe das Resultat aus:

Der Link ist im Bild zwar nicht ersichtlich wäre aber die entsprechende Mail-Adresse. Somit sind die Modifier eine schöne Möglichkeit komplexere Aufgaben mit nur einem Aufruf und gegebenenfalls. zusätzlichen Parametern zu realisieren.