Smarty(OpenPNE)のHTMLエスケープ出力

スポンサーリンク
スポンサーリンク
ライフスタイル関連のコンテンツ
お金 | 仕事 | 勉強 | プライベート | 健康 |
プログラミング関連のコンテンツ
C言語/C++入門 | Ruby入門 | Python入門 | プログラミング全般

年が明けてだいぶ経ちましたが、今年もよろしくお願いいたします。
今日から、またOpenPNEベースでの開発のお仕事。
ショッピングカートっぽい機能を実装中で・・・ふぅ、疲れました。

スポンサーリンク

OpenPNEでは、テンプレートエンジンに、Smartyが採用されています。
Smartyでは、HTMLエスケープするには、以下のように書きます。

{$str|escape}

これで、$strの内容がHTMLエスケープされて出力される。
OpenPNEの場合は、デフォルトでHTMLエスケープ出力となる仕様になっています。

OpenPNE カスタマイズの基本 – パソコンQ&A

* ({で始め、})で終わる
* OpenPNEでは、送られる値はデフォルトでHTMLエスケープされる。
(この影響を受けない変数にするには、{$var|smarty:nodefaults} のように
 nodefaults 修飾子をパラメータに持つ smarty 修飾子を指定します)
* ユーザ画面のURLは基本的にSmartyの拡張タグで生成する。
(ヘッダメニューリンクはこのルールから外れる)

引用記事の通り、({$hoge}) と書くだけで、HTMLエスケープされます。

({$c_member.secure.pc_address|t_truncate:"30"|escape:"hexentity"})

上記のような書き方のテンプレートもありますが、これは前から30バイト(または30文字?)までを出力し、16進数表記でHTMLエスケープする、という意味でしょうか。
HTMLエスケープしたくない場合には、{$var|smarty:nodefaults} のように書くのを忘れないようにしないと。

スポンサーリンク
 
スポンサーリンク