XOOPS Brasil

 

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.

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