0

我是ZF 2的新手,只是試圖在模塊的視圖目錄之外渲染通用佈局。 (包含菜單等),頁腳,頭部(包含css/javascripts) )),這樣我可以將其用作其他modules.See屏幕截圖澄清: enter image description hereZend 2挑戰:如何配置Zend Framework 2以在模塊外部保存通用模板?

而是一次又一次地創造了每一個相同的佈局(頁眉,頁腳,菜單)和每個模塊的,我想使這些所有模塊都可以訪問佈局/視圖(例如,用戶,類別模塊應該始終具有相同的頁腳和標題)。 我的問題是:

1-作爲一種最佳實踐,在我的情況下我應該在哪裏放置我的通用佈局文件以使它們可以訪問項目中的所有模塊?通常,通用佈局不應位於特定模塊的視圖目錄。

2 - 在哪裏以及需要對配置文件進行哪些更改才能使其工作?

我試圖與埃文的EdpModuleLayout

https://github.com/EvanDotPro/EdpModuleLayouts/

玩,也試過

Set a generic layout for all modules in Zend framework 2

但不能如果有人能指導succeed.I將不勝感激我在這方面。 謝謝

+0

意見默認情況下所有模塊都可以訪問,您不需要做任何特殊的事情。你目前收到什麼錯誤? – 2014-11-03 16:24:28

+0

我知道視圖是可訪問的,但想要爲特定模塊範圍之外的通用佈局創建單獨的存儲庫..有可能嗎? – 2014-11-03 16:30:09

+2

當然,只需創建一個單獨的模塊,只包含您的通用視圖/佈局。 – 2014-11-03 16:36:34

回答

1

ZF2已經擁有所有模塊的通用共享佈局。缺省值是layout/layout.phtml。 只是把這個文件放在應用程序模塊的視圖目錄中,它將被所有模塊共享。

從所有已加載模塊的所有視圖腳本可以在其他模塊使用,U盤只需要提供視圖模型模板路徑:

$viewModel->setTemplate('application/index/index'); 

這些都是默認值:

$viewModel->setTemplate('[module namespace]/[controller]/[action]'); 

但是當你手動提供模板路徑時,它們可以是註冊視圖目錄中的任何東西。

您還可以更改默認的佈局文件路徑在View Manager配置:

或控制器本身:

$this->layout('layout/layout.phtml'); 

或一個事件,如果你需要它是動態的。

定義另一個目錄查看您需要更改/或者如果你需要它是動態添加到視圖管理器的配置

'template_path_stack' => array(
    __DIR__ . '/../view', 
), 

或在電子商務活動文件:

$templatePathResolver = $this->getServiceLocator()->get('Zend\View\Resolver\TemplatePathStack'); 
    $templatePathResolver->setOptions(
     array(
      'script_paths' => array(
       $client_theme_path, 
      ) 
     ) 
    );