X-Git-Url: https://git.llucax.com/z.facultad/75.43/tp1.git/blobdiff_plain/a4c3e4f99d98fd53a52082ff4c4f49acc0b970b1..237c40dc072e4a14ca3ce9c53d0de95c3370eba5:/src/lib/faq.functions.php
diff --git a/src/lib/faq.functions.php b/src/lib/faq.functions.php
index 7d35337..81cd54b 100644
--- a/src/lib/faq.functions.php
+++ b/src/lib/faq.functions.php
@@ -1,197 +1,236 @@
-idPregunta = $rowDiv[0];
- $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;
-
- if ( array_key_exists($objRespuesta->idPregunta, $RespuestasPorPregunta ) )
- {
- $ListaRespuestas = $RespuestasPorPregunta[$objRespuesta->idPregunta];
- }
- else
- {
- $ListaRespuestas = array();
- }
-
- // Agrega la respuesta a la lista de respuestas correspondiente a una pregunta
- $ListaRespuestas[] = $objRespuesta;
-
- // Guarda la lista de respuestas de la pregunta
- $RespuestasPorPregunta[$objRespuesta->idPregunta] = $ListaRespuestas;
- }
- }
-
- $preguntasDesactivadas = array();
-
- if ( file_exists("data/desactivadas.txt" ) )
- {
- $desactivadasPlano = file("data/desactivadas.txt");
- foreach ($desactivadasPlano as $row)
- {
- $rowDiv = explode("|",$row);
- $preguntasDesactivadas[$rowDiv[0]] = "0";
- }
- }
-
- $preguntasPlano = file("data/preguntas.txt");
-
- foreach($preguntasPlano as $row)
- {
- $objPregunta = new Pregunta;
-
- $rowDiv = explode("|",$row);
- $objPregunta->id = $rowDiv[0];
- $objPregunta->autor = $rowDiv[1];
- $objPregunta->fecha = date('d/m/y H:i:s', $rowDiv[2]);
- $objPregunta->texto = $rowDiv[3];
-
- // Verifica si una pregunta esta activa o fue dada de baja
- if ( array_key_exists($objPregunta->id, $preguntasDesactivadas) )
- {
- $objPregunta->activa = 0;
- }
- else
- {
- $objPregunta->activa = 1;
- }
-
- // Busca las respuestas a la pregunta
- if ( array_key_exists($objPregunta->id, $RespuestasPorPregunta ) )
- {
- $objPregunta->respuestas = $RespuestasPorPregunta[$objPregunta->id];
- }
-
- $Preguntas[] = $objPregunta;
- }
- return $Preguntas;
- }
- return;
-}
-
-function Faq_IngresarPregunta($UsrId, $Pregunta)
-{
- $Fecha = time();
-
- $Preguntas = Faq_ObtenerPreguntas();
- $CantidadPreguntas = count($Preguntas);
-
- $NuevoId= 0;
- if ( $CantidadPreguntas != 0 )
- {
- $PreguntaObj = $Preguntas[$CantidadPreguntas -1];
- $NuevoId = $PreguntaObj->id;
- $NuevoId = $NuevoId + 1;
- }
-
- //Formato:
- // PreguntaId | UserId | Fecha | Pregunta
- $Linea = $NuevoId."|".$UsrId."|".$Fecha."|".$Pregunta."\r\n";
- $fp = fopen("data/preguntas.txt","a");
- if(!$fp)
- {
- return "Error en el archivo";
- }
- fwrite($fp, $Linea);
- fclose($fp);
- return "La pregunta fue dada de alta correctamente";
-}
-
-function Faq_IngresarRespuesta($PreguntaId, $UsrId, $Respuesta)
-{
- $Fecha = time();
-
- //Formato:
- // PreguntaRespondidaId| UserId | Fecha | Respuesta
- $Linea = $PreguntaId."|".$UsrId."|".$Fecha."|".$Respuesta."\r\n";
- $fp = fopen("data/respuestas.txt","a");
- if(!$fp)
- {
- return "Error en el archivo";
- }
- fwrite($fp, $Linea);
- fclose($fp);
- return "La respuesta fue dada de alta correctamente";
-}
-
-function Faq_ListarPreguntas($EsAdmin)
-{
- $Preguntas = Faq_ObtenerPreguntas();
-
- $CantidadPreguntas = count($Preguntas);
-
- if ( $CantidadPreguntas != 0 )
- {
- ?>
-
-Pasar preguntas a un log historico
";
- }
-}
-
-function Faq_DesactivarPregunta( $PreguntaId )
-{
- $fp = fopen("data/desactivadas.txt","a");
- if(!$fp)
- {
- return "Error en el archivo";
- }
- fwrite($fp, $PreguntaId."|".time()."\r\n");
- fclose($fp);
- return "La pregunta fue dada de baja, no sera listada mas, pero conservada en un historico";
-}
-?>
+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];
+ // La respuesta no fue rankeada
+ // ToDo: Manejar los rankings de preguntas
+ $objRespuesta->ranking = -1;
+
+ $respuestaId++;
+
+ if ( array_key_exists($objRespuesta->idPregunta, $RespuestasPorPregunta ) )
+ {
+ $ListaRespuestas = $RespuestasPorPregunta[$objRespuesta->idPregunta];
+ }
+ else
+ {
+ $ListaRespuestas = array();
+ }
+
+ // Agrega la respuesta a la lista de respuestas correspondiente a una pregunta
+ $ListaRespuestas[] = $objRespuesta;
+
+ // Guarda la lista de respuestas de la pregunta
+ $RespuestasPorPregunta[$objRespuesta->idPregunta] = $ListaRespuestas;
+ }
+ }
+
+ $preguntasDesactivadas = array();
+
+ if ( file_exists("data/desactivadas.txt" ) )
+ {
+ $desactivadasPlano = file("data/desactivadas.txt");
+ foreach ($desactivadasPlano as $row)
+ {
+ $rowDiv = explode("|",$row);
+ $preguntasDesactivadas[$rowDiv[0]] = "0";
+ }
+ }
+
+ $preguntasPlano = file("data/preguntas.txt");
+
+ foreach($preguntasPlano as $row)
+ {
+ $objPregunta = new Pregunta;
+
+ $rowDiv = explode("|",$row);
+ $objPregunta->id = $rowDiv[0];
+ $objPregunta->autor = $rowDiv[1];
+ $objPregunta->fecha = date('d/m/y H:i:s', $rowDiv[2]);
+ $objPregunta->texto = $rowDiv[3];
+
+ // Verifica si una pregunta esta activa o fue dada de baja
+ if ( array_key_exists($objPregunta->id, $preguntasDesactivadas) )
+ {
+ $objPregunta->activa = 0;
+ }
+ else
+ {
+ $objPregunta->activa = 1;
+ }
+
+ // Busca las respuestas a la pregunta
+ if ( array_key_exists($objPregunta->id, $RespuestasPorPregunta ) )
+ {
+ $objPregunta->respuestas = $RespuestasPorPregunta[$objPregunta->id];
+ }
+
+ $Preguntas[] = $objPregunta;
+ }
+ return $Preguntas;
+ }
+ return;
+}
+
+// Ingresa una pregunta en el sistema.
+// Tiene que haber estado validado que el usuario pueda hacerlo
+function Faq_IngresarPregunta($Usuario, $Pregunta)
+{
+ // Valida nuevamente que el usuario tenga los creditos suficientes para
+ // dar de alta la pregunta
+ if ( $Usuario->GetCreditos() > 0 )
+ {
+ $Fecha = time();
+ // Obtiene la lista de preguntas ya existentes
+ $Preguntas = Faq_ObtenerPreguntas();
+ $CantidadPreguntas = count($Preguntas);
+
+ $NuevoId= 0;
+ if ( $CantidadPreguntas != 0 )
+ {
+ $PreguntaObj = $Preguntas[$CantidadPreguntas -1];
+ $NuevoId = $PreguntaObj->id;
+ $NuevoId = $NuevoId + 1;
+ }
+
+ //Formato:
+ // PreguntaId | UserId | Fecha | Pregunta
+ $Linea = $NuevoId."|".$Usuario->getId()."|".$Fecha."|".$Pregunta."\n";
+ $fp = fopen("data/preguntas.txt","a");
+ if(!$fp)
+ {
+ return "Error en el archivo";
+ }
+ fwrite($fp, $Linea);
+ fclose($fp);
+
+ // Disminuye el credito del usuario, si es que no es asesor y tiene credito infinito
+ if ( !$Usuario->esAsesor() )
+ {
+ file_creditos_preguntar( $Usuario->getId() );
+ }
+
+ return "La pregunta fue dada de alta correctamente";
+ }
+ else
+ {
+ return "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)
+{
+ $Fecha = time();
+
+ //Formato:
+ // PreguntaRespondidaId| UserId | Fecha | Respuesta
+ $Linea = $PreguntaId."|".$UsrId."|".$Fecha."|".$Respuesta."\n";
+ $fp = fopen("data/respuestas.txt","a");
+ if(!$fp)
+ {
+ return "Error en el archivo";
+ }
+ fwrite($fp, $Linea);
+ fclose($fp);
+ return "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)
+{
+ $Preguntas = Faq_ObtenerPreguntas();
+
+ $CantidadPreguntas = count($Preguntas);
+
+ if ( $CantidadPreguntas != 0 )
+ {
+ foreach($Preguntas as $ObjPregunta)
+ {
+ if ( $ObjPregunta->activa )
+ {
+ $ObjPregunta->toHTML();
+?>
+
+esAdmin() )
+ {
+ echo "Pasar preguntas a un log historico
";
+ }
+}
+
+// La funcion agrega el id de la pregunta a la lista de preguntas desactivadas
+function Faq_DesactivarPregunta( $PreguntaId )
+{
+ $fp = fopen("data/desactivadas.txt","a");
+ if(!$fp)
+ {
+ return "Error en el archivo";
+ }
+ fwrite($fp, $PreguntaId."|".time()."\n");
+ fclose($fp);
+ return "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
+function Faq_CalificarRespuesta( $respuestaId, $calificacion )
+{
+ if( !fappendcsv("data/calificacion.csv", array($respuestaId, $calificacion) ) )
+ {
+ return "Error en el archivo";
+ }
+ return "La calificacion a la respuesta fue dada de alta";
+}
+?>
\ No newline at end of file