preprocessInternal(); } public static function render() { if (self::$instance === false) { Util::traceError('No step instance yet'); } self::$instance->renderInternal(); } public static function ajax() { if (self::$instance === false) { Util::traceError('No step instance yet'); } self::$instance->ajaxInternal(); } } /** * Start dialog for adding config. Ask for title, * show selection of modules. */ class AddConfig_Start extends AddConfig_Base { protected function renderInternal() { $mods = ConfigModule::getList(); $res = Database::simpleQuery("SELECT moduleid, title, moduletype, filepath FROM configtgz_module" . " ORDER BY title ASC"); while ($row = $res->fetch(PDO::FETCH_ASSOC)) { if (!isset($mods[$row['moduletype']])) { $mods[$row['moduletype']] = array( 'unique' => false, 'group' => 'Undefined moduletype in addconfig.inc.php' ); } if (!isset($mods[$row['moduletype']]['modules'])) { $mods[$row['moduletype']]['modules'] = array(); $mods[$row['moduletype']]['groupid'] = $row['moduletype']; } if (empty($row['filepath']) || !file_exists($row['filepath'])) $row['missing'] = true; $mods[$row['moduletype']]['modules'][] = $row; } Render::addDialog(Dictionary::translate("lang_configurationCompilation"), false, 'sysconfig/cfg-start', array( 'step' => 'AddConfig_Finish', 'groups' => array_values($mods) )); } } /** * Success dialog if adding config worked. */ class AddConfig_Finish extends AddConfig_Base { private $config = false; protected function preprocessInternal() { $modules = Request::post('module'); $title = Request::post('title'); 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'); } $this->config = ConfigTgz::insert($title, $modules); if ($this->config === false || $this->config->generate(true, 10000) !== true) { Message::addError('unsuccessful-action'); Util::redirect('?do=SysConfig&action=addconfig'); } } protected function renderInternal() { Render::addDialog(Dictionary::translate('lang_configurationCompilation'), false, 'sysconfig/cfg-finish', array( 'configid' => $this->config->id() )); } }