Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/jpbarbatic/webapp/llms.txt

Use this file to discover all available pages before exploring further.

El panel no dispone de un router PHP propio. En su lugar, delega la traducción de URLs limpias al módulo mod_rewrite de Apache. Las reglas definidas en public/.htaccess interceptan las peticiones antes de que PHP entre en juego y las redirigen internamente al controlador PHP correspondiente. Las URLs que no coinciden con ninguna regla se resuelven directamente como ficheros dentro de public/.

Reglas de reescritura

El contenido completo del fichero public/.htaccess es:
Options -Indexes

RewriteEngine On

RewriteRule ^([a-z]+)/([0-9]+)$ $1/editar.php?id=$2 [QSA,L]
RewriteRule ^([a-z]+)/nuevo$ $1/nuevo.php [QSA,L]


ErrorDocument 404 /iaw/repaso/web/public/error.php
ErrorDocument 403 /iaw/repaso/web/public/error.php
Cada directiva cumple una función específica:
  • Options -Indexes — Desactiva el listado de directorios. Si un usuario accede a una URL que corresponde a un directorio sin index.php, Apache devolverá un 403 en lugar de mostrar los ficheros del directorio.
  • RewriteRule ^([a-z]+)/([0-9]+)$ — Captura URLs del patrón modulo/numero (por ejemplo /productos/42) y las reescribe internamente a modulo/editar.php?id=numero (es decir, productos/editar.php?id=42). El flag [QSA,L] conserva los parámetros GET existentes y detiene el procesado de reglas posteriores.
  • RewriteRule ^([a-z]+)/nuevo$ — Captura URLs del patrón modulo/nuevo (por ejemplo /productos/nuevo) y las reescribe a modulo/nuevo.php (es decir, productos/nuevo.php). Aplica los mismos flags [QSA,L].
  • ErrorDocument 404 y ErrorDocument 403 — Redirigen los errores 404 (recurso no encontrado) y 403 (acceso denegado) a error.php, que muestra una página de error personalizada.

Mapa de rutas

La siguiente tabla muestra todas las rutas activas del panel, los métodos HTTP que admiten, el controlador PHP al que se resuelven y su función:
URLMétodoControlador PHPDescripción
/GETpublic/index.phpPunto de entrada: redirige a dashboard/ si hay sesión, muestra login si no
/login.phpPOSTpublic/login.phpProcesa el formulario de autenticación
/logout.phpGETpublic/logout.phpDestruye la sesión y redirige al login
/dashboard/GETpublic/dashboard/index.phpPantalla principal del panel
/productos/GETpublic/productos/index.phpListado paginado de productos con filtros
/productos/nuevoGETpublic/productos/nuevo.phpFormulario de creación de producto
/productos/{id}GETpublic/productos/editar.php?id={id}Formulario de edición del producto con ese ID
/productos/guardar.phpPOSTpublic/productos/guardar.phpInserta o actualiza un producto
/productos/borrar.phpPOSTpublic/productos/borrar.phpElimina un producto
/productos/subir_fotos.phpPOSTpublic/productos/subir_fotos.phpSube imágenes asociadas a un producto
/productos/exportar.phpGETpublic/productos/exportar.phpExporta el listado de productos
/categorias/GETpublic/categorias/index.phpListado de categorías
/categorias/nuevoGETpublic/categorias/nuevo.phpFormulario de creación de categoría
/categorias/{id}GETpublic/categorias/editar.php?id={id}Formulario de edición de la categoría con ese ID
/categorias/guardar.phpPOSTpublic/categorias/guardar.phpInserta o actualiza una categoría
/categorias/borrar.phpPOSTpublic/categorias/borrar.phpElimina una categoría
/usuarios/GETpublic/usuarios/index.phpListado de usuarios (requiere permiso usuarios.consulta)
/usuarios/nuevoGETpublic/usuarios/nuevo.phpFormulario de creación de usuario
/usuarios/{id}GETpublic/usuarios/editar.php?id={id}Formulario de edición del usuario con ese ID
/usuarios/crear.phpPOSTpublic/usuarios/crear.phpInserta un nuevo usuario y redirige a su formulario de edición
/usuarios/guardar.phpPOSTpublic/usuarios/guardar.phpActualiza los datos de un usuario existente
/usuarios/borrar.phpPOSTpublic/usuarios/borrar.phpElimina un usuario
/usuarios/guardar_foto.phpPOSTpublic/usuarios/guardar_foto.phpSube la foto de perfil del usuario
/usuarios/guardar_password.phpPOSTpublic/usuarios/guardar_password.phpCambia la contraseña de un usuario
/roles/GETpublic/roles/index.phpListado de roles
/roles/{id}GETpublic/roles/editar.php?id={id}Formulario de edición del rol con ese ID
/roles/guardar.phpPOSTpublic/roles/guardar.phpActualiza un rol
/permisos/GETpublic/permisos/index.phpListado de permisos del sistema
Las reglas de mod_rewrite solo cubren los patrones modulo/nuevo y modulo/{id}. El resto de controladores (listados, guardar, borrar, exportar, subir_fotos) se acceden directamente por su nombre de fichero, sin reescritura.

Manejo de errores

Cuando Apache no encuentra un recurso (404) o el acceso está prohibido (403), las directivas ErrorDocument del .htaccess envían la petición a public/error.php. Este controlador de errores:
  1. Carga config.php para disponer de la constante URL_BASE.
  2. Obtiene el código HTTP actual con http_response_code().
  3. Muestra el código de error con una animación flotante.
  4. Incluye el fragmento de texto específico del error desde html/errores/{codigo}.html.php.
<?php include __DIR__.'/../config.php'?>
<!-- ... estructura HTML de error ... -->
<div class="error-code"><?= http_response_code() ?></div>
<?php include '../html/errores/'.http_response_code().'.html.php' ?>
Los fragmentos disponibles son:
  • html/errores/404.html.php — Muestra el título “Página no encontrada” y un mensaje explicativo.
  • html/errores/403.html.php — Muestra el título “No se puede acceder” y un mensaje de acceso denegado.
Ambos fragmentos usan las clases CSS definidas en el propio error.php (variables CSS, animaciones float y pulse) para mostrar una página de error estilizada con un enlace de regreso al inicio.
Las directivas ErrorDocument del .htaccess llevan la ruta absoluta del servidor hardcodeada para el entorno de desarrollo original:
ErrorDocument 404 /iaw/repaso/web/public/error.php
ErrorDocument 403 /iaw/repaso/web/public/error.php
En un despliegue diferente esta ruta debe actualizarse para que coincida con la ruta real de error.php en el servidor. Por ejemplo, si el panel está desplegado en la raíz del dominio:
ErrorDocument 404 /public/error.php
ErrorDocument 403 /public/error.php
Consulta la guía de Despliegue para más detalles sobre la configuración del entorno.

Build docs developers (and LLMs) love