Smartyのタグって変更できるって知ってました?
http://smarty.php.net/manual/en/language.escaping.php
Smartyを使うとJavaScriptに{literal}{/literal}をつかうから不便だと。そういうブログを見たことがある。
なんで詳しく調べもしないでそういう事言うかなぁと、Smartyの制作者の不満が聞こえてきそう・・・
Example 3-7. changing delimiters example
<?php |
Where example.tpl is:
<script language="javascript"> var foo = <!--{$foo}-->; function dosomething() { alert("foo is " + foo); } dosomething(); </script> |
このポイントはSmarty:delim変数を使う点。
上の例ではSmartyの特殊文字を 「<!--{」 「}-->」のペアに変更してる。これでJavaScriptやCSSにも邪魔されないですよね?
個人的にはASPやJSPで使うタグ <%%> にすることをオススメしたい。JSPが大好きだから。というかHTMLしか知らないデザイナーさんには<%%>が一番わかりやすい。
$smarty->left_delimiter = '<%';
$smarty->right_delimiter = '%>';
こうしておけばSmartyタグは{}から<%%>に変更されます。
--------------追記
<% %> を使うと PHP.ini allow_asp_tagの相性問題が出そうなのでそのうち調べておきます。
-------------追記2
Smartyのインスタンス毎にSmartyのASPタグを変えると楽しいことが出来ます。hatenaプラグインがやってるような独自Blogタグをに作ってしまえる。つまり、CMS提供元が提供するタグを "{" " }" のペアにしてユーザーがブログ入力に使うタグを "<tag:username" "/tag:username>" などと2つのタグをSmartyテンプレート内に共存させることが出来そう。
この応用は面白そうなので実際使ってみて、レポート書きます。