]> git.llucax.com Git - z.facultad/75.43/tp1.git/commitdiff
Subo la version final de FAQ,. cambios en la paginacion, en la forma en la que se...
authorJonathan Schein <jonathanschein@fibertel.com.ar>
Sun, 8 May 2005 23:01:15 +0000 (23:01 +0000)
committerJonathan Schein <jonathanschein@fibertel.com.ar>
Sun, 8 May 2005 23:01:15 +0000 (23:01 +0000)
src/faq.ingresarPregunta.php
src/faq.listadoRespuestas.php [new file with mode: 0644]
src/faq.responderPregunta.php
src/img/j.jpg [new file with mode: 0644]
src/lib/Pregunta.php
src/lib/Respuesta.php
src/lib/faq.forms.php
src/lib/faq.functions.php

index 1fa97f1295a00bc3af911eaa77cd0d4be170006c..bc9fec2a9f1fead4959a174e76b435b4ce0e5d4f 100644 (file)
@@ -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 "<br/>";
+                       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 (file)
index 0000000..788e015
--- /dev/null
@@ -0,0 +1,36 @@
+<?php\r
+// vim: set binary noeol et sw=4 sts=4 :\r
+// Grupo 10\r
+//\r
+// Lucarella, Schein, Arena\r
+//\r
+// Creado: Jonathan Schein 08/05/2005\r
+//\r
+// $Id: faq.listadoRespuestas.php 126 2005-05-08 03:16:37Z jschein $\r
+\r
+require_once 'lib/pagina.php';\r
+require_once 'lib/faq.functions.php';\r
+\r
+\r
+if ( isset ($_GET['Texto']) )\r
+{\r
+ marco_cabecera($_GET['Texto']);\r
+}\r
+else\r
+{\r
+ marco_cabecera('Lista de preguntas');\r
+}\r
+\r
+if ( isset ($_GET['PreguntaId']) )\r
+{\r
+ Faq_ListarRespuestas($_GET['PreguntaId'], "faq.listadoRespuestas.php");\r
+}\r
+else\r
+{\r
+ error("No se pueden listar las respuestas para la pregunta");\r
+}\r
+\r
+\r
+marco_pie('Jonathan Schein', 'jonathanschein@fibertel.com.ar', 'img/j.jpg');\r
+\r
+?>\r
index eec60cc1de4754d637404e2be4958b9939883527..1e010033490f5aa30e441764eb78bbc53cb4e24a 100644 (file)
@@ -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 (file)
index 0000000..66ea1e9
Binary files /dev/null and b/src/img/j.jpg differ
index f0e48de39df8a445d66d292d476d371626b30737..d2a86ede0728692e9c5f0a19f4f7ed98c41fea53 100644 (file)
@@ -26,13 +26,41 @@ class Pregunta extends Item
         
         function toHTML()
         {
-         echo "----------------------------------------------------------------<br>";
-               echo "#".$this->id." Fecha: ".$this->fecha."<br>";;
-               $UsuarioPregunta = new Usuario($this->autor);
-               echo $UsuarioPregunta->toHTML();
-               echo $this->texto."<br>";
+         echo "<hr/>";
+               echo "Pregunta #".$this->id." Fecha: ".$this->fecha."<br/>";
+               $usuarioPregunta = new Usuario($this->autor);
+               echo sprintf('<img src="%s" width="100" height="100" align="center" alt="Foto de %s %s" align="middle" /> %s %s',
+            $usuarioPregunta->getFotoFilename(), 
+                                               $usuarioPregunta->getNombre(), 
+                                               $usuarioPregunta->getApellido(),
+                                               $usuarioPregunta->getNombre(),
+            $usuarioPregunta->getApellido());
+               echo "<br/>";
+               echo $this->texto."<br/>";
+               // 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 "<form action='faq.responderPregunta.php' method='post'>";
+                echo "<input type='hidden' name='PreguntaId' value='$this->id'>";
+          echo "<input type='hidden' name='AutorPreguntaId' value='$this->autor'>";
+                echo "<input type='hidden' name='Texto' value='$this->texto'>";
+                echo "<input type=submit value='Responder Pregunta'>";
+                echo "</form>";
+               }
+               else
+               {
+                echo "<br/> <br/>";
+               }
+               
+               // Crea el boton para ver las respuestas a la pregunta
+               echo "<form action='faq.listadoRespuestas.php' method='get'>";
+               echo "<input type='hidden' name='PreguntaId' value='$this->id'>";
+               echo "<input type='hidden' name='Texto' value='$this->texto'>";
+               echo "<input type=submit value='Listar Respuestas'>";
+               echo "</form>";
                
-               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.<br/>" ;
                         }
                        }
-                }
+                }*/
                }
-       }
 }
 
 ?>
\ No newline at end of file
index ad253271f0c9d6148c230c35300338a78364aee7..9b4cc92ec91443f1965c36a82822701da46bb577 100644 (file)
@@ -21,12 +21,37 @@ class Respuesta extends Item
   var $id;
        var $idPregunta;
        var $ranking;
+       var $autorPregunta;
        
        function toHTML()
        {
-         echo "+++++++Respuesta: ";
-               echo "$this->texto<br>";
-               echo "Autor de la respuesta: $this->autor<br>";
+         echo "<hr/>";
+               echo "Respuesta #".$this->id." Fecha: ".$this->fecha."<br/>";
+               $usuarioRespuesta = new Usuario($this->autor);
+               echo sprintf('<img src="%s" width="100" height="100" align="center" alt="Foto de %s %s" align="middle" /> %s %s',
+            $usuarioRespuesta->getFotoFilename(), 
+                                               $usuarioRespuesta->getNombre(), 
+                                               $usuarioRespuesta->getApellido(),
+                                               $usuarioRespuesta->getNombre(),
+            $usuarioRespuesta->getApellido());
+               echo "<br/>";
+               echo $this->texto."<br/>";
+                       
+               if ( ( $this->ranking != -1 ) )
+               {
+                echo "Puntaje: ".$this->ranking."<br/>" ;
+               }
+               else
+               {
+                if ( $this->autorPregunta == $_SESSION['user']->getId() )
+                {
+                       faq_form_ir_a_calificar_respuesta($this->id);
+                }
+                else
+                {
+                       echo "La respuesta aun no fue rankeada.<br/>" ;
+                }
+               }
        }
 }
 
index 3abfddff0b250d5b257928a6f14553ceb8acf025..97fdd09eab588260541a913f50778f7eefa4ea1d 100644 (file)
@@ -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)
 {
 ?>
                        <form name="faq_responder_pregunta" action="<?php echo $_SERVER['PHP_SELF'] ?>" method="post"
@@ -48,6 +48,7 @@ function faq_form_responder_pregunta($PreguntaId)
                 -->
             </script>
                                                <input type=hidden name="PreguntaId" value="<?php echo $PreguntaId ?>">
+                                               <input type=hidden name="AutorPreguntaId" value="<?php echo $AutorPreguntaId ?>">
                                                <textarea name="Respuesta" rows=5 cols=50></textarea><br>
                                                <input type=submit value="Responder">
       </form>
index 0f509317389dccc92e026a396e990c0d3e72afc0..ec6c9afa9e70aedf4c40709d4370f71d83c72625 100644 (file)
@@ -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();
-?>
-                               <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
-               }
-        }
- }
- else
- {
-       echo "NO HAY PREGUNTAS PARA MOSTRAR";
- }
- if ( $Usuario->esAdmin() )
- {
+       Faq_Listador ( Faq_ObtenerPreguntas() );
+       if ( $Usuario->esAdmin() )
+       {
                echo "<a href='faq.desactivarPregunta.php'>Pasar preguntas a un log historico</a><br/>";
- }
-}*/
 }
+}
 
-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('    <tr>');
-        //printfl('    </tr>');
                                }
     }
                printfl('<table summary="Paginador" border="0"><tr>');
                $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'] ) )
                {