File "index.php"

Full Path: C:/wamp64/www/Formaciones/index.php
File size: 11.67 KB
MIME-type: text/x-php
Charset: utf-8

<?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();