diff options
Diffstat (limited to 'modules-available/sysconfig/addconfig.inc.php')
-rw-r--r-- | modules-available/sysconfig/addconfig.inc.php | 86 |
1 files changed, 30 insertions, 56 deletions
diff --git a/modules-available/sysconfig/addconfig.inc.php b/modules-available/sysconfig/addconfig.inc.php index 55944cfa..27af31e8 100644 --- a/modules-available/sysconfig/addconfig.inc.php +++ b/modules-available/sysconfig/addconfig.inc.php @@ -9,57 +9,34 @@ abstract class AddConfig_Base /** * Holds the instance for the currently executing step - * @var \AddConfig_Base + * @var AddConfig_Base */ - private static $instance = false; + private static $instance = null; /** * Config being edited (if any) - * @var \ConfigTgz + * @var ?ConfigTgz */ - protected $edit = false; + protected $edit = null; - /** - * - * @param string $step - */ - public static function setStep($step) + public static function setStep(string $step) { if (empty($step) || !class_exists($step) || get_parent_class($step) !== 'AddConfig_Base') { Message::addError('invalid-action', $step); Util::redirect('?do=SysConfig'); } self::$instance = new $step(); - if (Request::any('edit')) { - self::$instance->edit = ConfigTgz::get(Request::any('edit')); - if (self::$instance->edit === false) - Util::traceError('Invalid config id for editing'); + if (($editId = Request::any('edit', 0, 'int')) !== 0) { + self::$instance->edit = ConfigTgz::get($editId); + if (self::$instance->edit === null) + ErrorHandler::traceError('Invalid config id for editing'); Util::addRedirectParam('edit', self::$instance->edit->id()); } } - protected function tmError() - { - Message::addError('main.taskmanager-error'); - Util::redirect('?do=SysConfig'); - } - - protected function taskError($status) - { - if (isset($status['data']['error'])) { - $error = $status['data']['error']; - } elseif (isset($status['statusCode'])) { - $error = $status['statusCode']; - } else { - $error = Dictionary::translate('lang_unknwonTaskManager'); // TODO: No text - } - Message::addError('main.task-error', $error); - Util::redirect('?do=SysConfig'); - } - /** * Called before any HTML rendering happens, so you can - * pepare stuff, validate input, and optionally redirect + * prepare stuff, validate input, and optionally redirect * early if something is wrong, or you received post * data etc. */ @@ -86,25 +63,25 @@ abstract class AddConfig_Base public static function preprocess() { - if (self::$instance === false) { - Util::traceError('No step instance yet'); + if (self::$instance === null) { + ErrorHandler::traceError('No step instance yet'); } self::$instance->preprocessInternal(); } public static function render() { - if (self::$instance === false) - Util::traceError('No step instance yet'); - if (self::$instance->edit !== false) + if (self::$instance === null) + ErrorHandler::traceError('No step instance yet'); + if (self::$instance->edit !== null) Message::addInfo('replacing-config', self::$instance->edit->title()); self::$instance->renderInternal(); } public static function ajax() { - if (self::$instance === false) { - Util::traceError('No step instance yet'); + if (self::$instance === null) { + ErrorHandler::traceError('No step instance yet'); } self::$instance->ajaxInternal(); } @@ -123,7 +100,7 @@ class AddConfig_Start extends AddConfig_Base $mods = ConfigModule::getList(); $res = Database::simpleQuery("SELECT moduleid, title, moduletype, filepath FROM configtgz_module" . " ORDER BY title ASC"); // Move to ConfigModule - if ($this->edit === false) { + if ($this->edit === null) { $active = array(); } else { $active = $this->edit->getModuleIds(); @@ -135,7 +112,7 @@ class AddConfig_Start extends AddConfig_Base $modGroups[$mod['group']] =& $mod; } unset($mod); - while ($row = $res->fetch(PDO::FETCH_ASSOC)) { + foreach ($res as $row) { if (!isset($mods[$row['moduletype']])) { $mods[$row['moduletype']] = array( 'unique' => false, @@ -153,15 +130,15 @@ class AddConfig_Start extends AddConfig_Base $row['active'] = in_array($row['moduleid'], $active); $group['modules'][] = $row; } - if ($this->edit !== false) { + if ($this->edit !== null) { $title = $this->edit->title(); - } elseif (Request::any('title')) { - $title = Request::any('title'); } else { - $title = ''; + $title = Request::any('title', '', 'string'); } $dummy = 0; + $sort = []; foreach ($modGroups as &$mod) { + $sort[] = $mod['sortOrder']; if (!empty($mod['modules']) && $mod['unique']) { array_unshift($mod['modules'], array( 'moduleid' => 'x' . (++$dummy), @@ -169,12 +146,13 @@ class AddConfig_Start extends AddConfig_Base )); } } + array_multisort($sort, SORT_ASC | SORT_NUMERIC, $modGroups); unset($mod); Render::addDialog(Dictionary::translate("lang_configurationCompilation"), false, 'cfg-start', array( 'step' => 'AddConfig_Finish', 'groups' => array_values($modGroups), 'title' => $title, - 'edit' => ($this->edit !== false ? $this->edit->id() : false) + 'edit' => $this->edit === null ? null : $this->edit->id(), )); } @@ -186,29 +164,25 @@ class AddConfig_Start extends AddConfig_Base class AddConfig_Finish extends AddConfig_Base { /** - * @var ConfigTgz + * @var ?ConfigTgz */ - private $config = false; + private $config = null; protected function preprocessInternal() { $modules = Request::post('module'); - $title = Request::post('title'); + $title = Request::post('title', Request::REQUIRED, 'string'); if (!is_array($modules)) { Message::addError('missing-file'); Util::redirect('?do=SysConfig&action=addconfig'); } - if (empty($title)) { - Message::addError('missing-title'); - Util::redirect('?do=SysConfig&action=addconfig'); - } - if ($this->edit === false) { + if ($this->edit === null) { $this->config = ConfigTgz::insert($title, $modules); } else { $this->edit->update($title, $modules); $this->config = $this->edit; } - if ($this->config === false || $this->config->generate(true, 150) === false) { + if ($this->config->generate(true, 150) === false) { Message::addError('unsuccessful-action'); Util::redirect('?do=SysConfig&action=addconfig'); } |