Smartyのデリミタ設定を「{{」「}}」にしても「{」「}」を扱えるようにする
こないだ、SmartyのSJISテンプレートで不具合を確認してから、とりあえずはデリミタを「{{」「}}」にして回避していたんだけど、いつもの癖で「{」「}」の標準のデリミタで書いてしまう事が多いので、回避策を考えてみた。
自分としては「{」「}」のままの方が使いやすいし、他の人もSmarty標準のデリミタでSmartyを扱ってきた人は「{」「}」の方が使いやすいはず。
んでもって、Smartyのテンプレート自身はEUC-JPで保存しているので、SJISに変換する前に何か仕掛けを作っておけばいいんじゃないかなという素人的な考えでロジックを作ってみた。
SJISのコンテンツにSmartyを使う場合のデリミタ
PHPで携帯向けコンテンツを作る時って、大抵っていうか確実にSJISで出力させるようにしてるんだけど、久々にハマったのでメモ。
ビューにSmartyを使ってるんだけど、「都道府県」という文字を使ったら何故かページが表示されなくなった。というかSmartyの途中までコンパイルされているものの、内容は不完全だから真っ白になっちゃってたりする。
コーディングに間違いはないし、エラーログを見ても特に何も出てないし、なんでだろうと思い、デバッグモードにしてみても原因が分からず。
でも他の箇所で「都道府県」という文字を入れてみたらちゃんと表示されたので、これはSmartyタグとの問題か、Smartyにかけてるフィルタに問題があるのかと思って調べてみた。
- 1