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]; // Agrega la calificacion de la respuesta, si es que esta calificada if ( array_key_exists($respuestaId, $calificaciones ) ) { $objRespuesta->ranking = $calificaciones[$respuestaId]; } else { $objRespuesta->ranking = -1; } $respuestaId++; if ( array_key_exists($objRespuesta->idPregunta, $respuestasPorPregunta ) ) { $listaRespuestas = $respuestasPorPregunta[$objRespuesta->idPregunta]; } else { $listaRespuestas = array(); } // Agrega la respuesta a la lista de respuestas correspondiente a una pregunta $listaRespuestas[] = $objRespuesta; // Guarda la lista de respuestas de la pregunta $respuestasPorPregunta[$objRespuesta->idPregunta] = $listaRespuestas; } fclose($respuestasPlano); } $preguntasDesactivadas = array(); if ( file_exists("data/desactivadas.csv" ) ) { $desactivadasPlano = @fopen("data/desactivadas.csv", 'r'); while ($rowDiv = fgetcsv($desactivadasPlano,4096) ) { $preguntasDesactivadas[$rowDiv[0]] = "0"; } fclose($desactivadasPlano); } $preguntasPlano = fopen("data/preguntas.csv", 'r'); while($rowDiv = fgetcsv($preguntasPlano, 4096 ) ) { $objPregunta = new Pregunta; $objPregunta->id = $rowDiv[0]; $objPregunta->autor = $rowDiv[1]; $objPregunta->fecha = date('d/m/y H:i:s', $rowDiv[2]); $objPregunta->texto = $rowDiv[3]; // Verifica si una pregunta esta activa o fue dada de baja if ( array_key_exists($objPregunta->id, $preguntasDesactivadas) ) { $objPregunta->activa = 0; } else { $objPregunta->activa = 1; } // Busca las respuestas a la pregunta if ( array_key_exists($objPregunta->id, $respuestasPorPregunta ) ) { // Ordena las respuestas por ranking $objPregunta->respuestas = Faq_SortRespuestasByRanking($respuestasPorPregunta[$objPregunta->id]); } $preguntas[] = $objPregunta; } fclose($preguntasPlano); return $preguntas; } else { return; } } // Obtiene la cantidad de preguntas existentes // de manera rapida ( sin armar elobjeto pregunta ) function Faq_ObtenerCantidadPreguntas() { if ( file_exists ( "data/preguntas.csv" ) ) { $preguntas = @file("data/preguntas.csv"); return count($preguntas); } else { return 0; } } // Ingresa una pregunta en el sistema. // Tiene que haber estado validado que el usuario pueda hacerlo function Faq_IngresarPregunta($Usuario, $Pregunta) { // 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 $cantidadPreguntas = Faq_ObtenerCantidadPreguntas(); $NuevoId= $cantidadPreguntas + 1; //Formato: // PreguntaId | UserId | Fecha | Pregunta if( !fappendcsv("data/preguntas.csv", array($NuevoId,$Usuario->getId(),$fecha,$Pregunta) ) ) { return "Error en el archivo"; } // Disminuye el credito del usuario, si es que no es asesor y tiene credito infinito if ( !$Usuario->esAsesor() ) { file_creditos_preguntar( $Usuario->getId() ); } // Loguea la accion file_log_add($Usuario->getId(), "Da de alta de una pregunta"); return "La pregunta fue dada de alta correctamente"; } else { return "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) { $Fecha = time(); //Formato: // PreguntaRespondidaId| UserId | Fecha | Respuesta if( !fappendcsv("data/respuestas.csv", array($PreguntaId,$UsrId,$Fecha,$Respuesta) ) ) { return "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"; } // 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) { $Preguntas = Faq_ObtenerPreguntas(); $CantidadPreguntas = count($Preguntas); if ( $CantidadPreguntas != 0 ) { foreach($Preguntas as $ObjPregunta) { if ( $ObjPregunta->activa ) { $ObjPregunta->toHTML(); ?>
esAdmin() ) { echo "Pasar preguntas a un log historico%s | ', $link, $q, $i + 1); } printfl('