📜 ⬆️ ⬇️

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