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 ?>