Premio Internacional de las Editoriales Electrónicas


[r]Usuario o clave incorrectos[/r]"); } else { Portada(); } break; case "clas": if ($GLOBALS["accion"] == "hst") { Historico("Cabecera"); } else { Titulo(); Clasificacion($GLOBALS["categoria"], $GLOBALS["edicion"], "act"); } break; case "historico": Historico("Cabecera"); break; case "salir": $_SESSION = array(); $_SESSION["Usuario_Autorizado"] = "no"; // $_SESSION["Usuario_Perfil"] = ""; // $_SESSION["Usuario_IdPubXJurado"] = ""; // $_SESSION["Usuario_IdPubJurado0"] = ""; // $_SESSION["Usuario_IdPubJurado1"] = ""; // $_SESSION["Usuario_IdPubJurado2"] = ""; // $_SESSION["area"] = ""; print "\n"; break; default: Portada(); break; } /* ====================================================== */ function Comandos() { global $local, $pruebas, $fase_0, $fase_P, $fase_E, $fase_V, $fase_R, $fase_F; print "
\n"; print "
\n"; print "Portada\n"; $Pruebas_Local = false; //($pruebas || $local); $Ua = ($_SESSION["Usuario_Autorizado"] == "si" ? True : False); // Relatos $e = ($GLOBALS["ini_fase_R"] == $fase_F ? "cmd=Clas&edicion=".$GLOBALS["ini_edicion"]."&categoria=Relatos" : "cmd=Relatos"); print "  Relatos\n"; if ($_SESSION["Usuario_Perfil"] == "Administrador" && ($GLOBALS["ini_fase_R"] == $fase_P || $GLOBALS["ini_fase_R"] == $fase_E) ) { print "+\n"; } if ($Ua && ($GLOBALS["ini_fase_R"] == $fase_V || $Pruebas_Local) ) { print "V\n"; } if ($Ua && ($GLOBALS["ini_fase_R"] == $fase_R || $Pruebas_Local) ) { print "R\n"; } // Artículos $e = ($GLOBALS["ini_fase_A"] == $fase_F ? "cmd=Clas&edicion=".$GLOBALS["ini_edicion"]."&categoria=Articulos" : "cmd=Articulos"); print "  Artículos\n"; if ($_SESSION["Usuario_Perfil"] == "Administrador" && ($GLOBALS["ini_fase_A"] == $fase_P || $GLOBALS["ini_fase_A"] == $fase_E) ) { print "+\n"; } if ($Ua && ($GLOBALS["ini_fase_A"] == $fase_V || $Pruebas_Local) ) { print "V\n"; } if ($Ua && ($GLOBALS["ini_fase_A"] == $fase_R || $Pruebas_Local) ) { print "R\n"; } // Ilustraciones $e = ($GLOBALS["ini_fase_I"] == $fase_F ? "cmd=Clas&edicion=".$GLOBALS["ini_edicion"]."&categoria=Ilustraciones" : "cmd=Ilustraciones"); print "  Ilustraciones\n"; if ($_SESSION["Usuario_Perfil"] == "Administrador" && ($GLOBALS["ini_fase_I"] == $fase_P || $GLOBALS["ini_fase_I"] == $fase_E) ) { print "+\n"; } if ($Ua && ($GLOBALS["ini_fase_I"] == $fase_V || $Pruebas_Local) ) { print "V\n"; } if ($Ua && ($GLOBALS["ini_fase_I"] == $fase_R || $Pruebas_Local) ) { print "R\n"; } // Histórico print "  Ediciones anteriores\n"; // Gestión if ($_SESSION["Usuario_Perfil"] == "Administrador") { print "  Gestión\n"; } print "
\n"; print "\n
\n"; if ($_SESSION["Usuario_Autorizado"] != "si") { print "\n
\n". "\n". "Usuario: \n". "Clave: \n". "\n". "\n". "
\n"; } else { print "  Cambiar Clave\n". "   Salir\n"; } print "
\n"; print "
\n"; print "
\n"; } /* ====================================================== */ /* ====================================================== */ function Historico($Accion) { switch(strToLower($Accion)) { case "categorias": switch($GLOBALS["edicion"]) { case 2007: $URLRes = "http://premiointernacional.blogspot.com/2008/05/premiados-del-i-premio-de-las.html"; break; case 2008: $URLRes = "http://premiointernacional.blogspot.com/2009/04/resultados-del-ii-premio-internacional.html"; break; case 2009: $URLRes = "http://premiointernacional.blogspot.com/2010/04/ganadores-del-iii-premio-de.html"; break; default: $URLRes = "http://premiointernacional.blogspot.com/"; break; } print "
\n". "
\n". "Relatos ".$GLOBALS["edicion"]."\n". "Artículos ".$GLOBALS["edicion"]."\n". "Ilustraciones ".$GLOBALS["edicion"]."\n". "
\n"; if ($GLOBALS["gnd"] == "1") { Print "\n
\n". "
\n". "
\n". "\t\n". "
\n". "
\n\n"; } print "
\n"; break; case "clasificacion": print "
\n". "
\n"; fgAviso ("Clasificación de la categoria [r]".ucfirst($GLOBALS["categoria"])."[/r] de la edición de [r]".$GLOBALS["edicion"]."[/r]"); Clasificacion($GLOBALS["categoria"], $GLOBALS["edicion"], "hst"); print "
\n". "
\n"; break; default: // cabecera print "
\n". "
\n"; $mHst = explode(",", $GLOBALS["ini_historico"]); for ($h = 0; $h < count($mHst); ++$h) { if ($mHst[$h] != "") { print "".trim($mHst[$h])."\n"; } } // for $h print "
\n". "
\n"; if ($GLOBALS["edicion"] != "") Historico("Categorias"); if ($GLOBALS["categoria"] != "") Historico("Clasificacion"); break; } } /* ====================================================== */ /* ====================================================== */ function Gestion() { if ($_SESSION["Usuario_Perfil"] != "Administrador") return; print "
\n". "
\n". "Usuarios\n". "Publicaciones\n". "Configuración\n". "
\n". "
\n"; } /* ====================================================== */ /* ====================================================== */ function Titulo() { print "
\n"; switch($_SESSION["area"]) { case "r": $titulo = "Relatos"; break; case "a": $titulo = "Artículos"; break; case "i": $titulo = "Ilustraciones"; break; case "u": $titulo = "Gestión de usuarios"; break; case "p": $titulo = "Gestión de publicaciones"; break; case "c": $titulo = "Configuración"; break; default: $titulo = ""; break; } if ($titulo != "") print "

".$titulo."


\n"; } /* ====================================================== */ /* ====================================================== */ function Configuracion($Accion) { if ($_SESSION["Usuario_Perfil"] != "Administrador") return; global $pIni; switch(strToLower($Accion)): // ---------------------------------- case "editar": GestionUsuarios("Extraer", $GLOBALS["ini_edicion"]); print "
\n"; gAbreMarco("50%", "", ""); print "

Editar configuración

\n"; print "
\n"; print "
\n"; print "\n"; print "\n"; print "\n"; $x = fgCampoF("Editar", "Fase Relatos", "ini_fase_R", $GLOBALS["ini_fase_R"], "SELECT", OptionsFases($GLOBALS["ini_fase_R"]), 0, 0, 0, 1); $x = fgCampoF("Editar", "Fase Artículos", "ini_fase_A", $GLOBALS["ini_fase_A"], "SELECT", OptionsFases($GLOBALS["ini_fase_A"]), 0, 0, 0, 1); $x = fgCampoF("Editar", "Fase Ilustraciones", "ini_fase_I", $GLOBALS["ini_fase_I"], "SELECT", OptionsFases($GLOBALS["ini_fase_I"]), 0, 0, 0, 1); $x = fgCampoF("Editar", "Edición actual", "ini_edicion", $GLOBALS["ini_edicion"], "INPUT", "text", 5, 4, 0, 1); $x = fgCampoF("Editar", "Histórico", "ini_historico", $GLOBALS["ini_historico"], "INPUT", "text", 50, 200, 0, 1); print "
\n
\n"; print "  \n"; print "\n"; // print "\n"; print "
\n"; print "
\n"; print "
\n"; gCierraMarco(); print "
\n"; break; // editar ------------------- // ---------------------------------- case "grabar": // Detección de errores $Fallo = ""; if ($_POST["ini_edicion"] == "") $Fallo = $Fallo."Falta la edición actual
\n"; if ($Fallo != "") { print "
\n". "

".$Fallo."

\n". "\n". "
\n"; return; } // arreglos $_POST["ini_historico"] = vbReplace($_POST["ini_historico"], " ", ""); $ini = gGetFile("gestion/premio.ini.php"); for ($i = 0; $i < count($ini); ++$i) { for ($p=0; $p < count($pIni); ++$p) { $pI = vbReplace($pIni[$p], "*", ""); // Quito el asterisco del parámetro if (strpos($ini[$i], $pI) !== false) { $GLOBALS[$pI] = $_POST[$pI]; $cpI = $_POST[$pI]; if (strpos($pIni[$p], "*") !== false) $cpI = "\"".$cpI."\""; //Si el parámetro lleva asterisco, es que va entrecomillado. $ini[$i] = "\$GLOBALS[\"".$pI."\"] = ".$cpI.";"; } // if } // for $p } // for $i gPutFile("gestion/premio.ini.php", $ini); print "

Configuración guardada

\n"; Configuracion("editar"); break; // editar ------------------- endswitch; } /* ====================================================== */ /* ====================================================== */ function NuevaEdicion($Accion) { if ($_SESSION["Usuario_Perfil"] != "Administrador") return; switch(strToLower($Accion)): // ---------------------------------- case "f": print "
\n"; gAbreMarco("300", "", ""); print "

Crear nueva edición

\n"; print "
\n"; print "
\n"; print "\n"; print "\n"; print "Nueva edición del premio:
\n"; print "Basar en la edición de:
\n"; print "
\n
\n"; print "  \n"; print "
\n"; print "
\n"; print "
\n"; gCierraMarco(); print "
\n"; break; // Formulario ------------------- /* 20090929 por culpa del mierdoso SafeMode en el servidor esto no funciona */ // ---------------------------------- case "c": print "
\n"; gAbreMarco("300", "", ""); fgAviso ("Creando nueva edición"); print "Creando directorio ".$GLOBALS["edicion"]."
"; if (!mkdir ("gestion/".$GLOBALS["edicion"], 0775)) { print "Problemas en la creación del directorio"; } else { chmod("gestion/".$GLOBALS["edicion"], 0777); print "Copiando archivos
"; $archivos = array("cat.articulos", "cat.ilustraciones", "cat.relatos", "cfg.publicaciones", "cfg.usuarios"); for ($n = 0; $n < count($archivos); ++$n){ $org = "gestion/".$GLOBALS["aaa"]."/".$archivos[$n].".dat.php"; $des = "gestion/".$GLOBALS["edicion"]."/".$archivos[$n].".dat.php"; copy ($org, $des); chmod($des, 0666); } fgAviso ("Edición ".$GLOBALS["edicion"]." creada con éxito"); } break; // Crear ------------------- endswitch; } /* ====================================================== */ /* ====================================================== */ function GestionUsuarios($Accion, $aaaEdicion) { $ArchUsu = "gestion/".$aaaEdicion."/cfg.usuarios.dat.php"; gCrearArchivo($ArchUsu); $IdUsuario = ""; $nIdUsuario = 0; $Nombre = ""; $nNombre = 1; $Apellidos = ""; $nApellidos = 2; $IdPubJurado = ""; $nIdPubJurado = 3; $Correo = ""; $nCorreo = 4; $Clave = ""; $nClave = 5; $Perfil = ""; $nPerfil = 6; // formato archivo: [0]IdUsuario|[1]Nombre|[2]Apellidos|[3]Publicacion|[4]Correo|[5]Clave switch(strToLower($Accion)): // ---------------------------------- case "lista": if ($_SESSION["Usuario_Perfil"] != "Administrador") return; print "[Nuevo]
\n"; $usuarios = gGetFile($ArchUsu); foreach ($usuarios as $linea) { $campos = explode("|", $linea); if (count($campos) > 1) { $IdPubJurado = explode(",", $campos[$nIdPubJurado]); $GLOBALS["Publicacion0"] = GestionPublicaciones("Extraer", $IdPubJurado[0], $aaaEdicion); $GLOBALS["Publicacion1"] = GestionPublicaciones("Extraer", $IdPubJurado[1], $aaaEdicion); $GLOBALS["Publicacion2"] = GestionPublicaciones("Extraer", $IdPubJurado[2], $aaaEdicion); print "[Editar]". "[Borrar] ". "".$campos[$nNombre]." ".$campos[$nApellidos].": ". "".$GLOBALS["Publicacion0"]."". ($GLOBALS["Publicacion1"] == "" ? "" : ", ".$GLOBALS["Publicacion1"].""). ($GLOBALS["Publicacion2"] == "" ? "" : ", ".$GLOBALS["Publicacion2"].""). " (".$campos[$nCorreo].") ". $campos[$nPerfil]. "
\n"; } } // foreach break; // Lista ------------------- // ---------------------------------- case "editar": if ($_SESSION["Usuario_Perfil"] != "Administrador") return; GestionUsuarios("Extraer", $aaaEdicion); print "
\n"; gAbreMarco("50%", "", ""); print "

Editar usuario

\n"; print "
\n"; print "
\n"; print "\n"; print "\n"; print "\n"; print "Nombre:
\n"; print "Apellidos:
\n"; print "Publicación 1:
\n"; print "Publicación 2:
\n"; print "Publicación 3:
\n"; print "Correo:
\n"; print "Clave:
\n"; print "Confirmar:
\n"; print "\n"; print "Perfil: \n"; print "
\n
\n"; print "  \n"; print "\n"; print "
\n"; print "
\n"; print "
\n"; gCierraMarco(); print "
\n"; break; // editar ------------------- // ---------------------------------- case "cambiarclave": print "
\n"; gAbreMarco("50%", "", ""); print "

Cambio de clave

\n"; print "
\n"; print "
\n"; print "\n"; print "\n"; print "Clave actual:
\n"; print "Nueva clave:
\n"; print "    Confirmar:
\n"; print "
\n"; print "  \n"; print "
\n"; print "
\n"; print "
\n"; gCierraMarco(); print "
\n"; break; // cambiarclave ------------- // ---------------------------------- case "confirmarcambiarclave": $Fallo = ""; if ($_POST["ClaveActual"] == "") $Fallo = $Fallo."Falta la clave actual
"; if ($_POST["NuevaClave"] != $_POST["ConfirmarClave"] || $_POST["NuevaClave"] == "" || $_POST["ConfirmarClave"] == ""): $Fallo = $Fallo."La nueva clave no está bien confirmada
"; endif; if ($Fallo == ""): $usuarios = gGetFile($ArchUsu); for ($u = 0; $u < count($usuarios); ++$u): // Bucle con la lista de autores if (strrpos($usuarios[$u], "|") !== false): // Si la línea tiene el separador de campo es un registro $campos = explode("|", $usuarios[$u]); if ((int)$campos[$nIdUsuario] == (int)$_SESSION["Usuario_Id"]): if ( $campos[$nClave] != md5($_POST["ClaveActual"]) ): $Fallo = $Fallo."La clave actual no es correcta
"; else: $campos[$nClave] = md5($_POST["NuevaClave"]); $usuarios[$u] = implode("|", $campos); endif; endif; endif; endfor; endif; if ($Fallo == ""): gPutFile($ArchUsu, $usuarios); // Preparo y envio el correo con las modificaciones realizadas $CuerpoCorreo = "Se ha cambido su clave de usuario de la web de gestión del PIEE\n\n". "Clave: ".$_POST["NuevaClave"]."\n". "\nNo la olvides\n"; EnviarCorreo($_SESSION["Usuario_Id"], "Modificaciones en la ficha de usuario", $CuerpoCorreo); print "

Clave cambiada con éxito, no la olvides.

\n"; else: print "

Error: ".$Fallo."

\n"; GestionUsuarios("CambiarClave", $aaaEdicion); endif; break; // confirmarcambiarclave ---- // ---------------------------------- case "grabar": if ($_SESSION["Usuario_Perfil"] != "Administrador") return; // Agrupación de publicaciones for($n = 0; $n <= 2; ++$n) { if ($_POST["IdPubJurado1"] == "" && $_POST["IdPubJurado2"] != "") {$_POST["IdPubJurado1"] = $_POST["IdPubJurado2"]; $_POST["IdPubJurado2"] = "";} if ($_POST["IdPubJurado0"] == "" && $_POST["IdPubJurado1"] != "") {$_POST["IdPubJurado0"] = $_POST["IdPubJurado1"]; $_POST["IdPubJurado1"] = "";} } // Detección de errores // ................................... $Fallo = ""; if ($_POST["Clave"] != "") { if ($_POST["ConfirmarClave"] == "") $Fallo = $Fallo."No has confirmado la clave
\n"; if ($_POST["Clave"] != $_POST["ConfirmarClave"]) $Fallo = $Fallo."La clave no está bien confirmada
\n"; } else { if ($_POST["Clave"] == "" && $_POST["IdUsuario"] == "") $Fallo = $Fallo."Falta la clave del usuario
\n"; } if ($_POST["Nombre"] == "") $Fallo = $Fallo."Falta el nombre del usuario
\n"; if ($_POST["Apellidos"] == "") $Fallo = $Fallo."Faltan los apellidos del usuario
\n"; if ($_POST["IdPubJurado0"] == "") $Fallo = $Fallo."Falta la publicación
\n"; if ($_POST["Perfil"] == "") $Fallo = $Fallo."Falta el perfil del usuario
\n"; if ($_POST["Correo"] == "") { $Fallo = $Fallo."Falta el perfil del usuario
\n"; } elseif (!fgVerificar($_POST["Correo"], "correo")) { $Fallo = $Fallo.$_POST["Correo"]." no es una dirección de correo correcta
\n"; } // ................................... // por si el usuario es nuevo if ($_POST["IdUsuario"] == "") $_POST["IdUsuario"] = "###"; // Creo la línea del registro. //$_POST["IdPubJurado0"].($_POST["IdPubJurado1"] != "" ? ",". $_POST["IdPubJurado1"] : "").($_POST["IdPubJurado2"] != "" ? ",". $_POST["IdPubJurado2"] : "")."|". $lUsuario = $_POST["IdUsuario"]."|". $_POST["Nombre"]."|". $_POST["Apellidos"]."|". $_POST["IdPubJurado0"].",".$_POST["IdPubJurado1"].",". $_POST["IdPubJurado2"]."|". $_POST["Correo"]."|". ($_POST["Clave"] != "" ? md5($_POST["Clave"]) : $_POST["ClAct"])."|". $_POST["Perfil"]; $usuarios = gGetFile($ArchUsu); $contador = -1; foreach ($usuarios as $linea){ ++$contador; $campos = explode("|", $linea); if (count($campos) > 1) { //Busco la línea con el id del usuario $IdUsuario = $campos[$nIdUsuario]; if ($_POST["IdUsuario"] == $campos[$nIdUsuario]) { $usuarios[$contador] = $lUsuario; } else if ($_POST["Correo"] == $campos[$nCorreo]) { $Fallo = $Fallo."El usuario ya está dado de alta
\n"; break; } } } if ($Fallo != "") { print "
\n". "

".$Fallo."

\n". "\n". "
\n"; return; } if ($_POST["IdUsuario"] == "###") { ++$IdUsuario; $lUsuario = str_replace("###", ($IdUsuario), $lUsuario); $usuarios[count($usuarios)+1] = $lUsuario; } else { $IdUsuario = $_POST["IdUsuario"]; } gPutFile($ArchUsu, $usuarios); // Preparo y envio el correo con las modificaciones realizadas $GLOBALS["Publicacion0"] = GestionPublicaciones("Extraer", $_POST["IdPubJurado0"], $aaaEdicion); $GLOBALS["Publicacion1"] = GestionPublicaciones("Extraer", $_POST["IdPubJurado1"], $aaaEdicion); $GLOBALS["Publicacion2"] = GestionPublicaciones("Extraer", $_POST["IdPubJurado2"], $aaaEdicion); $Usuario = explode("@", $_POST["Correo"]); $CuerpoCorreo = "Se ha modificado su ficha de usuario de la web de gestión del PIEE\n\n". "Queda de la siguiente manera:\n\n". "Nombre: ".$_POST["Nombre"]."\n". "Apellidos: ".$_POST["Apellidos"]."\n". "Correo: ".$_POST["Correo"]."\n". "Publicación: ".$GLOBALS["Publicacion0"]."\n". ($GLOBALS["Publicacion1"] == "" ? "" : "Publicación: ".$GLOBALS["Publicacion1"]."\n"). ($GLOBALS["Publicacion2"] == "" ? "" : "Publicación: ".$GLOBALS["Publicacion2"]."\n"). "Usuario: ".$Usuario[0]."\n". ($_POST["Clave"] != "" ? "Clave: ".$_POST["Clave"]: "La clave se te envió en mensajes anteriores")."\n"; EnviarCorreo($IdUsuario, "Modificaciones en la ficha de usuario", $CuerpoCorreo); GestionUsuarios("Lista", $aaaEdicion); break; // grabar ------------------- // ---------------------------------- case "borrar": if ($_SESSION["Usuario_Perfil"] != "Administrador") return; GestionUsuarios("Extraer", $aaaEdicion); print "
\n"; gAbreMarco("70%", "", ""); print "
\n"; print "
\n"; print "\n"; print "\n"; print "\n"; fgAviso ("¿Estás seguro de querer borrar a [r]".$GLOBALS["Nombre"]." ".$GLOBALS["Apellidos"]."[/r]?"); print "
\n"; print "  \n"; print "  "; print "
\n"; print "
\n"; print "
\n"; gCierraMarco(); print "

\n"; break; // borrar ------------------- // ---------------------------------- case "confirmadoborrar": if ($_SESSION["Usuario_Perfil"] != "Administrador") return; $contador = -1; $usuarios = gGetFile($ArchUsu); foreach ($usuarios as $linea) { $linea = trim($linea); $campos = explode("|", $linea); if (count($campos) > 1) { if ($campos[$nIdUsuario] != $GLOBALS["IdUsuario"]) { $resultado[++$contador] = $linea; } else { $GLOBALS["Nombre"] = $campos[$nNombre]; $GLOBALS["Apellidos"] = $campos[$nApellidos]; } } else if ($linea != "") { // de paso se limpia el archivo $resultado[++$contador] = $linea; } } // foreach print "

\"".$GLOBALS["Nombre"]." ".$GLOBALS["Apellidos"]."\" borrado

\n"; gPutFile($ArchUsu, $resultado); GestionUsuarios("Lista", $aaaEdicion); break; // confirmadoborrar----------- // ---------------------------------- case "extraer": $Encontrado = False; $usuarios = gGetFile($ArchUsu); foreach ($usuarios as $linea) { $campos = explode("|", $linea); if (count($campos) > 1) { $Usuario = explode("@", $campos[$nCorreo]); if ($GLOBALS["IdUsuario"] == $campos[$nIdUsuario] || $_POST["Usuario"] == $Usuario[0]) { $Encontrado = True; $GLOBALS["IdUsuario"] = (int)$campos[$nIdUsuario]; $GLOBALS["Nombre"] = $campos[$nNombre]; $GLOBALS["Apellidos"] = $campos[$nApellidos]; $GLOBALS["IdPubXJurado"] = $campos[$nIdPubJurado]; //Cadena con los Ids de las publicaciones del jurado $IdPubJurado = explode(",", $campos[$nIdPubJurado]); $GLOBALS["IdPubJurado0"] = $IdPubJurado[0]; $GLOBALS["IdPubJurado1"] = $IdPubJurado[1]; $GLOBALS["IdPubJurado2"] = $IdPubJurado[2]; $GLOBALS["Correo"] = $campos[$nCorreo]; $GLOBALS["Clave"] = $campos[$nClave]; $GLOBALS["Perfil"] = $campos[$nPerfil]; $GLOBALS["Iniciales"] = fgIniciales($GLOBALS["Nombre"]." ".$GLOBALS["Apellidos"]); break; } } } // foreach if ($Encontrado == False) { $GLOBALS["IdUsuario"] = ""; $GLOBALS["Nombre"] = ""; $GLOBALS["Apellidos"] = ""; $GLOBALS["IdPubXJurado"] = ""; $GLOBALS["IdPubJurado0"] = ""; $GLOBALS["IdPubJurado1"] = ""; $GLOBALS["IdPubJurado2"] = ""; $GLOBALS["Correo"] = ""; $GLOBALS["Clave"] = ""; $GLOBALS["Perfil"] = ""; $GLOBALS["Iniciales"] = ""; } break; // extraer ------------------- // ---------------------------------- case "validar": GestionUsuarios("extraer", $aaaEdicion); if (md5($_POST["Clave"]) == $GLOBALS["Clave"]) { $_SESSION["Usuario_Autorizado"] = "si"; $_SESSION["Usuario_Id"] = (int)$GLOBALS["IdUsuario"]; $_SESSION["Usuario_Apellidos"] = $GLOBALS["Apellidos"]; $_SESSION["Usuario_Nombre"] = $GLOBALS["Nombre"]; $_SESSION["Usuario_Perfil"] = $GLOBALS["Perfil"]; $_SESSION["Usuario_IdPubXJurado"] = $GLOBALS["IdPubXJurado"]; $_SESSION["Usuario_IdPubJurado0"] = (int)$GLOBALS["IdPubJurado0"]; $_SESSION["Usuario_IdPubJurado1"] = (int)$GLOBALS["IdPubJurado1"]; $_SESSION["Usuario_IdPubJurado2"] = (int)$GLOBALS["IdPubJurado2"]; return true; } else { $_SESSION["Usuario_Autorizado"] = "no"; $_SESSION["Usuario_Id"] = ""; $_SESSION["Usuario_Apellidos"] = ""; $_SESSION["Usuario_Nombre"] = ""; $_SESSION["Usuario_Perfil"] = ""; $_SESSION["Usuario_IdPubXJurado"] = ""; $_SESSION["Usuario_IdPubJurado0"] = ""; $_SESSION["Usuario_IdPubJurado1"] = ""; $_SESSION["Usuario_IdPubJurado2"] = ""; return false; } break; // validar ------------------ // Devuelve el mayor Id de usuario // ---------------------------------- case "maxid": $maxid = 0; $usuarios = gGetFile($ArchUsu); foreach ($usuarios as $linea) { $campos = explode("|", $linea); if (count($campos) > 1) { if ((int)$campos[$nIdUsuario] > $maxid) $maxid = (int)$campos[$nIdUsuario]; } } // foreach return $maxid; break; // validar ------------------ // ---------------------------------- default: print "

Acción \"".$Accion."\" no implementada

\n"; break; // default ------------------ endswitch; return; } /* Gestion usuarios */ /* ====================================================== */ /* ====================================================== */ function GestionPublicaciones($Accion, $IdPublicacion, $aaaEdicion) { $ArchPub = "gestion/".$aaaEdicion."/cfg.publicaciones.dat.php"; gCrearArchivo($ArchPub); $nIdPublicacion = 0; $nPublicacion = 1; switch(strToLower($Accion)): case "lista": print "[Nuevo]
\n"; $pub = gGetFile($ArchPub); foreach ($pub as $linea) { $campos = explode("|", $linea); if (count($campos) > 1) { print "[Editar]". "[Borrar] ". "".$campos[$nPublicacion]." ". "
\n"; } } // foreach break; // Lista ------------------- // ---------------------------------- case "editar": if ($_SESSION["Usuario_Perfil"] != "Administrador") return; GestionPublicaciones("Extraer", $IdPublicacion, $aaaEdicion); print "
\n"; gAbreMarco("60%", "", ""); print "

Editar publicación

\n"; print "
\n"; print "
\n"; print "\n"; print "\n"; print "\n"; print "Publicación:
\n"; print "  \n"; print "  "; print "\n"; print "
\n"; print "
\n"; gCierraMarco(); print "

\n"; break; // editar ------------------- // ---------------------------------- case "grabar": if ($_SESSION["Usuario_Perfil"] != "Administrador") return; // Detección de errores $Fallo = ""; if ($_POST["Publicacion"] == "") $Fallo = $Fallo."Falta el nombre de la publicación
\n"; // por si la publicación es nueva if ($_POST["IdPublicacion"] == "") $_POST["IdPublicacion"] = "###"; $lPub = $_POST["IdPublicacion"]."|". $_POST["Publicacion"]; $pub = gGetFile($ArchPub); $contador = -1; foreach ($pub as $linea){ ++$contador; $campos = explode("|", $linea); if (count($campos) > 1) { //Busco la línea con el id de la publicación $IdPublicacion = $campos[$nIdPublicacion]; if ($_POST["IdPublicacion"] == $campos[$nIdPublicacion]) { $pub[$contador] = $lPub; } else if ($_POST["Publicacion"] == $campos[$nPublicacion]) { $Fallo = $Fallo."La publicación ya está dada de alta
\n"; break; } } } if ($Fallo != "") { print "
\n". "

".$Fallo."

\n". "\n". "
\n"; return; } if ($_POST["IdPublicacion"] == "###") { $lPub = str_replace("###", ($IdPublicacion + 1), $lPub); $pub[count($pub)+1] = $lPub; } gPutFile($ArchPub, $pub); GestionPublicaciones("Lista", "", $aaaEdicion); break; // grabar ------------------- // ---------------------------------- case "borrar": if ($_SESSION["Usuario_Perfil"] != "Administrador") return; GestionPublicaciones("Extraer", $IdPublicacion, $aaaEdicion); print "
\n"; gAbreMarco("60%", "", ""); print "
\n"; print "
\n"; print "\n"; print "\n"; print "\n"; fgAviso ("¿Estás seguro de querer borrar [r]".$GLOBALS["Publicacion"]."[/r]?"); print "
\n"; print "  \n"; print "  "; print "
\n"; print "
\n"; print "
\n"; gCierraMarco(); print "

\n"; break; // borrar ------------------- // ---------------------------------- case "confirmadoborrar": if ($_SESSION["Usuario_Perfil"] != "Administrador") return; $contador = -1; $pub = gGetFile($ArchPub); foreach ($pub as $linea) { $linea = trim($linea); $campos = explode("|", $linea); if (count($campos) > 1) { if ((int)$campos[$nIdPublicacion] != (int)$IdPublicacion) { $resultado[++$contador] = $linea; } else { $GLOBALS["Publicacion"] = $campos[$nPublicacion]; } } else if ($linea != "") { // de paso se limpia el archivo $resultado[++$contador] = $linea; } } // foreach print "

\"".$GLOBALS["Publicacion"]."\" borrada.

\n"; gPutFile($ArchPub, $resultado); GestionPublicaciones("Lista", "", $aaaEdicion); break; // confirmadoborrar----------- // ---------------------------------- case "extraer": $Encontrado = False; $pub = gGetFile($ArchPub); foreach ($pub as $linea){ $campos = explode("|", $linea); if (count($campos) > 1): if ((int)$campos[$nIdPublicacion] == (int)$IdPublicacion): $Encontrado = True; $GLOBALS["Publicacion"] = $campos[$nPublicacion]; return $campos[$nPublicacion]; break; endif; endif; } // foreach if ($Encontrado == False): $GLOBALS["IdPublicacion"] = ""; $GLOBALS["Publicacion"] = ""; /* $GLOBALS["Publicacion0"] = ""; $GLOBALS["Publicacion1"] = ""; $GLOBALS["Publicacion2"] = ""; */ return ""; endif; break; // extraer ------------------- // ---------------------------------- default: print "

Acción \"".$Accion."\" no implementada

\n"; GestionPublicaciones("Lista", "", $aaaEdicion); break; // default ------------------ endswitch; return; } /* Gestion publicaciones */ /* ====================================================== */ /* ====================================================== */ function GestionCategorias($Accion, $Categoria, $IdObra, $aaaEdicion) { $Categoria = strToLower($Categoria); global $fase_0, $fase_P, $fase_E, $fase_V, $fase_R, $fase_F; $ArchCat = "gestion/".$aaaEdicion."/cat.".$Categoria.".dat.php"; gCrearArchivo($ArchCat); $nIdObra = 0; $nTitulo = 1; $nAutor = 2; $nIdPubObra = 3; $nURLOrigen = 4; $nURLEvaluacion = 5; switch(strToLower($Accion)): // ---------------------------------- case "lista": $lc = strToUpper(vbLeft($Categoria, 1)); if ($GLOBALS["ini_fase_".$lc] == $fase_0) { fgAviso ("La edición del [r]".$aaaEdicion."[/r] está en fase de preparación"); return; } else if ($GLOBALS["ini_fase_".$lc] == $fase_P) { fgAviso ("La categoría de [r]".$Categoria."[/r] está en fase de recepción de trabajos"); if ($_SESSION["Usuario_Perfil"] != "Administrador") return; } else if ($GLOBALS["ini_fase_".$lc] == $fase_E) { fgAviso ("La categoría de [r]".$Categoria."[/r] está en fase de evaluación"); } else if ($GLOBALS["ini_fase_".$lc] == $fase_V) { fgAviso ("La categoría de [r]".$Categoria."[/r] está en fase de votación"); } print "
\n"; gAbreMarco("800", "", ""); if ($IdObra != "ver"): print "
". "[Nuevo]". "[Borrar votaciones]". "[Borrar Todo]". "

\n"; endif; $mtrzCat = gGetFile($ArchCat); print "
"; foreach ($mtrzCat as $linea) { $campos = explode("|", $linea); if (count($campos) > 1): GestionPublicaciones("Extraer", $campos[$nIdPubObra], $GLOBALS["ini_edicion"]); if ($IdObra == "ver"): print ":: "; else: print "[Editar]". "[Borrar] "; endif; // Preparo el enlace a la copia de evaluación. $ev = (($_SESSION["Usuario_Autorizado"] == "si" && $campos[$nURLEvaluacion] != "") ? " [Ev] " : ($_SESSION["Usuario_Autorizado"] == "si" ? " [Ev] " : "")); print "".$campos[$nTitulo]."".$ev.", de ".$campos[$nAutor].": ". "".$GLOBALS["Publicacion"]." ". "
\n"; endif; } // foreach print "
"; gCierraMarco(); print "
\n"; break; // Lista ------------------- // ---------------------------------- case "editar": if ($_SESSION["Usuario_Perfil"] != "Administrador") return; GestionCategorias("Extraer", $Categoria, $IdObra, $aaaEdicion); print "
\n"; gAbreMarco("650", "", ""); print "
\n"; print "
\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "Título:
\n"; print "Autor:
\n"; print "Publicación:
\n"; print "URL Origen:
\n"; print "URL Evaluación:
\n"; print "
\n
\n"; print "  \n"; print "\n"; print "
\n"; print "
\n"; print "
\n"; gCierraMarco(); print "

\n"; break; // editar ------------------- // ---------------------------------- case "grabar": if ($_SESSION["Usuario_Perfil"] != "Administrador") return; // Detección de errores $Fallo = ""; if ($_POST["Titulo"] == "") $Fallo = $Fallo."Falta el título
\n"; if ($_POST["Autor"] == "") $Fallo = $Fallo."Falta el autor
\n"; if ($_POST["IdPubObra"] == "") $Fallo = $Fallo."Falta la publicación
\n"; if ((int)$_POST["IdPubObra"] == 1) $Fallo = $Fallo."La obra no puede ser independiente
\n"; // el id de publicación 1 queda reservado. if ($_POST["URLOrigen"] == "") $Fallo = $Fallo."Falta el enlace
\n"; // por si la obra nueva if ($_POST["IdObra"] == "") $_POST["IdObra"] = "###"; $lCategoria = $_POST["IdObra"]."|". trim($_POST["Titulo"])."|". trim($_POST["Autor"])."|". trim($_POST["IdPubObra"])."|". trim($_POST["URLOrigen"])."|". trim($_POST["URLEvaluacion"]); $mtrzCat = gGetFile($ArchCat); $contador = -1; foreach ($mtrzCat as $linea){ ++$contador; $campos = explode("|", $linea); if (count($campos) > 1) { //Busco la línea con el id de la obra $IdObra = $campos[$nIdObra]; if ($_POST["IdObra"] == $campos[$nIdObra]) { $campos[$nTitulo] = trim($_POST["Titulo"]); $campos[$nAutor] = trim($_POST["Autor"]); $campos[$nIdPubObra] = trim($_POST["IdPubObra"]); $campos[$nURLOrigen] = trim($_POST["URLOrigen"]); $campos[$nURLEvaluacion] = trim($_POST["URLEvaluacion"]); $mtrzCat[$contador] = implode("|", $campos); break; } } } if ($Fallo != "") { print "

Error: ".$Fallo."

\n"; GestionCategorias("Editar", $Categoria, $_POST["IdObra"], $aaaEdicion); return; } if ($_POST["IdObra"] == "###") { $lCategoria = str_replace("###", ($IdObra + 1), $lCategoria); $mtrzCat[count($mtrzCat)+1] = $lCategoria; } gPutFile($ArchCat, $mtrzCat); GestionCategorias("Lista", $Categoria, "", $aaaEdicion); break; // grabar ------------------- // ---------------------------------- case "borrar": if ($_SESSION["Usuario_Perfil"] != "Administrador") return; GestionCategorias("Extraer", $Categoria, $IdObra, $aaaEdicion); print "
\n"; gAbreMarco("70%", "", ""); print "

Borrar ".ucfirst($Categoria)."

\n"; print "
\n"; print "
\n"; print "\n"; print "\n"; print "\n"; print "\n"; fgAviso ("¿Estás seguro de querer borrar a [r]".$GLOBALS["Titulo"]."[/r]"); print "
\n"; print "  \n"; print "\n"; print "
\n"; print "
\n"; print "
\n"; gCierraMarco(); print "

\n"; break; // borrar ------------------- // ---------------------------------- case "confirmadoborrar": if ($_SESSION["Usuario_Perfil"] != "Administrador") return; $contador = -1; $mtrzCat = gGetFile($ArchCat); foreach ($mtrzCat as $linea) { $linea = trim($linea); $campos = explode("|", $linea); if (count($campos) > 1) { if ($campos[$nIdObra] != $GLOBALS["IdObra"]) { $resultado[++$contador] = $linea; } else { $GLOBALS["Titulo"] = $campos[$nTitulo]; } } else if ($linea != "") { // de paso se limpia el archivo $resultado[++$contador] = $linea; } } // foreach print "

\"".$GLOBALS["Titulo"]."\" borrado

\n"; gPutFile($ArchCat, $resultado); GestionCategorias("Lista", $Categoria, "", $aaaEdicion); break; // confirmadoborrar----------- // ---------------------------------- case "borrart": if ($_SESSION["Usuario_Perfil"] != "Administrador") return; print "
\n"; gAbreMarco("70%", "", ""); print "

Borrar ".ucfirst($Categoria)."

\n"; print "
\n"; print "
\n"; print "\n"; print "\n"; print "\n"; fgAviso("[r]¿Estás seguro de querer borrar todas las obras?[/r]"); print "
\n"; print "  \n"; print "\n"; print "
\n"; print "
\n"; print "
\n"; gCierraMarco(); print "

\n"; break; // borrart ------------------- // ---------------------------------- case "confirmadoborrart": gPutFile($ArchCat, array("", "")); fgAviso("Obras eliminadas"); break; // borrart ------------------- // ---------------------------------- case "borrarv": if ($_SESSION["Usuario_Perfil"] != "Administrador") return; print "
\n"; gAbreMarco("70%", "", ""); print "

Borrar ".ucfirst($Categoria)."

\n"; print "
\n"; print "
\n"; print "\n"; print "\n"; print "\n"; fgAviso("[r]¿Estás seguro de querer borrar las votaciones de todas las obras?[/r]"); print "
\n"; print "  \n"; print "\n"; print "
\n"; print "
\n"; print "
\n"; gCierraMarco(); print "

\n"; break; // borrart ------------------- // ---------------------------------- case "confirmadoborrarv": $mtrzCat = gGetFile($ArchCat); for ($n=0; $n < Count($mtrzCat); ++$n) { $campos = explode("|", $mtrzCat[$n]); if (count($campos) > 1) { $mtrzCat[$n] = trim($campos[$nIdObra])."|". trim($campos[$nTitulo])."|". trim($campos[$nAutor])."|". trim($campos[$nIdPubObra])."|". trim($campos[$nURLOrigen])."|". trim($campos[$nURLEvaluacion]); } } // for gPutFile($ArchCat, $mtrzCat); fgAviso("Votaciones eliminados"); break; // borrart ------------------- // ---------------------------------- case "extraer": $Encontrado = False; $mtrzCat = gGetFile($ArchCat); foreach ($mtrzCat as $linea){ $campos = explode("|", $linea); if (count($campos) > 1) { if ((int)$GLOBALS["IdObra"] == (int)$campos[$nIdObra]) { $Encontrado = True; $GLOBALS["IdObra"] = (int)trim($campos[$nIdObra]); $GLOBALS["Titulo"] = trim($campos[$nTitulo]); $GLOBALS["Autor"] = trim($campos[$nAutor]); $GLOBALS["IdPubObra"] = trim($campos[$nIdPubObra]); $GLOBALS["URLOrigen"] = trim($campos[$nURLOrigen]); $GLOBALS["URLEvaluacion"] = trim($campos[$nURLEvaluacion]); break; } } } // foreach if ($Encontrado == False) { $GLOBALS["IdObra"] = ""; $GLOBALS["Titulo"] = ""; $GLOBALS["Autor"] = ""; $GLOBALS["IdPubObra"] = ""; $GLOBALS["URLOrigen"] = ""; $GLOBALS["URLEvaluacion"] = ""; } break; // extraer ------------------- // ---------------------------------- case "votar": $mtrzCat = gGetFile($ArchCat); // recuento los relatos válidos, y creo la cadena de options // con la puntuación que es posible dar $options = ""; $puntos = 0; foreach ($mtrzCat as $linea) { $campos = explode("|", $linea); if (count($campos) > 1 and trim($linea) != ""): if (!fgEnLista($_SESSION["Usuario_IdPubXJurado"], $campos[$nIdPubObra]) || ((int)$campos[$nIdPubObra] == 1 && (int)$_SESSION["Usuario_IdPubJurado0"] == 1)): $options = $options.""; endif; endif; } print "
\n"; gAbreMarco("80%", "", ""); print "
\n"; print "\n"; print "\n"; print "\n"; print "\n\n"; $obras = -1; foreach ($mtrzCat as $linea) { $campos = explode("|", $linea); if (count($campos) > 1 and trim($linea) != "" ): $obras = ++$obras; GestionPublicaciones("Extraer", $campos[$nIdPubObra], $GLOBALS["ini_edicion"]); $puntos = PuntosObra($_SESSION["Usuario_Id"], $linea); print "\n\n". "\t\n". "\t\n". "\n"; endif; } // foreach print "\n
\n". "\t\t\n". "\t\t".$campos[$nTitulo]." de ".$campos[$nAutor]."\n". "\t\n"; if (!fgEnLista($_SESSION["Usuario_IdPubXJurado"], $campos[$nIdPubObra]) || ((int)$campos[$nIdPubObra] == 1 && (int)$_SESSION["Usuario_IdPubJurado0"] == 1)) : print "\t\t\n"; else: print "\t\tX\n"; // los editores no se votan a si mismos endif; print "\t
\n"; print "\n\n"; print "\n
\n"; print "\n
\n"; gCierraMarco(); print "
\n"; break; // votar ------------------- // ---------------------------------- case "guardarvotos": // Comprobaciones previas // 1 Comprobar que no se repiten los votos ni los hay vacios $Fallo = ""; $cPuntos = ""; $CuerpoCorreo = ""; for ($p = 0; $p <= $_POST["Obras"]; ++$p): if ($_POST["Puntos".$p] == ""): $Fallo = "No se pueden dejar puntuaciones vacias"; break; endif; if (fgEnLista($cPuntos, $_POST["Puntos".$p]) === True && $_POST["Puntos".$p] != "X"): $Fallo = "La puntuación ".$_POST["Puntos".$p]." está repetida"; break; else: $cPuntos = $cPuntos.", ".$_POST["Puntos".$p]; endif; endfor; // detección de errores en las puntuaciones // si hay fallos se avisa. if ($Fallo != ""): print "

Error: ".$Fallo."

\n"; print "
\n"; return; endif; // Leo las categoría $mtrzCat = gGetFile($ArchCat); for ($p = 0; $p <= $_POST["Obras"]; ++$p): // Bucle con las obras votadas for ($o = 0; $o < count($mtrzCat); ++$o): // Bucle del archivo if (strrpos($mtrzCat[$o], "|") !== false): // Si la línea tiene el separador de campo es un registro $campos = explode("|", $mtrzCat[$o]); // Descompongo el registro del relato if ((int)$campos[$nIdObra] == (int)$_POST["Obra".$p]): // Detecto si el registro se corresponde con la obra if (strpos($mtrzCat[$o], "|J".$_SESSION["Usuario_Id"].":") !== false): // y si el jurado ya lo ha votado for ($c = 0; $c < count($campos); ++$c): if (strpos($campos[$c], "J".$_SESSION["Usuario_Id"].":") !== false): // ya no existe el separador "|" en la matriz campos $puntos = explode(":", $campos[$c]); // Descompongo el item de la puntuación del jurado $puntos[2] = $_POST["Puntos".$p]; // pongo los puntos en el subcampo de los puntos $campos[$c] = implode(":", $puntos); // recompongo el item de la puntuación del jurado $mtrzCat[$o] = implode("|", $campos); // recompongo el registro del relato $CuerpoCorreo = $CuerpoCorreo.$campos[$nTitulo].": ".($_POST["Puntos".$p] == "X" ? "N/A" : $_POST["Puntos".$p]." puntos")."\n"; break; endif; endfor; else: // Si el jurado no ha votado el relato previamente se añade el voto con la consolidación a "N" $mtrzCat[$o] = $mtrzCat[$o]."|J".$_SESSION["Usuario_Id"].":N:".$_POST["Puntos".$p]; $CuerpoCorreo = $CuerpoCorreo.$campos[$nTitulo].": ".($_POST["Puntos".$p] == "X" ? "N/A" : $_POST["Puntos".$p]." puntos")."\n"; endif; // determinación del campo del jurado endif; // detección de la obra endif; // detección de registro endfor; // obras endfor; // puntuaciones gPutFile($ArchCat, $mtrzCat); $x = ConsolidarVotacionesJurado($_SESSION["Usuario_Id"]); // Preparo y envio el correo con los votos emitidos $CuerpoCorreo = "Votos emitidos en la categoría de ".$Categoria."\n\n". $CuerpoCorreo. ($x == true ? "\n\nYa ha votado en todas las categorías" : "\n\nAVISO: Aún tiene pendientes categorías en las que votar")."\n\n"; EnviarCorreo($_SESSION["Usuario_Id"], "Votos emitidos en la categoría de ".$Categoria, $CuerpoCorreo); print "

Votos guardados correctamente

\n"; GestionCategorias("votar", $Categoria, $IdObra, $aaaEdicion); break; // guardarvotos ------------------ // ---------------------------------- default: print "

Acción \"".$Accion."\" no implementada

\n"; GestionCategorias("Lista", $Categoria, "", $aaaEdicion); break; // default ------------------ endswitch; return; } /* Gestion categorías */ /* ====================================================== */ /* ====================================================== */ function EnviarCorreo($IdDestinatario, $asunto, $cuerpo) { //if (Servidor() == "l") return; $cuerpo = "\n\nEste es un mensaje automático enviado desde la web de gestión del\n". "Premio Internacional de las Editoriales Electrónicas.\n". "Es sólo a título informativo.\n\n". $cuerpo. "\n". "http://www.ciencia-ficcion.com/premios/piee/premio.php\n\n"; $GLOBALS["IdUsuario"] = $IdDestinatario; GestionUsuarios("Extraer", $GLOBALS["ini_edicion"]); mail($GLOBALS["Correo"], "[Gestión PIEE] - ".$asunto, $cuerpo, "From: Coordinacion SdCF-Piee \r\nReply-To: Premio Internacional "); @mail("administrador@ciencia-ficcion.com", "[SGPIEE] - ".$asunto, vbReplace($cuerpo, "Es sólo a título informativo", "Es sólo a título informativo (".$GLOBALS["Correo"].")"), "From: Coordinacion SdCF-Piee "); } /* ====================================================== */ // extraigo de $linea los puntos que le ha adjudicado el jurado, // de no haber votado aún, devuelve vacío. /* ====================================================== */ function PuntosObra($IdJurado, $linea) { $nURLOrigen = 4; // $mtrzP Jx:[S/N]:P $nJurado = 0; $nConsolidado = 1; $nPuntos = 2; $puntos = ""; $IdJ = "J".$IdJurado; if (strpos ($linea, "|".$IdJ) === false) return $puntos; $campos = explode("|", $linea); // los campos del registro for ($n = $nURLOrigen; $n < count($campos); ++$n): if (strpos($campos[$n], $IdJ.":") !== false): // false, si coincide no devuelve true sino la posición. $mtrzP = explode(":", $campos[$n]); // los subcampos de puntuaciones $puntos = $mtrzP[$nPuntos]; endif; endfor; return $puntos; } /* ====================================================== */ // Comprueba si el jurado ha votado en todas las categorías, y de ser así, // consolida el voto para el posterior recuento. // Solo se admiten para recuento los votos de los jurados que hayan votado // todas las categorías /* ====================================================== */ function ConsolidarVotacionesJurado($IdJurado) { $ruta = "gestion/".$GLOBALS["ini_edicion"]."/cat."; $IdJ = "|J".$IdJurado.":"; $VotadoR = false; $mtrzR = gGetFile($ruta."relatos.dat.php"); for ($o = 0; $o < count($mtrzR); ++$o): if (strpos($mtrzR[$o], $IdJ) !== false): if (strpos($mtrzR[$o], $IdJ."S:") !== false) return; // si ya está consolidado sale sin analizar más $VotadoR = true; break; endif; endfor; $VotadoA = false; $mtrzA = gGetFile($ruta."articulos.dat.php"); for ($o = 0; $o < count($mtrzA); ++$o): if (strpos($mtrzA[$o], $IdJ) !== false): $VotadoA = true; break; endif; endfor; $VotadoI = false; $mtrzI = gGetFile($ruta."ilustraciones.dat.php"); for ($o = 0; $o < count($mtrzI); ++$o): if (strpos($mtrzI[$o], $IdJ) !== false): $VotadoI = true; break; endif; endfor; // Si se ha votado en todas las categorías se consolida el voto if ($VotadoR == true && $VotadoA == true && $VotadoI == true): for ($o = 0; $o < count($mtrzR); ++$o): $mtrzR[$o] = str_replace($IdJ."N:", $IdJ."S:", $mtrzR[$o]); endfor; for ($o = 0; $o < count($mtrzA); ++$o): $mtrzA[$o] = str_replace($IdJ."N:", $IdJ."S:", $mtrzA[$o]); endfor; for ($o = 0; $o < count($mtrzI); ++$o): $mtrzI[$o] = str_replace($IdJ."N:", $IdJ."S:", $mtrzI[$o]); endfor; gPutFile($ruta."relatos.dat.php", $mtrzR); gPutFile($ruta."articulos.dat.php", $mtrzA); gPutFile($ruta."ilustraciones.dat.php", $mtrzI); return true; else: return false; endif; } /* ====================================================== */ // Calcula y presenta la clasificación de las diferentes categorías. /* ====================================================== */ function Clasificacion($Categoria, $aaaEdicion, $accion) { $area = vbLeft(strToLower($Categoria), 1); $AnchoMatriz = GestionUsuarios("maxId", $aaaEdicion) + 2; $OrdernarPor = 0; $IdObra = $AnchoMatriz - 1; $Puntuacion = $AnchoMatriz; $r = 0; for ($j = 0; $j < $AnchoMatriz; ++$j) $mtrzClas[$r][$j] = 0;// relleno el registro con ceros para marcarlo como "nulo" $mtrzClas[$r][$OrdernarPor] = "10000"; $mtrzClas[$r][$IdObra] = "I"; $mtrzClas[$r][$Puntuacion] = "10000"; // Leo el archivo de la categoría y lo vuelco a la matriz de resultados $mtrz = gGetFile("gestion/".$aaaEdicion."/cat.".$Categoria.".dat.php"); for ($o = 0; $o < count($mtrz); ++$o): if (strpos($mtrz[$o], "|") !== false): ++$r; $suma = 0; $votos = 0; for ($j = 0; $j < $AnchoMatriz; ++$j) $mtrzClas[$r][$j] = 0; // relleno el registro con ceros para marcarlos como "nulos" $campos = explode("|", $mtrz[$o]); // los campos del registro $mtrzClas[$r][$OrdernarPor] = 0; $mtrzClas[$r][$IdObra] = $campos[0]; // IdObra for ($n = 6; $n < count($campos); ++$n): // En el campo 6 del registro de obra empiezan las puntuaciones $puntos = explode(":", $campos[$n]); if ($puntos[1] == "S"): // Solo se tienen en cuenta las puntuaciones consolidadas $IdJurado = str_replace("J", "", $puntos[0]); $mtrzClas[0][$IdJurado] = $IdJurado; // El Id del Jurado en la primera línea. $mtrzClas[$r][$IdJurado] = $puntos[2]; // Los puntos en su lugar del registro // Calculos if ($puntos[2] != "X"): $suma = $suma + $puntos[2]; ++$votos; endif; endif; endfor; if ($suma != 0 && $votos != 0) { $mtrzClas[$r][$Puntuacion] = sprintf ("%01.2f", ($suma / $votos)); $mtrzClas[$r][$OrdernarPor] = substr("00000".($mtrzClas[$r][$Puntuacion] * 100), -5); } endif; endfor; // Ahora, dependiendo de si se piden órdenar por algún jurado, se traslada su puntuación al campo de ordenación if ($GLOBALS["IdJurado"] != "") { for ($r = 1; $r < count($mtrzClas); ++$r): $mtrzClas[$r][$OrdernarPor] = substr("00000".($mtrzClas[$r][$GLOBALS["IdJurado"]] * 100), -5); endfor; } rsort($mtrzClas); print "\n"; for ($r = 0; $r < count($mtrzClas); ++$r): print "\n"; print "\n"; for ($c = 1; $c < $AnchoMatriz; ++$c): if ($mtrzClas[0][$c] != 0): print "\n"; endif; endfor; if ($r == 0): print ""; else: print ""; endif; print "\n"; print "\n"; endfor; print "
 "; // la obra if ($r == 0): print "
Obra
"; else: $GLOBALS["IdObra"] = $mtrzClas[$r][$IdObra]; GestionCategorias("extraer", $Categoria, $mtrzClas[$r][$IdObra], $aaaEdicion); GestionPublicaciones("extraer", $GLOBALS["IdPubObra"], $aaaEdicion); print "". "".$GLOBALS["Titulo"].", de ".$GLOBALS["Autor"]."". ""; endif; print "
"; if ($r == 0): $GLOBALS["IdUsuario"] = $mtrzClas[$r][$c]; GestionUsuarios("extraer", $aaaEdicion); GestionPublicaciones("extraer", $GLOBALS["IdPubJurado0"], $aaaEdicion); $P0 = $GLOBALS["Publicacion"]; GestionPublicaciones("extraer", $GLOBALS["IdPubJurado1"], $aaaEdicion); $P1 = $GLOBALS["Publicacion"]; GestionPublicaciones("extraer", $GLOBALS["IdPubJurado2"], $aaaEdicion); $P2 = $GLOBALS["Publicacion"]; print "". VbLeft($GLOBALS["Iniciales"], 3). ""; else: print $mtrzClas[$r][$c]; endif; print " ". "Resultado". " ". sprintf ("%01.2f", $mtrzClas[$r][$Puntuacion])." 
\n"; } /* ====================================================== */ /* ====================================================== */ function OptionsPublicaciones($Publicacion) { $ArchPub = "gestion/".$GLOBALS["ini_edicion"]."/cfg.publicaciones.dat.php"; gCrearArchivo($ArchPub); $nIdPub = 0; $nPub = 1; $op = ""; $pub = gGetFile($ArchPub); foreach ($pub as $linea) { $campos = explode("|", $linea); if (count($campos) > 1) { $op = $op.""; } } // foreach if ($Publicacion != "") { $op = vbReplace($op, ""; if ($Perfil != "") { $op = vbReplace($op, "". "". "". "". "". "". ""; if ($Fase != "") { $fs = vbReplace($fs, "

".$_SESSION["Usuario_Nombre"]." ".$_SESSION["Usuario_Apellidos"].", eres ".$_SESSION["Usuario_Perfil"]."
";}?> Creado: 1 de noviembre de 2008
Última actualización: 17 de noviembre de 2008