From e92b831febcf1737682bfb7aa28c552a0dc8dabb Mon Sep 17 00:00:00 2001 From: Jonathan Schein Date: Sat, 7 May 2005 00:46:22 +0000 Subject: [PATCH] Alta de creditos para el usuario que rankea una pregunta --- src/data/preguntas.txt | 1 + src/data/respuestas.txt | 3 ++ src/faq.responderPregunta.php | 5 +-- src/lib/Pregunta.php | 1 + src/lib/faq.functions.php | 71 +++++++++++++++++++++++++++-------- 5 files changed, 62 insertions(+), 19 deletions(-) diff --git a/src/data/preguntas.txt b/src/data/preguntas.txt index 6e80f23..e8d7cbe 100644 --- a/src/data/preguntas.txt +++ b/src/data/preguntas.txt @@ -1,2 +1,3 @@ 0|1|1115264860|Puedo preguntar? 1|2|1115268467|Otra pregunta +2|3|1115420890|Otra pregunta? diff --git a/src/data/respuestas.txt b/src/data/respuestas.txt index 714875b..7678ecb 100644 --- a/src/data/respuestas.txt +++ b/src/data/respuestas.txt @@ -1,2 +1,5 @@ 0|1|1115267017|SI! 0|1|1115355278|Puede ser! +1||1115420754|Esto es otra respuesta +1|3|1115420803|Esto es otra respuesta +2|1|1115420939|Claro diff --git a/src/faq.responderPregunta.php b/src/faq.responderPregunta.php index 55962fa..b3b2acd 100644 --- a/src/faq.responderPregunta.php +++ b/src/faq.responderPregunta.php @@ -20,9 +20,8 @@ pagina_cabecera('Responder una Pregunta'); if (isset($_POST['Respuesta'])) { // Muestro el formulario y luego el mensaje del intento de formulacion de pregunta - faq_form_responder_pregunta($_POST['PreguntaId']); - //Todo: Falta que maneje el tema de usuario - echo Faq_IngresarRespuesta($_POST['PreguntaId'],"1",$_POST['Respuesta']); + //faq_form_responder_pregunta($_POST['PreguntaId']); + echo Faq_IngresarRespuesta($_POST['PreguntaId'],$_SESSION['user']->GetId(),$_POST['Respuesta']); } else { diff --git a/src/lib/Pregunta.php b/src/lib/Pregunta.php index 80f4253..3823275 100644 --- a/src/lib/Pregunta.php +++ b/src/lib/Pregunta.php @@ -37,6 +37,7 @@ class Pregunta extends Item foreach ( $this->respuestas as $objRespuesta ) { $objRespuesta->toHTML(); + echo $objRespuesta->ranking ; if ( ( $this->autor == $_SESSION['user']->getId() ) && ( $objRespuesta->ranking == -1 ) ) { faq_form_ir_a_calificar_respuesta($objRespuesta->id); diff --git a/src/lib/faq.functions.php b/src/lib/faq.functions.php index 81cd54b..929af47 100644 --- a/src/lib/faq.functions.php +++ b/src/lib/faq.functions.php @@ -21,7 +21,19 @@ function Faq_ObtenerPreguntas() // Si no existe, devuelve un array vacio if ( file_exists ( "data/preguntas.txt" ) ) { - $RespuestasPorPregunta = array(); + // Levanta las puntuaciones de preguntas desde el archivo + // Si existe el archivo + $calificaciones = array(); + if (($fp = fopen('data/calificacion.csv', 'r')) === true) + { + while ($data = fgetcsv ($fp, 4096)) + { + $calificaciones[$data[0]] = $data[1]; + } + fclose ($fp); + } + + $respuestasPorPregunta = array(); if ( file_exists ( "data/respuestas.txt" ) ) { @@ -40,26 +52,32 @@ function Faq_ObtenerPreguntas() $objRespuesta->autor = $rowDiv[1]; $objRespuesta->fecha = date('d/m/y H:i:s', $rowDiv[2]); $objRespuesta->texto = $rowDiv[3]; - // La respuesta no fue rankeada - // ToDo: Manejar los rankings de preguntas - $objRespuesta->ranking = -1; + // Agrega la calificacion de la respuesta, si es que esta calificada + if ( array_key_exists($respuestaId, $calificaciones ) ) + { + $objRespuesta->ranking = $calificaciones[$respuestaId]; + } + else + { + $objRespuesta->ranking = -1; + } $respuestaId++; - if ( array_key_exists($objRespuesta->idPregunta, $RespuestasPorPregunta ) ) + if ( array_key_exists($objRespuesta->idPregunta, $respuestasPorPregunta ) ) { - $ListaRespuestas = $RespuestasPorPregunta[$objRespuesta->idPregunta]; + $listaRespuestas = $respuestasPorPregunta[$objRespuesta->idPregunta]; } else { - $ListaRespuestas = array(); + $listaRespuestas = array(); } // Agrega la respuesta a la lista de respuestas correspondiente a una pregunta - $ListaRespuestas[] = $objRespuesta; + $listaRespuestas[] = $objRespuesta; // Guarda la lista de respuestas de la pregunta - $RespuestasPorPregunta[$objRespuesta->idPregunta] = $ListaRespuestas; + $respuestasPorPregunta[$objRespuesta->idPregunta] = $listaRespuestas; } } @@ -98,16 +116,19 @@ function Faq_ObtenerPreguntas() } // Busca las respuestas a la pregunta - if ( array_key_exists($objPregunta->id, $RespuestasPorPregunta ) ) + if ( array_key_exists($objPregunta->id, $respuestasPorPregunta ) ) { - $objPregunta->respuestas = $RespuestasPorPregunta[$objPregunta->id]; + $objPregunta->respuestas = $respuestasPorPregunta[$objPregunta->id]; } - $Preguntas[] = $objPregunta; + $preguntas[] = $objPregunta; } - return $Preguntas; + return $preguntas; + } + else + { + return; } - return; } // Ingresa una pregunta en el sistema. @@ -225,12 +246,30 @@ function Faq_DesactivarPregunta( $PreguntaId ) } // La funcion agrega la calificacion de la respuesta en un log -function Faq_CalificarRespuesta( $respuestaId, $calificacion ) +function Faq_CalificarRespuesta( $RespuestaId, $Calificacion ) { - if( !fappendcsv("data/calificacion.csv", array($respuestaId, $calificacion) ) ) + if ( file_exists ( "data/respuestas.txt" ) ) + { + // Levanta todas las respuestas existentes de un archivo, + // Para luego vincularlas con las preguntas + $respuestasPlano = file("data/respuestas.txt"); + $row = $respuestasPlano[$RespuestaId]; + $row = explode("|",$row); + $autorId = $row[1]; + } + else + { + return "No existen respuestas"; + } + if( !fappendcsv("data/calificacion.csv", array($RespuestaId, $Calificacion) ) ) { return "Error en el archivo"; } + if ( !file_creditos_add($autorId, $Calificacion ) ) + { + return "Error al computar los creditos al usuario"; + } + return "La calificacion a la respuesta fue dada de alta"; } ?> \ No newline at end of file -- 2.43.0