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 built-in functions. These built-in functions are the integral part of the smarty template engine. They are compiled into corresponding inline PHP code for maximum performance.
You cannot create your own custom functions with the same name; and you should not need to modify the built-in functions.
A few of these functions have an assign
attribute which collects the result the function to a named template
variable instead of being output;
much like the
{assign}
function.
This is a short-hand version of the {assign} function. You can assign values directly to the template, or assign values to array elements too.
Assignment of variables in-template is essentially placing application logic into the presentation that may be better handled in PHP. Use at your own discretion.
The following attributes can be added to the tag:
Attributes:
Attribute Name | Shorthand | Type | Required | Default | Description |
---|---|---|---|---|---|
scope | n/a | string | No | n/a | The scope of the assigned variable: 'parent','root' or 'global' |
Option Flags:
Name | Description |
---|---|
nocache | Assigns the variable with the 'nocache' attribute |
Example 7.1. Simple assignment
{$name='Bob'} The value of $name is {$name}.
The above example will output:
The value of $name is Bob.
Example 7.6. Assigment in the scope of calling template
Variables assigned in the included template will be seen in the including template.
{include file="sub_template.tpl"} ... {* display variable assigned in sub_template *} {$foo}<br> ...
The template above includes the example sub_template.tpl
below
... {* foo will be known also in the including template *} {$foo="something" scope=parent} {* bar is assigned only local in the including template *} {$bar="value"} ...