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));
 }
Esempio n. 3
0
 /**
  * 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;
     }
 }