我目前正在构建一个主题管理器,其中每个主题都是模块格式。 这些主题添加在'module_listener_options' - >中'module_paths'但不在application.config.php中的'modules'中。
现在,基于来自数据库的数据,我想激活相关的主题模块并启用其控制器,service_manager和其他插件管理器密钥,就像在application.config.php中添加的任何其他模块一样。
我在线阅读你可以使用ModuleManager中的'configMerge'事件监听器(ConfigListener)添加动态配置,但ServiceManager和'ThemeManager'模块(允许激活某些主题的模块)尚未完全加载因为mergedConfig尚未通过ServiceListener。
我读到的另一个建议是启用所有模块,然后使用侦听器禁用这些功能。这个,我不知道该怎么做或者它是否真的符合我的要求,因为每个主题模块可能会有大量的功能。
你能动态启用模块吗?
此外,一些主题模块是“子”主题,它们继承了父主题模块的功能。我已经在view_manager中完成了template_path_stack和template_map的'继承',但是无法完成剩下的工作,例如导航。这是在ThemeManager模块中的'loadModules.post'事件监听器中执行的:init class。
我喜欢WordPress在其主题被激活时启用额外功能的模板/主题。在ZF2中有什么接近的东西吗?
如果您知道我可能还没有看到的任何链接,读物和指示,我们非常欢迎您提出建议!
谢谢!