2012-11-16 14 views
3

我需要ZF2中的兩個不同的模板映射,一個用於admin和oen用於前端,目前我可以看到的是ZF2合併使用的2個module.config.php文件在我配置的2個模塊中,並導致我需要爲管理員設置的模板映射,以便在前面的模塊中加載。配置ZF2 view_manager加載2個單獨的模板地圖

的應用/ module.config.php

... 
'view_manager' => array(
     'display_not_found_reason' => true, 
     'display_exceptions'  => true, 
     'doctype'     => 'HTML5', 
     'not_found_template'  => 'error/404', 
     'exception_template'  => 'error/index', 
     'template_map' => array(
      'layout/layout'   => __DIR__ . '/../view/layout/layout.phtml', 
      'application/index/index' => __DIR__ . '/../view/application/index/index.phtml', 
      'error/404'    => __DIR__ . '/../view/error/404.phtml', 
      'error/index'    => __DIR__ . '/../view/error/index.phtml', 
     ), 
     'template_path_stack' => array(
      __DIR__ . '/../view', 
     ), 
... 

的/管理員module.config.php

... 
'view_manager' => array(
     'template_path_stack' => array(
      'admin' => __DIR__ . '/../view', 
     ), 
     'template_map' => array(
      'layout/layout'   => __DIR__ . '/../view/layout/layout.phtml', 
     ), 
    ), 
... 

我應該怎麼修改,這樣我可以加載單獨的 「view_manager」 陣列2個獨立的模塊?

+0

爲什麼需要那個? –

回答

1

如果你能解釋你爲什麼試圖達到這個目標,那將會很棒。正如我所看到的,您正試圖爲管理員設置不同的佈局。也許你想看看這個模塊已經可以做你正在嘗試的https://github.com/zf-commons/zfcadmin。此模塊爲管理路線設置了一個佈局設置。

+1

謝謝,我不知道zfcadmin是否已經配置。不知道如何解釋更多爲什麼我試圖實現這一目標,除了我想要創建具有不同佈局的管理模塊,但沒有成功,因爲任何嘗試修改管理模塊的佈局我已經創建的也將改變主模塊(應用程序)的佈局。經過一番研究之後,我發現zend將爲所有模塊合併module.config文件,但沒有找到分離佈局部分的方法。 –

1

我是新來ZF2,我也一直在尋找如何有一個完全不同的模板,儀表板,管理和前端的答案。

我使用EdpModuleLayouts建議在這裏和許多其他職位。這解決了問題的一個方面。佈局。我現在可以爲相同的模板提供不同的佈局,如果我使用相同的模板或者想要證明不同的佈局,例如忘記密碼,註冊或登錄,這種模式可以很好地工作。但我沒有。我需要一整套不同的文件夾,css文件等。在這一點上,我可以將所有模板嵌套到模板文件夾中,並將佈局文件中的鏈接指向相應的文件夾。但我也不想要這個。

我還將zfc-admin模塊包含到我的應用程序中,這給了我另一個方面的線索,即直接爲文件提供不同的源。 (後來卸載)

因此,通過增加添加以下到我的module_name/config/module.config.php

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

啓用在application.config.phpEdpModuleLayouts並添加下面的代碼到應用程序module.config.php

'module_layouts' => array(
    'Application' => 'layout/layout', 
    'Dashboard' => 'layout/dashboard', 
    'Admin' => 'layout/admin', 
), 

這可能不是最好的這樣做的方式,但它的工作。我這樣做的唯一問題是EdpModuleLayouts想要從Application/view/layout文件夾中提取所有佈局。但是,它確實允許我將所有模塊模板文件保留在正在處理的模塊的視圖部分中。