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 the 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. Accessing {assign} variables from a PHP script.
To access {assign} variables from php use
get_template_vars().
However, the variables are only available after/during template execution
as in the following example
{* index.tpl *}
{assign var="foo" value="Smarty"}
<?php
// this will output nothing as the template has not been executed echo $smarty->get_template_vars('foo');
// fetch the template to a dead variable $dead = $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.