Smarty will recognize assignedvariables
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"}