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