2012-11-16 31 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文件夹中提取所有布局。但是,它确实允许我将所有模块模板文件保留在正在处理的模块的视图部分中。