--- a/busui/owa/modules/base/optionsModules.php +++ b/busui/owa/modules/base/optionsModules.php @@ -1,1 +1,141 @@ - + + * @copyright Copyright © 2006 Peter Adams + * @license http://www.gnu.org/copyleft/gpl.html GPL v2.0 + * @category owa + * @package owa + * @version $Revision$ + * @since owa 1.0.0 + */ + +class owa_optionsModulesController extends owa_adminController { + + function __construct($params) { + + $this->setRequiredCapability('edit_modules'); + return parent::__construct($params); + } + + function action() { + + $path = OWA_BASE_CLASSES_DIR.'modules'.DIRECTORY_SEPARATOR; + $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); + + endif; + + endif; + } + endif; + + 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'; + endif; + } + + // add data to container + $this->setView('base.options'); + $this->setSubview('base.optionsModules'); + $this->set('modules', $dirs); + + return; + + } + +} + +/** + * Options Modules View + * + * @author Peter Adams + * @copyright Copyright © 2006 Peter Adams + * @license http://www.gnu.org/copyleft/gpl.html GPL v2.0 + * @category owa + * @package owa + * @version $Revision$ + * @since owa 1.0.0 + */ + +class owa_optionsModulesView extends owa_view { + + function __construct($params) { + + //set priviledge level + $this->_setPriviledgeLevel('admin'); + //set page type + $this->_setPageType('Administration Page'); + + return parent::__construct(); + } + + function render($data) { + + //$this->c->get('base', 'modules')); + + // load template + $this->body->set_template('options_modules.tpl'); + + // fetch admin links from all modules + $this->body->set('headline', 'Modules Administration'); + + // Assign module data + $this->body->set('modules', $this->get('modules')); + } +} + +?>