public function DebateEtapsCheckerAction($isAjax = true) { $debateModel = new DebateModel(); $request = Project::getRequest(); $message = array(); $sessiovVars = Project::getSession(); $activeEtap = $debateModel->getActiveEtap(); if (!$activeEtap) { $activeEtap = $debateModel->getFirstEtap(); $debateModel->startEtap($activeEtap['id']); // set ACTIVE to first etap $sessiovVars->add('idNow', 0); } $debateNow = $debateModel->getDebateNow(); if (!$debateNow) { $debateModel->addDebateNow(); $debateNow = $debateModel->getDebateNow(); } $debateModel->setPassedEtap($activeEtap['id']); if (!$debateNow['is_ready_1'] && !$debateNow['is_ready_2'] && $activeEtap['name'] == 'Debates') { // ПАУЗА if (!$activeEtap['is_pause']) { $debateModel->pauseOnEtap($activeEtap['id']); } $debateModel->setPausePassedEtap($activeEtap['id']); $etapTimeLeft = $this->getParam('PAUSE_DURATION_SEC') - $debateModel->checkPauseDuration($activeEtap['id']); if ($etapTimeLeft <= 0) { // STOP Pause $debateModel->pauseOffEtap($activeEtap['id']); $debateModel->changeOneValue('debate_now', $debateNow['id'], 'is_ready_1', 1); $debateModel->changeOneValue('debate_now', $debateNow['id'], 'is_ready_2', 1); //$message['refreshNow'] = 1; } else { $message['isPause'] = 1; } $activeEtap = $debateModel->getActiveEtap(); } if (!$activeEtap['is_pause']) { // not Pause $etapTimeLeft = $debateModel->checkEtapDuration($activeEtap['id']); if ($etapTimeLeft <= 0) { // START new Etap $this->switchEtap($activeEtap, $debateNow); $message['refreshNow'] = 1; $sessiovVars->add('idNow', 0); } else { $message['refreshNow'] = 0; } // new Etap, need reload if ($sessiovVars->getKey('currEtap') != $activeEtap['name']) { $sessiovVars->add('currEtap', $activeEtap['name']); $message['refreshNow'] = 1; $sessiovVars->add('idNow', 0); } // change DB, need reload if (!$message['refreshNow'] && $this->isNeedReload($activeEtap, $debateNow)) { $message['refreshNow'] = 1; } } $etapTimeLeftMin = intval($etapTimeLeft / 60); $etapTimeLeftSec = intval($etapTimeLeft - $etapTimeLeftMin * 60); $etapTimeLeftSec = $etapTimeLeftSec ? $etapTimeLeftSec : 0; $message['etapTimeLeftMin'] = $etapTimeLeftMin; $message['etapTimeLeftSec'] = $etapTimeLeftSec; if ($isAjax) { $this->_view->etapsChecker($message); $this->_view->ajax(); } //Project::getResponse()->redirect(Project::getRequest()->createUrl('Debate', 'Debate')); }