Template Functions void smarty_function_name array $params object &$smarty All attributes passed to template functions from the template are contained in the $params as an associative array. The output (return value) of the function will be substituted in place of the function tag in the template, eg the {fetch} function. Alternatively, the function can simply perform some other task without any output, eg the {assign} function. If the function needs to assign some variables to the template or use some other Smarty-provided functionality, it can use the supplied $smarty object to do so eg $smarty->foo(). function plugin with output ]]> which can be used in the template as: Question: Will we ever have time travel? Answer: {eightball}. function plugin without output trigger_error("assign: missing 'var' parameter"); return; } if (!in_array('value', array_keys($params))) { $smarty->trigger_error("assign: missing 'value' parameter"); return; } $smarty->assign($params['var'], $params['value']); } ?> ]]> See also: register_function(), unregister_function().