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 (fetch() function, for
example). Alternatively, the function can simply perform some other
task without any output (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.