■
Smarty の default_modifiers は良い発想だと思うのだが、実装には問題あり...
問題
foreach でも処理されてしまう... orz
<{foreach item=e from=$v}> <{$e}>
とかすると二重に修飾子が実行されてしまう...
しかたないので foreach では smarty:nodefaults する?
と思ったら...
オブジェクトが使えない?
<{foreach item=e from=$v|smarty:nodefaults}> <{$e->getStr()}>
なぜこれが動かないのだ?
prefilter で回避する
世の中には賢い人がいますね。
http://d.hatena.ne.jp/hironobusan/20071204/1196737266
おぉ、すごいですねぇ。こんなことができるんだ。
Smarty に手を入れなくて良いのがいいねぇ...
ただ、1点だけ...
正規表現が '(\$?[^ \}]+)/i' となっているが、これだとすべての smarty タグに反応してしまう...
そうすると、除外条件に cycle とかあれやこれやといれなくてはいけないような気が...
'(\$[^ \}]+)/i' とすれば <{$ で始まるときだけエスケープしてくれるので、これがいいような...
そうすれば除外条件の部分も必要なし?