Smarty comes with several custom functions that you can
use in the templates.
{assign}
{assign} is used for assigning template variables
during the execution of a template.
Example 8-1. {assign} {assign var='name' value='Bob'}
The value of $name is {$name}. |
The above example will output:
The value of $name is Bob. |
|
Example 8-2. {assign} with some maths This complex example must have the variables in `backticks` {assign var=running_total value=`$running_total+$some_array[row].some_value`} |
|
Example 8-3. Accessing {assign} variables from a PHP script
To access {assign} variables from a php script use
get_template_vars().
Here's the template that creates the variable $foo.
{assign var='foo' value='Smarty'} |
The template variables are only available after/during template
execution as in the following script.
<?php
// this will output nothing as the template has not been executed echo $smarty->get_template_vars('foo');
// fetch the template to a variable $whole_page = $smarty->fetch('index.tpl');
// this will output 'smarty' as the template has been executed echo $smarty->get_template_vars('foo');
$smarty->assign('foo','Even smarter');
// this will output 'Even smarter' echo $smarty->get_template_vars('foo');
?>
|
|
The following functions can also optionally assign
template variables.
{capture},
{include},
{include_php},
{insert},
{counter},
{cycle},
{eval},
{fetch},
{math},
{textformat}
See also assign()
and
get_template_vars().