Example 3.5. 構文の例
{func var="test $foo test"} // $foo を参照します
{func var="test $foo_bar test"} // $foo_bar を参照します
{func var="test `$foo[0]` test"} // $foo[0] を参照します
{func var="test `$foo[bar]` test"} // $foo[bar] を参照します
{func var="test $foo.bar test"} // $foo ($foo.bar ではありません) を参照します
{func var="test `$foo.bar` test"} // $foo.bar を参照します
{func var="test `$foo.bar` test"|escape} // クォートの外での修飾子
{func var="test {$foo|escape} test"} // クォートの中での修飾子
{func var="test {time()} test"} // PHP の関数の結果
{func var="test {counter} test"} // プラグインの結果
{func var="variable foo is {if !$foo}not {/if} defined"} // Smarty ブロック関数
Example 3.6. 実用例
{* $tpl_name を値で置き換えます *}
{include file="subdir/$tpl_name.tpl"}
{* $tpl_name を置き換えません *}
{include file='subdir/$tpl_name.tpl'} // 変数にはダブルクォートが必要です!
{* "." を含むのでバッククォートで囲む必要があります *}
{cycle values="one,two,`$smarty.config.myval`"}
{* "." を含むのでバッククォートで囲む必要があります *}
{include file="`$module.contact`.tpl"}
{* ドット構文で変数を使うことができます *}
{include file="`$module.$view`.tpl"}
Smarty では非常に複雑な演算や構文を処理することもできますが、 テンプレートの構文は必要最小限にして表示内容に注力することをお勧めします。 もしテンプレートの構文が複雑になりすぎてきたと感じたら、 表示内容に直接関係のない部分をプラグインや修飾子として PHP 側に追い出すとよいでしょう。
escape
も参照ください。