idPregunta = $rowDiv[0]; $objRespuesta->autor = $rowDiv[1]; $objRespuesta->fecha = date('d/m/y H:i:s', $rowDiv[2]); $objRespuesta->texto = $rowDiv[3]; // La respuesta no fue rankeada // ToDo: Manejar los rankings de preguntas $objRespuesta->ranking = -1; 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; } } $preguntasDesactivadas = array(); if ( file_exists("data/desactivadas.txt" ) ) { $desactivadasPlano = file("data/desactivadas.txt"); foreach ($desactivadasPlano as $row) { $rowDiv = explode("|",$row); $preguntasDesactivadas[$rowDiv[0]] = "0"; } } $preguntasPlano = file("data/preguntas.txt"); foreach($preguntasPlano as $row) { $objPregunta = new Pregunta; $rowDiv = explode("|",$row); $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 ) ) { $objPregunta->respuestas = $RespuestasPorPregunta[$objPregunta->id]; } $Preguntas[] = $objPregunta; } return $Preguntas; } return; } // 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 $Preguntas = Faq_ObtenerPreguntas(); $CantidadPreguntas = count($Preguntas); $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"; } 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 $Linea = $PreguntaId."|".$UsrId."|".$Fecha."|".$Respuesta."\n"; $fp = fopen("data/respuestas.txt","a"); if(!$fp) { return "Error en el archivo"; } fwrite($fp, $Linea); fclose($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) { $Preguntas = Faq_ObtenerPreguntas(); $CantidadPreguntas = count($Preguntas); if ( $CantidadPreguntas != 0 ) { ?>
esAdmin() ) { echo "Pasar preguntas a un log historico