2011年8月19日金曜日

h2o-phpにifequal追加してみた


h2o-php テンプレートエンジン

ifequalテンプレートタグが無かった。

別に if x == y で済むけど。適当に実装してみる。
tags.phpの最後にでも追加する。
class Ifequal_Tag extends H2o_Node {
    private $body;
    private $else;
   
    function __construct($argstring, $parser, $position = 0) {
        $this->body = $parser->parse(‘endifequal’, ‘else’);
        if ($parser->token->content === ‘else’)
            $this->else = $parser->parse(‘endifequal’);
         $this->args = H2o_Parser::parseArguments($argstring);
    }

    function render($context, $stream) {
        $argleft = $context->resolve($this->args[0]);
        $argright = $context->resolve($this->args[1]);
        if ($argleft != $argright) {
            if($this->else)
                $this->else->render($context, $stream);
        } else{
            $this->body->render($context, $stream);
        }
    }
}
はい適当。
あと最後のH2o::addTagにも’ifequal’を追加する。

0 件のコメント:

コメントを投稿