Ausgabefilter
Wenn ein Template mit 'display()' oder 'fetch()' benutzt wird, kann die
Ausgabe durch verschieden Ausgabefilter geschleust werden. Der Unterschied zu
'post'-Filtern ist, dass Ausgabefilter auf die durch 'fetch()' oder
'display()' erzeugte Ausgabe angewendet werden, 'post'-Filter aber auf das Kompilat vor
seiner Speicherung im Dateisystem.
Ausgabefilter können auf verschiede Arten
geladen werden. Man kann sie registrieren,
aus dem Plugin-Verzeichnis mit load_filter() laden
oder $autoload_filters verwenden.
Smarty übergibt der Funktion als ersten Parameter die Template-Ausgabe und erwartet
als Rückgabewert die bearbeitete Ausgabe.
Beispiel 15-4. Ausgabefilter verwenden
<?php
// fügen Sie folgende Zeilen in Ihre Applikation ein function protect_email($tpl_output, &$smarty) { $tpl_output = preg_replace('!(\S+)@([a-zA-Z0-9\.\-]+\.([a-zA-Z]{2,3}|[0-9]{1,3}))!', '$1%40$2', $tpl_output); return $tpl_output; } // Ausgabefilter registrieren $smarty->register_outputfilter("protect_email"); $smarty->display("index.tpl");
// von nun an erhalten alle ausgegebenen e-mail Adressen einen // einfach Schutz vor Spambots. ?>
|
|