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