kevin2458

global_validacion.inc.php

Oct 16th, 2017
326
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. <?php
  2. /* Archivo Creado por Henrry Josué */
  3. /**
  4. *   Basado en la documentación:
  5. *   https://github.com/chamilo/chamilo-lms/blob/master/main/inc/lib/api.lib.php
  6. *
  7. *
  8. *  EL ARCHIVO ACTUAL DEBE ESTAR UBICADO EN LA SIGUIENTE DIRECCION
  9. *  ...\main\inc\globalValidacion.php
  10. *
  11. */
  12.  
  13.  
  14. ####################################################################################################
  15. ////////////////////////////////////////////////////////////////////////////////////////////////////
  16. ####################################################################################################
  17. /*##################################################################################################
  18.  *
  19.  *
  20.  *  ────────── INICIO DE MODIFICACIÓN ──────────
  21.  *
  22.  *
  23.  *  Solicitud por: Ing. Moises Molina ─ Director Sistemas Online
  24.  *
  25.  *  Autor: Henrry Josue Lopez
  26.  *
  27.  *  Fecha de implementación: 01/02/2017
  28.  *
  29.  *
  30.  *  Modigficacion : 03/02/2017
  31.  * Linea
  32.  *
  33.  *
  34.  *
  35.  *  Requerimientos
  36.  *
  37.  *
  38.  *  ─  Verificar si un usuario tiene un examen activado.
  39.  *
  40.  *  ─  Si tiene un examen activo al iniciar sesion, que redireccione a la pagina de ejercicios.
  41.  *
  42.  *  ─  Evitar que los usuarios accedan a otros sitios de la plataforma durante el examen.
  43.  *
  44.  *
  45.  *
  46.  *  Requerimientos I Modificacion 09/02/2017
  47.  *
  48.  *  - Mostrar un mensaje de el motivo de la redirección al examen.
  49.  *
  50.  *  - Ejecutar la redirección solo si el alumno inicio el examen y se salio.
  51.  *
  52.  *  - Denegarle entrar a los demas menus de la plataforma durante tenga un examen iniciado.
  53.  *
  54.  *  - Si el alumno no termino su examen y se termino el periodo de publicacion entonces
  55.  *    al momento que el catedrático ingrese a dicho curso, validar los avances del alumno,
  56.  *    para que se refleje en la seccion de evaluacion del catedrático.
  57.  *
  58.  *  ################################################################################################
  59. **/
  60.  
  61. use \ChamiloSession as Session;
  62.  
  63. $language_file = array('exercice','tracking');
  64. //require_once '../inc/global_message_alert.inc.php';
  65.  
  66.  
  67. //Control de acceso de los usuarios
  68. //api_protect_course_script(true);
  69.  
  70. //Determina si el usuario de la sesión es un administrador
  71. //$is_allowedToEdit           = api_is_allowed_to_edit(null,true);
  72.  
  73. //Determina si el usuario es un profesor
  74. //$is_tutor                   = api_is_allowed_to_edit(true);
  75.  
  76. //Determina si el curso actual es del profesor
  77. //$is_tutor_course            = api_is_course_tutor();
  78.  
  79.  
  80.  
  81.  
  82. //Solo Estudiantes
  83. function verificar_examenes_iniciados(){
  84.     $is_allowedToEdit = api_is_allowed_to_edit(null,true);
  85.     if (!$is_allowedToEdit) {
  86.         //Obtener la codigo directory del curso actual, es el codigo de navegacion
  87.         $course_directory=api_get_course_path();
  88.  
  89.  
  90.         //Nombres de las tablas de la base de datos en donde realizaremos las consultas - Nombres predeterminados en la api de la plataforma
  91.         $TBL_EXERCICES       = Database:: get_course_table(TABLE_QUIZ_TEST);
  92.         $TBL_TRACK_EXERCICES = Database:: get_main_table(TABLE_STATISTIC_TRACK_E_EXERCISES);
  93.  
  94.  
  95.         //1- Obtiene la informacion del curso actual
  96.         //2- Obtiene el identificacion de usuario actual
  97.         $course_id          = api_get_course_int_id();
  98.  
  99.  
  100.         // Condiciones para la sesion
  101.         $session_id         = api_get_session_id();
  102.         $condition_session  = api_get_session_condition($session_id,true,true);
  103.  
  104.  
  105.         //Consultar cuantos examenes activos del curso ingresado hay.
  106.         $total_sql_exercise = "SELECT count(id) as count FROM $TBL_EXERCICES
  107.                            WHERE c_id = $course_id AND active = '1' $condition_session ";
  108.  
  109.         //Ejecucion de la consulta $total_sql_exercise
  110.         $result_total = Database::query($total_sql_exercise);
  111.         $quantity=Database::fetch_assoc($result_total);
  112.         $total_exercises = $quantity['count'];
  113.  
  114.  
  115.  
  116.         $sql = "SELECT id, title, type, description, results_disabled, session_id, start_time, end_time, feedback_type, max_attempt FROM $TBL_EXERCICES
  117.                        WHERE c_id = $course_id AND
  118.                              active='1'";
  119.  
  120.  
  121.         // Ejecucion de la consulta $sql
  122.         $result = Database::query($sql);
  123.         $exercises_count = Database::num_rows($result);
  124.  
  125.         //declaracion de un arreglo en el cual se llenaran los datos obtenidos
  126.         $exercise_list = array();
  127.  
  128.         //almacenando los datos obtenidos en el arreglo anteriormente declarado
  129.         while ($row = Database::fetch_array($result,'ASSOC')) {
  130.             $exercise_list[] = $row;
  131.         }
  132.  
  133.         if (!empty($exercise_list)) {
  134.             foreach ($exercise_list as $row) {
  135.                 //Declaramos el tiempo limite para realizar el examen en falso
  136.                 $time_limits = false;
  137.  
  138.                 //Evaluando que los tiempos obtenidos sean reales y formato correcto correctos
  139.                 if ($row['start_time'] != '0000-00-00 00:00:00' || $row['end_time'] != '0000-00-00 00:00:00') {
  140.                     $time_limits = true;
  141.                 }
  142.  
  143.                 //Si el limite de tiempo es verdadero procedemos a la siguiente condicion
  144.                 if ($time_limits) {
  145.  
  146.                     // Establecemos el tiempo de inicio del examen en cero
  147.                     $start_time = false;
  148.  
  149.                     //Evaluando si los tiempos obtenidos son distintos de cero, entonces obtenemos
  150.                     //el tiempo en formato UTC desde la api, igual para el tiempo que finaliza el examen
  151.                     if ($row['start_time'] != '0000-00-00 00:00:00') {
  152.                         $start_time = api_strtotime($row['start_time'],'UTC');
  153.                     }
  154.                    
  155.                     $end_time = false;
  156.                     if ($row['end_time'] != '0000-00-00 00:00:00') {
  157.                         $end_time   = api_strtotime($row['end_time'],'UTC');
  158.                     }
  159.  
  160.                     //obtenemos el tiempo acrual desde el servidor
  161.                     $now             = time();
  162.  
  163.                     //Establece el tiempo de examen activo en falso
  164.                     $is_actived_time = false;
  165.  
  166.                     //Si el tiempo de inicio del examen y el tiempo final son verdaderos y correctos
  167.                     if ($start_time && $end_time) {
  168.                         //Si el tiempo actual es mayor que el tiempo que se activo la prueba
  169.                         //Si el tiempo actual es menor que el tiempo en que se debe desactivar la prueba
  170.                         //Si tiempo actual es mayor que el tiempo de inicio y tambien que el final
  171.                         if ($now > $start_time && $end_time > $now ) {
  172.                             //SI las condiciones anteriores son verdaderas entonces existe un examen activo
  173.                             $is_actived_time = true;
  174.                             //Consulta para saber cuantos intentos tiene el usuario en una prueba
  175.                             /*En la version 11.2 de chamilo el exe_cours_id cambio a c_id*/
  176.                             $qry_intentos_xamenes = "SELECT * FROM $TBL_TRACK_EXERCICES
  177.                                                     WHERE   exe_exo_id      = '".$row['id']."' AND
  178.                                                             exe_user_id     = ".api_get_user_id()." AND
  179.                                                             c_id    = '".$course_id."' AND
  180.                                                             status          = 'incomplete' AND
  181.                                                             orig_lp_id      = '0' AND
  182.                                                             orig_lp_item_id = '0' AND
  183.                                                             session_id      =  '" . api_get_session_id() . "'
  184.                                                             ORDER BY exe_id DESC";
  185.                             //Ejecucion de la consulta $total_sql
  186.                            
  187.                             $qryres_intentos = Database::query($qry_intentos_xamenes);
  188.                             $num_intentos_incompletos    = Database :: num_rows($qryres_intentos);
  189.  
  190.                             //almacenando los datos obtenidos en el arreglo anteriormente declarado
  191.                             while ($row_iniciados = Database :: fetch_array($qryres_intentos,'ASSOC')) {
  192.                                 $result_examenes_list_iniciados[] = $row_iniciados;
  193.                             }
  194.                             if (!empty($result_examenes_list_iniciados)) {
  195.                                 foreach ($result_examenes_list_iniciados as $row_iniciados) {
  196.                                     $id_examem_iniciado=$row_iniciados['exe_exo_id'];
  197.                                 }
  198.                             }
  199.                            
  200.                             //Si hay uno o mas intentos incompletos entonces se ejecuta la sentencia.
  201.                             if ($num_intentos_incompletos>=1) {
  202.                                
  203.                                 //Verifica si el examen es parcial o pruebas, parcial(es sin retroalimentacion identificado por dos en la base de datos)
  204.                                 if ($row['feedback_type']==2) {
  205.                                     //Obtiene la direccion del seridor y la direccion raiz de la plataforma
  206.                                     //Se concatena una url con el directory del curso actual en el cual se ingresó
  207.                                     $urlExamen = $_SERVER["HTTP_HOST"] . $_SERVER["REQUEST_URI"];
  208.                                     $partes = explode("/", $urlExamen);
  209.  
  210.                                     //$new_url_quiz="http://".$partes[0]."/".$partes[1]."/main/exercice/overview.php?cidReq=".$course_directory."&id_session=0&gidReq=0&gradebook=0&origin=&exerciseId=1";
  211.                                     //$new_url_quiz="http://".$partes[0]."/".$partes[1]."/main/exercice/overview.php?cidReq=".$course_directory."&id_session=0&gidReq=0&gradebook=0&origin=&exerciseId=".$id_examem_iniciado;
  212.                                     $new_url_quiz="http://".$partes[0]."/".$partes[1]."/main/exercice/exercise.php?gradebook=0&cidReq=".$course_directory."&id_session=0&gidReq=0&gradebook=0&origin=";
  213.                                                     //http://192.168.1.117/uthelearning/main/exercice/exercise.php?gradebook=0&cidReq=INF25&id_session=0&gidReq=0&gradebook=0&origin=
  214.  
  215.                                
  216.  
  217.                                     $course_home_url="http://".$partes[0]."/".$partes[1]."/user_portal.php";
  218.                                     //echo '<script language="javascript">alert("'.$TBL_TRACK_EXERCICES."---".$course_id."--".$num_intentos_incompletos."--".$row['feedback_type'].'");</script>';
  219.  
  220.                                     $titulo_mensaje="Examen Alerta";
  221.                                     $contenido_mensaje="Usted ha iniciado un examen pero no lo ha terminado, favor finalicelo y evite problemas al momento de la evaluación";
  222.                                     ShowAlert($titulo_mensaje,$contenido_mensaje,$new_url_quiz,1);
  223.                                     //Script para verificar si hay un examen activo y redireccionar.
  224.                                     /*
  225.                                     $script= "
  226.                                         <script type='text/javascript'>
  227.                                                 //Ingresamos un mensaje a mostrar
  228.                                                 var mensaje = confirm('<h4 style=\"padding:15px;\">Hola que tal</h4>');
  229.                                                 //Detectamos si el usuario acepto el mensaje
  230.                                                 if (mensaje) {
  231.                                                     //Redireccionamos a la pagina del examen y salimos.
  232.                                                     window.location='$new_url_quiz';
  233.                                                     exit;
  234.                                                 }
  235.                                                 //Detectamos si el usuario denegó el mensaje
  236.                                                 else {
  237.                                                     //No se permite entrar se regresa al menu de cursos
  238.                                                     window.location='$course_home_url';
  239.                                                 }
  240.                                         </script>
  241.                                         ";*/
  242.  
  243.                                     //echo($script);
  244.  
  245.                                    /*
  246.                                     $titulo_mensaje="Alerta Examen";
  247.                                     $contenido_mensaje="Tienes un examen iniciado, ve a la seccion de Examenes a finalizarlo";
  248.  
  249.                                     showAlert($titulo_mensaje, $contenido_mensaje, $new_url_quiz);
  250.                                     echo "<script>alert('HOLA')</script>";
  251.                                     //return_pantalla_alerta();*/
  252.                                     return 1;
  253.                                 }
  254.                             }
  255.                         }
  256.                     }
  257.                 }
  258.             }
  259.         }
  260.     }
  261.    
  262. }
  263.  
  264.  
  265.  
  266.  
  267. function finalizar_examenes_iniciados(){
  268.     $is_allowedToEdit = api_is_allowed_to_edit(null,true);
  269.     if ($is_allowedToEdit) {
  270.         //Nombres de las tablas de la base de datos en donde realizaremos las consultas - Nombres predeterminados en la api de la plataforma
  271.         $TBL_EXERCICES       = Database:: get_course_table(TABLE_QUIZ_TEST);
  272.         $TBL_TRACK_EXERCICES = Database:: get_main_table(TABLE_STATISTIC_TRACK_E_EXERCISES);
  273.  
  274.  
  275.         //1- Obtiene la informacion del curso actual
  276.         //2- Obtiene el identificacion de usuario actual
  277.         $course_id          = api_get_course_int_id();
  278.  
  279.  
  280.         // Condiciones para la sesion
  281.         $session_id         = api_get_session_id();
  282.         $condition_session  = api_get_session_condition($session_id,true,true);
  283.  
  284.  
  285.         $sql = "SELECT id, title, type, description, results_disabled, session_id, start_time, end_time, feedback_type, max_attempt FROM $TBL_EXERCICES
  286.                        WHERE c_id = $course_id AND
  287.                              active='1'";
  288.  
  289.  
  290.         // Ejecucion de la consulta $sql
  291.         $result = Database::query($sql);
  292.         $exercises_count = Database::num_rows($result);
  293.  
  294.         //declaracion de un arreglo en el cual se llenaran los datos obtenidos
  295.         $exercise_list = array();
  296.  
  297.         //almacenando los datos obtenidos en el arreglo anteriormente declarado
  298.         while ($row = Database::fetch_array($result,'ASSOC')) {
  299.             $exercise_list[] = $row;
  300.         }
  301.  
  302.         if (!empty($exercise_list)) {
  303.             foreach ($exercise_list as $row) {
  304.                 //Declaramos el tiempo limite para realizar el examen en falso
  305.                 $time_limits = false;
  306.  
  307.                 //Evaluando que los tiempos obtenidos sean reales y formato correcto correctos
  308.                 if ($row['start_time'] != '0000-00-00 00:00:00' || $row['end_time'] != '0000-00-00 00:00:00') {
  309.                     $time_limits = true;
  310.                 }
  311.  
  312.                 //Si el limite de tiempo es verdadero procedemos a la siguiente condicion
  313.                 if ($time_limits) {
  314.  
  315.                     // Establecemos el tiempo de inicio del examen en cero
  316.                     $start_time = false;
  317.  
  318.                     //Evaluando si los tiempos obtenidos son distintos de cero, entonces obtenemos
  319.                     //el tiempo en formato UTC desde la api, igual para el tiempo que finaliza el examen
  320.                     if ($row['start_time'] != '0000-00-00 00:00:00') {
  321.                         $start_time = api_strtotime($row['start_time'],'UTC');
  322.                     }
  323.                     $end_time = false;
  324.                     if ($row['end_time'] != '0000-00-00 00:00:00') {
  325.                         $end_time   = api_strtotime($row['end_time'],'UTC');
  326.                     }
  327.  
  328.                     //obtenemos el tiempo acrual desde el servidor
  329.                     $now             = time();
  330.  
  331.                     //Establece el tiempo de examen activo en falso
  332.                     $is_actived_time = false;
  333.  
  334.                     if ($start_time && $end_time) {
  335.                         if ($now > $start_time &&  $now>$end_time) {
  336.                             //Comprobar si hay examenes incompletos, pero despues el periodo de publicacion
  337.                             $qry_examenes_incompletos = "SELECT count(exe_id) as count
  338.                                                         FROM $TBL_TRACK_EXERCICES
  339.                                                         WHERE status='incomplete'";
  340.                            
  341.                             $result_total_examenes_incompletos = Database::query($qry_examenes_incompletos);
  342.                             $total_examenes_incompletos  = 0;
  343.  
  344.  
  345.                             if (Database::num_rows($result_total_examenes_incompletos)) {
  346.                                 $result_total_examenes_incompletos = Database::fetch_array($result_total_examenes_incompletos);
  347.                                 $total_examenes_incompletos = $result_total_examenes_incompletos['count'];
  348.                             }
  349.  
  350.                             //Si hay examenes incompletos despues del periodo de publicacion entonces validarlos
  351.                             if ($total_examenes_incompletos>=1) {
  352.  
  353.                                 //Ejecucion de la consulta para verificar si hay un examen que ya vencio el tiempo.
  354.                                 $qry_examenes_cerrados="SELECT id, title, active, results_disabled, feedback_type
  355.                                                        FROM $TBL_EXERCICES
  356.                                                        WHERE start_time<DATE_ADD(NOW(),INTERVAL '6' HOUR) AND end_time<DATE_ADD(NOW(),INTERVAL '6' HOUR) AND c_id='".$course_id."' AND feedback_type='2'";
  357.  
  358.  
  359.                                 //EJECUCION DE LA CONSULTA $qry_examenes_cerrados
  360.                                 $result_examenes_cerrados=Database::query($qry_examenes_cerrados);
  361.                            
  362.                                 //Contar la cantidad de lineas par saber si la consulta esta llena o vacía
  363.                                 $exercises_count_row = Database :: num_rows($result_examenes_cerrados);
  364.                                 $result_examenes_list_cerrados = array();
  365.                            
  366.  
  367.                                 //almacenando los datos obtenidos en el arreglo anteriormente declarado
  368.                                 while ($row_cerrados = Database :: fetch_array($result_examenes_cerrados,'ASSOC')) {
  369.                                         $result_examenes_list_cerrados[] = $row_cerrados;
  370.                                 }
  371.  
  372.                                 //echo '<script language="javascript">alert("'.$total_examenes_incompletos." - ".$exercises_count_row.'");</script>';
  373.                            
  374.                                 if (!empty($result_examenes_list_cerrados)) {
  375.                                     foreach ($result_examenes_list_cerrados as $row_cerrados) {
  376.                                         //echo '<script language="javascript">alert("'.$TBL_TRACK_EXERCICES."Hola".$course_id."--".$course_code."--".$row_cerrados['id'].'");</script>';
  377.                                         //Actualizacion, para validar los examenes que quedaron abiertos al terminar el tiempo      
  378.                                         $update_status="UPDATE $TBL_TRACK_EXERCICES set status=''
  379.                                                        WHERE c_id='".$course_id."' and exe_exo_id='".$row_cerrados['id']."' and status='incomplete'";
  380.                                         if ($debug) { error_log('Updating track_e_exercises '.$update_status); }
  381.                                         Database::query($update_status);
  382.                                     }
  383.                                 }
  384.                             }
  385.                         }
  386.                     }
  387.                 }
  388.             }
  389.         }
  390.     }
  391. }
  392.  
  393.  
  394.  
  395. ####################################################################################################
  396. /*                                  FINAL DE LA MODIFICACION                                      */
  397. ////////////////////////////////////////////////////////////////////////////////////////////////////
  398. ####################################################################################################
  399. /*ESTA CLASE SERA LLAMADO DESDE LAS SGUIENTES MODULOS
  400. *
  401. *  .../main/course_description/index.php
  402. *  .../main/calendar/agenda.php        
  403. *  .../main/document/document.php
  404. *  .../main/lp/lp_controller.php
  405. *  .../main/link/link.php
  406. *  .../main/announcements/announcements.php
  407. *  .../main/forum/index.php
  408. *  .../main/dropbox/dropbox_init.inc.php
  409. *  .../main/user/user.php
  410. *  .../main/group/group.php
  411. *  .../main/chat/chat.php
  412. *  .../main/work/work.php
  413. *  .../main/survey/survey_list.php
  414. *  .../main/wiki/index.php
  415. *  .../main/gradebook/index.php
  416. *  .../main/glossary/index.php
  417. *  .../main/notebook/index.php
  418. *  .../
  419. *  .../
  420. *
  421. *###################################################################################################
  422. *  En cada uno de los archivos antes mencionados se incluira de la siguiente manera:
  423. *
  424. *  require_once '../inc/globalValidacion.inc.php';
  425. *
  426. *  preferiblemente que se ubique despues de la linea -- global.inc.php  --
  427. *###################################################################################################
  428. *
  429. *
  430. *  En el siguiente archivo se debe inlcuir agregando una pleca al pricipio como se muestra adelante
  431. *  .../main/course_home/course_home.php
  432. *  
  433. *      
  434. *  require_once dirname(__FILE__).'/../inc/globalValidacion.inc.php';
  435. *  
  436. */
  437. ####################################################################################################
  438. ####################################################################################################
  439. //  EL ARCHIVO ACTUAL DEBE ESTAR UBICADO SIEMPRE EN LA SIGUIENTE DIRECCION
  440. //  ...\main\inc\globalValidacion.php
  441. ####################################################################################################
  442.  
  443.  
  444.  
  445.  
  446. function ShowAlert($titulo, $contenido, $url, $tipo)
  447. {
  448.  
  449.     echo '<script>
  450.  
  451.    //var html_css_pc="<style>.banner{position:absolute;width:20%;left:40%;top:24%;background:#F8F9EB;border-radius:5px;}.centrar{height:100%;top:0;position:absolute;text-align:center;width:100%;background:rgba(27, 78, 9,0.5);z-index:100;}</style>";
  452.  
  453.    var html_css_pc="<style>.banner{position:absolute;width:20%;left:40%;top:24%;background:#363f4a;border-radius:5px;}.centrar{height:100%;top:0;position:absolute;text-align:center;width:100%;background:rgba(1, 1, 1, 0.7);z-index:100;}</style>";
  454.  
  455.    //var html_css_movil="<style>.banner{position:absolute;width:50%;left:25%;top:24%;background:#F8F9EB;border-radius:5px;}.centrar{height:100%;top:0;position:absolute;text-align:center;width:100%;background:rgba(27, 78, 9,0.5);z-index:100;}</style>";
  456.  
  457.    var html_css_movil="<style>.banner{position:absolute;width:50%;left:25%;top:24%;background:#363f4a;border-radius:5px;}.centrar{height:100%;top:0;position:absolute;text-align:center;width:100%;background:rgba(1, 1, 1, 0.7);z-index:100;}</style>";
  458.  
  459.  
  460.    if(screen.width>768){
  461.        document.write(html_css_pc);
  462.    }else{
  463.        document.write(html_css_movil);
  464.    }</script>';
  465.     //echo ($css_banner);
  466.  
  467.     if ($tipo==1) {
  468.         $html_alert_2='
  469.            <nav class="centrar" id="banner" style="display:none;">
  470.               <div class="banner">
  471.                  <h3 style="padding-bottom: 5px;margin-bottom: 30px;border-style: solid;border-width: 0px 0px 2px;border-color: #ffffff;color: #ffffff">'.$titulo.'</h3>
  472.                  <img width="65%" src="https://elearning.uth.hn/v2/web/css/themes/UTH/images/header-logo.png">
  473.                  <br>
  474.                  <h4 style="padding:15px; color:#ffffff;">'.$contenido.'</h4>
  475.                  <div class="col-sm-8" style="width:100%;padding: 0;"><button class="btn btn-primary" name="Accept" id="btn_aceptar_dialogo" type="submit" style="width:100%;background:#00692e;border-color:transparent;font-weight:bold;font-size:medium;border-radius:0px 0px 5px 5px;" onclick=""><em class="fa fa-check"></em> Aceptar</button></div>
  476.               </div>
  477.  
  478.            <script type="text/javascript">
  479.                var url_examen="'.$url.'";
  480.                $("#banner").fadeIn(1000);
  481.                $(document).ready(function(){
  482.                    $("#btn_aceptar_dialogo").click(function(){
  483.                        if (url_examen != "") {
  484.                            window.location=url_examen;
  485.                            exit;
  486.                        }
  487.                        $("#banner").show(300);
  488.                     });
  489.                    $("#btn_aceptar_dialogo").click(function(){
  490.                        $("#banner").fadeOut(1000);
  491.                        if (url_examen != "") {
  492.                            window.location=url_examen;
  493.                            exit;
  494.                        }                
  495.                     });
  496.                });
  497.            </script>';
  498.     }else{
  499.  
  500.         $html_alert_2='
  501.            <nav class="centrar" id="banner" style="display:none;">
  502.               <div class="banner">
  503.                  <h3 style="padding-bottom: 5px;margin-bottom: 30px;border-style: solid;border-width: 0px 0px 2px;border-color: #ffffff;color: #ffffff">'.$titulo.'</h3>
  504.                  <img width="65%" src="https://elearning.uth.hn/v2/web/css/themes/UTH/images/header-logo.png">
  505.                  <br>
  506.                  <h4 style="padding:15px; color:#ffffff;">'.$contenido.'</h4>
  507.                  <div class="col-sm-8" style="width:100%;padding: 0;"><button class="btn btn-primary" name="Cancel" id="btn_aceptar_dialogo" type="submit" style="width:100%;background:#00692e;border-color:transparent;font-weight:bold;font-size:medium;border-radius:0px 0px 5px 5px;" onclick=""><em class="fa fa-cancel"></em> Cancelar</button><button class="btn btn-primary" name="Accept" id="btn_aceptar_dialogo" type="submit" style="width:100%;background:#00692e;border-color:transparent;font-weight:bold;font-size:medium;border-radius:0px 0px 5px 5px;" onclick=""><em class="fa fa-check"></em> Aceptar</button></div>
  508.               </div>
  509.  
  510.            <script type="text/javascript">
  511.                var url_examen="'.$url.'";
  512.                $("#banner").fadeIn(1000);
  513.                $(document).ready(function(){
  514.                    $("#btn_aceptar_dialogo").click(function(){
  515.                        if (url_examen != "") {
  516.                            window.location=url_examen;
  517.                            exit;
  518.                        }
  519.                        $("#banner").show(300);
  520.                     });
  521.                    $("#btn_aceptar_dialogo").click(function(){
  522.                        $("#banner").fadeOut(1000);
  523.                        if (url_examen != "") {
  524.                            window.location=url_examen;
  525.                            exit;
  526.                        }                
  527.                     });
  528.                });
  529.            </script>';
  530.     }
  531.  
  532.     echo $html_alert_2;
  533. }
RAW Paste Data