} return $toret; } //Esta variable contiene la ruta relativa para llegar // desde la ubicacion del controlador general a la raiz (SitioWEB) de la carpeta // de la aplicacion // Ej: /SitioWEB/carpeta2/carpeta3/controlador.php la ruta relativa correspondiente será // ../../ $RutaRelativaControlador = getRuta(); //Ruta Relativa del ArchivoComun include_once $RutaRelativaControlador . 'Comun/ArchivoComun.php'; //Cargamos el idioma a utilizar en el controlador $idioma = CargarIdioma2($RutaRelativaControlador); try { $consulta = $_TABLAMIEMBRO->AlmacenarBD($_POST); //Tras haber añadido el usuario a la tabla de usuarios, se añade automaticamente a la relacion usuario-miembro ya que todo usuario que se de // de alta en la WEB tendra el rol de miembro TablaBD::ConsultaGenerica("Insert into HACE_DE (Login,ROL_nombre) values ('" . $_POST["MA-Login"] . "','" . $ROLMIEMBRO . "')"); //En caso de test no se realizan redirecciones a ninguna otra pagina if (!isset($_COOKIE["TEST"])) { header("Location: " . $controladores[$identificadoresPrivados["Miembros"]]); } } catch (Exception $e) { //En caso de test no se realizan redirecciones a ninguna otra pagina if (!isset($_COOKIE["TEST"])) { session_start(); $errorRescrito = explode("=>", $e->getMessage()); $_SESSION['error'] = 'ALT ERR U' . "=>" . $errorRescrito[1]; header("Location: " . $controladores[$identificadoresPrivados["Miembros"]]); } }
//Cargamos el idioma a utilizar en el controlador $idioma = CargarIdioma2($RutaRelativaControlador); try { //Por POST recibimos el tipo de objeto que es, y en funcion de este valor añadimos unos valores a la tabla de participantes // Es un caso especial ya que los datos asociados a esta tabla estan en una Generalizacion Disjunta en la BD y se requiere de // codigo adicional para mantener la relacion correcta en la base de datos ("Se podria meter como un procedimiento directamente en la BD // pero desde codigo es mas facil realizar futuras modificaciones") switch ($_POST["TIPO"]) { case "I": TablaBD::ConsultaGenerica("Insert into " . $_TABLAPARTICIPANTES->nombreTabla . " Values ('" . $_POST['MP-IDParticipante'] . "', 'Institucion') "); break; case "G": TablaBD::ConsultaGenerica("Insert into " . $_TABLAPARTICIPANTES->nombreTabla . " Values ('" . $_POST['MP-IDParticipante'] . "', 'Grupo') "); break; case "E": TablaBD::ConsultaGenerica("Insert into " . $_TABLAPARTICIPANTES->nombreTabla . " Values ('" . $_POST['MP-IDParticipante'] . "', 'Empresa') "); break; } } catch (Exception $e) { //En caso de test no se realizan redirecciones a ninguna otra pagina if (!isset($_COOKIE["TEST"])) { session_start(); $errorRescrito = explode("=>", $e->getMessage()); $_SESSION['error'] = 'ID Part REP' . "=>" . $errorRescrito[1]; header("Location: " . $controladores[$identificadoresPrivados["Colaboraciones"]]); } } try { //Por POST recibimos el tipo de objeto que es, y en funcion de este valor usamos la talba correspondiente // para gestionarlo, pasandole directamente los valores recibidos //'array_slice($_POST, 1)' elimina el primer campo recibido 'TIPO' ya que es ajeno a los campos de las tablas
} for ($i = 0; $i < $opciones->num_rows; $i = $i + 1) { $dato = $opciones->fetch_assoc(); if (in_array($dato[array_keys($dato)[0]], $opciones2)) { echo '<li class="list-group-item"><input type="checkbox" checked name="' . $campos[0] . '-' . $dato[array_keys($dato)[0]] . '">' . $dato[array_keys($dato)[0]] . ' </input></li>'; } else { echo '<li class="list-group-item"><input type="checkbox" name="' . $campos[0] . '-' . $dato[array_keys($dato)[0]] . '">' . $dato[array_keys($dato)[0]] . ' </input></li>'; } } break; case "array": $opciones = explode("@", explode(":", $campos[3])[1]); $opciones2 = array(); switch (explode(":", $campos[4])[0]) { case "sql": $consulta = TablaBD::ConsultaGenerica(str_replace("%d", $MOD[$campoClave], explode(":", $campos[4])[1])); for ($i = 0; $i < $consulta->num_rows; $i = $i + 1) { $dato = $consulta->fetch_assoc(); $opciones2[] = $dato[array_keys($dato)[0]]; } break; case "array": $opciones2 = explode("@", explode(":", $campos[4])[1]); break; } for ($i = 0; $i < count($opciones); $i = $i + 1) { $dato = $opciones[$i]; if (in_array($dato, $opciones2)) { echo '<li class="list-group-item"><input type="checkbox" checked name="' . $campos[0] . '-' . $dato . '">' . $dato . ' </input></li>'; } else { echo '<li class="list-group-item"><input type="checkbox" name="' . $campos[0] . '-' . $dato . '">' . $dato . ' </input></li>';
//Por POST recibimos el tipo de objeto que es, y en funcion de este valor usamos la talba correspondiente // para gestionarlo, pasandole directamente los valores recibidos //'array_slice($_POST, 1)' elimina el primer campo recibido 'TIPO' ya que es ajeno a los campos de las tablas switch ($_POST["TIPO"]) { case "I": $consulta = $_TABLAINSTITUCIONES->EliminarRegistro(array_slice($_POST, 1)); break; case "G": $consulta = $_TABLAGRUPOS->EliminarRegistro(array_slice($_POST, 1)); break; case "E": $consulta = $_TABLAEMPRESAS->EliminarRegistro(array_slice($_POST, 1)); break; } //En este caso y teniendo en cuenta la relacion en la base de datos y para mantener la integridad, se borra de la tabla participantes lo que este asociado // con el borrado del objeto que se este procesando $val = explode("=>", $_POST["OTRO"]); TablaBD::ConsultaGenerica("DELETE FROM " . $_TABLAPARTICIPANTES->nombreTabla . " WHERE " . $val[0] . "='" . $val[1] . "'"); //En caso de test no se realizan redirecciones a ninguna otra pagina if (!isset($_COOKIE["TEST"])) { header("Location: " . $controladores[$identificadoresPrivados["Colaboraciones"]]); } } catch (Exception $e) { //En caso de test no se realizan redirecciones a ninguna otra pagina if (!isset($_COOKIE["TEST"])) { $errorRescrito = explode("=>", $e->getMessage()); session_start(); $_SESSION['error'] = 'ERROR BORRADO C' . "=>" . $errorRescrito[1]; header("Location: " . $controladores[$identificadoresPrivados["Colaboraciones"]]); } }