Cuando el template es invocado a través de display() o fetch(), su salida puede ser enviada a través de uno o mas filtros de salida. Este es diferente a los postfilters porque los postfilters operan en los templates compilados antes de ser salvados en disco, y los filtros de salida operan en la salida del template cuando este es ejecutado.
Los Filtros de Salida pueden ser registrado o cargados del directorio de plugins usando la función load_filter() o configurando a variable $autoload_filters. El Smarty pasara la salida como el primer argumento, y espera que la función retorne el resultado del procesamiento.
Example 15.4. Usando un filtro de salida de template
<?php
// ponga esto en su aplicación
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;
}
// registra el outputfilter
$smarty->register_outputfilter("protect_email");
$smarty->display("index.tpl");
// Ahora cualquier ocurrencia de una dirección de email en la salida
// del template tendra una simple protección contra spambots
?>
