プロが教える店舗&オフィスのセキュリティ対策術

Smarty3.0.9を使用しております。
ZendFrameworkと連携した時にエスケープ処理をさせるために、
$this->_smarty->default_modifiers = array('escape:"htmlall"');
を指定した場合に

Fatal error: Uncaught exception 'SmartyCompilerException' with message 'Syntax Error in template  ~  unknown modifier "escape"'

のようなエラーが出たので何でかなと思っていたら、Smarty3ではdefault_modifiersが廃止とかいう情報がネット上で出てきました。
しかし、Smarty3の英語版のマニュアルを見ても、default_modifiersは普通に載っていますし、
どうも代わりに使うようであるvariableFilterというものがそもそもManualで見当たりませんでした。
Web上でvariableFilterを調べてみるのですがあまり出てこないように思います。
自分にはサッパリ分かりませんでした。

すみませんが、$this->_smarty->default_modifiers = array('escape:"htmlall"');に替わる書式を教えていただけませんでしょうか?

A 回答 (2件)

Ver3でも普通に使えますよ。


こちらの環境にてV.3.0.9を入れて動作確認してみましたが問題ありませんでした。

気になった点が1つあり、正常にSmartyがプラグインを読み込んでますか?(modifier.escape.php)

【variableFilter】についてですが、多分プラグインのことでしょう。

$smarty->loadFilter("variable", "htmlspecialchars");

variablefilter.htmlspecialchars.php

一度単体で組んでみては如何でしょうか。
ちなみに、Smartyの最新版は【Ver3.1.6】です。
    • good
    • 1
この回答へのお礼

Dagsさん、本当に有難うございました。
いやぁ、ご指摘のように、Pluginフォルダを読み込んでいませんでした。
某山○本に書かれていた設定方法を信用して丸飲みして設定したらプラグインの読み込み先が消えておりました。
おかげで他のいくつかの問題も解決しました。
数週間悩んでいたのでスッキリしました。
本当に有難うございました。

お礼日時:2011/10/13 19:47

訂正です。



訂正前:ちなみに、Smartyの最新版は【Ver3.1.6】です。

訂正後:ちなみに、Smartyの最新版は【Ver3.1.3】です。

誠に申し訳ない。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!