function action() { $path = OWA_BASE_CLASSES_DIR . 'modules/'; $dirs = array(); if ($handle = opendir($path)) { while (($file = readdir($handle)) !== false) { // test for '.' in dir name if (strpos($file, '.') === false) { // test for whether file is a dir if (is_dir($path . $file)) { $mod = owa_coreAPI::moduleClassFactory($file); $dirs[$file]['name'] = $mod->name; $dirs[$file]['display_name'] = $mod->display_name; $dirs[$file]['author'] = $mod->author; $dirs[$file]['group'] = $mod->group; $dirs[$file]['version'] = $mod->version; $dirs[$file]['description'] = $mod->description; $dirs[$file]['config_required'] = $mod->config_required; $dirs[$file]['current_schema_version'] = $mod->getSchemaVersion(); $dirs[$file]['required_schema_version'] = $mod->getRequiredSchemaVersion(); $dirs[$file]['schema_uptodate'] = $mod->isSchemaCurrent(); //$dirs['stats'] = lstat($path.$file); } } } } closedir($handle); ksort($dirs); // remove base module so it can't be deactivated // unset($dirs['base']); $active_modules = owa_coreAPI::getActiveModules(); foreach ($active_modules as $module) { if (!empty($dirs[$module])) { $dirs[$module]['status'] = 'active'; } } // add data to container $this->setView('base.options'); $this->setSubview('base.optionsModules'); $this->set('modules', $dirs); return; }
function _loadModules() { $am = owa_coreAPI::getActiveModules(); foreach ($am as $k => $v) { $m = owa_coreAPI::moduleClassFactory($v); $this->addModule($m); // check for schema updates $check = $m->isSchemaCurrent(); if ($check != true) { $this->markModuleAsNeedingUpdate($m->name); } } // set schema update flag if (!empty($this->modules_needing_updates)) { $this->setUpdateRequired(); } return; }
public static function installModule($module_name) { if ($module_name) { $m = owa_coreAPI::moduleClassFactory($module_name); $status = $m->install(); return $status; } }