Пример #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 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));
 }
Пример #3
0
 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;
 }
Пример #4
0
 /**
  * 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));
 }
Пример #6
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();
 }
Пример #7
0
<?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>