]> git.llucax.com Git - z.facultad/75.43/tp1.git/blob - src/lib/faq.functions.php
7d353374491d4c3bf1d4911bdedd64cb70198ae3
[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         $preguntasDesactivadas = array();\r
59         \r
60         if ( file_exists("data/desactivadas.txt" ) )\r
61         {\r
62                 $desactivadasPlano = file("data/desactivadas.txt");\r
63                 foreach ($desactivadasPlano as $row)\r
64                 {\r
65                  $rowDiv = explode("|",$row);\r
66                  $preguntasDesactivadas[$rowDiv[0]] = "0";\r
67                 }\r
68         } \r
69         \r
70         $preguntasPlano = file("data/preguntas.txt");\r
71         \r
72         foreach($preguntasPlano as $row) \r
73         {\r
74           $objPregunta = new Pregunta;\r
75 \r
76                 $rowDiv = explode("|",$row);\r
77                 $objPregunta->id                                        = $rowDiv[0];\r
78                 $objPregunta->autor                     = $rowDiv[1];\r
79                 $objPregunta->fecha                             = date('d/m/y H:i:s', $rowDiv[2]);\r
80                 $objPregunta->texto                     = $rowDiv[3];\r
81                 \r
82                 // Verifica si una pregunta esta activa o fue dada de baja\r
83                 if ( array_key_exists($objPregunta->id, $preguntasDesactivadas) )\r
84                 {\r
85                  $objPregunta->activa                   = 0;\r
86                 }\r
87                 else\r
88                 {\r
89                  $objPregunta->activa                   = 1;\r
90                 }\r
91                 \r
92                 // Busca las respuestas a la pregunta\r
93                 if ( array_key_exists($objPregunta->id, $RespuestasPorPregunta ) )\r
94                 {\r
95                           $objPregunta->respuestas = $RespuestasPorPregunta[$objPregunta->id];\r
96                 }\r
97                 \r
98                 $Preguntas[] = $objPregunta;\r
99         }\r
100         return $Preguntas;\r
101  }\r
102  return;\r
103 }\r
104 \r
105 function Faq_IngresarPregunta($UsrId, $Pregunta)\r
106 {\r
107  $Fecha = time();\r
108 \r
109  $Preguntas = Faq_ObtenerPreguntas();\r
110  $CantidadPreguntas = count($Preguntas);\r
111 \r
112  $NuevoId= 0;\r
113  if ( $CantidadPreguntas != 0 )\r
114  {\r
115    $PreguntaObj = $Preguntas[$CantidadPreguntas -1];\r
116          $NuevoId = $PreguntaObj->id;\r
117          $NuevoId = $NuevoId + 1;\r
118  }\r
119 \r
120  //Formato:\r
121  // PreguntaId | UserId | Fecha | Pregunta\r
122  $Linea = $NuevoId."|".$UsrId."|".$Fecha."|".$Pregunta."\r\n";\r
123  $fp = fopen("data/preguntas.txt","a");\r
124  if(!$fp) \r
125  {\r
126    return "Error en el archivo";\r
127  }\r
128  fwrite($fp, $Linea);\r
129  fclose($fp);\r
130  return "La pregunta fue dada de alta correctamente";\r
131 }\r
132 \r
133 function Faq_IngresarRespuesta($PreguntaId, $UsrId, $Respuesta)\r
134 {\r
135  $Fecha = time();\r
136 \r
137  //Formato:\r
138  // PreguntaRespondidaId| UserId | Fecha | Respuesta\r
139  $Linea = $PreguntaId."|".$UsrId."|".$Fecha."|".$Respuesta."\r\n";\r
140  $fp = fopen("data/respuestas.txt","a");\r
141  if(!$fp) \r
142  {\r
143    return "Error en el archivo";\r
144  }\r
145  fwrite($fp, $Linea);\r
146  fclose($fp);\r
147  return "La respuesta fue dada de alta correctamente";\r
148 }\r
149 \r
150 function Faq_ListarPreguntas($EsAdmin)\r
151 {\r
152  $Preguntas = Faq_ObtenerPreguntas();\r
153  \r
154  $CantidadPreguntas = count($Preguntas);\r
155 \r
156  if ( $CantidadPreguntas != 0 )\r
157  {\r
158  ?>\r
159  <form name="faq_listado_preguntas" action="faq.responderPregunta.php" method="post">\r
160  <?php \r
161    foreach($Preguntas as $ObjPregunta)\r
162          {\r
163                 if ( $ObjPregunta->activa )\r
164                 {\r
165                         $ObjPregunta->Mostrar();\r
166                                 ?>\r
167                                 <input type="radio" name="PreguntaId" value="<?php echo $ObjPregunta->id ?>"> Seleccionar Pregunta <br/> \r
168                                 <?php\r
169                 }\r
170          }\r
171          ?>\r
172          <input type=submit value="Responder Pregunta">\r
173    </form>\r
174 <?php\r
175  }\r
176  else\r
177  {\r
178         echo "NO HAY PREGUNTAS PARA MOSTRAR";\r
179  }\r
180  if ( $EsAdmin )\r
181  {\r
182                 echo "<a href='faq.desactivarPregunta.php'>Pasar preguntas a un log historico</a><br/>";\r
183  }\r
184 }\r
185 \r
186 function Faq_DesactivarPregunta( $PreguntaId )\r
187 {\r
188  $fp = fopen("data/desactivadas.txt","a");\r
189  if(!$fp) \r
190  {\r
191    return "Error en el archivo";\r
192  }\r
193  fwrite($fp, $PreguntaId."|".time()."\r\n");\r
194  fclose($fp);\r
195  return "La pregunta fue dada de baja, no sera listada mas, pero conservada en un historico";    \r
196 }\r
197 ?>\r