]> git.llucax.com Git - z.facultad/75.43/tp1.git/blob - src/lib/faq.functions.php
Se agrega una función para listar items de forma genérica con paginador.
[z.facultad/75.43/tp1.git] / src / lib / faq.functions.php
1 <?php\r
2 // vim: set binary noeol et sw=4 sts=4 :\r
3 // Grupo 10\r
4 //\r
5 // Lucarella, Schein, Arena\r
6 //\r
7 // Creado: Jonathan Schein ( 01/05/2005 )\r
8 //\r
9 // $Id: faq.functions.php\r
10 \r
11 require_once 'pregunta.php';\r
12 require_once 'respuesta.php';  \r
13 \r
14 function Faq_ObtenerPreguntas()\r
15 {\r
16  // Verifica que el file que guarda las preguntas exista\r
17  // Si no existe, devuelve un array vacio\r
18  if ( file_exists ( "data/preguntas.txt" ) )\r
19  {\r
20         $RespuestasPorPregunta = array();\r
21         \r
22         if ( file_exists ( "data/respuestas.txt" ) )\r
23         {\r
24          // Levanta todas las respuestas existentes de un archivo,\r
25          // Para luego vincularlas con las preguntas\r
26          $respuestasPlano = file("data/respuestas.txt");\r
27         \r
28          foreach($respuestasPlano as $row)\r
29          {\r
30            $objRespuesta = new Respuesta;\r
31                  \r
32                  $rowDiv = explode("|",$row);\r
33                  $objRespuesta->idPregunta      = $rowDiv[0];\r
34                  $objRespuesta->autor                   = $rowDiv[1];\r
35                  $objRespuesta->fecha                           = date('d/m/y H:i:s', $rowDiv[2]);\r
36                  $objRespuesta->texto                   = $rowDiv[3];\r
37                  // La respuesta no fue rankeada\r
38                  // ToDo: Manejar los rankings de preguntas\r
39                  $objRespuesta->ranking         = -1;\r
40                  \r
41                  if ( array_key_exists($objRespuesta->idPregunta, $RespuestasPorPregunta ) )\r
42                  {\r
43                          $ListaRespuestas = $RespuestasPorPregunta[$objRespuesta->idPregunta];\r
44                  }\r
45                  else\r
46                  {\r
47                                  $ListaRespuestas = array();\r
48                  }\r
49                 \r
50                  // Agrega la respuesta a la lista de respuestas correspondiente a una pregunta\r
51                  $ListaRespuestas[] = $objRespuesta;\r
52                 \r
53                  // Guarda la lista de respuestas de la pregunta                \r
54                  $RespuestasPorPregunta[$objRespuesta->idPregunta] = $ListaRespuestas;   \r
55           }\r
56         }\r
57         \r
58         $preguntasPlano = file("data/preguntas.txt");\r
59         \r
60         foreach($preguntasPlano as $row) \r
61         {\r
62           $objPregunta = new Pregunta;\r
63 \r
64                 $rowDiv = explode("|",$row);\r
65                 $objPregunta->id                                        = $rowDiv[0];\r
66                 $objPregunta->autor                     = $rowDiv[1];\r
67                 $objPregunta->fecha                             = date('d/m/y H:i:s', $rowDiv[2]);\r
68                 $objPregunta->texto                     = $rowDiv[3];\r
69                 // ToDo: resolver tema de actividad de preguntas\r
70                 $objPregunta->activa                    = 1;\r
71                 \r
72                 // Busca las respuestas a la pregunta\r
73                 if ( array_key_exists($objPregunta->id, $RespuestasPorPregunta ) )\r
74                 {\r
75                           $objPregunta->respuestas = $RespuestasPorPregunta[$objPregunta->id];\r
76                 }\r
77                 \r
78                 $Preguntas[] = $objPregunta;\r
79         }\r
80         return $Preguntas;\r
81  }\r
82  return;\r
83 }\r
84 \r
85 function Faq_IngresarPregunta($UsrId, $Pregunta)\r
86 {\r
87  $Fecha = time();\r
88 \r
89  $Preguntas = Faq_ObtenerPreguntas();\r
90  $CantidadPreguntas = count($Preguntas);\r
91 \r
92  $NuevoId= 0;\r
93  if ( $CantidadPreguntas != 0 )\r
94  {\r
95    $PreguntaObj = $Preguntas[$CantidadPreguntas -1];\r
96          $NuevoId = $PreguntaObj->id;\r
97          $NuevoId = $NuevoId + 1;\r
98  }\r
99 \r
100  //Formato:\r
101  // PreguntaId | UserId | Fecha | Pregunta\r
102  $Linea = $NuevoId."|".$UsrId."|".$Fecha."|".$Pregunta."\r\n";\r
103  $fp = fopen("data/preguntas.txt","a");\r
104  if(!$fp) \r
105  {\r
106    return "Error en el archivo";\r
107  }\r
108  fwrite($fp, $Linea);\r
109  fclose($fp);\r
110  return "La pregunta fue dada de alta correctamente";\r
111 }\r
112 \r
113 function Faq_IngresarRespuesta($PreguntaId, $UsrId, $Respuesta)\r
114 {\r
115  $Fecha = time();\r
116 \r
117  //Formato:\r
118  // PreguntaRespondidaId| UserId | Fecha | Respuesta\r
119  $Linea = $PreguntaId."|".$UsrId."|".$Fecha."|".$Respuesta."\r\n";\r
120  $fp = fopen("data/respuestas.txt","a");\r
121  if(!$fp) \r
122  {\r
123    return "Error en el archivo";\r
124  }\r
125  fwrite($fp, $Linea);\r
126  fclose($fp);\r
127  return "La respuesta fue dada de alta correctamente";\r
128 }\r
129 \r
130 function Faq_ListarPreguntas()\r
131 {\r
132  $Preguntas = Faq_ObtenerPreguntas();\r
133  \r
134  $CantidadPreguntas = count($Preguntas);\r
135 \r
136  if ( $CantidadPreguntas != 0 )\r
137  {\r
138  ?>\r
139  <form name="faq_listado_preguntas" action="faq.responderPregunta.php" method="post">\r
140  <?php \r
141    foreach($Preguntas as $ObjPregunta)\r
142          {\r
143                 if ( $ObjPregunta->activa )\r
144                 {\r
145                         $ObjPregunta->Mostrar();\r
146                                 ?>\r
147                                 <input type="radio" name="PreguntaId" value="<?php echo $ObjPregunta->id ?>"> Seleccionar Pregunta <br> \r
148                                 <?php\r
149                 }\r
150          }\r
151          ?>\r
152          <input type=submit value="Responder Pregunta">\r
153    </form>\r
154 <?php\r
155  }\r
156  else\r
157  {\r
158         echo "NO HAY PREGUNTAS PARA MOSTRAR";\r
159  }\r
160 }\r
161 ?>\r