[comment]: # aside: 2

[comment]: # translation:outdated

[comment]: # ({f9b7e108-12a4ad08})
# Módulos

[comment]: # ({/f9b7e108-12a4ad08})

[comment]: # ({d4a488b3-f1b884d6})
### ¿Qué es un módulo de frontend PHP?

-   Un módulo es una entidad con un ID único, nombre, descripción, autor y otros campos definidos en su archivo de manifiesto, junto con archivos PHP, Javascript y otros ubicados en un único directorio dentro del directorio *modules* de su instalación de frontend de Zabbix (por ejemplo, *zabbix/ui/modules*).
-   Un módulo debe cumplir reglas simples para garantizar su correcto funcionamiento.
-   Un módulo debe ser instalado (descomprimido) y habilitado en el frontend por el administrador.

[comment]: # ({/d4a488b3-f1b884d6})

[comment]: # ({05b693b4-4e4bad2b})
### Para qué se puede usar un módulo

-   Añadir nueva funcionalidad mediante secciones personalizadas en la interfaz web;
-   Crear tipos de widgets personalizados para el panel (ver [módulos de widgets](/devel/modules/widgets));
-   Sobrescribir o ampliar la funcionalidad existente.

[comment]: # ({/05b693b4-4e4bad2b})

[comment]: # ({ec03fb13-064ddd80})
### Para qué no se puede usar un módulo

-   Registrar un nuevo método de API o modificar uno existente.

[comment]: # ({/ec03fb13-064ddd80})

[comment]: # ({bacf43f1-bfe0360a})
### Cómo funcionan los módulos

-   Un módulo habilitado se inicia en cada solicitud HTTP, antes de ejecutar el código de la acción.
-   El módulo registrará nuevas acciones o redefinirá las existentes.
-   El módulo añadirá nuevas secciones en la interfaz y eliminará o redefinirá las existentes.
-   El módulo se enganchará a eventos de la interfaz como onBeforeAction y onTerminate, si es necesario.
-   Finalmente, la acción solicitada se ejecuta ejecutando el código de la acción, ya sea el predeterminado o el definido por el módulo.

[comment]: # ({/bacf43f1-bfe0360a})

[comment]: # ({501a7539-7aea12f6})
### ¿Dónde ir a continuación?

Ya sea que prefiera aprender haciendo o leer las directrices primero, estas páginas contienen la información y los pasos necesarios para crear sus propios módulos:

- [Tutoriales paso a paso para escribir su primer módulo](/devel/modules/tutorials)
- [Estructura de archivos del módulo](/devel/modules/file_structure)
- [Especificaciones del módulo de widget](/devel/modules/widgets)
- [Ejemplos de módulos para reutilizar](/devel/modules/examples)

[comment]: # ({/501a7539-7aea12f6})
