<?php // index.php ob_start(); // Previene errores de redirección require_once 'Configuracion/config.php'; require_once 'Configuracion/db.php'; require_once 'ayudantes.php'; // Si no hay ruta, por defecto va al dashboard $ruta = $_GET['r'] ?? 'dashboard'; switch ($ruta) { // --- DASHBOARD --- case 'dashboard': require_once 'Controladores/EscritorioControlador.php'; (new EscritorioControlador())->index(); break; // --- AUTENTICACIÓN --- case 'auth/login': require_once 'Controladores/AutenticacionControlador.php'; $controlador = new AutenticacionControlador($mysqli, $mysqli_empleados); ($_SERVER['REQUEST_METHOD'] === 'POST') ? $controlador->procesar() : $controlador->mostrarLogin(); break; // RUTA PARA EL SEGUNDO PASO case 'auth/login-admin': require_once 'Controladores/AutenticacionControlador.php'; $controlador = new AutenticacionControlador($mysqli, $mysqli_empleados); ($_SERVER['REQUEST_METHOD'] === 'POST') ? $controlador->procesarAdmin() : $controlador->mostrarLoginAdmin(); break; case 'auth/logout': require_once 'Controladores/AutenticacionControlador.php'; $controlador = new AutenticacionControlador($mysqli, $mysqli_empleados); $controlador->salir(); break; // --- ADMINISTRACIÓN DE USUARIOS --- case 'admin/usuarios': case 'admin/usuarios/guardar': case 'admin/usuarios/ver': case 'admin/usuarios/actualizar': require_once 'Controladores/UsuarioControlador.php'; $controlador = new UsuarioControlador($mysqli, $mysqli_empleados); if ($ruta === 'admin/usuarios/guardar') $controlador->guardar(); elseif ($ruta === 'admin/usuarios/ver') $controlador->ver(); elseif ($ruta === 'admin/usuarios/actualizar') $controlador->actualizar(); else $controlador->index(); break; // --- ADMINISTRACIÓN DE CURSOS --- case 'admin/cursos': case 'admin/cursos/guardar': case 'admin/cursos/borrar': require_once 'Controladores/CursoControlador.php'; $controlador = new CursoControlador($mysqli); if ($ruta === 'admin/cursos/guardar') $controlador->guardar(); elseif ($ruta === 'admin/cursos/borrar') $controlador->borrar(); else $controlador->index(); break; // --- ASIGNACIONES --- case 'admin/asignaciones': case 'admin/asignaciones/individual': case 'admin/asignaciones/masiva': case 'admin/asignaciones/csv': case 'admin/asignaciones/borrar': case 'admin/asignaciones/buscar-empleados': case 'admin/asignaciones/buscar-ccosto': require_once 'Controladores/AsignacionControlador.php'; $controlador = new AsignacionControlador($mysqli, $mysqli_empleados); if ($ruta === 'admin/asignaciones/individual') $controlador->asignarIndividual(); elseif ($ruta === 'admin/asignaciones/buscar-empleados') $controlador->buscarEmpleados(); elseif ($ruta === 'admin/asignaciones/buscar-ccosto') $controlador->buscarCCosto(); elseif ($ruta === 'admin/asignaciones/masiva') $controlador->asignarPorCCosto(); elseif ($ruta === 'admin/asignaciones/csv') $controlador->procesarCSV(); elseif ($ruta === 'admin/asignaciones/borrar') $controlador->borrar(); else $controlador->index(); break; // --- MÓDULO DE INDUCCIÓN --- case 'admin/induccion': require_once 'Controladores/InduccionControlador.php'; (new InduccionControlador($mysqli, $mysqli_empleados))->index(); break; case 'admin/induccion/guardar': require_once 'Controladores/InduccionControlador.php'; (new InduccionControlador($mysqli, $mysqli_empleados))->guardar(); break; case 'admin/induccion/eliminar': require_once 'Controladores/InduccionControlador.php'; (new InduccionControlador($mysqli, $mysqli_empleados))->eliminar(); break; case 'admin/induccion/descargar': require_once 'Controladores/InduccionControlador.php'; (new InduccionControlador($mysqli, $mysqli_empleados))->descargar(); break; case 'admin/induccion/ver-pdf': require_once 'Controladores/InduccionControlador.php'; (new InduccionControlador($mysqli, $mysqli_empleados))->verPdf(); break; case 'admin/induccion/borrar': require_once 'Controladores/InduccionControlador.php'; (new InduccionControlador($mysqli, $mysqli_empleados))->borrar(); break; // --- MÓDULO DE SIGAS --- case 'admin/Sigas': require_once 'Controladores/SigasControlador.php'; (new SigasControlador($mysqli))->index(); break; case 'admin/Sigas/guardar': require_once 'Controladores/SigasControlador.php'; (new SigasControlador($mysqli))->guardar(); break; case 'admin/Sigas/descargar': require_once 'Controladores/SigasControlador.php'; (new SigasControlador($mysqli))->descargar(); break; case 'admin/Sigas/ver-pdf': require_once 'Controladores/SigasControlador.php'; (new SigasControlador($mysqli))->verPdf(); break; case 'admin/Sigas/borrar': require_once 'Controladores/SigasControlador.php'; (new SigasControlador($mysqli))->borrar(); break; // --- MÓDULO DE FORMACION --- case 'admin/Formacion': require_once 'Controladores/FormacionControlador.php'; (new FormacionControlador($mysqli))->index(); break; case 'admin/Formacion/guardar': require_once 'Controladores/FormacionControlador.php'; (new FormacionControlador($mysqli))->guardar(); break; case 'admin/Formacion/descargar': require_once 'Controladores/FormacionControlador.php'; (new FormacionControlador($mysqli))->descargar(); break; case 'admin/Formacion/ver-pdf': require_once 'Controladores/FormacionControlador.php'; (new FormacionControlador($mysqli))->verPdf(); break; case 'admin/Formacion/borrar': require_once 'Controladores/FormacionControlador.php'; (new FormacionControlador($mysqli))->borrar(); break; // --- INSTRUCTOR (Materiales y Evaluaciones) --- case 'instructor/materials': require_once 'Controladores/MaterialControlador.php'; (new MaterialControlador($mysqli))->index(); break; case 'instructor/materiales': case 'instructor/materiales/guardar': case 'instructor/materiales/subir': case 'instructor/materiales/borrar': require_once 'Controladores/MaterialControlador.php'; $ctrl = new MaterialControlador($mysqli); if ($ruta === 'instructor/materiales/guardar') $ctrl->guardar(); elseif ($ruta === 'instructor/materiales/subir') $ctrl->subirArchivo(); elseif ($ruta === 'instructor/materiales/borrar') $ctrl->borrar(); else $ctrl->index(); break; case 'instructor/quizzes': require_once 'Controladores/EvaluacionControlador.php'; (new EvaluacionControlador($mysqli))->index(); break; case 'instructor/quizzes/edit': require_once 'Controladores/EvaluacionControlador.php'; (new EvaluacionControlador($mysqli))->editar(); break; case 'instructor/quizzes/delete': require_once 'Controladores/EvaluacionControlador.php'; (new EvaluacionControlador($mysqli))->borrar(); break; case 'instructor/quizzes/delete_question': require_once 'Controladores/EvaluacionControlador.php'; $ctrl = new EvaluacionControlador($mysqli); $id_pregunta = (int)$_GET['id']; $quiz_id = (int)$_GET['quiz_id']; $ctrl->borrarPregunta($id_pregunta, $quiz_id); break; case 'evaluaciones/resultados': require_once 'Controladores/EvaluacionControlador.php'; $controlador = new EvaluacionControlador($mysqli); ($ruta === 'instructor/quizzes') ? $controlador->index() : $controlador->verResultados(); break; case 'instructor/dashboard': require_once 'Controladores/InstructorControlador.php'; (new InstructorControlador($mysqli))->index(); break; case 'instructor/evaluaciones': require_once 'Controladores/EvaluacionControlador.php'; (new EvaluacionControlador($mysqli))->index(); break; // Agrega esto en tu index.php case 'instructor/resultados/excel': require_once 'Controladores/EvaluacionControlador.php'; (new EvaluacionControlador($mysqli))->excel(); break; // --- ESTUDIANTE (Ver cursos y Diplomas) --- case 'evaluaciones/courses': require_once 'Controladores/EstudianteControlador.php'; (new EstudianteControlador($mysqli))->misCursos(); break; case 'evaluaciones/ver_curso': require_once 'Controladores/EstudianteControlador.php'; (new EstudianteControlador($mysqli))->verCurso(); break; // --- MÓDULO DE EVALUACIONES ASIGNADAS (admin, instructor, student) --- case 'evaluaciones/mis-cursos': require_once 'Controladores/EvaluacionAsigControlador.php'; (new EvaluacionAsigControlador($mysqli))->misCursos(); break; case 'evaluaciones/ver-curso': require_once 'Controladores/EvaluacionAsigControlador.php'; (new EvaluacionAsigControlador($mysqli))->verCurso(); break; case 'evaluaciones/ver-evaluaciones': require_once 'Controladores/EvaluacionAsigControlador.php'; (new EvaluacionAsigControlador($mysqli))->verEvaluaciones(); break; // NUEVA RUTA: Tomar evaluación/quiz case 'evaluaciones/quiz/take': require_once 'Controladores/EvaluacionAsigControlador.php'; (new EvaluacionAsigControlador($mysqli))->tomarQuiz(); break; // NUEVA RUTA: Enviar respuestas del quiz case 'evaluaciones/quiz/submit': require_once 'Controladores/EvaluacionAsigControlador.php'; (new EvaluacionAsigControlador($mysqli))->enviarQuiz(); break; // RUTA CORREGIDA: Diploma con course_id case 'evaluaciones/diploma': require_once 'Controladores/EvaluacionAsigControlador.php'; (new EvaluacionAsigControlador($mysqli))->diploma(); break; // --- MÓDULO DE RESULTADOS rol = (admin - instructor) --- case 'instructor/resultados': require_once 'Controladores/EvaluacionControlador.php'; (new EvaluacionControlador($mysqli))->verResultados(); break; // --- DETALLE DE INTENTO (AJAX) --- case 'instructor/resultados/detalle': require_once 'Controladores/EvaluacionControlador.php'; (new EvaluacionControlador($mysqli))->verDetalleIntento(); break; // --- DIPLOMA DESDE INSTRUCTOR/ADMIN --- case 'instructor/resultados/diploma': require_once 'Controladores/EvaluacionControlador.php'; (new EvaluacionControlador($mysqli))->verDiplomaInstructor(); break; // --- FIRMA DIGITAL DESDE INSTRUCTOR/ADMIN --- case 'instructor/resultados/firma': require_once 'Controladores/EvaluacionControlador.php'; (new EvaluacionControlador($mysqli))->verFirmaInstructor(); break; // --- ERROR 404 --- default: header("HTTP/1.0 404 Not Found"); echo "<h1>404 - Página no encontrada</h1>"; break; } ob_end_flush();