module.config.php中的不同设置适用于zf2中的每个模块

时间:2015-01-20 08:15:58

标签: php zend-framework2

我有两个模块:首先是管理员和应用程序:

'view_helper_config' => array(
        'flashmessenger' => array(
            'message_open_format'      => '<div%s><button data-dismiss="alert" class="close" type="button">×</button>',
            'message_separator_string' => '<br>',
            'message_close_string'     => '</div>'
        ),
    ),

第二名:

'view_helper_config' => array(
    'flashmessenger' => array(
        'message_open_format'      => '<ul%s><li>',
        'message_separator_string' => '<li></li>',
        'message_close_string'     => '</li></ul>'
    ),
),

并且它总是合并的。我希望每个模块都有不同的配置。我该怎么办?

1 个答案:

答案 0 :(得分:1)

请记住,您的module.config.php文件有点像级联样式表,因为第一个文件会被加载,然后后续文件中的设置会补充或替换先前文件加载的设置。 module.config.php文件按照project\config\application.config中列出的模块的顺序加载。换句话说,您在两个不同文件中包含的语句相当于在同一module.config.php中逐个列出它们。

您的问题有几种解决方案:

  1. 通过扩展帮助程序来克隆帮助程序,并为其指定不同的名称,并在不同的模块中使用不同的版本。 (如果你这样做了 甚至可以在别名中设置默认的HTML字符串 并避免在module.config.php完全设置它们。
  2. 在您的观看次数中设置HTML字符串而不是module.config.php。请查看documentation以了解具体方法。
  3. 克隆您的layout.phtml并在其中设置字符串。上面的解决方案要求您在每个和中设置HTML字符串 您创建的每个视图,但文档说您可以设置 他们在任何.phtmlEdpModuleLayouts允许你拥有 独立的,特定于模块的布局;你可以创造一个不同的 每个模块的布局,并在每个模块中设置您选择的HTML字符串 布局。
  4. 使用CSS类打开和关闭HTML字符串。我使用EdpModuleLayouts,以便我的管理模块的皮肤是惊人的 与其他模块不同,所以我已经有了替代模块 不同模块的CSS文件。有了这些,就有可能 打开和关闭HTML字符串。对于您的应用程序,你可以把 相关标签中的class=”toggleFM”并将CSS设置设置为 display: hidden;因此在一个模块中确定 元素被渲染,而在另一个模块中,其他元素是 渲染。这是一个复杂的解决方案,但它允许您设置 module.config.php文件中的HTML字符串,如果这就是你的话 想做。
  5. 修改

    另外,请查看您的分隔符字符串。您可能需要'</li><li>'而不是'<li></li>',因为分隔符会关闭列表项并打开另一个列表项。