⬆️ ⬇️

module configuration

Given: ZF1.9.1;

2 modules - default and admin: default lies in / application, admin - in / application / modules / admin

there is a single config - /application/config/application.ini

If to add in it a line ( ? )

admin.resources.layout.layout = admin

then the admin module continues to load the layout by default, if you add another line:

resources.layout.layout = admin

then the layout changes, but for the whole site.



If you create Admin_Bootstrap, then in the first case the layout changes for the whole site.



Attention question: how to correctly add a module-oriented settings?

')

UPD : under the cut solution for loading plug-ins (as a simple plugin)



Add to application.ini:

resources.modules[] =

create an empty bootstrap for the module, create a plugin:

 <?php class Plugin_ModuleLoader extends Zend_Controller_Plugin_Abstract { /** * * @var array */ protected $_options; /** * * @var Zend_Controller_Front */ protected $_front; /** * * @param string $moduleName      */ protected function _setupModulePlugins($moduleName) { if (!empty($this->_options[$moduleName]) && !empty($this->_options[$moduleName]['plugins'])) { foreach ($this->_options[$moduleName]['plugins'] AS $plugin) { $this->_front->registerPlugin(new $plugin); } } } public function routeShutdown(Zend_Controller_Request_Abstract $request) { $this->_front = Zend_Controller_Front::getInstance(); $options = $this->_front->getParams('bootstrap'); $options = $options['bootstrap']->getOptions(); if (!empty($options['moduleloader'])) { $this->_options = $options['moduleloader']; $this->_setupModulePlugins($request->getModuleName()); } } } 




in application.ini:

moduleloader.default.plugins.plugin1 = Plugin_Plugin1

moduleloader.default.plugins.plugin2 = Plugin_Plugin2

moduleloader.admin.plugins.plugin1 = Admin_Plugin_Plugin1

moduleloader.admin.plugins.plugin2 = Admin_Plugin_Plugin2

Source: https://habr.com/ru/post/67511/



All Articles