15.4. 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]|[0-9]))!',
'%40', $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.
?>
|