Name
register_function() — dynamically register template function plugins
Description
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
nameAn array of the form
array(&$object, $method)with&$objectbeing a reference to an object and$methodbeing a string containing the method-nameAn array of the form
array($class, $method)with$classbeing the class name and$methodbeing 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.
