From: Jonathan Schein Date: Sun, 8 May 2005 23:01:15 +0000 (+0000) Subject: Subo la version final de FAQ,. cambios en la paginacion, en la forma en la que se... X-Git-Tag: svn_import~21 X-Git-Url: https://git.llucax.com/z.facultad/75.43/tp1.git/commitdiff_plain/be2b0db57162b6aa63eb45e20d0150773e107114 Subo la version final de FAQ,. cambios en la paginacion, en la forma en la que se accede a las respuestas a partir de las preguntas, y en los botones que llevan a las diferentes opciones --- diff --git a/src/faq.ingresarPregunta.php b/src/faq.ingresarPregunta.php index 1fa97f1..bc9fec2 100644 --- a/src/faq.ingresarPregunta.php +++ b/src/faq.ingresarPregunta.php @@ -30,7 +30,8 @@ if (isset($_POST['Pregunta'])) } else { - echo "No esta habilitado para dar de alta una pregunta, solicite credito al administrador del sistema"; + echo "
"; + echo warn("No esta habilitado para dar de alta una pregunta, solicite credito al administrador del sistema"); } } else @@ -42,7 +43,7 @@ else } else { - echo "No esta habilitado para dar de alta una pregunta, solicite credito al administrador del sistema"; + echo warn("No esta habilitado para dar de alta una pregunta, solicite credito al administrador del sistema"); } } diff --git a/src/faq.listadoRespuestas.php b/src/faq.listadoRespuestas.php new file mode 100644 index 0000000..788e015 --- /dev/null +++ b/src/faq.listadoRespuestas.php @@ -0,0 +1,36 @@ + diff --git a/src/faq.responderPregunta.php b/src/faq.responderPregunta.php index eec60cc..1e01003 100644 --- a/src/faq.responderPregunta.php +++ b/src/faq.responderPregunta.php @@ -14,18 +14,25 @@ require_once 'lib/faq.functions.php'; require_once 'lib/validacion.php'; require_once 'lib/faq.forms.php'; -marco_cabecera('Responder una Pregunta'); +if ( isset( $_POST['Texto'] ) ) +{ + $cabecera = "Ingrese la respuesta a: ".$_POST['Texto']; +} +else +{ + $cabecera = "Ingreso de respuesta"; +} +marco_cabecera($cabecera); // Si me llegó el form completo if (isset($_POST['Respuesta'])) { // Muestro el formulario y luego el mensaje del intento de formulacion de pregunta - //faq_form_responder_pregunta($_POST['PreguntaId']); - echo Faq_IngresarRespuesta($_POST['PreguntaId'],$_SESSION['user']->GetId(),$_POST['Respuesta']); + echo Faq_IngresarRespuesta($_POST['PreguntaId'],$_POST['AutorPreguntaId'],$_SESSION['user']->GetId(),$_POST['Respuesta']); } else { - faq_form_responder_pregunta($_POST['PreguntaId']); + faq_form_responder_pregunta($_POST['PreguntaId'], $_POST['AutorPreguntaId']); } marco_pie('Jonathan Schein', 'jonathanschein@fibertel.com.ar', 'img/j.jpg'); diff --git a/src/img/j.jpg b/src/img/j.jpg new file mode 100644 index 0000000..66ea1e9 Binary files /dev/null and b/src/img/j.jpg differ diff --git a/src/lib/Pregunta.php b/src/lib/Pregunta.php index f0e48de..d2a86ed 100644 --- a/src/lib/Pregunta.php +++ b/src/lib/Pregunta.php @@ -26,13 +26,41 @@ class Pregunta extends Item function toHTML() { - echo "----------------------------------------------------------------
"; - echo "#".$this->id." Fecha: ".$this->fecha."
";; - $UsuarioPregunta = new Usuario($this->autor); - echo $UsuarioPregunta->toHTML(); - echo $this->texto."
"; + echo "
"; + echo "Pregunta #".$this->id." Fecha: ".$this->fecha."
"; + $usuarioPregunta = new Usuario($this->autor); + echo sprintf('Foto de %s %s %s %s', + $usuarioPregunta->getFotoFilename(), + $usuarioPregunta->getNombre(), + $usuarioPregunta->getApellido(), + $usuarioPregunta->getNombre(), + $usuarioPregunta->getApellido()); + echo "
"; + echo $this->texto."
"; + // Crea el boton para responder la pregunta, si el autor de la pregunta no es quien + // esta logueado + if ( $this->autor != $_SESSION['user']->getId() ) + { + echo "
"; + echo ""; + echo ""; + echo ""; + echo ""; + echo "
"; + } + else + { + echo "

"; + } + + // Crea el boton para ver las respuestas a la pregunta + echo "
"; + echo ""; + echo ""; + echo ""; + echo "
"; - if ( count ( $this->respuestas ) != 0 ) +/* if ( count ( $this->respuestas ) != 0 ) { foreach ( $this->respuestas as $objRespuesta ) { @@ -52,9 +80,8 @@ class Pregunta extends Item echo "La respuesta aun no fue rankeada.
" ; } } - } + }*/ } - } } ?> \ No newline at end of file diff --git a/src/lib/Respuesta.php b/src/lib/Respuesta.php index ad25327..9b4cc92 100644 --- a/src/lib/Respuesta.php +++ b/src/lib/Respuesta.php @@ -21,12 +21,37 @@ class Respuesta extends Item var $id; var $idPregunta; var $ranking; + var $autorPregunta; function toHTML() { - echo "+++++++Respuesta: "; - echo "$this->texto
"; - echo "Autor de la respuesta: $this->autor
"; + echo "
"; + echo "Respuesta #".$this->id." Fecha: ".$this->fecha."
"; + $usuarioRespuesta = new Usuario($this->autor); + echo sprintf('Foto de %s %s %s %s', + $usuarioRespuesta->getFotoFilename(), + $usuarioRespuesta->getNombre(), + $usuarioRespuesta->getApellido(), + $usuarioRespuesta->getNombre(), + $usuarioRespuesta->getApellido()); + echo "
"; + echo $this->texto."
"; + + if ( ( $this->ranking != -1 ) ) + { + echo "Puntaje: ".$this->ranking."
" ; + } + else + { + if ( $this->autorPregunta == $_SESSION['user']->getId() ) + { + faq_form_ir_a_calificar_respuesta($this->id); + } + else + { + echo "La respuesta aun no fue rankeada.
" ; + } + } } } diff --git a/src/lib/faq.forms.php b/src/lib/faq.forms.php index 3abfddf..97fdd09 100644 --- a/src/lib/faq.forms.php +++ b/src/lib/faq.forms.php @@ -33,7 +33,7 @@ function faq_form_ingresar_pregunta() } // Este formulario permite responder una pregunta en el sistema -function faq_form_responder_pregunta($PreguntaId) +function faq_form_responder_pregunta($PreguntaId, $AutorPreguntaId) { ?>
+
diff --git a/src/lib/faq.functions.php b/src/lib/faq.functions.php index 0f50931..ec6c9af 100644 --- a/src/lib/faq.functions.php +++ b/src/lib/faq.functions.php @@ -15,15 +15,11 @@ require_once 'file.php'; require_once 'pagina.php'; require_once 'file.log.php'; -// Levanta las preguntas y respuestas del archivo -// Devuelve un array con cada una de las preguntas creadas -function Faq_ObtenerPreguntas() +// Levanta las respuestas del archivo, y devuelve +// todas las respuestas para una pregunta determinada +function Faq_ObtenerRespuestas($PreguntaId) { - // Verifica que el file que guarda las preguntas exista - // Si no existe, devuelve un array vacio - if ( file_exists ( "data/preguntas.csv" ) ) - { - // Levanta las puntuaciones de preguntas desde el archivo + // Levanta las puntuaciones de respuestas desde el archivo // Si existe el archivo $calificaciones = array(); if ( file_exists ( "data/calificacion.csv" ) ) @@ -51,9 +47,10 @@ function Faq_ObtenerPreguntas() $objRespuesta->idPregunta = $rowDiv[0]; $objRespuesta->id = $respuestaId; - $objRespuesta->autor = $rowDiv[1]; - $objRespuesta->fecha = date('d/m/y H:i:s', $rowDiv[2]); - $objRespuesta->texto = $rowDiv[3]; + $objRespuesta->autorPregunta = $rowDiv[1]; + $objRespuesta->autor = $rowDiv[2]; + $objRespuesta->fecha = date('d/m/y H:i:s', $rowDiv[3]); + $objRespuesta->texto = $rowDiv[4]; // Agrega la calificacion de la respuesta, si es que esta calificada if ( array_key_exists($respuestaId, $calificaciones ) ) { @@ -83,7 +80,23 @@ function Faq_ObtenerPreguntas() } fclose($respuestasPlano); } - + if ( array_key_exists ( $PreguntaId, $respuestasPorPregunta ) ) + { + return Faq_SortRespuestasByRanking($respuestasPorPregunta[$PreguntaId]); + } + else + { + return; + } +} +// Levanta las preguntas +// Devuelve un array con cada una de las preguntas creadas +function Faq_ObtenerPreguntas() +{ + // Verifica que el file que guarda las preguntas exista + // Si no existe, devuelve un array vacio + if ( file_exists ( "data/preguntas.csv" ) ) + { $preguntasDesactivadas = array(); if ( file_exists("data/desactivadas.csv" ) ) @@ -117,7 +130,7 @@ function Faq_ObtenerPreguntas() $objPregunta->activa = 1; } - // Busca las respuestas a la pregunta +/* // Busca las respuestas a la pregunta if ( array_key_exists($objPregunta->id, $respuestasPorPregunta ) ) { // Ordena las respuestas por ranking @@ -125,8 +138,12 @@ function Faq_ObtenerPreguntas() Faq_SortRespuestasByRanking($respuestasPorPregunta[$objPregunta->id]); } - - $preguntas[] = $objPregunta; +*/ + // Si la pregunta esta activa, la incluye en la lista de preguntas + if ( $objPregunta->activa ) + { + $preguntas[] = $objPregunta; + } } fclose($preguntasPlano); return $preguntas; @@ -170,7 +187,7 @@ function Faq_IngresarPregunta($Usuario, $Pregunta) // PreguntaId | UserId | Fecha | Pregunta if( !fappendcsv("data/preguntas.csv", array($NuevoId,$Usuario->getId(),$fecha,$Pregunta) ) ) { - return "Error en el archivo"; + return error("Error en el archivo"); } // Disminuye el credito del usuario, si es que no es asesor y tiene credito infinito @@ -180,86 +197,58 @@ function Faq_IngresarPregunta($Usuario, $Pregunta) } // Loguea la accion file_log_add($Usuario->getId(), "Da de alta de una pregunta"); - return "La pregunta fue dada de alta correctamente"; + return ok("La pregunta fue dada de alta correctamente"); } else { - return "La pregunta no fue dada de alta. No dispone de credito suficiente"; + return error("La pregunta no fue dada de alta. No dispone de credito suficiente"); } } // Ingresa una respuesta para una pregunta seleccionada // Tienen que estar chequeadas las precondiciones -function Faq_IngresarRespuesta($PreguntaId, $UsrId, $Respuesta) +function Faq_IngresarRespuesta($PreguntaId, $AutorPreguntaId, $UsrId, $Respuesta) { $Fecha = time(); //Formato: - // PreguntaRespondidaId| UserId | Fecha | Respuesta - if( !fappendcsv("data/respuestas.csv", array($PreguntaId,$UsrId,$Fecha,$Respuesta) ) ) + // PreguntaRespondidaId| AutorDePreguntaId | UserId | Fecha | Respuesta + if( !fappendcsv("data/respuestas.csv", array($PreguntaId,$AutorPreguntaId,$UsrId,$Fecha,$Respuesta) ) ) { - return "Error en el archivo"; + return error("Error en el archivo"); } // Loguea la accion file_log_add($UsrId, "Da de alta de una respuesta"); - return "La respuesta fue dada de alta correctamente"; + return ok("La respuesta fue dada de alta correctamente"); } -// Lista las preguntas existentes en el sistema -// Recibe el usuario que esta logueado, para determinar -// que opciones de menu le tiene que brindar ( dar de baja pregunta, -// contestar pregunta, ranquear pregunta ). -/*function Faq_ListarPreguntas($Usuario) +function Faq_ListarPreguntas($Usuario) { - $Preguntas = Faq_ObtenerPreguntas(); - - $CantidadPreguntas = count($Preguntas); - - if ( $CantidadPreguntas != 0 ) - { - foreach($Preguntas as $ObjPregunta) - { - if ( $ObjPregunta->activa ) - { - $ObjPregunta->toHTML(); -?> -
- - -
-esAdmin() ) - { + Faq_Listador ( Faq_ObtenerPreguntas() ); + if ( $Usuario->esAdmin() ) + { echo "Pasar preguntas a un log historico
"; - } -}*/ + } +} -function Faq_ListarPreguntas($Usuario) +function Faq_ListarRespuestas( $PreguntaId, $Pagina ) { - Faq_Listador ( Faq_ObtenerPreguntas() ); + Faq_Listador ( Faq_ObtenerRespuestas($PreguntaId) , $Pagina); } - // La funcion agrega el id de la pregunta a la lista de preguntas desactivadas function Faq_DesactivarPregunta( $PreguntaId , $UsrId) { // Formato PreguntaID,fechaYHora if( !fappendcsv("data/desactivadas.csv", array($PreguntaId, time()) ) ) { - return "Error en el archivo"; + return error("Error en el archivo"); } // Loguea la accion - file_log_add($UsrId, "Pasa una respuesta a log historico"); + file_log_add($UsrId, "Desactiva una pregunta"); - return "La pregunta fue dada de baja, no sera listada mas, pero conservada en un historico"; + return ok("La pregunta fue dada de baja, no sera listada mas, pero conservada en un historico"); } // La funcion agrega la calificacion de la respuesta en un log @@ -274,25 +263,25 @@ function Faq_CalificarRespuesta( $RespuestaId, $Calificacion , $UsrId) { $countRespuesta ++; } - $autorId = $row[1]; + $autorId = $row[2]; fclose($respuestasPlano); } else { - return "No existen respuestas"; + return warn("No existen respuestas"); } if( !fappendcsv("data/calificacion.csv", array($RespuestaId, $Calificacion) ) ) { - return "Error en el archivo"; + return error("Error en el archivo"); } if ( !file_creditos_add($autorId, $Calificacion ) ) { - return "Error al computar los creditos al usuario"; + return error("Error al computar los creditos al usuario"); } // Loguea la accion file_log_add($UsrId, "Califica una respuesta con $Calificacion puntos"); - return "La calificacion a la respuesta fue dada de alta"; + return ok("La calificacion a la respuesta fue dada de alta"); } function Faq_SortRespuestasByRanking($respuestas) @@ -335,13 +324,11 @@ function Faq_Listador($ObjetosAListar,$link = '', $cant = 2) { $obj = $ObjetosAListar[$from++]; $obj->toHTML(); - //printfl(' '); - //printfl(' '); } } printfl(''); $pags = ceil($total / $cant); - if ($pags == 1) return; // Si tengo una sóla página, para qué el paginador? + if ($pags == 1) return; // Arrastro query string, si corresponde if ( isset($_SERVER['QUERY_STRING'] ) ) {