/** * 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 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)); }
public function actionExcel() { Yii::import('ext.phpexcel.XPHPExcel'); $objPHPExcel = XPHPExcel::createPHPExcel(); // Set document properties $objPHPExcel->getProperties()->setCreator("Maarten Balliauw")->setLastModifiedBy("Maarten Balliauw")->setTitle("Office 2007 XLSX Test Document")->setSubject("Office 2007 XLSX Test Document")->setDescription("Test document for Office 2007 XLSX, generated using PHP classes.")->setKeywords("")->setCategory(""); if (Usuario::model()->findByPk(Yii::app()->user->id)->usu_rol == "admins") { $var = Evaluacion::model()->findAll(); } else { $var = Evaluacion::model()->findAllByAttributes(array('emp_rut' => Usuario::model()->findByPk(Yii::app()->user->id)->emp_rut)); } foreach ($var as $key => $value) { if (Telefono::model()->findByAttributes(array('tel_numero' => $value->tel_numero, 'emp_rut' => $value->emp_rut)) != null) { $fono = Telefono::model()->findByAttributes(array('tel_numero' => $value->tel_numero, 'emp_rut' => $value->emp_rut))->tel_mac; } else { $fono = null; } $var2 = EvaluacionPregunta::model()->findAllByAttributes(array('eva_id' => $value->eva_id)); // datos de las respuestas a la evaluacion a imprimir $objPHPExcel->setActiveSheetIndex(0)->setCellValue('A' . ($key + 2), $key + 1)->setCellValue('B' . ($key + 2), $value->eva_fecha)->setCellValue('C' . ($key + 2), $value->usu_rut)->setCellValue('D' . ($key + 2), $value->emp_rut)->setCellValue('E' . ($key + 2), $value->emp_nombre)->setCellValue('F' . ($key + 2), $value->tel_numero)->setCellValue('G' . ($key + 2), $fono); $c = 7; $k = 0; $j = null; foreach ($var2 as $key2 => $value2) { if (Pregunta::model()->findByPk($value2->pre_id) != null) { $descripcion = Pregunta::model()->findByPk($value2->pre_id)->pre_descripcion; if ($value2->pre_respuesta) { $respuesta = "SI"; } else { $respuesta = "NO"; } } else { $descripcion = "Sin resultados"; } if ($c + $key2 > 25) { $j = intval(($c + $key2) / 26); $k = ($c + $key2) % 26; } if ($j == null) { $objPHPExcel->setActiveSheetIndex(0)->setCellValue(chr($key2 + 65 + $c) . ($key + 2), $descripcion); } else { $objPHPExcel->setActiveSheetIndex(0)->setCellValue(chr($j + 64) . chr($k + 65) . ($key + 2), $descripcion); } $c++; if ($c + $key2 > 25) { $j = intval(($c + $key2) / 26); $k = ($c + $key2) % 26; } if ($j == null) { $objPHPExcel->setActiveSheetIndex(0)->setCellValue(chr($key2 + 65 + $c) . ($key + 2), $respuesta); } else { $objPHPExcel->setActiveSheetIndex(0)->setCellValue(chr($j + 64) . chr($k + 65) . ($key + 2), $respuesta); } } } $j = null; $k = 0; $c = 1; for ($i = 7; $i < 107; $i++) { if ($i > 25) { $j = intval($i / 26); $k = $i - intval($i / 26) * 26; } if ($i % 2 != 0) { if ($j == null) { $objPHPExcel->setActiveSheetIndex(0)->setCellValue(chr($i + 65) . '1', "Pregunta" . " " . $c); $objPHPExcel->setActiveSheetIndex(0)->getColumnDimension(chr($i + 65))->setWidth(50); } else { $objPHPExcel->setActiveSheetIndex(0)->setCellValue(chr($j + 64) . chr($k + 65) . '1', "Pregunta" . " " . $c); $objPHPExcel->setActiveSheetIndex(0)->getColumnDimension(chr($j + 64) . chr($k + 65))->setWidth(50); } } else { if ($j == null) { $objPHPExcel->setActiveSheetIndex(0)->setCellValue(chr($i + 65) . '1', "Respuesta" . " " . $c); $objPHPExcel->setActiveSheetIndex(0)->getColumnDimension(chr($i + 65))->setWidth(15); $c++; } else { $objPHPExcel->setActiveSheetIndex(0)->setCellValue(chr($j + 64) . chr($k + 65) . '1', "Respuesta" . " " . $c); $objPHPExcel->setActiveSheetIndex(0)->getColumnDimension(chr($j + 64) . chr($k + 65))->setWidth(15); $c++; } } } $objPHPExcel->setActiveSheetIndex(0)->setCellValue('A1', 'N°')->setCellValue('B1', 'fecha')->setCellValue('C1', 'Usuario')->setCellValue('D1', 'Rut Empresa')->setCellValue('E1', 'Empresa')->setCellValue('F1', 'N° Telefono')->setCellValue('G1', 'Mac Telefono'); $objPHPExcel->setActiveSheetIndex(0)->getColumnDimension('A')->setWidth(10); $objPHPExcel->setActiveSheetIndex(0)->getColumnDimension('B')->setWidth(20); $objPHPExcel->setActiveSheetIndex(0)->getColumnDimension('C')->setWidth(20); $objPHPExcel->setActiveSheetIndex(0)->getColumnDimension('D')->setWidth(20); $objPHPExcel->setActiveSheetIndex(0)->getColumnDimension('E')->setWidth(20); $objPHPExcel->setActiveSheetIndex(0)->getColumnDimension('F')->setWidth(20); $objPHPExcel->setActiveSheetIndex(0)->getColumnDimension('G')->setWidth(25); // Rename worksheet $objPHPExcel->getActiveSheet()->setTitle('Simple'); // Set active sheet index to the first sheet, so Excel opens this as the first sheet $objPHPExcel->setActiveSheetIndex(0); // Redirect output to a client’s web browser (Excel5) header('Content-Type: application/vnd.ms-excel'); header('Content-Disposition: attachment;filename="informe.xls"'); header('Cache-Control: max-age=0'); // If you're serving to IE 9, then the following may be needed header('Cache-Control: max-age=1'); // If you're serving to IE over SSL, then the following may be needed header('Expires: Mon, 26 Jul 1997 05:00:00 GMT'); // Date in the past header('Last-Modified: ' . gmdate('D, d M Y H:i:s') . ' GMT'); // always modified header('Cache-Control: cache, must-revalidate'); // HTTP/1.1 header('Pragma: public'); // HTTP/1.0 $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5'); $objWriter->save('php://output'); exit; }
/** * Returns the data model based on the primary key given in the GET variable. * If the data model is not found, an HTTP exception will be raised. * @param integer $id the ID of the model to be loaded * @return Pregunta the loaded model * @throws CHttpException */ public function loadModel($id) { $model = Pregunta::model()->findByPk($id); if ($model === null) { throw new CHttpException(404, 'The requested page does not exist.'); } return $model; }
public function actionEditPregunta($id) { $pregunta = Pregunta::model()->findByPk($id); if (!empty($_POST['Pregunta'])) { $fechaForm = $_POST['Pregunta']['fecha']; // Fecha con formato de la bd de mysql $formatoFecha = Yii::app()->dateFormatter->format('yyyy-MM-dd', CDateTimeParser::parse($fechaForm, 'dd/MM/yyyy')); $pregunta->attributes = $_POST['Pregunta']; $pregunta->estado = 1; $this->performAjaxValidation($pregunta); $pregunta->fecha = $formatoFecha; if ($pregunta->save(false, 'update')) { $log = new Logs(); try { $log->accion = 'Edito la pregunta ' . $pregunta->pregunta . ' como admin'; $log->usuario = 'Admin id : ' . 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' => $pregunta->id)); } else { Yii::app()->user->setFlash('error', "Error al guardar pregunta."); } } // Fecha con formato de la bd de mysql $pregunta->fecha = Yii::app()->dateFormatter->format('dd/MM/yyyy', CDateTimeParser::parse($pregunta->fecha, 'yyyy-MM-dd')); $this->render('formEditar', array('pregunta' => $pregunta)); }
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(); }
<?php $stylesheet = ' <link rel="stylesheet" type="text/css" href="' . Yii::app()->request->baseUrl . '/css/mpdf.css" /> <link rel="stylesheet" type="text/css" href="' . Yii::app()->request->baseUrl . '/css/bootstrap.cerulean.min.css" /> <body>'; $var = Evaluacion::model()->findByPk($_GET['id']); // Contiene datos de la Evaluacion a imprimir $var2 = EvaluacionPregunta::model()->findAllByAttributes(array('eva_id' => $var->eva_id)); // datos de las respuestas a la evaluacion a imprimir $var3; foreach ($var2 as $key => $value) { $var3[$key] = Pregunta::model()->findByPk($value->pre_id); } $table = ""; foreach ($var2 as $key => $value) { $respuesta = ""; if ($value->pre_respuesta) { $respuesta = "SI"; } else { $respuesta = "NO"; } $table .= "<tr><td>" . ("<center>" . BsHtml::bold($key + "1", $htmlOptions = array('style' => 'font-size:110%;color:#000;'))) . "</td>\n <td>" . ("<center>" . BsHtml::imageThumbnail(Yii::app()->request->baseUrl . "/images/pregunta/" . str_replace("/upload/preguntas/default/", '', $var3[$key]->pre_imagen), '', $htmlOptions = array('style' => 'width: 110px; height: 110px;margin-top: 5px;margin-bottom: 5px;border:1px solid #dddddd;'))) . "</td>\n <td>" . ("<center>" . BsHtml::bold($var3[$key]->pre_descripcion, $htmlOptions = array('style' => 'font-size:110%;color:#000;')) . "<br>" . BsHtml::italics('"' . $var3[$key]->pre_comentario . '"', $htmlOptions = array('style' => 'font-size:90%;'))) . "</td>\n <td>" . ("<center>" . BsHtml::bold($var3[$key]->tpr_nombre, $htmlOptions = array('style' => 'font-size:110%;color:#000;'))) . "</td>\n <td>" . ("<center>" . BsHtml::bold($respuesta, $htmlOptions = array('style' => 'font-size:110%;color:#000;'))) . "</td></tr>"; } // $header= BsHtml::pageHeader("Informe - Evaluación","<br>" .$var['emp_nombre']." - "."Usuario ".$var['usu_rut']); $html = '<table class="table table-bordered table-striped"> <thead> <tr> <th style="width:20px"><center>#</th> <th style="width:150px"><center>Imagen</th> <th><center>Descripción</th>