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