betawax Follow me on Twitter
 
10
Okt

Smarty Template Funktionen

Smarty bietet die Möglichkeit eigene Template Funktionen bzw. Modifier zu definieren die im Template wie die hauseigenen Funktionen/Modifier von Smarty verwendet werden können. Ein typischer Aufruf würde z.B. folgendermaßen aussehen:

{function param1="foo" param2="bar"} um die Template Funktion function mit den Parametern foo und bar aufzurufen.

{$foo|modifier:"bar"} um die Template Variable $foo mit dem Modifier modifier zu manipulieren und dabei den Parameter bar zu übergeben.

Die entsprechenden in PHP geschrieben Funktionen die die eigentliche Programmlogik beinhalten werden im Verzeichnis plugins abgelegt und beginnen entweder mit function für Funktionen oder modifier für Modifier.

Innerhalb dieser Dateien hat man die Möglichkeit auf bereits bestehende Funktionen/Modifier zurückzugreifen. Möchte man in einer selbst geschriebenen Template Funktion also z.B. auf die mailto Funktion oder den truncate Modifier von Smarty zugreifen lässt sich dies folgendermaßen realisieren:

function smarty_function_foo($params, &$smarty) {
   require_once($smarty->_get_plugin_filepath("function", "mailto"));
   smarty_function_mailto(array("address" => $address, "subject" => $subject), $smarty);
}

function smarty_function_bar($params, &$smarty) {
   require_once($smarty->_get_plugin_filepath("modifier", "truncate"));
   smarty_modifier_truncate($string, 80, "...", true);
}

Mit dieser Methode hat man natürlich auch die Möglichkeit auf eigene Funktionen/Modifier zurückzugreifen. Weitere Informationen hierzu finden sich im Smarty Manual, im Kapitel Smarty durch Plugins erweitern.

Am 10.10.07 um 09:26 Uhr in Kategorie: Webentwicklung

Kommentare

Zu diesem Beitrag wurden noch keine Kommentare verfasst.

Kommentar verfassen









be·ta·wax We·blog

Ein Weblog von Holger Weis in dem er, hin und wieder, zu interessanten Themen aus der Web- und Softwareentwicklung berichtet.

Holger ist 26, lebt in Bamberg und arbeitet als Entwickler für eine Münchener Agentur.

Add to Google