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:
Smarty will recognize assigned variables embedded in "double quotes" so long as the variable name contains only numbers, letters, under_scores and brackets[]. See naming for more detail.
With any other characters, for example a .period or
$object>reference
, then the variable must be
surrounded by `backticks`
.
You cannot embed modifiers, they must always be applied outside of quotes.
Example 3.5. Syntax examples
{func var="test $foo test"} <-- sees $foo {func var="test $foo_bar test"} <-- sees $foo_bar {func var="test $foo[0] test"} <-- sees $foo[0] {func var="test $foo[bar] test"} <-- sees $foo[bar] {func var="test $foo.bar test"} <-- sees $foo (not $foo.bar) {func var="test `$foo.bar` test"} <-- sees $foo.bar {func var="test `$foo.bar` test"|escape} <-- modifiers outside quotes!
Example 3.6. Practical examples
{* will replace $tpl_name with value *} {include file="subdir/$tpl_name.tpl"} {* doesn't replace $tpl_name *} {include file='subdir/$tpl_name.tpl'} <-- {* must have backticks as it contains a . *} {cycle values="one,two,`$smarty.config.myval`"} {* same as $module['contact'].'.tpl' in a php script {include file="`$module.contact`.tpl"} {* same as $module[$view].'.tpl' in a php script {include file="`$module.$view`.tpl"}
See also escape
.