Name

register_function

void register_function(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.22. register_function


$smarty->register_function("date_now", "print_current_date");

function print_current_date($params)
{
  if(empty($params['format'])) {
    $format = "%b %e, %Y";
  } else {
    $format = $params['format'];
    return strftime($format,time());
  }
}

// теперь вы можете использовать ее в Smarty чтобы вывести текущую дату: {date_now}
// или  {date_now format="%Y/%m/%d"} чтобы задать формат.
?>