register_function() — dynamically register template function plugins
void register_function(string name,
mixed impl,
bool cacheable,
mixed cache_attrs);
Pass in the template function name, followed by the PHP function name that implements it.
The php-function callback function
can be either:
A string containing the function name
An array of the form array(&$object, $method)
with
&$object
being a reference to an
object and $method
being a string
containing the method-name
An array of the form
array($class, $method)
with
$class
being the class name and
$method
being a method of the class.
cacheable
and cache_attrs
can be
omitted in most cases. See controlling cacheability of plugins output
on how to use them properly.
Example 13.23. register_function()
<?php $smarty->register_function('date_now', 'print_current_date'); function print_current_date($params, &$smarty) { if(empty($params['format'])) { $format = "%b %e, %Y"; } else { $format = $params['format']; } return strftime($format,time()); } ?>
And in the template
{date_now} {* or to format differently *} {date_now format="%Y/%m/%d"}
See also
unregister_function()
and the
plugin functions section.