From 97a0f7dcfdcf4a5263c1cc6c19160a0868abb5f2 Mon Sep 17 00:00:00 2001 From: Simon Rettberg Date: Fri, 12 Dec 2014 18:28:38 +0100 Subject: Rework config module class structure. Still some TODOs though.... --- modules/sysconfig.inc.php | 58 +++++++---------------------------------------- 1 file changed, 8 insertions(+), 50 deletions(-) (limited to 'modules/sysconfig.inc.php') diff --git a/modules/sysconfig.inc.php b/modules/sysconfig.inc.php index 6bb96c80..134f3143 100644 --- a/modules/sysconfig.inc.php +++ b/modules/sysconfig.inc.php @@ -3,45 +3,6 @@ class Page_SysConfig extends Page { - /** - * Holds all the known configuration modules, with title, description, start class for their wizard, etc. - * @var array - */ - protected static $moduleTypes = array(); - - /** - * Add a known configuration module. Every addmoule_* file should call this - * for its module provided. - * - * @param string $id Internal identifier for the module - * @param string $startClass Class to start wizard for creating such a module - * @param string $title Title of this module type - * @param string $description Description for this module type - * @param string $group Title for group this module type belongs to - * @param bool $unique Can only one such module be added to a config? - * @param int $sortOrder Lower comes first, alphabetical ordering otherwiese - */ - public static function addModule($id, $startClass, $title, $description, $group, $unique, $sortOrder = 0) - { - self::$moduleTypes[$id] = array( - 'startClass' => $startClass, - 'title' => $title, - 'description' => $description, - 'group' => $group, - 'unique' => $unique, - 'sortOrder' => $sortOrder - ); - } - - /** - * - * @return array All registered module types - */ - public static function getModuleTypes() - { - return self::$moduleTypes; - } - protected function doPreprocess() { User::load(); @@ -53,12 +14,6 @@ class Page_SysConfig extends Page $action = Request::any('action', 'list'); - // Load all addmodule classes, as they populate the $moduleTypes array - require_once 'modules/sysconfig/addmodule.inc.php'; - foreach (glob('modules/sysconfig/addmodule_*.inc.php') as $file) { - require_once $file; - } - // Action: "addmodule" (upload new module) if ($action === 'addmodule') { $this->initAddModule(); @@ -316,21 +271,24 @@ class Page_SysConfig extends Page private function initAddModule() { + ConfigModules::loadDb(); + require_once 'modules/sysconfig/addmodule.inc.php'; $step = Request::any('step', 0); - if ($step === 0) + if ($step === 0) { $step = 'AddModule_Start'; + } elseif (!class_exists($step) && preg_match('/^([a-zA-Z0-9]+)_/', $step, $out)) { + require_once 'modules/sysconfig/addmodule_' . strtolower($out[1]) . '.inc.php'; + } AddModule_Base::setStep($step); } private function initAddConfig() { + ConfigModules::loadDb(); + require_once 'modules/sysconfig/addconfig.inc.php'; $step = Request::any('step', 0); if ($step === 0) $step = 'AddConfig_Start'; - require_once 'modules/sysconfig/addconfig.inc.php'; - foreach (glob('modules/sysconfig/addconfig_*.inc.php') as $file) { - require_once $file; - } AddConfig_Base::setStep($step); } -- cgit v1.2.3-55-g7522