require_once 'pagina.php';
require_once 'file.log.php';
-// Levanta las preguntas y respuestas del archivo
-// Devuelve un array con cada una de las preguntas creadas
-function Faq_ObtenerPreguntas()
+// Levanta las respuestas del archivo, y devuelve
+// todas las respuestas para una pregunta determinada
+function Faq_ObtenerRespuestas($PreguntaId)
{
- // Verifica que el file que guarda las preguntas exista
- // Si no existe, devuelve un array vacio
- if ( file_exists ( "data/preguntas.csv" ) )
- {
- // Levanta las puntuaciones de preguntas desde el archivo
+ // Levanta las puntuaciones de respuestas desde el archivo
// Si existe el archivo
$calificaciones = array();
if ( file_exists ( "data/calificacion.csv" ) )
$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];
+ $objRespuesta->autorPregunta = $rowDiv[1];
+ $objRespuesta->autor = $rowDiv[2];
+ $objRespuesta->fecha = date('d/m/y H:i:s', $rowDiv[3]);
+ $objRespuesta->texto = $rowDiv[4];
// Agrega la calificacion de la respuesta, si es que esta calificada
if ( array_key_exists($respuestaId, $calificaciones ) )
{
}
fclose($respuestasPlano);
}
-
+ if ( array_key_exists ( $PreguntaId, $respuestasPorPregunta ) )
+ {
+ return Faq_SortRespuestasByRanking($respuestasPorPregunta[$PreguntaId]);
+ }
+ else
+ {
+ return;
+ }
+}
+// Levanta las preguntas
+// Devuelve un array con cada una de las preguntas creadas
+function Faq_ObtenerPreguntas()
+{
+ // Verifica que el file que guarda las preguntas exista
+ // Si no existe, devuelve un array vacio
+ if ( file_exists ( "data/preguntas.csv" ) )
+ {
$preguntasDesactivadas = array();
if ( file_exists("data/desactivadas.csv" ) )
$objPregunta->activa = 1;
}
- // Busca las respuestas a la pregunta
+/* // Busca las respuestas a la pregunta
if ( array_key_exists($objPregunta->id, $respuestasPorPregunta ) )
{
// Ordena las respuestas por ranking
Faq_SortRespuestasByRanking($respuestasPorPregunta[$objPregunta->id]);
}
-
- $preguntas[] = $objPregunta;
+*/
+ // Si la pregunta esta activa, la incluye en la lista de preguntas
+ if ( $objPregunta->activa )
+ {
+ $preguntas[] = $objPregunta;
+ }
}
fclose($preguntasPlano);
return $preguntas;
// PreguntaId | UserId | Fecha | Pregunta
if( !fappendcsv("data/preguntas.csv", array($NuevoId,$Usuario->getId(),$fecha,$Pregunta) ) )
{
- return "Error en el archivo";
+ return error("Error en el archivo");
}
// Disminuye el credito del usuario, si es que no es asesor y tiene credito infinito
}
// Loguea la accion
file_log_add($Usuario->getId(), "Da de alta de una pregunta");
- return "La pregunta fue dada de alta correctamente";
+ return ok("La pregunta fue dada de alta correctamente");
}
else
{
- return "La pregunta no fue dada de alta. No dispone de credito suficiente";
+ return error("La pregunta no fue dada de alta. No dispone de credito suficiente");
}
}
// Ingresa una respuesta para una pregunta seleccionada
// Tienen que estar chequeadas las precondiciones
-function Faq_IngresarRespuesta($PreguntaId, $UsrId, $Respuesta)
+function Faq_IngresarRespuesta($PreguntaId, $AutorPreguntaId, $UsrId, $Respuesta)
{
$Fecha = time();
//Formato:
- // PreguntaRespondidaId| UserId | Fecha | Respuesta
- if( !fappendcsv("data/respuestas.csv", array($PreguntaId,$UsrId,$Fecha,$Respuesta) ) )
+ // PreguntaRespondidaId| AutorDePreguntaId | UserId | Fecha | Respuesta
+ if( !fappendcsv("data/respuestas.csv", array($PreguntaId,$AutorPreguntaId,$UsrId,$Fecha,$Respuesta) ) )
{
- return "Error en el archivo";
+ return error("Error en el archivo");
}
// Loguea la accion
file_log_add($UsrId, "Da de alta de una respuesta");
- return "La respuesta fue dada de alta correctamente";
+ return ok("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)
+function Faq_ListarPreguntas($Usuario)
{
- $Preguntas = Faq_ObtenerPreguntas();
-
- $CantidadPreguntas = count($Preguntas);
-
- if ( $CantidadPreguntas != 0 )
- {
- foreach($Preguntas as $ObjPregunta)
- {
- if ( $ObjPregunta->activa )
- {
- $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
- }
- }
- }
- else
- {
- echo "NO HAY PREGUNTAS PARA MOSTRAR";
- }
- if ( $Usuario->esAdmin() )
- {
+ Faq_Listador ( Faq_ObtenerPreguntas() );
+ if ( $Usuario->esAdmin() )
+ {
echo "<a href='faq.desactivarPregunta.php'>Pasar preguntas a un log historico</a><br/>";
- }
-}*/
+ }
+}
-function Faq_ListarPreguntas($Usuario)
+function Faq_ListarRespuestas( $PreguntaId, $Pagina )
{
- Faq_Listador ( Faq_ObtenerPreguntas() );
+ Faq_Listador ( Faq_ObtenerRespuestas($PreguntaId) , $Pagina);
}
-
// La funcion agrega el id de la pregunta a la lista de preguntas desactivadas
function Faq_DesactivarPregunta( $PreguntaId , $UsrId)
{
// Formato PreguntaID,fechaYHora
if( !fappendcsv("data/desactivadas.csv", array($PreguntaId, time()) ) )
{
- return "Error en el archivo";
+ return error("Error en el archivo");
}
// Loguea la accion
- file_log_add($UsrId, "Pasa una respuesta a log historico");
+ file_log_add($UsrId, "Desactiva una pregunta");
- return "La pregunta fue dada de baja, no sera listada mas, pero conservada en un historico";
+ return ok("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
{
$countRespuesta ++;
}
- $autorId = $row[1];
+ $autorId = $row[2];
fclose($respuestasPlano);
}
else
{
- return "No existen respuestas";
+ return warn("No existen respuestas");
}
if( !fappendcsv("data/calificacion.csv", array($RespuestaId, $Calificacion) ) )
{
- return "Error en el archivo";
+ return error("Error en el archivo");
}
- if ( !file_creditos_add($autorId, $Calificacion ) )
+ $autorPregunta = new Usuario($autorId);
+ // da de alta los creditos, solo si no es asesor
+ if ( !$autorPregunta->esAsesor() )
{
- return "Error al computar los creditos al usuario";
+ if ( !file_creditos_add($autorId, $Calificacion ) )
+ {
+ return error("Error al computar los creditos al usuario");
+ }
}
// Loguea la accion
file_log_add($UsrId, "Califica una respuesta con $Calificacion puntos");
- return "La calificacion a la respuesta fue dada de alta";
+ return ok("La calificacion a la respuesta fue dada de alta");
}
function Faq_SortRespuestasByRanking($respuestas)
{
$obj = $ObjetosAListar[$from++];
$obj->toHTML();
- //printfl(' <tr>');
- //printfl(' </tr>');
}
}
- printfl('<table summary="Paginador" border="0"><tr>');
+
$pags = ceil($total / $cant);
- if ($pags == 1) return; // Si tengo una sóla página, para qué el paginador?
- // Arrastro query string, si corresponde
+ if ($pags == 1) return;
+ printfl('<table summary="Paginador" border="0"><tr>');
+ // Arrastro query string, si corresponde
if ( isset($_SERVER['QUERY_STRING'] ) )
{
- $query = $_SERVER['QUERY_STRING'];
+ $query = str_replace('&', '&', $_SERVER['QUERY_STRING']);
}
else
{
$query = '';
}
- if (($pos = strpos($query, 'lista_from=')) !== false)
+ if (($pos = strpos($query, '&lista_from=')) !== false)
+ {
+ if ($pos) $query = substr($query, 0, $pos);
+ else $query = '';
+ }
+ if (($pos = strpos($query, 'lista_from=')) !== false)
{
- if ($pos) $query = substr($query, 0, --$pos);
+ if ($pos) $query = substr($query, 0, $pos );
else $query = '';
}
for ($i = 0; $i < $pags; ++$i)
{
- $from = $i * $cant;
- $q = $query ? "$query&lista_from=$from" : "lista_from=$from";
- printfl('<td><a href="%s?%s">%s</a></td>', $link, $q, $i + 1);
+ $from = $i * $cant;
+ $q = $query ? "$query&lista_from=$from" : "lista_from=$from";
+ printfl('<td><a href="%s?%s">%s</a></td>', $link, $q, $i + 1);
}
printfl('</tr></table>');
}