※本家のほうで便利なpluginが出来たようです。こちらを使いましょう。
そういやこのままだとHTMLタグそのまま出力されちゃうじゃん!というわけでEthnaっぽくしたHtmlParserが以下
<?php require_once("Rhaco.php"); Rhaco::import("tag.HtmlParser"); Rhaco::import("lang.Variable"); Rhaco::import("tag.data.TemplateFormatter"); class HtmlParserEscape extends HtmlParser { function setVariable($arrayOrKey,$value=""){ if(isset($this) && Variable::isClassType("TagParser",$this)){ if(Variable::isClassType("Request",$arrayOrKey) && method_exists($arrayOrKey,"getVariable")) $arrayOrKey = $arrayOrKey->getVariable(); if(!is_array($arrayOrKey)) $arrayOrKey = array($arrayOrKey=>$value); foreach($arrayOrKey as $key => $value) { $this->variables[$key] = TemplateFormatter::escape($value); } } } function setVariableNE($arrayOrKey,$value=""){ return parent::setVariable($arrayOrKey, $value); } }
元々HtmlParserAddOnFilterというのでエスケープできてたのですが、エスケープありとなしを使い分けたかったというのと、HtmlParserAddOnFilterが最近のバージョンで機能しなくなったということで、こういう形で書いてみました。しかしrhacoのソースのコピペ改変なので何かあったら泣きます。