public function process() { set_time_limit(0); /** * Коннект к серверу БД */ if (!($oDb = $this->getDBConnection(InstallConfig::get('db.params.host'), InstallConfig::get('db.params.port'), InstallConfig::get('db.params.user'), InstallConfig::get('db.params.pass'), true))) { return false; } /** * Выбираем БД */ if (!@mysqli_select_db($oDb, InstallConfig::get('db.params.dbname'))) { return $this->addError(InstallCore::getLang('db.errors.db_query')); } $this->setDbParams(array('prefix' => InstallConfig::get('db.table.prefix'), 'engine' => InstallConfig::get('db.tables.engine'))); $sVersion = InstallCore::getRequestStr('from_version'); /** * Проверяем наличие конвертора * Конвертор представляет собой отдельный метод вида converFrom_X1_Y1_Z1_to_X2_Y2_Z2 */ $sMethod = 'convertFrom_' . str_replace('.', '_', $sVersion) . '_to_' . str_replace('.', '_', VERSION); if (!method_exists($this, $sMethod)) { return $this->addError(InstallCore::getLang('steps.updateVersion.errors.not_found_convert')); } InstallCore::setStoredData('update_from_version', $sVersion); /** * Запускаем конвертор */ return call_user_func_array(array($this, $sMethod), array($oDb)); }
public function runGroup($sGroup) { if (!isset(self::$aGroups[$sGroup])) { return self::renderError('Not found group'); } $aGroup = self::$aGroups[$sGroup]; /** * Определяем текущий шаг * Смотрим его в куках, если там нет, то используем первый * Шаг сквозной для всех групп, поэтому при установке у одной группы - у других он сбрасывается на первый */ $sCurrentStep = self::getStoredData('step'); if (!$sCurrentStep or !in_array($sCurrentStep, $aGroup)) { if (!($sFirst = array_shift($aGroup))) { return self::renderError('Not found steps'); } $sCurrentStep = $sFirst; } $sNextStep = self::getNextStep($sGroup, $sCurrentStep); $sPrevousStep = self::getPreviousStep($sGroup, $sCurrentStep); if (!$sPrevousStep) { } if (!$sNextStep) { self::setNextStepHide(); } if (isset($_POST['action_previous'])) { if ($sPrevousStep) { InstallCore::setStoredData('step', $sPrevousStep); InstallCore::location($sGroup); } elseif (count(self::$aGroups) > 1) { /** * Перенаправлям на страницу выбора группы */ self::location(); } } return $this->runStep($sCurrentStep, $sGroup); }
/** * Запускает выполнение шага - когда пользователь жмет "Далее" на текущем шаге */ public function _process() { if ($this->beforeProcess()) { if ($this->process()) { $this->afterProcess(); /** * Устанавливаем следующий шаг */ if ($sNextStep = InstallCore::getNextStep($this->sGroup, $this->getName())) { InstallCore::setStoredData('step', $sNextStep); } /** * Редиректим */ InstallCore::location($this->sGroup); } else { /** * todo: здесь нужно показать сам текущий шаг с сообщением об ошибке */ //return InstallCore::renderError('Ошибка при выполнении шага'); } } else { /** * todo: нужно изменить - показываем сам шаг с сообщением об ошибке */ //return InstallCore::renderError('Невозможно выполнить шаг'); } }