テンプレート内のJavaScript、スタイルシートの使用 (Smarty構文を無視)
Smartyのテンプレート内にJavaScriptやスタイルシート(CSS)を直接書いてしまうと、Smarty の構文として解析されエラーが出ることがあります。
このようにSmarty の構文解析の対象にしたくない場合は以下のようにします。
(1) Javascript と CSS コードをそれぞれファイルに切り分ける。
(2) {literal}..{/literal}で囲む。
(3) デリミタを変更する。
(2) {literal}..{/literal}で囲む。
テンプレート
{literal} <script type="text/javascript"> <!--// function hoge(){ … } //--> </script> {/literal}
(3) デリミタを変更する。
現在のデリミタは、{ldelim}、{rdelim} あるいは {$smarty.ldelim} で確認することができます。
以下はデリミタを『 { 』から『 <!--{ 』、『 } 』から『 }--> 』に変更する例です。
PHP
$smarty->left_delimiter = '<!--{'; $smarty->right_delimiter = '}-->';
テンプレート
<!--{$hoge}--> <script language="javascript"> var foo = <!--{$hoge}-->; function hoge() { alert("foo is " + foo); } hoge(); </script>
関連記事
スポンサーリンク