Sistema de Enrutamiento - ManuelJDonoso/Proyecto_daw GitHub Wiki

Sistema de Enrutamiento

Propósito y Alcance

Este documento detalla el sistema de enrutamiento central de Crónicas de Mérida, que gestiona las solicitudes entrantes y las dirige a las vistas apropiadas según los parámetros de la URL.
El sistema de enrutamiento sirve como columna vertebral de la estructura de navegación de la aplicación, determinando qué contenido se muestra a los usuarios.

Esta página se centra específicamente en el mecanismo de enrutamiento de solicitudes.
Para obtener información sobre la estructura de diseño que trabaja con el sistema de enrutamiento, consulta la sección de Diseño y Estilo.

Visión General

La aplicación Crónicas de Mérida implementa un sistema de enrutamiento basado en parámetros, simple pero efectivo, centrado en el archivo index.php.
Este patrón de punto de entrada único enruta todas las solicitudes a través de un archivo central, que luego incluye los archivos de vista apropiados basándose en los parámetros de consulta de la URL.

imagen

Detalles de Implementación

Estructura Principal del Enrutador

El sistema de enrutamiento se implementa en index.php mediante una estructura switch-case que evalúa el parámetro de consulta pag.
Cuando se recibe una solicitud, el sistema:

  1. Procesa la sesión y el estado de autenticación del usuario.
  2. Carga el encabezado de la página y el menú.
  3. Verifica el parámetro pag.
  4. Incluye el archivo de vista correspondiente.
  5. Carga el pie de página y cierra la página.

Procesamiento del Parámetro de Ruta

El sistema de enrutamiento depende de la presencia del parámetro pag en la cadena de consulta de la URL.
Este parámetro se verifica utilizando el array superglobal $_GET de PHP:

$pagina = isset($_GET['pag']) ? $_GET['pag'] : 'default';
switch ($pagina) {
    case 'login':
        include 'views/login.php';
        break;
    // Otros casos...
    default:
        include 'views/error.php';
        break;
}

Este enfoque permite una navegación simple y directa a diferentes secciones de la aplicación cambiando el parámetro de la URL.

Rutas Disponibles

La aplicación proporciona numerosas rutas para acceder a diferentes funcionalidades.

Categoría Parámetro de Ruta Vista Objetivo Descripción
Autenticación login views/login.php Página de inicio de sesión del usuario
creat_account views/creat_account.php Registro de cuenta
recuperar views/recuperar.php Recuperación de contraseña
cambiar_contrasena views/cambiar_contrasena.php Cambio de contraseña
Gestión de Usuarios my_profile views/my_profile.php Página de perfil del usuario
assing_role views/assing_role.php Asignación de roles (solo administrador)
delete_user views/delete_user.php Eliminación de usuario (solo administrador)
Sistema de Eventos show_events views/show_events.php Mostrar todos los eventos
event views/event.php Detalles de evento individual
add_event views/add_event.php Agregar nuevo evento (moderador/administrador)
show_my_events views/show_my_events.php Mostrar eventos del usuario
Sistema de Foros forum views/forum.php Página principal del foro
tema views/tema.php Página de tema individual
Gestión de Material material views/material.php Listado de materiales
upload_material views/upload_material.php Agregar nuevo material
loan_material views/loan_material.php Préstamo de materiales
return_material views/return_material.php Devolución de materiales
Sistema de Ayuda notificacion views/notificacion.php Notificaciones de soporte
Otros about views/about.php Página de información

Flujo de Enrutamiento con Roles de Usuario

El sistema integra la autenticación con el enrutamiento al verificar el rol del usuario antes de renderizar la página.
Esto permite componentes y permisos condicionales basados en el rol del usuario.

imagen

Manejo de Errores

Cuando se proporciona un parámetro de ruta inválido o no reconocido, el sistema muestra una página de error:

default:
    include 'views/error.php';
    break;
}

Esto asegura que los usuarios reciban retroalimentación apropiada al intentar acceder a páginas inexistentes.

Integración del Diseño de Página

El sistema de enrutamiento trabaja en conjunto con la estructura de diseño de la aplicación.
Cada página renderizada se incrusta dentro de un diseño consistente que incluye:

  1. Encabezado HTML con referencias CSS (incluido antes del enrutamiento)
  2. Cabecera con banner
  3. Menú de navegación
  4. Área de contenido principal (donde se insertan las vistas enrutadas)
  5. Botón de ayuda (solo para jugadores registrados)
  6. Pie de página

Este ajuste coherente del contenido enrutado garantiza una experiencia de usuario uniforme en toda la aplicación.

imagen

Resumen

El sistema de enrutamiento de Crónicas de Mérida proporciona un enfoque sencillo para la navegación de la página a través de parámetros de URL. Si bien su implementación es sencilla, organiza eficazmente la funcionalidad de la aplicación en secciones discretas y de fácil acceso, al tiempo que mantiene una interfaz de usuario coherente. La integración con los roles de usuario garantiza que el contenido se restrinja adecuadamente en función de los permisos, lo que mejora la seguridad y la experiencia del usuario.