2 // vim: set binary noeol et sw=4 sts=4 :
5 // Lucarella, Schein, Arena
7 // Creado: Jonathan Schein ( 01/05/2005 )
9 // $Id: faq.functions.php
11 require_once 'Pregunta.php';
12 require_once 'Respuesta.php';
14 function Faq_ObtenerPreguntas()
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" ) )
20 $RespuestasPorPregunta = array();
22 if ( file_exists ( "data/respuestas.txt" ) )
24 // Levanta todas las respuestas existentes de un archivo,
25 // Para luego vincularlas con las preguntas
26 $respuestasPlano = file("data/respuestas.txt");
28 foreach($respuestasPlano as $row)
30 $objRespuesta = new Respuesta;
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;
41 if ( array_key_exists($objRespuesta->idPregunta, $RespuestasPorPregunta ) )
43 $ListaRespuestas = $RespuestasPorPregunta[$objRespuesta->idPregunta];
47 $ListaRespuestas = array();
50 // Agrega la respuesta a la lista de respuestas correspondiente a una pregunta
51 $ListaRespuestas[] = $objRespuesta;
53 // Guarda la lista de respuestas de la pregunta
54 $RespuestasPorPregunta[$objRespuesta->idPregunta] = $ListaRespuestas;
58 $preguntasDesactivadas = array();
60 if ( file_exists("data/desactivadas.txt" ) )
62 $desactivadasPlano = file("data/desactivadas.txt");
63 foreach ($desactivadasPlano as $row)
65 $rowDiv = explode("|",$row);
66 $preguntasDesactivadas[$rowDiv[0]] = "0";
70 $preguntasPlano = file("data/preguntas.txt");
72 foreach($preguntasPlano as $row)
74 $objPregunta = new Pregunta;
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];
82 // Verifica si una pregunta esta activa o fue dada de baja
83 if ( array_key_exists($objPregunta->id, $preguntasDesactivadas) )
85 $objPregunta->activa = 0;
89 $objPregunta->activa = 1;
92 // Busca las respuestas a la pregunta
93 if ( array_key_exists($objPregunta->id, $RespuestasPorPregunta ) )
95 $objPregunta->respuestas = $RespuestasPorPregunta[$objPregunta->id];
98 $Preguntas[] = $objPregunta;
105 function Faq_IngresarPregunta($UsrId, $Pregunta)
109 $Preguntas = Faq_ObtenerPreguntas();
110 $CantidadPreguntas = count($Preguntas);
113 if ( $CantidadPreguntas != 0 )
115 $PreguntaObj = $Preguntas[$CantidadPreguntas -1];
116 $NuevoId = $PreguntaObj->id;
117 $NuevoId = $NuevoId + 1;
121 // PreguntaId | UserId | Fecha | Pregunta
122 $Linea = $NuevoId."|".$UsrId."|".$Fecha."|".$Pregunta."\r\n";
123 $fp = fopen("data/preguntas.txt","a");
126 return "Error en el archivo";
130 return "La pregunta fue dada de alta correctamente";
133 function Faq_IngresarRespuesta($PreguntaId, $UsrId, $Respuesta)
138 // PreguntaRespondidaId| UserId | Fecha | Respuesta
139 $Linea = $PreguntaId."|".$UsrId."|".$Fecha."|".$Respuesta."\r\n";
140 $fp = fopen("data/respuestas.txt","a");
143 return "Error en el archivo";
147 return "La respuesta fue dada de alta correctamente";
150 function Faq_ListarPreguntas($Usuario)
152 echo $Usuario->getId();
153 $Preguntas = Faq_ObtenerPreguntas();
155 $CantidadPreguntas = count($Preguntas);
157 if ( $CantidadPreguntas != 0 )
160 <form name="faq_listado_preguntas" action="faq.responderPregunta.php" method="post">
162 foreach($Preguntas as $ObjPregunta)
164 if ( $ObjPregunta->activa )
166 $ObjPregunta->Mostrar();
168 <input type="radio" name="PreguntaId" value="<?php echo $ObjPregunta->id ?>"> Seleccionar Pregunta <br/>
173 <input type=submit value="Responder Pregunta">
179 echo "NO HAY PREGUNTAS PARA MOSTRAR";
181 if ( $Usuario->esAdmin() )
183 //echo "<a href='faq.desactivarPregunta.php'>Pasar preguntas a un log historico</a><br/>";
184 include 'faq.desactivarPregunta.php';
188 function Faq_DesactivarPregunta( $PreguntaId )
190 $fp = fopen("data/desactivadas.txt","a");
193 return "Error en el archivo";
195 fwrite($fp, $PreguntaId."|".time()."\r\n");
197 return "La pregunta fue dada de baja, no sera listada mas, pero conservada en un historico";