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));
 }
Example #2
0
 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);
 }
Example #3
0
 /**
  * Запускает выполнение шага - когда пользователь жмет "Далее" на текущем шаге
  */
 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('Невозможно выполнить шаг');
     }
 }