register_function

void register_function (string name, mixed impl, bool cacheable, array or null cache_attrs)

Use isso para registrar funções de plugins dinamicamente para o template. Passe no template o nome da função, seguido pelo nome da função PHP que implemente isso.

A chamada para função-php impl pode ser (a) uma string contendo o nome da função ou (b) um array no formato array(&$object, $method) com &$object sendo uma referência para um objeto e $method sendo uma string contendo o nome do método ou (c) um array no formato array(&$class, $method) com $class sendo um nome de classe e $method sendo um método desta classe.

$cacheable e $cache_attrs podem ser omitidos na maioria dos casos. Veja Controlando modos de Saída Cache dos Plugins para obter informações apropriadas.

Exemplo 13-22. register_function

$smarty->register_function("date_now", "print_current_date");
function print_current_date ($params) {
 extract($params);
 if(empty($format))
 $format="%b %e, %Y";
 return strftime($format,time());
}
// agora você pode usar isso no Smarty para mostrar a data atual: {date_now}
// ou, {date_now format="%Y/%m/%d"} para formatar isso.