Beispiel #1
0
 public function obtener_pregunta($ronda_id, $pregunta_id = 0)
 {
     $rxp = new RondaXPregunta();
     $rxpn = $rxp::tableName();
     $c = new CDbCriteria();
     $c->join = 'JOIN ' . $rxpn . ' ON ' . $rxpn . '.pregunta_id = t.id';
     $c->addCondition($rxpn . '.ronda_id = :ronda_id');
     $params[':ronda_id'] = $ronda_id;
     if ($pregunta_id) {
         $c->addCondition($rxpn . '.pregunta_id = :pregunta_id');
         $params[':pregunta_id'] = $pregunta_id;
     } else {
         $max = $rxp->count('ronda_id=' . $ronda_id);
         $c->offset = rand(0, $max - 1);
     }
     $c->limit = 1;
     $c->params = $params;
     $pregunta = $this->findAll($c);
     if (isset($pregunta[0])) {
         $pregunta = $pregunta[0];
     }
     if ($this->verificar_respuestas($ronda_id, $pregunta)) {
         $pregunta = $this->obtener_pregunta($ronda_id);
     }
     return $pregunta;
 }
Beispiel #2
0
 protected function verificar_sesion()
 {
     //1. Verifico la sesión para inicializar el juego
     if (!isset(Yii::app()->session['ronda']) || Yii::app()->session['ronda'] == 0) {
         if ($this->_usuario_id == 0) {
             //2. Obtengo el id del usuario
             $usuario = Usuario::model()->find('cruge_user_id = ' . Yii::app()->user->id);
             Yii::app()->session['usuario_id'] = $this->_usuario_id = $usuario->id;
         }
         //Verificar cual es la ronda vigente
         $rondaactual = Ronda::model()->getRondaActual();
         if (!$rondaactual) {
             Yii::app()->user->setFlash('error', 'no-trivias');
             $this->_error();
         }
         Yii::app()->session['ronda'] = $this->_ronda = $rondaactual->id;
         Yii::app()->session['preguntaid'] = $this->_preguntaid = 0;
         Yii::app()->session['situacion'] = $this->_situacion = 1;
         //1. inicio
     } else {
         $this->_ronda = Yii::app()->session['ronda'];
         $this->_usuario_id = Yii::app()->session['usuario_id'];
         $this->_preguntaid = Yii::app()->session['preguntaid'];
         $this->_situacion = Yii::app()->session['situacion'];
     }
     $rxr = RondaXRespuesta::model()->count('usuario_id = :usuario_id && ronda_id = :ronda_id', array(':usuario_id' => $this->_usuario_id, ':ronda_id' => $this->_ronda));
     $rxp = RondaXPregunta::model()->count('ronda_id = :ronda_id', array(':ronda_id' => $this->_ronda));
     if ($rxr >= $rxp) {
         Yii::app()->user->setFlash('error', 'ya-participo');
         $this->_error();
     }
 }