/** * 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)); }
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; }
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)); }
<?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'))));
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)); }
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(); }
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"; } }
<?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>