Vistas y acciones
Las vistas presentan información y las acciones modifican datos o ejecutan procesos. La separación ayuda a aplicar permisos y evita que una pantalla termine concentrando lógica no relacionada.
Las vistas presentan información y las acciones modifican datos o ejecutan procesos. La separación ayuda a aplicar permisos y evita que una pantalla termine concentrando lógica no relacionada.
Vistas
Una vista declarada como reservas.list se abre dentro del contexto del módulo. La forma pública de referencia es:
router.php?view=reservas.listLa URL exacta puede estar detrás de un alias del tenant o de una navegación interna, por lo que los enlaces entre superficies deben generarse con el helper de navegación disponible y no construirse a mano con rutas privadas.
Una vista debe:
- funcionar al abrirse directamente;
- funcionar cuando se inserta mediante una actualización parcial;
- mostrar un estado vacío y estados de error comprensibles;
- no asumir que el usuario tiene permisos de escritura;
- escapar los datos antes de presentarlos.
Acciones
Una acción se invoca en el contexto de una vista y acepta únicamente los métodos declarados:
router.php?view=reservas.list&action=reservas.createPara una mutación web, la acción debe validar autenticación, permisos, método, token de formulario y datos recibidos. Devuelve una respuesta adecuada al tipo de petición: fragmento HTML para una actualización parcial o respuesta estructurada para una integración.
Permisos
Usa permisos específicos, por ejemplo:
reservas.read
reservas.write
reservas.manageLa lectura no implica escritura. Las operaciones administrativas deben tener un permiso separado y una descripción visible para quien configure el módulo.
Estados que debe contemplar una acción
- éxito;
- datos incompletos o inválidos;
- falta de permiso;
- recurso inexistente;
- conflicto por duplicado o versión;
- servicio externo no disponible.
No devuelvas trazas, consultas, rutas del servidor ni secretos al navegador. Registra solo la información operativa necesaria y muestra un mensaje accionable.
manifest.json
El manifiesto describe qué es el módulo y qué superficies registra. Debe ser válido, legible y suficiente para que una persona pueda revisar el alcance antes de instalarlo.
Mounts y extensiones
Un mount permite colocar una superficie del módulo en una zona estable del CRM sin copiar la interfaz completa. Debe utilizarse cuando el contenido aporta contexto a esa zona, no como sustituto de una