{literal}
タグに囲まれたデータのブロックは、
リテラルとして認識されます。これは一般的に、Javascript やスタイルシートなどで
中括弧がテンプレートの
デリミタ
として解釈されるとまずい場合に使用します。
{literal}{/literal}
タブの内部は解釈されず、
そのままで表示されます。{literal}
ブロック内にテンプレートタグを含める必要がある場合は、代わりに
{ldelim}{rdelim}
で個々のデリミタをエスケープしてください。
Note
{literal}{/literal}
タグは通常は不要です。Smarty は、
空白文字で囲まれたデリミタを無視するからです。
Javascript や CSS で波括弧を使う場合は両側に空白文字を入れるようにしましょう。
これは、Smarty 3 以降の新しい挙動です。
Example 7.56. {literal} タグ
<script> // 次の波括弧は Smarty では無視されます。 // 空白文字で囲まれているからです。 function myFoo { alert('Foo!'); } // こちらは、リテラルとして扱うエスケープが必要です {literal} function myBar {alert('Bar!');} {/literal} </script>
{ldelim} {rdelim}
および
Smarty の構文解析を回避
のページも参照してください。