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:
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()
.