GUÍA RÁPIDA DE 15 MINUTOS • ESTÁNDARES DE EJECUCIÓN • VER 1.0

PLAYBOOK 15 MIN

← Volver a Portada

Objetivo: Construir un módulo instalable y desinstalable que pueda montarse en la interfaz de usuario sin tocar una sola línea del core del sistema.

Jerarquía de Archivos

modules/<slug>/
├── manifest.json
├── views/
│   └── panel.php
├── actions/
│   └── create.php
├── mounts/
│   ├── sidebar_link.php
│   └── dashboard_widget.php
└── db/
    ├── install.mysql.sql
    ├── install.sqlite.sql
    ├── uninstall.mysql.sql
    └── uninstall.sqlite.sql
        

Pasos de Ejecución

  1. Crear carpeta modules/<slug>/.
  2. Escribir manifest.json con views, actions y mounts.
  3. Crear SQL de install/uninstall (MySQL + SQLite).
  4. Crear vista principal en views/.
  5. Crear acciones declaradas en actions/.
  6. Crear mounts declarados en mounts/.
  7. Instalar/activar desde Configuración > Módulos.
  8. Asignar permisos por grupo.
  9. Validar php -l en archivos PHP del módulo.

Contrato Operativo

{
  "slug": "mi_modulo",
  "name": "Mi Módulo",
  "description": "Descripción corta",
  "version": "0.1.0",
  "enabled_by_default": false,
  "views": [
    {
      "id": "mi_modulo_panel",
      "title": "Mi Módulo",
      "file": "panel.php",
      "menu": true,
      "order": 230,
      "permissions": ["ver", "crear", "editar"]
    }
  ],
  "actions": [
    {
      "id": "create",
      "view": "mi_modulo_panel",
      "file": "create.php",
      "permission": "mi_modulo_panel.crear",
      "methods": ["POST"]
    }
  ],
  "mounts": [
    {
      "id": "mi_modulo_sidebar",
      "point": "sidebar.main",
      "title": "Mi Módulo",
      "file": "sidebar_link.php",
      "order": 230,
      "permission": "mi_modulo_panel.ver"
    }
  ]
}
        

Restricciones de Sintaxis

Generación Automática

"Crea un módulo portable para NEXGestión con slug '[slug]'. Incluye manifest con views/actions/mounts, SQL mysql+sqlite install/uninstall, vistas, acciones seguras y mounts para sidebar.main + dashboard.widgets. No uses lógica fuera de modules/[slug]."