123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759 |
- <?php
- /*
- * Copyright (C) 2021 Ángel Benítez Hernández, Echedey López Romero
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
- function GenerarValoresCampo(&$Datos, $NombreCampo) {
- $ValoresCampo = [];
- foreach ($Datos as $Clave => $Valor) {
- array_push($ValoresCampo, $Valor[$NombreCampo]);
- }
- return $ValoresCampo;
- }
- function DatosCanarias($Fichero, &$ValoresDependientes, $NombreCampo, $NoId = false, $NuevaId = '') {
- $Datos = json_decode(file_get_contents($Fichero), true);
- $DatosCanarias = [];
- $ValoresCampo = GenerarValoresCampo($ValoresDependientes, $NombreCampo);
- foreach ($Datos as $Clave => $Valor) {
- if (in_array($Valor[$NombreCampo], $ValoresCampo, true)) {
- if ($NoId === true && $NuevaId !== '') {
- $Valor[$NuevaId] = "$Clave";
- array_push($DatosCanarias, $Valor);
- } else {
- array_push($DatosCanarias, $Valor);
- }
- }
- }
- return $DatosCanarias;
- }
- function CrearSelect(&$Datos, $Nombre, $CampoValor, $CampoNombre, $Seleccionado, $Desactivado = false) {
- $HTML = '';
- if (!$Desactivado) {
- $HTML .= '<select name="' . $Nombre . '" class="form-control"
- id="' . $Nombre . '" required="">' . PHP_EOL;
- } else {
- $HTML .= '<select name="' . $Nombre . '" class="form-control"
- id="' . $Nombre . '" disabled required="">' . PHP_EOL;
- }
- $HTML .= '<option value="">-- Seleccione --</option>' . PHP_EOL;
- foreach ($Datos as $Clave => $Valor) {
- if ($Valor[$CampoValor] === $Seleccionado) {
- $HTML .= '<option value="' . $Valor[$CampoValor] . '" selected="">'
- . $Valor[$CampoNombre] . '</option>' . PHP_EOL;
- } else {
- $HTML .= '<option value="' . $Valor[$CampoValor] . '">'
- . $Valor[$CampoNombre] . '</option>' . PHP_EOL;
- }
- }
- $HTML .= '</select>' . PHP_EOL;
- return $HTML;
- }
- function GenerarValoresPosibles(&$Datos, $Contenido, $NombreCampo) {
- $ValoresPosibles = [];
- foreach ($Datos as $Clave => $Valor) {
- if ($Valor[$NombreCampo] === $Contenido) {
- array_push($ValoresPosibles, $Valor);
- }
- }
- return $ValoresPosibles;
- }
- function ComprobarValorArray(&$Datos, $Contenido, $NombreCampo) {
- $Existe = false;
- foreach ($Datos as $Clave => $Valor) {
- if ($Valor[$NombreCampo] === $Contenido) {
- $Existe = true;
- }
- }
- return $Existe;
- }
- /*
- function DevolverNombreArray(&$Datos, $Contenido, $NombreCampo, $NombreCampo2) {
- $Nombre = '';
- foreach ($Datos as $Clave => $Valor) {
- if ($Valor[$NombreCampo] === $Contenido) {
- $Nombre = $Valor[$NombreCampo2];
- }
- }
- return $Nombre;
- }
- */
- function FiltrarValor($Dato) { // Filtrado basico
- $Dato = trim($Dato);
- $Dato = stripslashes($Dato);
- $Dato = htmlspecialchars($Dato);
- return $Dato;
- }
- function ValidarRepresentacion($Dato, &$Respuestas, &$Errores) {
- if ($Dato === 'estudiante' || $Dato === 'representante') {
- $Respuestas['representacion'] = $Dato;
- } else {
- $Mensaje = 'Se debe especificar si quien rellena el formulario es '
- . 'estudiante o representante.';
- array_push($Errores, $Mensaje);
- }
- }
- function ValidarDocumento($Dato, &$ValoresPosibles, &$Respuestas, &$Errores) {
- if (ComprobarValorArray($ValoresPosibles, $Dato, 'id')) {
- $Respuestas['documento'] = $Dato;
- } else {
- $Mensaje = 'Se debe especificar si el documento es NIF o NIE.';
- array_push($Errores, $Mensaje);
- }
- }
- function ValidarIdentificacion($Dato, $DatoDependiente, &$Respuestas, &$Errores) {
- // Ej: 12345678Z / Z1234567X
- if ($DatoDependiente === 'nif') { // Ej: 12345678Z
- if (preg_match('/^[0-9]{8}[A-Za-z]{1}$/', $Dato)) {
- $Respuestas['identificacion'] = $Dato;
- } else {
- $Mensaje = 'El número del documento debe tener un número de 8 '
- . 'dígitos y una letra.';
- array_push($Errores, $Mensaje);
- }
- } else if ($DatoDependiente === 'nie') { // Ej: Z1234567X
- if (preg_match('/^[A-Za-z]{1}[0-9]{7}[A-Za-z]{1}$/', $Dato)) {
- $Respuestas['identificacion'] = $Dato;
- } else {
- $Mensaje = 'El número del documento debe tener 1 letra, un número '
- . 'de 8 dígitos y otra letra.';
- array_push($Errores, $Mensaje);
- }
- }
- }
- function ValidarNombre($Dato, &$Respuestas, &$Errores) { // a-zA-Zá-ÚÁ-Ú
- if (preg_match('/^[a-zA-ZñÑáéíóúÁÉÍÓÚü\s]{2,50}$/', $Dato)) {
- $Respuestas['nombre'] = $Dato;
- } else {
- $Mensaje = 'El nombre no debe tener ningun número y debe tener entre 2 '
- . 'y 50 caracteres.';
- array_push($Errores, $Mensaje);
- }
- }
- function ValidarPrimerApellido($Dato, &$Respuestas, &$Errores) {
- if (preg_match('/^[a-zA-ZñÑáéíóúÁÉÍÓÚü\s]{2,50}$/', $Dato)) {
- $Respuestas['primer_apellido'] = $Dato;
- } else {
- $Mensaje = 'El primer apellido no debe tener ningun número y debe '
- . 'tener entre 2 y 50 caracteres.';
- array_push($Errores, $Mensaje);
- }
- }
- function ValidarSegundoApellido($Dato, &$Respuestas, &$Errores) {
- if (preg_match('/^[a-zA-ZñÑáéíóúÁÉÍÓÚü\s]{2,50}$/', $Dato)) {
- $Respuestas['segundo_apellido'] = $Dato;
- } else {
- $Mensaje = 'El segundo apellido no debe tener ningun número y debe '
- . 'tener entre 2 y 50 caracteres.';
- array_push($Errores, $Mensaje);
- }
- }
- function ValidarCalidadDe($Dato, &$ValoresPosibles, &$Respuestas, &$Errores) {
- if (ComprobarValorArray($ValoresPosibles, $Dato, 'id')) {
- $Respuestas['calidad_de'] = $Dato;
- } else {
- $Mensaje = 'Se debe especificar si los números de teléfono son de '
- . 'madre, padre, tutor legal o estudiante mayor de edad.';
- array_push($Errores, $Mensaje);
- }
- }
- function ValidarTelefonoFijo($Dato, &$Respuestas, &$Errores) {
- if (preg_match('/^[0-9]{9}$/', $Dato)) {
- $Respuestas['telefono_fijo'] = $Dato;
- } else {
- $Mensaje = 'El telefono fijo no debe tener ninguna letra y ser un '
- . 'número de 9 dígitos.';
- array_push($Errores, $Mensaje);
- }
- }
- function ValidarTelefonoMovil($Dato, &$Respuestas, &$Errores) {
- if (preg_match("/^[0-9]{9}$/", $Dato)) {
- $Respuestas['telefono_movil'] = $Dato;
- } else {
- $Mensaje = 'El telefono movil no debe tener ninguna letra y ser un '
- . 'número de 9 dígitos.';
- array_push($Errores, $Mensaje);
- }
- }
- function ValidarEmail($Dato, &$Respuestas, &$Errores) {
- $RegEx = '/^(([^<>()\[\]\\.,;:\s@”]+(\.[^<>()\[\]\\.,;:\s@”]+)*)|(“.+”))@((\[[0–9]{1,3}\.[0–9]{1,3}\.[0–9]{1,3}\.[0–9]{1,3}])|(([a-zA-Z\-0–9]+\.)+[a-zA-Z]{2,}))$/';
- if (preg_match($RegEx, $Dato)) {
- $Respuestas['email'] = $Dato;
- } else {
- $Mensaje = 'Se debe de especificar un formato de correo electrónico '
- . 'correcto. Ejemplo: nombre@ejemplo.com';
- array_push($Errores, $Mensaje);
- }
- }
- function ValidarTipoVia($Dato, &$ValoresPosibles, &$Respuestas, &$Errores) {
- if (ComprobarValorArray($ValoresPosibles, $Dato, 'id')) {
- $Respuestas['tipo_via'] = $Dato;
- } else {
- $Mensaje = 'Se debe especificar si el tipo de vía es una avenida, '
- . 'calle, carretera, urbanizacion, paseo, plaza, ronda, travesia u '
- . 'otros.';
- array_push($Errores, $Mensaje);
- }
- }
- function ValidarNombreVia($Dato, $DatoDependiente, &$Respuestas, &$Errores) {
- if ($DatoDependiente !== '') {
- if (preg_match('/^[a-zA-ZñÑáéíóúÁÉÍÓÚü\s]{2,50}$/', $Dato)) {
- $Respuestas['nombre_via'] = $Dato;
- } else {
- $Mensaje = 'El nombre de la via no debe tener ningun número y debe '
- . 'tener entre 2 y 50 carácteres.';
- array_push($Errores, $Mensaje);
- }
- }
- }
- function ValidarNumero($Dato, &$Respuestas, &$Errores) {
- if (preg_match('/^[0-9]{1,3}$/', $Dato)) {
- $Respuestas['numero'] = $Dato;
- } else {
- $Mensaje = 'El numero no debe tener ninguna letra y debe tener entre 1 '
- . 'y 3 dígitos.';
- array_push($Errores, $Mensaje);
- }
- }
- function ValidarBloque($Dato, &$Respuestas, &$Errores) {
- if (preg_match('/^[0-9]{1,2}$/', $Dato)) {
- $Respuestas['bloque'] = $Dato;
- } else {
- $Mensaje = 'El bloque no debe tener ninguna letra y debe tener entre 1 '
- . 'y 2 números.';
- array_push($Errores, $Mensaje);
- }
- }
- function ValidarEscalera($Dato, &$Respuestas, &$Errores) {
- if (preg_match('/^[0-9]{1}[a-zA-Z0-9]{1,3}$/', $Dato)) {
- $Respuestas['escalera'] = $Dato;
- } else {
- $Mensaje = 'La escalera debe estar formado por un número numérico y '
- . 'entre 1 y 3 carácteres alfanuméricos.';
- array_push($Errores, $Mensaje);
- }
- }
- function ValidarPiso($Dato, &$Respuestas, &$Errores) {
- if (preg_match('/^[0-9]{1,3}$/', $Dato)) {
- $Respuestas['piso'] = $Dato;
- } else {
- $Mensaje = 'El piso no debe tener ninguna letra y debe tener entre 1 y '
- . '2 números.';
- array_push($Errores, $Mensaje);
- }
- }
- function ValidarPortal($Dato, &$Respuestas, &$Errores) {
- if (preg_match('/^[0-9][a-zA-Z0-9]{1,3}$/', $Dato)) {
- $Respuestas['portal'] = $Dato;
- } else {
- $Mensaje = 'El portal debe estar formado por un número numérico y '
- . 'entre 1 y 3 carácteres alfanumericos.';
- array_push($Errores, $Mensaje);
- }
- }
- function ValidarLetra($Dato, &$Respuestas, &$Errores) {
- if (preg_match('/^[a-zA-Z]{1,2}$/', $Dato)) {
- $Respuestas['letra'] = $Dato;
- } else {
- $Mensaje = 'La letra no debe tener ningun número y debe tener entre 1 '
- . 'y 2 carácteres.';
- array_push($Errores, $Mensaje);
- }
- }
- function ValidarPuerta($Dato, &$Respuestas, &$Errores) {
- if (preg_match('/^[0-9]{1,2}[a-zA-Z0-9]{1,2}$/', $Dato)) {
- $Respuestas['puerta'] = $Dato;
- } else {
- $Mensaje = 'La puerta debe estar formada por un número de 1 o 2 '
- . 'dígitos y 1 o 2 letras.';
- array_push($Errores, $Mensaje);
- }
- }
- function ValidarComplemento($Dato, &$Respuestas, &$Errores) {
- if (preg_match('/^[a-zA-ZñÑáéíóúÁÉÍÓÚü\s]{2,50}$/', $Dato)) {
- $Respuestas['complemento'] = $Dato;
- } else {
- $Mensaje = 'El complemento no debe tener ningún número y debe tener '
- . 'entre 2 y 50 carácteres.';
- array_push($Errores, $Mensaje);
- }
- }
- function ValidarFecha($Dato, &$Respuestas, &$Errores) { // https://www.php.net/manual/en/function.checkdate.php
- if (preg_match('/^[0-9]{4}[-][0-9]{2}[-][0-9]{2}$/', $Dato)) {
- $Fecha = explode('-', $Dato, 3);
- if (checkdate($Fecha[1], $Fecha[2], $Fecha[0])) {
- $Respuestas['fecha'] = $Dato;
- } else {
- $Mensaje = 'La fecha debe ser válida.';
- array_push($Errores, $Mensaje);
- }
- } else {
- $Mensaje = 'El formato de la fecha debe ser DD/MM/AAAA '
- . '(día, mes y año).';
- array_push($Errores, $Mensaje);
- }
- }
- function ValidarPais($Dato, &$ValoresPosibles, &$Respuestas, &$Errores) {
- if (ComprobarValorArray($ValoresPosibles, $Dato, 'id')) {
- $Respuestas['pais'] = $Dato;
- } else {
- $Mensaje = 'Se debe especificar el país.';
- array_push($Errores, $Mensaje);
- }
- }
- function ValidarProvincia($Dato, $DatoDependiente, &$ValoresDependientes, &$ValoresPosibles, &$Respuestas, &$Errores) {
- if ($DatoDependiente === $ValoresDependientes[0]['id']) {
- if (ComprobarValorArray($ValoresPosibles, $Dato, 'provincia_id')) {
- $Respuestas['provincia'] = $Dato;
- } else {
- $Mensaje = 'Se debe seleccionar una provincia correspondiente para '
- . 'el país seleccionado.';
- array_push($Errores, $Mensaje);
- }
- }
- }
- function ValidarIsla($Dato, &$ValoresPosibles, &$Respuestas, &$Errores) {
- if (count($ValoresPosibles) !== 0) {
- if (ComprobarValorArray($ValoresPosibles, $Dato, 'isla_id')) {
- $Respuestas['isla'] = $Dato;
- } else {
- $Mensaje = 'Se debe seleccionar una isla correspondiente para la '
- . 'provincia seleccionada.';
- array_push($Errores, $Mensaje);
- }
- }
- }
- function ValidarMunicipio($Dato, &$ValoresPosibles, &$Respuestas, &$Errores) {
- if (count($ValoresPosibles) !== 0) {
- if (ComprobarValorArray($ValoresPosibles, $Dato, 'municipio_id')) {
- $Respuestas['municipio'] = $Dato;
- } else {
- $Mensaje = 'Se debe seleccionar un municipio correspondiente para '
- . 'la isla seleccionada.';
- array_push($Errores, $Mensaje);
- }
- }
- }
- function ValidarLocalidad($Dato, &$ValoresPosibles, &$Respuestas, &$Errores) {
- if (count($ValoresPosibles) !== 0) {
- if (ComprobarValorArray($ValoresPosibles, $Dato, 'localidad_id')) {
- $Respuestas['localidad'] = $Dato;
- } else {
- $Mensaje = 'Se debe seleccionar una localidad correspondiente para '
- . 'el municipio seleccionado.';
- array_push($Errores, $Mensaje);
- }
- }
- }
- function ValidarCP($Dato, $DatoDependiente, &$ValoresPosibles, &$Respuestas, &$Errores) {
- if ($DatoDependiente !== '' && count($ValoresPosibles) !== 0) {
- if (ComprobarValorArray($ValoresPosibles, $Dato, 'cp_id')) {
- $Respuestas['cp'] = $Dato;
- } else {
- $Mensaje = 'Se debe seleccionar el código postal correspondiente '
- . 'para el municipio seleccionado.';
- array_push($Errores, $Mensaje);
- }
- }
- }
- function ValidarHorfandad($Dato, &$Respuestas) {
- if ($Dato === 'si') {
- $Respuestas['horfandad'] = $Dato;
- }
- }
- function ValidarTutelaGuarda($Dato, &$Respuestas) {
- if ($Dato === 'si') {
- $Respuestas['tutela_guarda'] = $Dato;
- }
- }
- function ValidarObservaciones($Dato, &$Respuestas, &$Errores) {
- if (preg_match('/^[0-9a-zA-ZñÑáéíóúÁÉÍÓÚü,.*-_«»\s]{0,2000}$/', $Dato)) {
- $Respuestas['observaciones'] = $Dato;
- } else {
- $Mensaje = 'Se deben usar caracteres alfanuméricos y los caracteres '
- . 'especiales <strong>, . * - _ « »</strong> para describir '
- . 'las observaciones.';
- array_push($Errores, $Mensaje);
- }
- }
- function ValidarItinerario($Dato, &$Respuestas, &$Errores) {
- if ($Dato === 'salud' || $Dato === 'tecnologico') {
- $Respuestas['itinerario'] = $Dato;
- } else {
- $Mensaje = 'Se debe seleccionar el itinerario de Ciencias de la Salud '
- . 'o el Cientifico-Tecnológico.';
- array_push($Errores, $Mensaje);
- }
- }
- function ValidarLenguaLiteratura1($Dato, &$Respuestas, &$Errores) {
- if ($Dato === 'si') {
- $Respuestas['lengua_literatura_1'] = $Dato;
- } else {
- $Mensaje = 'Se debe seleccionar la asignatura de Lengua Castellana y '
- . 'Literatura I en el Bloque 1.';
- array_push($Errores, $Mensaje);
- }
- }
- function ValidarFilosofia($Dato, &$Respuestas, &$Errores) {
- if ($Dato === 'si') {
- $Respuestas['filosofia'] = $Dato;
- } else {
- $Mensaje = 'Se debe seleccionar la asignatura de Filosofía en el '
- . 'Bloque 1.';
- array_push($Errores, $Mensaje);
- }
- }
- function ValidarEdFisica($Dato, &$Respuestas, &$Errores) {
- if ($Dato === 'si') {
- $Respuestas['ed_fisica'] = $Dato;
- } else {
- $Mensaje = 'Se debe seleccionar la asignatura de Educación Física '
- . 'en el Bloque 1.';
- array_push($Errores, $Mensaje);
- }
- }
- function ValidarMatematicas1($Dato, &$Respuestas, &$Errores) {
- if ($Dato === 'si') {
- $Respuestas['matematicas_1'] = $Dato;
- } else {
- $Mensaje = 'Se debe seleccionar la asignatura de Matemáticas I '
- . 'en el Bloque 1.';
- array_push($Errores, $Mensaje);
- }
- }
- function ValidarFisicaQuimica($Dato, &$Respuestas, &$Errores) {
- if ($Dato === 'si') {
- $Respuestas['fisica_quimica'] = $Dato;
- } else {
- $Mensaje = 'Se debe seleccionar la asignatura de Física y Química '
- . 'en el Bloque 1.';
- array_push($Errores, $Mensaje);
- }
- }
- function ValidarTutoria($Dato, &$Respuestas, &$Errores) {
- if ($Dato === 'si') {
- $Respuestas['tutoria'] = $Dato;
- } else {
- $Mensaje = 'Se debe seleccionar la asignatura de Tutoría en el Bloque '
- . '1.';
- array_push($Errores, $Mensaje);
- }
- }
- function ValidarOptativa1($Dato, &$Respuestas, &$Errores) {
- if (($Dato === 'ingles_1') || ($Dato === 'italiano_1')) {
- $Respuestas['optativa_1'] = $Dato;
- } else {
- $Mensaje = 'Se debe seleccionar Inglés o Italiano como Primera '
- . 'Lengua Extranjera I en el Bloque 2.';
- array_push($Errores, $Mensaje);
- }
- }
- function ValidarOptativa2($Dato, $DatoDependiente, &$Respuestas, &$Errores) {
- if ($DatoDependiente === 'salud') {
- if ($Dato === 'biologia_geologia') {
- $Respuestas['optativa_2'] = $Dato;
- } else {
- $Mensaje = 'Se debe seleccionar Biología y Geología para el '
- . 'Itinerario de Ciencias de la Salud, en el Bloque 3.';
- array_push($Errores, $Mensaje);
- }
- } else if ($DatoDependiente === 'tecnologico') {
- if ($Dato === 'dibujo_1') {
- $Respuestas['optativa_2'] = $Dato;
- } else {
- $Mensaje = 'Se debe seleccionar Dibujo Técnico I para el '
- . 'Itinerario de Científico-Tecnológico, en el Bloque 3.';
- array_push($Errores, $Mensaje);
- }
- }
- }
- function ValidarOptativa3($Dato, $DatoDependiente, $DatoDependiente2,
- &$Respuestas, &$Errores) {
- if ($DatoDependiente === 'salud') {
- if ($DatoDependiente2 === 'ingles_1') {
- if ($Dato === 'tecnologia_1' || $Dato === 'cultura_cientifica' || $Dato === 'dibujo_1') {
- $Respuestas['optativa_3'] = $Dato;
- } else {
- $Mensaje = 'Se debe seleccionar entre Tecnología Industrial I, '
- . 'Cultura Científica, Dibujo Técnico I para el Itinerario '
- . 'de Ciencias de la Salud, en el Bloque 4.';
- array_push($Errores, $Mensaje);
- }
- } else if ($DatoDependiente2 == 'italiano_1') {
- if ($Dato === 'tecnologia_1' || $Dato === 'cultura_cientifica' || $Dato === 'ingles_1' || $Dato === 'dibujo_1') {
- $Respuestas['optativa_3'] = $Dato;
- } else {
- $Mensaje = 'Se debe seleccionar entre Tecnología Industrial I, '
- . 'Cultura Científica, Inglés como Segunda Lengua Extranjera I '
- . 'y Dibujo Técnico I para el Itinerario de Ciencias de la '
- . 'Salud y teniendo Italiano como Primera Lengua Extranjera '
- . 'I, en el Bloque 4.';
- array_push($Errores, $Mensaje);
- }
- }
- } else if ($DatoDependiente === 'tecnologico') {
- if ($DatoDependiente2 === 'ingles_1') {
- if ($Dato === 'tecnologia_1' || $Dato === 'cultura_cientifica' || $Dato === 'biologia_geologia') {
- $Respuestas['optativa_3'] = $Dato;
- } else {
- $Mensaje = 'Se debe seleccionar entre Tecnología Industrial I, '
- . 'Cultura Científica y Biología y Geología para el Itinerario '
- . 'Científico-Tecnológico, en el Bloque 4.';
- array_push($Errores, $Mensaje);
- }
- } else if ($DatoDependiente2 === 'italiano_1') {
- if ($Dato === 'tecnologia_1' || $Dato === 'cultura_cientifica' || $Dato === 'ingles_1' || $Dato === 'biologia_geologia') {
- $Respuestas['optativa_3'] = $Dato;
- } else {
- $Mensaje = 'Se debe seleccionar entre Tecnología Industrial I, '
- . 'Cultura Científica, Inglés como Segunda Lengua Extranjera I '
- . 'y Biología y Geología para el Itinerario Científico-'
- . 'Tecnológico y teniendo Italiano como Primera Lengua '
- . 'Extranjera I, en el Bloque 4.';
- array_push($Errores, $Mensaje);
- }
- }
- }
- }
- function ValidarOptativa4($Dato, &$Respuestas, &$Errores) {
- if ($Dato === 'religion_catolica' || $Dato === 'tic_1') {
- $Respuestas['optativa_4'] = $Dato;
- } else {
- $Mensaje = 'Se debe seleccionar entre Religión Católica y Tecnologías '
- . 'de la Información y Comunicación 1 en el Bloque 5.';
- array_push($Errores, $Mensaje);
- }
- }
- function ValidarTratamiento($Dato, &$Respuestas, &$Errores) {
- if ($Dato === 'consiente' || $Dato === 'no_consiente') {
- $Respuestas['tratamiento'] = $Dato;
- } else {
- $Mensaje = 'Se debe seleccionar si hay o no consentimiento para el '
- . 'tratamiento de datos general.';
- array_push($Errores, $Mensaje);
- }
- }
- function ValidarDifusionWeb($Dato, &$Respuestas, &$Errores) {
- if ($Dato === 'consiente' || $Dato === 'no_consiente') {
- $Respuestas['difusion_web'] = $Dato;
- } else {
- $Mensaje = 'Se debe seleccionar si hay o no consentimiento para la '
- . 'difusión de datos en el sitio web.';
- array_push($Errores, $Mensaje);
- }
- }
- function ValidarDifusionApp($Dato, &$Respuestas, &$Errores) {
- if ($Dato === 'consiente' || $Dato === 'no_consiente') {
- $Respuestas['difusion_app'] = $Dato;
- } else {
- $Mensaje = 'Se debe seleccionar si hay o no consentimiento para la '
- . 'difusión de datos en la app.';
- array_push($Errores, $Mensaje);
- }
- }
- function ValidarDifusionFacebook($Dato, &$Respuestas, &$Errores) {
- if ($Dato === 'consiente' || $Dato === 'no_consiente') {
- $Respuestas['difusion_facebook'] = $Dato;
- } else {
- $Mensaje = 'Se debe seleccionar si hay o no consentimiento para la '
- . 'difusión de datos en Facebook.';
- array_push($Errores, $Mensaje);
- }
- }
- function ValidarFichero($Dato, $NombreCampo, &$Respuestas, &$Errores) {
- //Variables de configuracion
- $DirectorioSubida = './almacen/documentos/';
- $TamanioMaximo = '10'; //En MBs
- $ExtensionesValidas = [
- 'jpg',
- 'jpeg',
- 'png',
- 'txt',
- 'odt',
- 'doc',
- 'docx',
- 'pdf'
- ];
- $MIMEsValidos = [
- 'image/jpeg',
- 'image/jpeg',
- 'image/png',
- 'text/plain',
- 'application/vnd.oasis.opendocument.text',
- 'application/msword',
- 'application/vnd.openxmlformats-officedocument.wordprocessingml.document',
- 'application/pdf',
- ];
- //Variables de archivo
- $NombreFichero = $Dato['name'];
- $TamanioFichero = $Dato['size'];
- $DirectorioTemp = $Dato['tmp_name'];
- $TipoFichero = $Dato['type'];
- $ArrayFichero = pathinfo($NombreFichero);
- $Extension = '';
- if (isset($ArrayFichero['extension'])){
- $Extension = $ArrayFichero['extension'];
- }
- $Error = $Dato['error'];
- $SeSube = true;
- // Gestion de errores
- if ($Error === 0) {
- // Comprobamos la extensión del archivo
- if (!in_array($Extension, $ExtensionesValidas)) {
- $Mensaje = 'La extensión del fichero <strong>' . $NombreFichero . '</strong> no es válida.';
- array_push($Errores, $Mensaje);
- $SeSube = false;
- }
- // Comprobamos el tamaño del archivo
- if ($TamanioFichero > ($TamanioMaximo * 1000000 /*Conversion a MBytes*/)) {
- $Mensaje = 'El fichero <strong>' . $NombreFichero . '</strong> debe de tener un tamaño inferior a 10 MBs.';
- array_push($Errores, $Mensaje);
- $SeSube = false;
- }
- // Comprobamos el tipo MIME del archivo
- if (!in_array($TipoFichero, $MIMEsValidos)) {
- $Mensaje = 'El tipo MIME del fichero <strong>' . $NombreFichero . '</strong> no es válido.';
- array_push($Errores, $Mensaje);
- $SeSube = false;
- }
- } else {
- if ($Error === 3) {
- $Mensaje = 'El fichero <strong>' . $NombreFichero . '</strong> solo se ha subido parcialmente.';
- array_push($Errores, $Mensaje);
- $SeSube = false;
- } else if ($Error === 4) {
- $Mensaje = 'No se ha subido ningun fichero.';
- array_push($Errores, $Mensaje);
- $SeSube = false;
- } else {
- $Mensaje = 'Error general al subir el fichero <strong>' . $NombreFichero . '</strong>.';
- array_push($Errores, $Mensaje);
- $SeSube = false;
- }
- }
- // Se sube el archivo
- if ($SeSube && count($Errores) === 0) {
- $Respuestas[$NombreCampo] = $Respuestas['identificacion'] . '-' . $NombreFichero;
- move_uploaded_file($DirectorioTemp, ($DirectorioSubida . $Respuestas[$NombreCampo]));
- }
- }
- function GuardarRespuestas(&$Respuestas, $Direccion) {
- $JSON = json_encode($Respuestas);
- file_put_contents($Direccion, $JSON);
- }
- function ImprimirErrores(&$Errores) {
- $HTML = '';
- $HTML .= '<div class="container p-3 rounded errores">' . PHP_EOL;
- $HTML .= '<div class="row mb-1">' . PHP_EOL;
- $HTML .= '<div class="col-12 text-center">' . PHP_EOL;
- $HTML .= '<span class="font-weight-bold">Errores</span>' . PHP_EOL;
- $HTML .= '</div>' . PHP_EOL;
- $HTML .= '</div>' . PHP_EOL;
- $HTML .= '<div class="row">' . PHP_EOL;
- $HTML .= '<div class="col-12">' . PHP_EOL;
- $HTML .= '<ul class="px-0 mb-0">' . PHP_EOL;
- foreach ($Errores as $Error) {
- $HTML .= '<li class="mx-4">' . $Error . '</li>' . PHP_EOL;
- }
- $HTML .= '</ul>' . PHP_EOL;
- $HTML .= '</div>' . PHP_EOL;
- $HTML .= '</div>' . PHP_EOL;
- $HTML .= '</div>' . PHP_EOL;
- return $HTML;
- }
|