summaryrefslogtreecommitdiffstats
path: root/modules/sysconfig.inc.php
diff options
context:
space:
mode:
authorSimon Rettberg2014-12-12 18:28:38 +0100
committerSimon Rettberg2014-12-12 18:28:38 +0100
commit97a0f7dcfdcf4a5263c1cc6c19160a0868abb5f2 (patch)
treecf735055cfb785ac64e60ab477e215f5f50ad767 /modules/sysconfig.inc.php
parent[news] fix xml tags of news api (diff)
downloadslx-admin-97a0f7dcfdcf4a5263c1cc6c19160a0868abb5f2.tar.gz
slx-admin-97a0f7dcfdcf4a5263c1cc6c19160a0868abb5f2.tar.xz
slx-admin-97a0f7dcfdcf4a5263c1cc6c19160a0868abb5f2.zip
Rework config module class structure. Still some TODOs though....
Diffstat (limited to 'modules/sysconfig.inc.php')
-rw-r--r--modules/sysconfig.inc.php58
1 files changed, 8 insertions, 50 deletions
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);
}