Name
register_block
void register_block(string name,
mixed impl,
bool cacheable,
mixed cache_attrs);
Используйте для динамической регистрации плагинов блоковых функций. В качестве аргументов передаются имя блоковой функции и имя функции, реализующей ее.
Коллбек-функцией php impl
может быть (a) строка,
содержащая имя функции, или (b) массив вида
array(&$object, $method)
, где
&$object
является ссылкой на
объект, а $method
является строкой,
содержащей имя метода, или (c) массив в форме
array($class, $method)
, где
$class
является именем класса, а
$method
является методом этого
класса.
cacheable
и cache_attrs
в большинстве случаев могут быть опущены. Смотрите Управление кэшированием результатов работы плагинов
для получения информации об их правильном использовании.
Пример 13.21. register_block
<?php $smarty->register_block("translate", "do_translation"); function do_translation ($params, $content, &$smarty, &$repeat) { if (isset($content)) { $lang = $params['lang']; // выполняем перевод $content return $translation; } } ?>
Содержимое шаблона:
{* шаблон *} {translate lang="br"} Hello, world! {/translate}