Smartyテンプレート中にJavascriptやCSSを書きたいがエラーになってしまう。
■原因/理由
それらのスクリプト中にて使用する "{" と "}" が、
Smartyのタグ定義でも使用されているためです。
それらで囲われた箇所が、smartyのタグと解釈されてしまい、
結果として定義していないsmartyタグのエラーといわれてしまいます。
■対策
以下、2つ方法があります。
○方法1
smartyで解釈しないブロックを一時的に定義する。
[方法]
テンプレート上で、解釈しないブロックを{literal}〜{literal}で囲む。
[使用関数] literal
[使用イメージ]
{literal} <script type="text/javascript"> <!-- document.write("ほげ"); // --> </script> {/literal}
[参考URL]
http://sunset.freespace.jp/Smarty/SmartyManual_2-6-7J_html/language.function.literal.html
○方法2
smartyのタグを変更する。
[方法]
設定ファイルにて、デリミタの変更処理の記述する。
[参考URL]
http://sunset.freespace.jp/smarty/SmartyManual_2-6-3J_html/language.escaping.html
http://sunset.freespace.jp/Smarty/SmartyManual_2-6-7J_html/language.function.ldelim.html