public function listModules() { $modulesPath = APPLICATION_PATH . '/modules'; $folders = scandir($modulesPath); $modules = ModuleInfo::getModulesBy(); foreach ($folders as $folder) { if ($folder != '.' && $folder != '..' && $folder != 'admin') { if (!array_key_exists($folder, $modules)) { $infoFile = "{$modulesPath}/{$folder}/Info.php"; if (is_file($infoFile)) { //$module = eval("return $folder" . '_Info::getInfo();'); $mInfo = eval("return new {$folder}" . '_Info();'); $module = $mInfo->getInfo(); $module['status'] = 'disabled'; $modules[$module['name']] = $module; //create the file but disbaled it $mInfo->saveModule($module); } } } } $this->view->form = new Admin_Models_Forms_ModulesList($modules); //var_dump($modules); $this->view->modules = $modules; }
function postDispatch(Zend_Controller_Request_Abstract $request) { //make sure the requested module is not disabled $module = $this->getRequest()->getModuleName(); if ($module != 'default') { $module = ModuleInfo::getModule($this->getRequest()->getModuleName()); if (isset($module['status']) && $module['status'] != 'active') { $this->getResponse()->setRedirect('/'); } } $front = Zend_Controller_Front::getInstance(); $layout = Zend_Layout::getMvcInstance(); $savedMenus = unserialize(Site::getResource('site_menu')); $menus = array(); $sections = self::getSections(); foreach ($savedMenus as $moduleMenus) { self::getModulePages($sections, $moduleMenus, $menus); } $layout->getView()->navigation(new Zend_Navigation($menus)); }
/** * Loads module info from the file system. * * @param $name module name. It matches a catalog name for this module. * @return ModuleInfo */ function getModuleInfoFromFile($fs_module_dir) { global $application; $info = $this->store_dir . _ml_strtolower($fs_module_dir) . "/info.php"; if (file_exists($info)) { unset($moduleInfo); include $info; $moduleInfo['directory'] = $fs_module_dir; $moduleInfoClass = new ModuleInfo(); $moduleInfoClass->loadFromArray($moduleInfo); return $moduleInfoClass; } else { # _warning("Module " + $module + " has wrong structure"); return null; } }