register_function <methodsynopsis> <type>void</type><methodname>register_function</methodname> <methodparam><type>string</type><parameter>name</parameter></methodparam> <methodparam><type>mixed</type><parameter>impl</parameter></methodparam> <methodparam choice="opt"><type>bool</type><parameter>cacheable</parameter></methodparam> <methodparam choice="opt"><type>mixed</type><parameter>cache_attrs</parameter></methodparam> </methodsynopsis> <para> Используется для динамической регистрации плагинов функций шаблона. Передается наименование функции шаблона и имя функции, реализующей ее. </para> <para> Функция обратного вызова PHP <parameter>impl</parameter> может быть (a) строка, содержащая имя функции, или (b) массив вида <literal>array(&$object, $method)</literal>, где <literal>&$object</literal> является ссылкой на объект, а <literal>$method</literal> является строкой, содержащей имя метода, или (c) массив в форме <literal>array($class, $method)</literal>, где <literal>$class</literal> является именем класса, а <literal>$method</literal> является методом этого класса. </para> <para> <parameter>cacheable</parameter> и <parameter>cache_attrs</parameter> в большинстве случаев могут быть опущены. Смотрите <link linkend="caching.cacheable">Управление кэшированием результатов работы плагинов</link> для получения информации об их правильном использовании. </para> <example> <title>register_function 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"} чтобы задать формат. ?> ]]>