Пример #1
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);
 }
Пример #2
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('Невозможно выполнить шаг');
     }
 }