2010年2月9日火曜日

Zend_View_Helper_Partial/Zend_View_Helper_PartialLoop/Zend_View_Helper_Action

Zend_Viewヘルパーで使えそうなものがあったので、なんとなくメモ。


(1)Zend_View_Helper_Action
他Actionの戻り値を取得することができる。
フォワードやリダイレクトをするようなものは、空の文字列が変える。
ウィジットのようなものもを作るのに便利。
引数として、アクション名、コントローラ名、モジュール名、引数(array)を渡す。

コード例)VIEWの中で、indexコントローラのsample2アクションを呼び出している
<?php echo $this->action("sample2","index",null,array("count"=>100));?>


(2)Zend_View_Helper_Partial
VIEWの中で他のテンプレートをレンダリングすることができる。
名前空間を気にせずにコーディングできるのと、複雑なレイアウトを使いまわしたいようなときに便利。
通常のVIEWファイルがview/scripts/コントローラ名/ディレクトリの配下を前提としているのに対し、

呼び出すテンプレートファイルは、views/scripts直下を探しにいくので、階層を間違えないように指定する必要がある。コントローラの範囲を超えて使いまわすのを想定しているのかも。
一応他のモジュールのVIEW配下のファイルも指定することができる。
拡張子はVIEWと同じもの。

コード例)
a) 元のビュー内の記述
<?php echo $this->partial("hogechild",array("aa"=>1,"bb"=>2)); ?>

b)呼び出されるテンプレート(hogechild.phtml)内の記述
<?php echo $this->aa ."/".$this->bb;?>


(3)Zend_View_Helper_PartialLoop
Partialヘルパーのループ版で、渡した引数の配列分だけ繰り返す。
テンプレート内では、 partialCounter変数で、繰り返している回数を取得することができるので、テーブルの行で、一行おきに背景色を変えるなども比較的に容易に実現できる。


コード例)
a) 元のビュー内の記述
 <?php echo $this->partialLoop("hogechild.phtml",
         array(
             array("a1"=>"1","a2"=>"2"),
             array("a1"=>"1","a2"=>"2")             
        ));?>

b)呼び出されるテンプレート(hogechild.phtml)内の記述 
(<?php echo $this->partialCounter?>)a1.":".$this->a2?>

0 件のコメント: