/** * Load group for GM based on each module.ini configuration. * An example is: * * project.gm.group = project * project.gm.label = 'Projects' * project.module.enabled = on */ public function loadGroup($groupName) { $this->setName($groupName); $modules = Agana_Util_Bootstrap::getModulesNames(); $front = Zend_Controller_Front::getInstance(); foreach ($modules as $module) { $boot = Agana_Util_Bootstrap::getBootstrap($module); if (isset($boot)) { if (count($boot->getOptions())) { $options = $boot->getOptions(); if (isset($options['gm']['group'])) { if (strtolower($options['gm']['group']) == strtolower($this->getName())) { if (isset($options['gm']['label'])) { $this->setLabel($options['gm']['label']); } $class = ucfirst($module) . '_Module_Gm'; //if (Zend_Loader_Autoloader::autoload($class)) { $path = $front->getModuleDirectory($module) . DIRECTORY_SEPARATOR . 'module'; //if (Zend_Loader_Autoloader::autoload($class)) { /** * @var Agana_Module_Menu_Interface */ $moduleGm = new $class(); $this->_modules[$moduleGm->getName()] = $moduleGm; } } } } } }
public function loadModulesWidgets() { $modules = Agana_Util_Bootstrap::getModulesNames(); foreach ($modules as $mod) { $mod = ucfirst($mod); $class = $mod . '_Module_Dashboard'; if (class_exists($class)) { $moduleDash = new $class(); $this->widgets = array_merge($this->widgets, $moduleDash->getWidgets()); } } }
public function loadMenu() { $modules = Agana_Util_Bootstrap::getModulesNames(); $front = Zend_Controller_Front::getInstance(); foreach ($modules as $module) { $boot = Agana_Util_Bootstrap::getBootstrap($module); if (isset($boot)) { if (count($boot->getOptions())) { $menuOpt = $boot->getOptions(); if ($menuOpt['menu']['load']) { if ($menuOpt['menu']['container'] == 'class') { $class = ucfirst($module) . '_Module_Menu'; //if (Zend_Loader_Autoloader::autoload($class)) { $path = $front->getModuleDirectory($module) . DIRECTORY_SEPARATOR . 'module'; //if (Zend_Loader_Autoloader::autoload($class)) { /** * @var Agana_Module_Menu_Interface */ $moduleMenu = new $class(); $menuArray = $moduleMenu->getMenu(); foreach ($menuArray as $key => $m) { if (is_numeric($key)) { $m = $menuArray[$key]; if (isset($m['parent']) && trim($m['parent']) != '') { $parent = $this->findBy('id', $m['parent']); // if did not find a parent then create it unset($m['parent']); $parent->addPage($m); } else { $page = $this->findBy('id', $m['id']); if (!$page) { $this->addPage($m); } } } } //} } } } } } }
public static function getPrivileges() { // Resources $modules = Agana_Util_Bootstrap::getModulesNames(); $privileges = array(); foreach ($modules as $mod) { $mod = ucfirst($mod); $class = $mod . '_Module_Acl'; if (class_exists($class)) { $moduleAcl = new $class(); $privileges[$mod] = $moduleAcl->getPrivileges(); } } return $privileges; }