Smartyでテンプレートタグ用の{や}を自分専用のものに変える方法
Smartyのテンプレートタグは通常
{$aiueo}
というように、{}を利用する。
しかしこれだと一部問題が起きる場合がある。
それは、テンプレート内にJavaScriptコードがあった場合に{}がSmartyはエラーを起こしてしまうのである。
これを回避するために、{}を使う場所では
{literal}
{/literal}
で囲めばいいのだが、
これはうっかり忘れたりしてかなり面倒。
これを回避するために
Smartyのオブジェクト(例えば$smarty)が生成されたら
$smarty->left_delimiter = '<!–{';
$smarty->right_delimiter = '}–>’;
というように、デリミタを変更してしまえばよい。
こうすると、今まで{$aiueo}だったものが、
<!–{$aiueo}–>
というように書くことができ、{literal}など書く必要がなくなる。
ちなみにこの記述はECcubeがこのようにしていた。
ディスカッション
コメント一覧
まだ、コメントがありません