[comment]: # aside:2

[comment]: # ({a2041013-7b40086b})
# Estructura de archivos del módulo

Todo el código relacionado con un módulo se almacena en un único directorio dentro del directorio **modules** de su instalación del frontend de Zabbix (por ejemplo, *zabbix/ui/modules*).

[comment]: # ({/a2041013-7b40086b})

[comment]: # ({887796fe-dffd3e26})
### Árbol de archivos del módulo

````yaml
example_module_directory/          (obligatorio)
   manifest.json                   (obligatorio)  Metadatos y definición de acciones.
   Module.php                                  Inicialización del módulo y manejo de eventos.
   actions/                                    Archivos de controladores de acciones.
       SomethingView.php
       SomethingCreate.php
       SomethingDelete.php
       data_export/
           ExportAsXml.php
           ExportAsExcel.php
   views/                                      Archivos de vistas.
       example.something.view.php
       example.something.delete.php
   assets/                                     Cualquier archivo adicional para ser usado en las vistas. Debe especificarse en manifest.json.
       js/                                     Archivos JavaScript usados en las vistas.
           example.something.view.js.php
       css/                                    Archivos CSS usados en las vistas.
           example.something.css
        image.png                              Imágenes usadas en las vistas.
        example.something.file                 Cualquier archivo para usar en las vistas.
````

[comment]: # ({/887796fe-dffd3e26})

[comment]: # ({fad37003-1d438d3e})
### Escribir un módulo

Un proceso de escritura de un módulo de ejemplo consta de los siguientes pasos (cuando esté disponible, haga clic en el nombre del archivo o de la carpeta para ver detalles adicionales sobre el paso):

1. Cree un nuevo directorio para el módulo dentro de **zabbix/ui/modules/**.
2. Añada el archivo [manifest.json](/devel/modules/file_structure/manifest) con los metadatos del módulo.
3. Cree la carpeta *[views](/devel/modules/file_structure/views)* y defina una o varias vistas del módulo.
4. Cree la carpeta *[actions](/devel/modules/file_structure/actions)* y defina una o varias acciones del módulo.
5. Cree el archivo Module.php (o Widget.php para widgets del dashboard) y defina las reglas de inicialización y de gestión de eventos.
6. Cree la carpeta *[assets](/devel/modules/file_structure/assets)* para archivos JavaScript (colóquelos en *assets/js*), estilos CSS (colóquelos en *assets/css*) o cualquier otro archivo adicional.
7. Asegúrese de especificar las vistas, acciones y archivos de assets requeridos en manifest.json.
8. [Registre](/devel/modules/file_structure/register) el módulo en el frontend de Zabbix y empiece a usarlo.

:::notetip
Puede registrar y habilitar un módulo en cuanto cree el archivo manifest.json.
Una vez habilitado el módulo, puede previsualizar de inmediato todos los cambios realizados en los archivos del módulo actualizando el frontend de Zabbix.
:::

[comment]: # ({/fad37003-1d438d3e})
