Example #1
0
 /**
  * Esta funcion ejecutara la app y hara las veces de controlador
  */
 static function run()
 {
     $pregunta = new encuesta();
     @($action = $_POST['action']);
     if ($action == 'respuesta') {
         $encuesta->saverespuesta();
     } else {
         echo $pregunta->Form();
     }
 }
 public function responder()
 {
     $this->orm->connect();
     $codigo = $this->post->encuesta;
     unset($this->post->encuesta);
     $options['pregunta']['lvl2'] = "by_encuesta";
     $cod['pregunta']['encuesta'] = $codigo;
     $this->orm->read_data(array("pregunta"), $options, $cod);
     $numPreguntas = $this->orm->get_objects("pregunta", $options, $cod);
     $options['encuesta']['lvl2'] = "by_codigo";
     $cod['encuesta']['codigo'] = $codigo;
     $this->orm->read_data(array("encuesta"), $options, $cod);
     $encuesta = $this->orm->get_objects("encuesta", $options, $cod);
     $encuesta = new encuesta($encuesta[0]);
     if (sizeof($numPreguntas) == $this->contarRespuestas($this->post)) {
         foreach ($this->post as $key => $value) {
             $respuesta = new respuesta();
             $respuesta->set('opcion', $value[0]);
             $respuesta->set('usuario', $_SESSION['persona']['cedula']);
             $this->orm->insert_data("normal", $respuesta);
             unset($respuesta);
         }
         $beneficio = new beneficio();
         $beneficio->set('encuesta', $encuesta->get('codigo'));
         $beneficio->set('tarjeta', $_SESSION['persona']['cedula']);
         $beneficio->set('fecha', date("y-m-d"));
         $beneficio->set('retribucion', $encuesta->get('retribucion'));
         $this->orm->insert_data("normal", $beneficio);
         $options['tarjeta']['lvl2'] = "by_persona";
         $cod['tarjeta']['persona'] = $_SESSION['persona']['cedula'];
         $this->orm->read_data(array("tarjeta"), $options, $cod);
         $tarjeta = $this->orm->get_objects("tarjeta", $options, $cod);
         $tarjeta = new tarjeta($tarjeta[0]);
         $tarjeta->set('saldo', $tarjeta->get('saldo') + $encuesta->get('retribucion'));
         $this->orm->update_data("saldo", $tarjeta);
         $this->displayMessage('Encuesta respondida exitosamente', '¡Gracias por participar!');
     } else {
         $this->displayMessage('Preguntas sin responder', 'Por favor seleccione una opción de respuesta para cada una de las preguntas presente en la encuesta');
         $options['encuesta']['lvl2'] = "by_codigo";
         $cod['encuesta']['codigo'] = $encuesta->get('codigo');
         $options['pregunta']['lvl2'] = "by_encuesta";
         $cod['pregunta']['encuesta'] = $encuesta->get('codigo');
         $options['opcion']['lvl2'] = "all";
         $components['encuesta']['pregunta'] = array("e_p");
         $components['pregunta']['opcion'] = array("p_o");
         $this->orm->read_data(array("encuesta", "pregunta", "opcion"), $options, $cod);
         $encuesta = $this->orm->get_objects("encuesta", $components);
         $this->engine->assign('encuesta', $encuesta[0]);
     }
     $this->orm->close();
 }
<?php

$pregunta = new encuesta($data);
$result = $pregunta->get();
if ($result != false && $result->rowCount() > 0) {
    $data['action'] = 'update';
    $row = $result->fetch(PDO::FETCH_OBJ);
} else {
    $data['action'] = 'insert';
}
if ($data['action'] == 'update') {
    ?>
    <h3>Editar pregunta</h3>
<?php 
} else {
    ?>
    <h3>Introducir una nueva pregunta</h3>
<?php 
}
?>
<a id="help" href="#" style="float: right;">Ayuda</a>    
<a href="index.php" style="float: right;">Nueva pregunta</a>
<form action="index.php" method="POST" name="pregunta">
    <input type="hidden" name="action" value="<?php 
echo $data['action'];
?>
"/>
    <select name="navegador">
        <?php 
if ($data['action'] == 'update') {
    ?>
 function update($data)
 {
     $pregunta = new encuesta($data);
     $pregunta->update();
     $this->view('formulario', null);
 }
 public function crear()
 {
     $encuesta = new encuesta($this->post);
     $tz = 'America/Bogota';
     $encuesta->set('fechaPublicacion', (new DateTime("now", new DateTimeZone($tz)))->format('Y-m-d'));
     if ($encuesta->validarCompletitud()) {
         if (isset($this->post->pregunta)) {
             if ($encuesta->validarFecha()) {
                 if ($encuesta->validarCaracteres()) {
                     if ($this->ValidarPreguntas($this->post->pregunta, $this->post->opcion)) {
                         if ($this->validarCategorias()) {
                             $this->orm->connect();
                             $this->orm->insert_data("normal", $encuesta);
                             $num_preg = 1;
                             $options['encuesta']['lvl2'] = "by_nombre";
                             $cod['encuesta']['nombre'] = $encuesta->get('nombre');
                             $this->orm->connect();
                             $this->orm->read_data(array("encuesta"), $options, $cod);
                             $encuesta = $this->orm->get_objects("encuesta");
                             foreach ($this->post->interes as $key => $value) {
                                 settype($categoria, 'object');
                                 $categoria->tipo = $value;
                                 $categoria->encuesta = $encuesta[0]->get('codigo');
                                 $categoria = new categoria($categoria);
                                 $this->orm->insert_data("normal", $categoria);
                                 unset($categoria);
                             }
                             foreach ($this->post->pregunta as $key => $value) {
                                 settype($pregunta, 'object');
                                 $pregunta->contenido = $value;
                                 $pregunta->numero = $num_preg;
                                 $pregunta->encuesta = $encuesta[0]->get('codigo');
                                 $pregunta = new pregunta($pregunta);
                                 $this->orm->insert_data("normal", $pregunta);
                                 $num_opc = 1;
                                 $options['pregunta']['lvl2'] = "by_encuesta_numero";
                                 $cod['pregunta']['encuesta'] = $pregunta->get('encuesta');
                                 $cod['pregunta']['numero'] = $pregunta->get('numero');
                                 $this->orm->connect();
                                 $this->orm->read_data(array("pregunta"), $options, $cod);
                                 $pregunta = $this->orm->get_objects("pregunta");
                                 for ($i = ($num_preg - 1) * 4; $i <= $num_preg * 4 - 1; $i++) {
                                     settype($opcion, 'object');
                                     $opcion->contenido = $this->post->opcion[$i];
                                     $opcion->numero = $num_opc;
                                     $opcion->pregunta = $pregunta[0]->get('codigo');
                                     $opcion = new opcion($opcion);
                                     $this->orm->insert_data("normal", $opcion);
                                     unset($opcion);
                                     $num_opc = $num_opc + 1;
                                 }
                                 unset($pregunta);
                                 $num_preg = $num_preg + 1;
                             }
                             $this->displayMessage("Registro completado", "Encuesta creada correctamente");
                             $this->orm->close();
                         } else {
                             $this->displayMessage("Datos obligatorios vacíos", "Debe seleccionar al menos una categoría");
                         }
                     } else {
                         $this->displayMessage("Datos obligatorios vacíos", "Debe ingresar las preguntas completas con sus respectivas opciones");
                     }
                 } else {
                     $this->displayMessage("Caracteres no permitidos", "Alguno de los caracteres ingresados para el campo Retribución no son permitidos");
                 }
             } else {
                 $this->displayMessage("Fecha inválida", "Debe ingresar una fecha de finalización posterior a la actual");
             }
         } else {
             $this->displayMessage("Datos obligatorios vacíos", "Debe ingresar al menos una pregunta con sus opciones correspondiente");
         }
     } else {
         $this->displayMessage("Datos obligatorios vacíos", "Debe ingresar todos los campos marcados por (*)");
     }
 }
 public function miPerfil($id, $nombre, $apellidos, $contrasena)
 {
     $unaEncuesta = new encuesta();
     $resultado = $unaEncuesta->actualizar_perfil($id, $nombre, $apellidos, $contrasena);
     if ($resultado > 0) {
         $_SESSION['actualizar'] = $resultado;
         $tsArray = $unaEncuesta->encontrar_Usuario($id);
         if (count($tsArray) > 0) {
             $_SESSION['usuario_completo'] = $tsArray;
         }
         header('location:app/views/default/modules/encuestas/mi_perfil.php');
     }
 }
 function forwarding()
 {
     $this->usuario = new tab_usuario();
     $this->usuario->setRequest2Object($_REQUEST);
     $row = $this->usuario->dbselectByField("usu_id", $_REQUEST['usu_id']);
     if (!$row) {
         die("Error del sistema 404");
     }
     $row = $row[0];
     $this->usuario->setUsu_id($_REQUEST['usu_id']);
     $pass = md5(trim($row->usu_login));
     $this->usuario->setUsu_pass($pass);
     $this->usuario->update();
     // Mailer
     $nombre = $row->usu_nombres . " " . $row->usu_apellidos;
     $email = $row->usu_email;
     $encuesta = new encuesta();
     $nombreEncuesta = $encuesta->obtenerEncuestaUsuario($_REQUEST['usu_id']);
     //        // Test
     //        $email = "*****@*****.**";
     try {
         // Include phpmail.php
         require_once 'includes/class.phpmailer.php';
         // Phpmailer instance
         $mail = new PHPMailer();
         $mail->SetLanguage("es", "includes/");
         // SMTP definition
         $mail->IsSMTP();
         //Esto es para activar el modo depuración. En entorno de pruebas lo mejor es 2, en producción siempre 0
         // 0 = off (producción)
         // 1 = client messages
         // 2 = client and server messages
         $mail->SMTPDebug = 0;
         // Gmail SMTP
         $mail->Host = 'smtp.gmail.com';
         // Port
         $mail->Port = 587;
         // Encription
         $mail->SMTPSecure = 'tls';
         // Gmail authentication
         $mail->SMTPAuth = true;
         // Gmail account
         $mail->Username = "******";
         // Password account
         $mail->Password = "******";
         // Destinatary: (email, name optional)
         $mail->AddAddress($email, $nombre);
         // CC
         //            $mail->AddCC("*****@*****.**");
         $mail->AddCC("*****@*****.**");
         // BCC
         //            $mail->AddBCC("*****@*****.**");
         $mail->AddBCC("*****@*****.**");
         // Reply to
         $mail->AddReplyTo('*****@*****.**', 'DIRECCION GENERAL DE GOBIERNO ELECTRONICO');
         // Remitente (email, name optional)
         $mail->SetFrom('*****@*****.**', 'DIRECCION GENERAL DE GOBIERNO ELECTRONICO');
         // Attachmail
         $mail->AddAttachment("Manual_Usuario_Encuesta_Software Libre.pdf");
         // Subject email
         if ($_REQUEST['usu_rol_id'] == 1) {
             $mail->Subject = 'Creacion de cuenta para administrar el Sistema de Encuestas de la DGGE - Ministerio de Planificación del Desarrollo';
             // Format HTML to send with load file
             //            $mail->MsgHTML(file_get_contents('correomaquetado.html'), dirname(ruta_al_archivo));
             $mail->MsgHTML("<b>Estimad@ " . $nombre . ":</b>" . "<br><br>Se creo una cuenta de administrador para usted para el acceso al Sistema de Encuestas de la DGEE - Ministerio de Planificación" . "<br>La direccion para administrar el sistema es la siguiente:" . "<br><a href='" . PATH_DOMAIN . "'>" . PATH_DOMAIN . "</a>" . "<br><br>Puede usar las siguientes credenciales para el acceso:" . "<br>Usuario: " . $row->usu_login . "<br>Password: "******"<br><br>Se adjunta Manual de Usuario del Sistema de Encuestas" . "<br>Gracias !");
         }
         if ($_REQUEST['usu_rol_id'] == 2) {
             $mail->Subject = 'Cuenta de usuario para llenar la encuesta de ' . $nombreEncuesta . ". MINISTERIO DE PLANIFICACI&Oacute;N DEL DESARROLLO - DGGE ";
             // Format HTML to send with load file
             //            $mail->MsgHTML(file_get_contents('correomaquetado.html'), dirname(ruta_al_archivo));
             $mail->MsgHTML("<b>Estimad@ " . $nombre . ":</b>" . "<br><br>Como es de su conocimiento la Direcci&oacute;n General de Gobierno Electr&oacute;nico esta realizando el relevamiento de informaci&oacute;n respecto de Gobierno Electr&oacute;nico, Software libre y Est&aacute;ndares Abiertos en el marco de la Ley Nro. 164 de 8 de agosto de 2011 y del D.S. 1793 del 13 de noviembre de 2013." . "<br>Por ello retomamos el contacto y nos dirigimos a usted como delegado designado por su autoridad en el proceso anterior respecto del formulario de Gobierno Electr&oacute;nico, ahora solicitando su colaboraci&oacute;n y disponibilidad para el desarrollo del llenado del formulario electr&oacute;nico en la tem&aacute;tica de Software Libre y Est&aacute;ndares Abiertos. La herramienta electr&oacute;nica estar&aacute; en l&iacute;nea del 30 de julio al Viernes 22 de agosto de la presente gesti&oacute;n, de manera que solicitamos sea diligenciado en el marco de las fechas especificadas." . "<br><br>La direcci&oacute;n para el llenado del formulario electr&oacute;nico del Sistema de Encuestas de la DGEE - Ministerio de Planificaci&oacute;n es la siguiente:" . "<br><a href='" . PATH_DOMAIN . "'>" . PATH_DOMAIN . "</a>" . "<br><br>Puede usar las siguientes credenciales para el acceso:" . "<br>Usuario: " . $row->usu_login . "<br>Password: "******"<br><br>Se adjunta Manual de Usuario del Sistema de Encuestas." . "<br><br>Favor de contactarse con el Lic. Ariel Blanco a la siguiente direcci&oacute;n de correo electr&oacute;nico <a href='mailto:ariel.blanco@planificacion.gob.bo'>ariel.blanco@planificacion.gob.bo</a> o <a href='mailto:arsenio.castellon@planificacion.gob.bo'>arsenio.castellon@planificacion.gob.bo</a> para recibir las orientaciones sobre el llenado del formulario." . "<br><br>A la espera de su pronta respuesta y seguros de contar con su valiosa colaboraci&oacute;n, saludo a usted atentamente." . "<br>Direcci&oacute;n General de Gobierno Electr&oacute;nico");
         }
         if ($_REQUEST['usu_rol_id'] == 3) {
             $mail->Subject = 'Creacion de cuenta para analista del Sistema de Encuestas de la DGGE - Ministerio de Planificación del Desarrollo';
             // Format HTML to send with load file
             //            $mail->MsgHTML(file_get_contents('correomaquetado.html'), dirname(ruta_al_archivo));
             $mail->MsgHTML("<b>Estimad@ " . $nombre . ":</b>" . "<br><br>Se creo una cuenta de analista para usted para el acceso al Sistema de Encuestas de la DGEE - Ministerio de Planificación" . "<br>La direccion para realizar el análisis de los datos del sistema es la siguiente:" . "<br><a href='" . PATH_DOMAIN . "'>" . PATH_DOMAIN . "</a>" . "<br><br>Puede usar las siguientes credenciales para el acceso:" . "<br>Usuario: " . $_REQUEST['usu_login'] . "<br>Password: "******"<br>Gracias !");
         }
         // Alternate for block
         $mail->AltBody = 'This is a plain-text message body';
         // Send mail
         if (!$mail->Send()) {
             echo "Error: " . $mail->ErrorInfo;
             Header("Location: " . PATH_DOMAIN . "/usuario/index/");
         } else {
             echo "Enviado!";
             Header("Location: " . PATH_DOMAIN . "/usuario/index/");
         }
     } catch (phpmailerException $e) {
         // PhpMailer Error
         $result .= "<b class='red'>Error: PhpMailer.</b><br />" . $e->errorMessage() . "</b>";
         echo $result;
     } catch (Exception $e) {
         // Other Error
         $result .= "<b class='red'>Error: </b><br />" . $e->getMessage() . "</b>";
         echo $result;
     }
     Header("Location: " . PATH_DOMAIN . "/usuario/");
 }