예제 #1
0
 /**
  * Updates a particular model.
  * If update is successful, the browser will be redirected to the 'view' page.
  * @param integer $id the ID of the model to be updated
  */
 public function actionUpdate($id)
 {
     $pregunta = Pregunta::model()->findByPk($id);
     if (isset($_POST['Pregunta'])) {
         $pregunta->attributes = $_POST['Pregunta'];
         if ($pregunta->validate()) {
             if (!$pregunta->save()) {
                 Yii::app()->user->setFlash('mensaje', 'La pregunta ' . $pregunta->pregunta . ' no se pudo guardar');
             }
             if (isset($_POST['Respuesta'])) {
                 foreach ($_POST['Respuesta'] as $k => $r) {
                     if ($k > 0) {
                         $respuesta = Respuesta::model()->findByPk($k);
                     } else {
                         $respuesta = new Respuesta();
                     }
                     $respuesta->respuesta = $r['respuesta'];
                     $respuesta->es_correcta = $r['es_correcta'];
                     $respuesta->save();
                 }
             }
         }
         //if($preguntaForm->validate())
     }
     //if(isset($_POST['Pregunta']))/**/
     $this->render('modificar', array('model' => $pregunta));
 }
예제 #2
0
 public function obtener_pregunta($nivel = 5, $pregunta_id = 0)
 {
     if ($pregunta_id) {
         $pregunta = $this->findByPk($pregunta_id);
     } else {
         $pregunta = $this->pregunta_al_azar($nivel);
     }
     $rcriteria = new CDbCriteria();
     $rcriteria->select = array('id', 'respuesta');
     $rcriteria->condition = 'pregunta_id=:pregunta_id';
     $rcriteria->params = array(':pregunta_id' => $pregunta->id);
     $respuestas = Respuesta::model()->findAll($rcriteria);
     $result = array('pregunta' => $pregunta, 'respuestas' => $respuestas);
     return $result;
 }
예제 #3
0
 public function actionIndex()
 {
     //Cargo la pregunta para responder
     $triviaForm = new TriviaForm();
     if (isset($_POST['TriviaForm'])) {
         $triviaForm->attributes = $_POST['TriviaForm'];
         //Verifico que la pregunta sea la misma que la cargada en la sesión
         if ($triviaForm->pregunta != $this->_preguntaid) {
             $this->_error();
         }
         //Agregar la pregunta a ronda_x_respuesta
         $rxr = new RondaXRespuesta();
         $rxr->ronda_id = $this->_ronda;
         $rxr->respuesta_id = $triviaForm->respuesta;
         $rxr->usuario_id = $this->_usuario_id;
         $rxr->save();
         //Verifico si es la respuesta correcta
         $r = Respuesta::model()->findByPk($triviaForm->respuesta);
         if ($r->es_correcta) {
             $situacion = 3;
             //3. Respuesta correcta
             $puntos = $rxr->ronda->puntos;
             Yii::app()->user->setFlash('error', 'respuesta-bien');
             Yii::app()->user->setFlash('puntos', $puntos);
             //Sumar puntos
         } else {
             $situacion = 4;
             //4. Respuesta mala
             Yii::app()->user->setFlash('error', 'respuesta-mal');
         }
         Yii::app()->session['situacion'] = $this->_situacion = $situacion;
         $this->_error();
     }
     //if( isset($_POST['TriviaForm']) )
     if ($this->_situacion == 2) {
         $pregunta = Pregunta::model()->obtener_pregunta($this->_ronda, $this->_preguntaid);
     } else {
         $pregunta = Pregunta::model()->obtener_pregunta($this->_ronda);
     }
     Yii::app()->session['preguntaid'] = $this->_preguntaid = $pregunta->id;
     Yii::app()->session['situacion'] = $this->_situacion = 2;
     //2. pregunta
     foreach ($pregunta->respuestas as $r) {
         $respuestas[$r->id] = $r->respuesta;
     }
     $this->render('index', array('model' => $triviaForm, 'pregunta' => $pregunta, 'respuestas' => $respuestas));
 }
예제 #4
0
파일: admin.php 프로젝트: rzamarripa/ase
<?php

$this->pageCaption = 'Adminsitrar ';
$this->pageTitle = Yii::app()->name . ' - ' . $this->pageCaption;
$this->pageDescription = 'respuestas encuesta';
$this->breadcrumbs = array('Respuestas Encuesta' => array('index'), 'Adminsitrar');
$this->menu = array(array('label' => 'Listar RespuestasEncuesta', 'url' => array('index')), array('label' => 'Crear RespuestasEncuesta', 'url' => array('create')));
$this->widget('bootstrap.widgets.TbGridView', array('id' => 'respuestas-encuesta-grid', 'dataProvider' => $model->search(), 'filter' => $model, 'columns' => array('id', array('name' => 'encuesta_did', 'value' => '$data->encuesta->nombre', 'filter' => CHtml::listData(Encuesta::model()->findAll(), 'id', 'nombre')), array('name' => 'respuesta_did', 'value' => '$data->respuesta->nombre', 'filter' => CHtml::listData(Respuesta::model()->findAll(), 'id', 'nombre')), 'ip', 'fechaCreacion_f', array('name' => 'estatus_did', 'value' => '$data->estatus->nombre', 'filter' => CHtml::listData(Estatus::model()->findAll(), 'id', 'nombre')), array('class' => 'bootstrap.widgets.TbButtonColumn'))));
예제 #5
0
 public function actionResponder()
 {
     $this->verificar_sesion();
     if (!Yii::app()->request->isAjaxRequest) {
         throw new CHttpException('403', 'Forbidden access.');
     }
     if (!isset($_POST['r']) && !is_int($_POST['r'])) {
         throw new CHttpException('403', 'Forbidden access.');
     }
     $respuesta = $_POST['r'];
     $tiempo = $_POST['t'];
     $r = Respuesta::model()->findByPk($respuesta);
     //Agrego la pregunta al array para no repetirla esta ronda
     $this->_preguntas[] = $this->_preguntaid;
     Yii::app()->session['preguntas'] = $this->_preguntas;
     if ($r->es_correcta) {
         $nivel = Nivel::model()->findByPk($this->_nivel);
         $ronda = Ronda::model()->findByPk($this->_ronda);
         $puntosr = $ronda->puntos + $nivel->puntos;
         $a = array('tiempo' => $ronda->tiempo + ($nivel->tiempo - $tiempo), 'preguntas' => $this->_preguntan, 'nivel' => $this->_nivel, 'puntos' => $puntosr);
         $ronda->updateByPk($this->_ronda, $a);
         //Agregar la pregunta a pregunta_x_ronda
         $pxr = PreguntaXRonda::model()->findByAttributes(array('ronda_id' => $this->_ronda, 'pregunta_id' => $this->_preguntaid));
         $pxr->estado = 1;
         $pxr->update();
         Yii::app()->session['preguntaid'] = $this->_preguntaid = 0;
         Yii::app()->session['puntosr'] = $this->_puntosr = $puntosr;
         //Sumo puntos
         $pt = Jugador::model()->setPuntos($nivel->puntos, $this->_jugador_id);
         if ($pt) {
             Yii::app()->session['puntost'] = $this->_puntost = $pt;
         }
         if ($this->_preguntan < Yii::app()->params['preguntasxnivel'] * $this->_nivel) {
             $tmpsituacion = 3;
             //3. Respuesta correcta
         } else {
             if ($this->_nivel < 5) {
                 $tmpsituacion = 5;
                 //5. Cambio de nivel
                 $newnivel = Nivel::model()->findByPk($this->_nivel + 1);
                 Yii::app()->session['nivel'] = $this->_nivel = $this->_nivel + 1;
                 Yii::app()->session['tiempo'] = $this->_tiempo = $newnivel->tiempo;
             } else {
                 $tmpsituacion = 6;
                 //6. Ronda completada
             }
         }
         $situacion = $tmpsituacion;
     } else {
         $situacion = 4;
         //4. Respuesta mala
         $nivel = Nivel::model()->findByPk($this->_nivel);
         $ronda = Ronda::model()->findByPk($this->_ronda);
         $puntosr = $ronda->puntos;
         if ($tiempo < 0) {
             $tiempo = 0;
         }
         $a = array('tiempo' => $ronda->tiempo + ($nivel->tiempo - $tiempo), 'preguntas' => $this->_preguntan, 'nivel' => $this->_nivel, 'puntos' => $puntosr);
         $ronda->updateByPk($this->_ronda, $a);
     }
     Yii::app()->session['situacion'] = $this->_situacion = $situacion;
     header('Content-Type: application/json; charset="UTF-8"');
     echo CJSON::encode(array('s' => $situacion, 'n' => $this->_nivel, 'pn' => $this->_preguntan, 'pr' => $this->_puntosr, 'pt' => $this->_puntost, 'a' => $this->_ayudas));
     if ($this->_situacion == 6 || $this->_situacion == 4) {
         $this->limpiar_sesion();
     }
     Yii::app()->end();
 }
 public function actionEditRespuesta($id)
 {
     $respuesta = Respuesta::model()->findByPk($id);
     if (!empty($_POST['Respuesta'])) {
         $condicion = "( es_correcta = 1 AND id != {$id}) " . "AND pregunta_id = {$respuesta->pregunta_id}";
         $find = Respuesta::model()->find($condicion);
         if ($find && !empty($_POST['Respuesta']['es_correcta'])) {
             Yii::app()->user->setFlash('error', "No puede crear o modificar preguntas con multiples respuestas, para seleccionar esta como correcta primero tiene que quitar las respuestas verdaderas y volver a editar esta respuesta.");
         } else {
             $respuesta->attributes = $_POST['Respuesta'];
             $this->performAjaxValidation($respuesta);
             if ($respuesta->save()) {
                 $log = new Logs();
                 try {
                     $log->accion = 'Edito la respuesta ' . $respuesta->respuesta . ' como admin';
                     $log->usuario = Yii::app()->user->id;
                     $log->msg = 'IP: ' . $_SERVER['REMOTE_ADDR'] . ' : ' . $_SERVER['REMOTE_PORT'];
                     $log->fecha = date('Y-m-d G:i:s');
                     $log->save();
                 } catch (Exception $e) {
                     $log->accion = 'Error log';
                     $log->msg = '';
                     $log->fecha = '';
                     $log->save();
                 }
                 $this->redirect(array('view', 'id' => $respuesta->pregunta_id));
             } else {
                 Yii::app()->user->setFlash('error', "Error al guardar respuesta.");
             }
         }
     }
     $this->render('formEditarRespuesta', array('respuesta' => $respuesta));
 }
예제 #7
0
 public function actionRespuesta()
 {
     $this->layout = "single";
     if (!Yii::app()->request->isAjaxRequest) {
         throw new CHttpException('403', 'Forbidden access.');
     }
     $id = Yii::app()->request->restParams['id'];
     // Validar token
     if ($this->validarToken()) {
         if ($this->validarCuentas()) {
             $respuesta = Respuesta::model()->find('id = ?', array(0 => $id));
             $pregunta = Pregunta::model()->find('id = ?', array(0 => $respuesta->pregunta->id));
             $puntos = $respuesta->pregunta->nivel->puntos;
             //$pregunta->estado = 0;
             //$pregunta->save();
             $respuestaJugador = new RespuestaXJugador();
             $log = new Logs();
             $respuestaJugador->pregunta_id = $respuesta->pregunta->id;
             $respuestaJugador->respuesta_id = $id;
             $respuestaJugador->jugador_id = Yii::app()->session['jugador_id'];
             $respuestaJugador->fecha = date('Y-m-d G:i:s');
             $respuestaJugador->ip = $_SERVER['REMOTE_ADDR'] . ' : ' . $_SERVER['REMOTE_PORT'];
             try {
                 if (Yii::app()->user->id) {
                     $jugador = Jugador::model()->find('usuario_id = ' . Yii::app()->user->id);
                     if ($jugador != NULL) {
                         $log->usuario = 'id ' . $jugador->id . ' - ' . $jugador->nombre;
                     } else {
                         $log->usuario = 'id ' . $jugador->id;
                     }
                 }
                 $msg_res = $respuesta->es_correcta == 1 ? 'correcta' : 'incorrecta';
                 $log->accion = 'Contesto Pregunta # ' . $respuesta->pregunta->id;
                 $log->msg = 'IP: ' . $_SERVER['REMOTE_ADDR'] . ' : ' . $_SERVER['REMOTE_PORT'] . '- Contesto "' . $pregunta->pregunta . '"' . '- Su Respuesta fue # ' . $id . '- "' . $respuesta->respuesta . '"' . '- Con respuesta ' . $msg_res;
                 $log->fecha = date('Y-m-d G:i:s');
                 $log->save();
             } catch (Exception $e) {
                 $log->accion = 'Error log';
                 $log->msg = '';
                 $log->fecha = date('Y-m-d G:i:s');
                 $log->save();
             }
             $respuestaJugador->save();
             $respuesta = Respuesta::model()->find('id = ?', array(0 => $id));
             $r = array();
             switch ($respuesta->es_correcta == 1) {
                 case true:
                     // Respuesta correcta , que por ley no se puede informar al usuario.
                     $r['message'] = 'Gracias por participar, recuerda revisar tu perfil al final del día para saber los resultados.';
                     $r['status'] = 'success';
                     break;
                 case false:
                     // Respuesta Incorrecta , que por ley no se puede informar al usuario.
                     $r['message'] = 'Gracias por participar, recuerda revisar tu perfil al final del día para saber los resultados.';
                     /**
                      * formato viejo 
                      **/
                     $r['status'] = 'success';
                     // $r['status']    = 'error';
                     break;
             }
             /** 
              *
              * Formato Viejo , por seguridad ya no se m
              * mandan los puntos al JS.
              **/
             //$r['puntos'] = $puntos;
             $r['puntos'] = 'null';
             $this->clearTokenVal();
         } else {
             $r = array();
             $r['message'] = 'Moral error: No puedes jugar aun.';
             $r['status'] = 'error';
             // Codigo 3 debe estar en el contenido de la base de datos .
             $this->redirect(array('site/contenido', 'id' => 3));
             Yii::app()->end();
         }
     } else {
         $r = array();
         $r['message'] = 'Error , token de seguridad invalido.';
         $r['status'] = 'error';
     }
     header('Content-Type: application/json; charset="UTF-8"');
     echo CJSON::encode($r);
     Yii::app()->end();
 }
예제 #8
0
 public function actionDeleteComentarioProfesor()
 {
     /* buscar todos las respuestas relacionadas con el comentario y borrarlas  */
     $usuario = Usuario::model()->findByPk(Yii::app()->user->id);
     $id_posteo = $_POST['id_posteo'];
     $listaRespuesta = Yii::app()->db->createCommand("select r.id_respuesta from respuesta r join perfil_muro_profesor pm on r.id_posteo = pm.id_posteo join actividad ac on pm.id_actividad = ac.id_actividad where r.id_posteo = " . $id_posteo . " and ac.id_usuario =" . $usuario->id_usuario)->queryAll();
     if ($listaRespuesta != null) {
         Respuesta::model()->deleteAll('id_posteo = :id_posteo', array(':id_posteo' => $id_posteo));
     }
     $posteo = PerfilMuroProfesor::model();
     if ($posteo->deleteByPk($id_posteo)) {
         echo "deleted";
     } else {
         echo "error";
     }
 }
예제 #9
0
파일: _search.php 프로젝트: rzamarripa/ase
			
			<?php 
echo $form->dropDownList($model, "encuesta_did", CHtml::listData(Encuesta::model()->findAll(), 'id', 'nombre'));
?>
		</div>
	</div>


	<div class="clearfix">
		<?php 
echo $form->label($model, 'respuesta_did');
?>
		<div class="input">
			
			<?php 
echo $form->dropDownList($model, "respuesta_did", CHtml::listData(Respuesta::model()->findAll(), 'id', 'nombre'));
?>
		</div>
	</div>


	<div class="clearfix">
		<?php 
echo $form->label($model, 'ip');
?>
		<div class="input">
			
			<?php 
echo $form->textField($model, 'ip', array('size' => 20, 'maxlength' => 20, 'class' => 'form-control'));
?>
		</div>