Table of Contents
Smarty comes with several custom functions that you can use in the templates.
{assign}
is used for assigning template variables
during the execution of a template.
Attribute Name | Type | Required | Default | Description |
---|---|---|---|---|
var | string | Yes | n/a | The name of the variable being assigned |
value | string | Yes | n/a | The value being assigned |
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()
.