2016-04-06 21 views
0

我有一個網站有很多模塊/控制器/操作。我正嘗試將現有內容用於離線PDF報告。如何從ZF中的一系列視圖捕獲內容

爲了簡化問題,我想捕捉的2個行動內容:

$content = [ 
    'first' => 'module_1/controller_1/action_1', 
    'second' => 'module_2/controller_2/action_2' 
]; 

所有這些行爲存在,並獨立地產生的內容。 我正在向actionStack添加請求,但我不確定如何執行它們並收集最終內容。

$stack = Zend_Controller_Action_HelperBroker::getStaticHelper('actionStack'); 
foreach ($content as $key => $path){ 
     list($module, $controller, $action) = explode("/", $path); 
     $stack->actionToStack($action, $controller, $module) 
} 

但這不起作用,因爲我期待,我得不到答覆。 捕獲這些操作的呈現內容的正確方法是什麼?

+0

你在哪裏捕獲?在控制器中還是在視圖中? –

+0

@MaxP。而且,我從另一個控制器調用的另一部分應用程序中捕獲。 –

回答

1

視圖助手Zend_View_Helper_Action可以捕捉一些控制器工作

function f($action, $controller, $module, array $params = array()) 
{ 
    $view = Zend_Controller_Action_HelperBroker::getStaticHelper('viewRenderer'); 
    return $view->view->getHelper('action')->action($action, $controller, $module, $params); 
} 

$content = [ 
    'first' => 'module_1/controller_1/action_1', 
    'second' => 'module_2/controller_2/action_2' 
]; 

foreach ($content as $key => $path){ 
     list($module, $controller, $action) = explode("/", $path); 
     $content = f($action, $controller, $module) 
} 

的結果,或者嘗試基於Zend_View_Helper_Action代碼編寫自定義的功能。

+0

感謝您的建議,這工作,並返回從視圖中的所有HTML,但沒有CSS或JS似乎被執行。我的意思是在$ this-> headScript()和$ this-> headStyle()的視圖中存在的資源。有沒有注入/運行這些的方法? –

+0

你的意思是所有模板的公共部分的佈局? –

+0

是的。我想是這樣。我想獲得包括佈局在內的結果。 –