// $Id$
require_once 'Pregunta.php';
-require_once 'Respuesta.php';
+require_once 'Respuesta.php';
+require_once 'file.creditos.php';
+require_once 'file.php';
+// Levanta las preguntas y respuestas del archivo
+// Devuelve un array con cada una de las preguntas creadas
function Faq_ObtenerPreguntas()
{
// Verifica que el file que guarda las preguntas exista
// Para luego vincularlas con las preguntas
$respuestasPlano = file("data/respuestas.txt");
+ $respuestaId = 0;
foreach($respuestasPlano as $row)
{
$objRespuesta = new Respuesta;
$rowDiv = explode("|",$row);
$objRespuesta->idPregunta = $rowDiv[0];
+ $objRespuesta->id = $respuestaId;
$objRespuesta->autor = $rowDiv[1];
$objRespuesta->fecha = date('d/m/y H:i:s', $rowDiv[2]);
$objRespuesta->texto = $rowDiv[3];
// ToDo: Manejar los rankings de preguntas
$objRespuesta->ranking = -1;
+ $respuestaId++;
+
if ( array_key_exists($objRespuesta->idPregunta, $RespuestasPorPregunta ) )
{
$ListaRespuestas = $RespuestasPorPregunta[$objRespuesta->idPregunta];
return;
}
-function Faq_IngresarPregunta($UsrId, $Pregunta)
+// Ingresa una pregunta en el sistema.
+// Tiene que haber estado validado que el usuario pueda hacerlo
+function Faq_IngresarPregunta($Usuario, $Pregunta)
{
- $Fecha = time();
+ // Valida nuevamente que el usuario tenga los creditos suficientes para
+ // dar de alta la pregunta
+ if ( $Usuario->GetCreditos() > 0 )
+ {
+ $Fecha = time();
+ // Obtiene la lista de preguntas ya existentes
+ $Preguntas = Faq_ObtenerPreguntas();
+ $CantidadPreguntas = count($Preguntas);
- $Preguntas = Faq_ObtenerPreguntas();
- $CantidadPreguntas = count($Preguntas);
+ $NuevoId= 0;
+ if ( $CantidadPreguntas != 0 )
+ {
+ $PreguntaObj = $Preguntas[$CantidadPreguntas -1];
+ $NuevoId = $PreguntaObj->id;
+ $NuevoId = $NuevoId + 1;
+ }
- $NuevoId= 0;
- if ( $CantidadPreguntas != 0 )
- {
- $PreguntaObj = $Preguntas[$CantidadPreguntas -1];
- $NuevoId = $PreguntaObj->id;
- $NuevoId = $NuevoId + 1;
+ //Formato:
+ // PreguntaId | UserId | Fecha | Pregunta
+ $Linea = $NuevoId."|".$Usuario->getId()."|".$Fecha."|".$Pregunta."\n";
+ $fp = fopen("data/preguntas.txt","a");
+ if(!$fp)
+ {
+ return "Error en el archivo";
+ }
+ fwrite($fp, $Linea);
+ fclose($fp);
+
+ // Disminuye el credito del usuario, si es que no es asesor y tiene credito infinito
+ if ( !$Usuario->esAsesor() )
+ {
+ file_creditos_preguntar( $Usuario->getId() );
+ }
+
+ return "La pregunta fue dada de alta correctamente";
}
-
- //Formato:
- // PreguntaId | UserId | Fecha | Pregunta
- $Linea = $NuevoId."|".$UsrId."|".$Fecha."|".$Pregunta."\r\n";
- $fp = fopen("data/preguntas.txt","a");
- if(!$fp)
+ else
{
- return "Error en el archivo";
+ return "La pregunta no fue dada de alta. No dispone de credito suficiente";
}
- fwrite($fp, $Linea);
- fclose($fp);
- return "La pregunta fue dada de alta correctamente";
}
+// Ingresa una respuesta para una pregunta seleccionada
+// Tienen que estar chequeadas las precondiciones
function Faq_IngresarRespuesta($PreguntaId, $UsrId, $Respuesta)
{
$Fecha = time();
//Formato:
// PreguntaRespondidaId| UserId | Fecha | Respuesta
- $Linea = $PreguntaId."|".$UsrId."|".$Fecha."|".$Respuesta."\r\n";
+ $Linea = $PreguntaId."|".$UsrId."|".$Fecha."|".$Respuesta."\n";
$fp = fopen("data/respuestas.txt","a");
if(!$fp)
{
return "La respuesta fue dada de alta correctamente";
}
+// Lista las preguntas existentes en el sistema
+// Recibe el usuario que esta logueado, para determinar
+// que opciones de menu le tiene que brindar ( dar de baja pregunta,
+// contestar pregunta, ranquear pregunta ).
function Faq_ListarPreguntas($Usuario)
{
- echo $Usuario->getId();
$Preguntas = Faq_ObtenerPreguntas();
$CantidadPreguntas = count($Preguntas);
if ( $CantidadPreguntas != 0 )
{
- ?>
- <form name="faq_listado_preguntas" action="faq.responderPregunta.php" method="post">
- <?php
- foreach($Preguntas as $ObjPregunta)
+ foreach($Preguntas as $ObjPregunta)
{
if ( $ObjPregunta->activa )
{
- $ObjPregunta->Mostrar();
- ?>
- <input type="radio" name="PreguntaId" value="<?php echo $ObjPregunta->id ?>"> Seleccionar Pregunta <br/>
- <?php
+ $ObjPregunta->toHTML();
+?>
+ <form action="faq.responderPregunta.php" method="post"-->
+ <input type="hidden" name="PreguntaId" value="<?php echo $ObjPregunta->id ?>">
+ <input type=submit value="Responder Pregunta">
+ </form>
+<?php
}
}
- ?>
- <input type=submit value="Responder Pregunta">
- </form>
-<?php
}
else
{
}
if ( $Usuario->esAdmin() )
{
- //echo "<a href='faq.desactivarPregunta.php'>Pasar preguntas a un log historico</a><br/>";
- include 'faq.desactivarPregunta.php';
+ echo "<a href='faq.desactivarPregunta.php'>Pasar preguntas a un log historico</a><br/>";
}
}
+// La funcion agrega el id de la pregunta a la lista de preguntas desactivadas
function Faq_DesactivarPregunta( $PreguntaId )
{
$fp = fopen("data/desactivadas.txt","a");
{
return "Error en el archivo";
}
- fwrite($fp, $PreguntaId."|".time()."\r\n");
+ fwrite($fp, $PreguntaId."|".time()."\n");
fclose($fp);
return "La pregunta fue dada de baja, no sera listada mas, pero conservada en un historico";
}
+
+// La funcion agrega la calificacion de la respuesta en un log
+function Faq_CalificarRespuesta( $respuestaId, $calificacion )
+{
+ if( !fappendcsv("data/calificacion.csv", array($respuestaId, $calificacion) ) )
+ {
+ return "Error en el archivo";
+ }
+ return "La calificacion a la respuesta fue dada de alta";
+}
?>
\ No newline at end of file