insignias.php 7.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137
  1. <?php
  2. session_start();
  3. require_once 'include/bd_pdo.php';
  4. require_once 'classes/EventoInsignia.php';
  5. require_once 'classes/Fechas.php';
  6. require_once 'classes/MainMenu.php';
  7. require_once './classes/SGI.php';
  8. require_once 'classes/Template.php';
  9. require_once 'classes/ValidaSesion.php';
  10. //CONSTANTES Y VARIABLES GLOBALES
  11. $menu = 43;
  12. $submenu = 432;
  13. $titulo = '';
  14. if (!isset($_SESSION['usuario_id']))
  15. ValidaSesion::salirPagina();
  16. else {
  17. if(isset($_SESSION['usuario_id']))
  18. $objSesion = new ValidaSesion($pdo, $submenu);
  19. else
  20. ValidaSesion::salirPagina();
  21. }
  22. if ($objSesion->tieneAcceso()) {
  23. $listInsignias = array();
  24. $insignias = SGI::getInsignias($pdo, $_SESSION['usuario_id']);
  25. $cont = -1;
  26. $tipoInsignia = '';
  27. foreach($insignias as $insignia){
  28. $tipoFecha = '';
  29. if($insignia['InsigniaTipo_general']) {
  30. $evento = EventoInsignia::getDatosEventos($pdo, null, null, $insignia['Insignia_id']);
  31. if (count($evento) > 0)
  32. $fechas = EventoInsignia::getFechasRomanizadas($evento[0]['fechas'], $evento[0]['periodicidad'], null, false, true);
  33. } else {
  34. if (is_null($insignia['InsigniaPersonal_fecha_final']))
  35. $fechas = EventoInsignia::getFechasRomanizadas(array(array('fecha' => $insignia['InsigniaPersonal_fecha_inicial']), array('fecha' => null)), 'UNICO', null, false, true);
  36. else
  37. $fechas = EventoInsignia::getFechasRomanizadas(array(array('fecha' => $insignia['InsigniaPersonal_fecha_inicial']), array('fecha' => $insignia['InsigniaPersonal_fecha_final'])), 'RANGO', null, false, true);
  38. }
  39. if ($tipoInsignia != $insignia['InsigniaTipo_desc']) {
  40. $cont++;
  41. $tipoInsignia = $insignia['InsigniaTipo_desc'];
  42. $listInsignias[$cont] = array('tipo' => $insignia['InsigniaTipo_desc'], 'color' => $insignia['InsigniaTipo_color'], 'insignias' => array(array('titulo'=>$insignia['Insignia_titulo'], 'desc' => $insignia['Insignia_desc'], 'fecha' => $fechas['texto'])));
  43. } else
  44. array_push ($listInsignias[$cont]['insignias'], array('titulo'=>$insignia['Insignia_titulo'], 'desc' => $insignia['Insignia_desc'], 'fecha' => $fechas['texto']));
  45. }
  46. }
  47. if (isset($objSesion)) {
  48. $titulo = $objSesion->nombrePagina();?>
  49. <!DOCTYPE html>
  50. <html>
  51. <head>
  52. <title>Alumnos - <?php echo $titulo; ?></title>
  53. <?php if ($objSesion->tieneAcceso())
  54. Template::getCSS(array('secciones/insignias.css'));
  55. else
  56. Template::getCSS(); ?>
  57. </head>
  58. <body>
  59. <?php $menuObj = new MainMenu($_SESSION["RolUsuario_id"], $menu, $submenu, $pdo);
  60. $menuObj->printMenu($titulo);
  61. if ($objSesion->tieneAcceso()) {
  62. if (count($listInsignias) > 0) { ?>
  63. <main class="container-fluid content marco">
  64. <div class="accordion" id="accordionInsignias">
  65. <?php for ($i=0; $i < count($listInsignias); $i++) {
  66. if ($i == 0) {
  67. $collapsed = '';
  68. $show = 'show';
  69. } else {
  70. $collapsed = 'collapsed';
  71. $show = '';
  72. }
  73. $colorBG = getRGBA($listInsignias[$i]['color'],0.25);
  74. $colorTxt = getRGBA($listInsignias[$i]['color']); ?>
  75. <div id="heading_<?php echo $i; ?>" class="encabezado">
  76. <a class="d-flex justify-content-between align-items-stretch <?php echo $collapsed; ?> accordion-toggle display-6" data-toggle="collapse" href="#collapse_<?php echo $i; ?>">
  77. <span style="background: <?php echo $colorBG; ?>;"></span>
  78. <div class="flex-grow-1" style="background:<?php echo $colorBG; ?>; color: <?php echo $colorTxt; ?>;"><?php echo $listInsignias[$i]['tipo']?></div>
  79. <span class="d-flex flex-row justify-content-center align-items-center" style="background: <?php echo $colorBG; ?>;">
  80. <i class="fa-solid fa-caret-right" style="color: <?php echo $colorTxt; ?>;"></i>
  81. </span>
  82. </a>
  83. </div>
  84. <div id="collapse_<?= $i ?>" class="collapse <?php echo $show; ?> contenido" aria-labelledby="heading_<?php echo $i; ?>" data-parent="#accordionInsignias">
  85. <?php foreach ($listInsignias[$i]['insignias'] as $insignia) { ?>
  86. <div class="d-flex flex-column justify-content-start align-items-start pl-3">
  87. <span class="ing-cuadrado" style="color: <?php echo $listInsignias[$i]['color']; ?>;"></span>
  88. <div class="indivisa-text-bold"><?php echo $insignia['titulo']; ?></div>
  89. <div><?php echo $insignia['desc']; ?></div>
  90. <div class="indivisa-text-italic"><?php echo $insignia['fecha']; ?></div>
  91. </div>
  92. <?php } ?>
  93. </div>
  94. <?php } ?>
  95. </div>
  96. </main>
  97. <?php } else { ?>
  98. <main class="container-fluid content marco d-flex justify-content-center align-items-center">
  99. <div class="msgBox d-flex flex-row justify-content-center align-items-center">
  100. <img src="img/triangulos.svg" class="imgBoxIzq" />
  101. <img src="img/triangulos.svg" class="imgBoxDer" />
  102. <hr class="hrArriba">
  103. <hr class="hrAbajo">
  104. <div class="d-flex flex-column justify-content-center align-items-center display-5 text-center p-4">
  105. <div>Aún no tienes <span class="text-azul1 mx-1">ninguna</span>insignia registrada</div>
  106. </div>
  107. </div>
  108. </main>
  109. <?php }
  110. } else { ?>
  111. <main class="container-fluid content marco">
  112. <div class="row justify-content-center" style="min-height: 600px;">
  113. <img id="errorImg" class="col-sm-3" src="img/nico_error.svg" />
  114. <div class="col-sm-9 display-4 d-flex flex-row justify-content-center align-items-center text-center">No tienes acceso a ésta página</div>
  115. </div>
  116. </main>
  117. <?php } ?>
  118. <div style="isolation: isolate;">
  119. <?php Template::footer(); ?>
  120. </div>
  121. <?php Template::getJS(array()); ?>
  122. </body>
  123. </html>
  124. <?php } else
  125. ValidaSesion::salirPagina();
  126. function getRGBA($hex, $opacity = 1){
  127. $hex = str_replace('#', '', $hex);
  128. $length = strlen($hex);
  129. $rgb['r'] = hexdec($length == 6 ? substr($hex, 0, 2) : ($length == 3 ? str_repeat(substr($hex, 0, 1), 2) : 0));
  130. $rgb['g'] = hexdec($length == 6 ? substr($hex, 2, 2) : ($length == 3 ? str_repeat(substr($hex, 1, 1), 2) : 0));
  131. $rgb['b'] = hexdec($length == 6 ? substr($hex, 4, 2) : ($length == 3 ? str_repeat(substr($hex, 2, 1), 2) : 0));
  132. $rgb['a'] = $opacity;
  133. return 'rgba(' . $rgb['r'] . ',' . $rgb['g'] . ',' . $rgb['b'] . ',' . $rgb['a'] . ')';
  134. }