3

我在 ZF2 中需要 2 个不同的模板映射,一个用于 admin 和 oen 用于前端,目前从我可以看到 ZF2 合并了在我配置的 2 个模块中使用的 2 个 module.config.php 文件,并导致模板映射我需要为管理员设置,也可以在前面的模块中加载。

/应用程序模块.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',
        ),
...

/admin 模块.config.php

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

我应该修改什么以便我可以为 2 个单独的模块加载单独的“view_manager”数组?

4

3 回答 3

1

我是 ZF2 的新手,我也在寻找有关如何为仪表板、管理员和前端使用完全不同的模板的答案。

EdpModuleLayouts按照这里和许多其他帖子的建议使用。这解决了问题的一个方面。布局。我现在能够为相同的模板提供不同的布局,如果我使用相同的模板或者想要证明忘记密码、注册或登录的不同布局,这将很有效。但我没有。我需要一组完全不同的文件夹、css 文件等。此时我可以将所有模板嵌套到一个模板文件夹中,并将布局文件中的链接指向适当的文件夹。但我也不想要这个。

我还将该zfc-admin模块包含在我的应用程序中,这给了我另一个方面的线索,即直接为文件提供不同的源。(之后卸载)

因此,通过将以下内容添加到我的module_name/config/module.config.php

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

启用并将以下代码添加到应用EdpModuleLayouts程序application.config.phpmodule.config.php

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

这可能不是最好的方法,但它确实有效。这样做我真正看到的唯一问题是 EdpModuleLayouts 想要从Application/view/layout文件夹中提取所有布局。但是,它确实允许我将所有模块模板文件保留在正在处理的模块的视图部分中。

于 2014-03-21T21:48:11.717 回答
1

我也有这个问题。我采用了以下模块中提出的方法

https://github.com/EvanDotPro/EdpModuleLayouts

于 2012-11-26T06:51:42.830 回答
1

如果您能解释为什么要实现这一目标,那就太好了。正如我所看到的,您正在尝试为管理员设置不同的布局。也许你想看看这个模块已经可以做你正在尝试的事情https://github.com/zf-commons/zfcadmin。这个模块有一个用于管理路由的布局设置。

于 2012-11-18T11:39:35.463 回答