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><type>bool</type><parameter>cacheable</parameter></methodparam> <methodparam><type>mixed</type><parameter>cache_attrs</parameter></methodparam> </methodsynopsis> <para> Use this to dynamically register template function plugins. Pass in the template function name, followed by the PHP function name that implements it. </para> <para> The php-function callback <parameter>impl</parameter> can be either (a) a string containing the function name or (b) an array of the form <literal>array(&$object, $method)</literal> with <literal>&$object</literal> being a reference to an object and <literal>$method</literal> being a string containing the mehod-name or (c) an array of the form <literal>array(&$class, $method)</literal> with <literal>$class</literal> being a classname and <literal>$method</literal> being a class method of that class. </para> <para> <parameter>cacheable</parameter> and <parameter>cache_attrs</parameter> can be omitted in most cases. See <link linkend="caching.cacheable">Controlling Cacheability of Plugins' Output</link> on how to use them properly. </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()); } } // now you can use this in Smarty to print the current date: {date_now} // or, {date_now format="%Y/%m/%d"} to format it. ?> ]]>