]> git.llucax.com Git - z.facultad/75.43/tp1.git/blobdiff - src/lib/faq.functions.php
Alta de creditos para el usuario que rankea una pregunta
[z.facultad/75.43/tp1.git] / src / lib / faq.functions.php
index a11e5d2328d1a95bb3b297984f02b30f5c1bd27e..929af479b134aa05f3a62a4e508f409dddb2a406 100644 (file)
@@ -10,7 +10,8 @@
 
 require_once 'Pregunta.php';
 require_once 'Respuesta.php';
-require_once 'file.creditos.php';  
+require_once 'file.creditos.php'; 
+require_once 'file.php';
 
 // Levanta las preguntas y respuestas del archivo
 // Devuelve un array con cada una de las preguntas creadas
@@ -20,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" ) )
        {
@@ -28,33 +41,43 @@ function Faq_ObtenerPreguntas()
         // Para luego vincularlas con las preguntas
         $respuestasPlano = file("data/respuestas.txt");
        
+        $respuestaId = 0;
         foreach($respuestasPlano as $row)
         {
           $objRespuesta = new Respuesta;
                 
                 $rowDiv = explode("|",$row);
                 $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];
-                // 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;   
          }
        }
        
@@ -93,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. 
@@ -182,23 +208,19 @@ function Faq_ListarPreguntas($Usuario)
 
  if ( $CantidadPreguntas != 0 )
  {
- ?>
- <form name="faq_listado_preguntas" action="faq.responderPregunta.php" method="post">
- <?php 
-   foreach($Preguntas as $ObjPregunta)
+  foreach($Preguntas as $ObjPregunta)
         {
                if ( $ObjPregunta->activa )
                {
                        $ObjPregunta->toHTML();
-                               ?>
-                               <input type="radio" name="PreguntaId" value="<?php echo $ObjPregunta->id ?>"> Seleccionar Pregunta <br/> 
-                               <?php
+?>
+                               <form action="faq.responderPregunta.php" method="post"-->
+                                                       <input type="hidden" name="PreguntaId" value="<?php echo $ObjPregunta->id ?>">
+                                                       <input type=submit value="Responder Pregunta">
+                               </form> 
+<?php
                }
         }
-        ?>
-        <input type=submit value="Responder Pregunta">
-   </form>
-<?php
  }
  else
  {
@@ -222,4 +244,32 @@ function Faq_DesactivarPregunta( $PreguntaId )
  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 ( 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