Output Filters (Filtros de Saída)

Quando o template é invocado via display() ou fetch(), sua saída pode ser enviada através de um ou mais filtros de saída. Estes diferem dos postfilters porque postfilters operam em templates compilados antes de serem salvos para o disco, e os filtros de saída operam na saída do template quando ele é executado.

Filtros de Saída podem ser ou registrado ou carregado do diretório de plugins usando a função load_filter() ou configurando a variável $autoload_filters. O Smarty passará a saída como o primeiro argumento, e espera a função retornar o resultado do processamento.

Exemplo 15-4. usando um filtro de saída de template

<?php
// ponha isto em sua aplicação 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 o outputfilter
$smarty->register_outputfilter("protect_email");
$smarty->display("index.tpl");
// agora qualquer ocorrência de um endereço de email na saída do template terá uma
// simples proteção contra spambots
?>