register_block

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

Use isso para registrar dinamicamente blocos de funções de plugins. Passe no bloco de nomes de função, seguido por uma chamada de função PHP que implemente isso.

A chamada de uma 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 maior parte dos casos. Veja Controlando modos de Saída de Cache dos Plugins para obter informações apropriadas.

Exemplo 13-21. register_block

/* PHP */
$smarty->register_block("translate", "do_translation");
function do_translation ($params, $content, &$smarty, &$repeat) {
 if (isset($content)) {
 $lang = $params['lang'];
 // do some translation with $content
 return $translation;
 }
}
{* template *}
{translate lang="br"}
 Hello, world!
{/translate}