---
Array (2)
0 => Array (2)
page_nm => "トップ"
page_sysnm => "top"
1 => Array (3)
page_nm => "Smartyマニュアル"
page_sysnm => "manual_smarty"
this => 1
---
Smarty の構文解析を回避するSmarty の構文解析を回避する
時々、Smarty の構文解析の対象にしたくないと望む、
もしくはそうする必要がある部分があります。 典型的な例としては、
テンプレートに Javascript や CSS コードが含まれるときです。
それらの言語が Smarty のデフォルトの
デリミタ
である { と } を使用するときに問題が発生します。
もっとも単純な解決方法は、Javascript と CSS コードをそれぞれファイルに切り分け、
それらにアクセスするために標準的な HTML の機能を使用する事で状況を回避する事です。
リテラルコンテンツを含めるには
{literal}..{/literal} ブロックを使用します。
HTML エンティティの使用法と同様に、 {ldelim}、{rdelim} あるいは
{$smarty.ldelim} を使用して現在のデリミタを表示することができます。
単純に Smarty の
$left_delimiter および
$right_delimiter
を変更するだけでも便利になることが多々あります。
例 3-8. デリミタを変更する例
<?php
$smarty->left_delimiter = '<!--{'; $smarty->right_delimiter = '}-->';
$smarty->assign('foo', 'bar'); $smarty->assign('name', 'Albert'); $smarty->display('example.tpl');
?>
|
テンプレートはこのようになります。
Welcome <!--{$name}--> to Smarty
<script language="javascript">
var foo = <!--{$foo}-->;
function dosomething() {
alert("foo is " + foo);
}
dosomething();
</script> |
|