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 в большинстве случаев могут быть опущены. Смотрите Управление кэшированием результатов работы плагинов для получения информации об их правильном использовании.

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