What is Smarty?
Why use it?
Use Cases and Work Flow
Syntax Comparison
Template Inheritance
Best Practices
Crash Course
You may use the Smarty logo according to the trademark notice.
For sponsorship, advertising, news or other inquiries, contact us at:
void smarty_function_name( |
$params, | |
$template) ; |
array $params
;object $template
;
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
$template
object to do so eg
$template->foo()
.
Example 18.1. function plugin with output
<?php /* * Smarty plugin * ------------------------------------------------------------- * File: function.eightball.php * Type: function * Name: eightball * Purpose: outputs a random magic answer * ------------------------------------------------------------- */ function smarty_function_eightball($params, Smarty_Internal_Template $template) { $answers = array('Yes', 'No', 'No way', 'Outlook not so good', 'Ask again soon', 'Maybe in your reality'); $result = array_rand($answers); return $answers[$result]; } ?>
which can be used in the template as:
Question: Will we ever have time travel? Answer: {eightball}.
Example 18.2. function plugin without output
<?php /* * Smarty plugin * ------------------------------------------------------------- * File: function.assign.php * Type: function * Name: assign * Purpose: assign a value to a template variable * ------------------------------------------------------------- */ function smarty_function_assign($params, Smarty_Internal_Template $template) { if (empty($params['var'])) { trigger_error("assign: missing 'var' parameter"); return; } if (!in_array('value', array_keys($params))) { trigger_error("assign: missing 'value' parameter"); return; } $template->assign($params['var'], $params['value']); } ?>
See also:
registerPlugin()
,
unregisterPlugin()
.