ZF

2016-04-06 17 views
0

bir dizi görünümden içeriğe nasıl yakalanır modül/denetleyicileri/eylemler çok bir web sitesi var. Çevrimdışı PDF raporu için mevcut içeriği kullanmaya çalışıyorum. ZF

sorunu basitleştirmek için, ben 2 eylemlerin içeriğini yakalamak istiyorum:

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

Tüm bu eylemlerin varlığı ve bağımsız içerik oluşturmak. İstekleri actionStack'a ekliyorum, ancak bunları nasıl yürüteceğimi ve son içeriği nasıl toplayacağımı bilmiyorum.

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

Fakat bu beklediğim gibi çalışmıyor ve yanıt alamıyorum. Bu işlemlerin oluşturulmuş içeriğini yakalamak için doğru yol ne olurdu?

+0

Nerede yakaladınız? kontrolörde mi yoksa görüş alanında mı? –

+0

@MaxP. Ne de, başka bir denetleyiciden çağrılan uygulamanın başka bir bölümünde yakalarım. –

cevap

1

Görüntüleme yardımcı Zend_View_Helper_Action bazı denetleyici çalışması

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) 
} 

sonucunu yakalamak Ya Zend_View_Helper_Action koduna göre özel bir işlev yazmaya deneyebilirsiniz.

+0

Öneriniz için teşekkürler, bu çalışır ve görünümden tüm html döndürür, ancak CSS veya JS yürütülecek gibi görünüyor. Bu $> headScript() ve $ this-> headStyle() ile görünümde var olan kaynakları kastediyorum. Bunları da enjekte etme/çalıştırma yolu var mı? –

+0

Tüm şablonlar için ortak kısım içeren düzen mi demek istiyorsunuz? –

+0

evet. Bence de. Yerleşim dahil olmak üzere sonucu almak istiyorum. –