示例#1
0
 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'));
 }