テンプレート内の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>
関連記事
スポンサーリンク





