Cualquier módulo necesita el archivo manifest.json. El archivo debe estar ubicado en el directorio principal del módulo (por ejemplo, zabbix/ui/modules/module_name/manifest.json).
Como mínimo, manifest.json debe especificar estos campos:
{
"manifest_version": 2.0,
"id": "my_ip_address",
"name": "My IP Address",
"namespace": "MyIPAddress",
"version": "1.0"
}
Parámetros soportados en manifest.json (pulse sobre el nombre del parámetro para una descripción detallada):
Parámetro | Descripción | Requerido |
---|---|---|
manifest_version | Versión del manifiesto del módulo. | Sí |
id | ID único del módulo. | |
name | Nombre del módulo que se mostrará en la sección Administración. | |
namespace | Espacio de nombres PHP para las clases del módulo. | |
version | Versión del módulo. | |
type | Tipo de módulo. Para widget debe establecerse en widget | Sí para widgets, en caso contrario no |
widget | Configuración del widget. Usado solo para widgets. | |
actions | Acciones a registrar con el módulo. | |
assets | Archivos CSS y JavaScript a incluir. | No |
author | Autor del módulo. | |
config | Valores por defecto para las opciones personalizadas del módulo. | |
description | Descripción del módulo. | |
url | Un enlace a la descripción del módulo. |
Versión del manifiesto del módulo. Actualmente, la versión soportada es 2.0.
Tipo: Doble
Ejemplo:
ID del módulo. Debe ser único. Para evitar conflictos de nombres en el futuro, se recomienda utilizar un prefijo para los módulos (autor o nombre de la empresa, o cualquier otro). Por ejemplo, si un módulo es un ejemplo para lecciones y el nombre del módulo es "Mi módulo", entonces el ID será "example_my_module".
Tipo: Cadena
Ejemplo:
Nombre del módulo que se mostrará en la sección de Administración.
Tipo: Cadena
Ejemplo:
Espacio de nombres PHP para las clases del módulo.
Tipo: Cadena
Ejemplo:
Versión del módulo. La versión se mostrará en la sección de Administración.
Tipo: Cadena
Ejemplo:
Tipo de módulo. Obligatorio para widgets y debe ser igual a "widget".
Tipo: Cadena
Por defecto: "module"
Ejemplo:
Acciones para registrar con el módulo. Definir la clave de objeto class para cada acción es obligatorio, otras claves de acción son opcionales.
Tipo: Objeto
Claves de objeto soportadas si type es module:
Ejemplo:
"actions": {
"module.example.list": {
"class": "ExampleList",
"view": "example.list",
"layout": "layout.htmlpage"
}
}
Claves de objeto soportadas si type es widget:
Ejemplo:
"actions": {
"widget.tophosts.view": {
"class": "WidgetView"
},
"widget.tophosts.column.edit": {
"class": "ColumnEdit",
"view": "column.edit",
"layout": "layout.json"
}
}
Archivos de estilos CSS y JavaScript para incluir.
Tipo: Objeto
Claves de objeto soportadas:
Ejemplo:
Autor del módulo. El autor se mostrará en la sección de Administración.
Tipo: Cadena
Ejemplo:
Valores predeterminados para las opciones del módulo. El objeto puede contener cualquier clave personalizada. Si se especifican, estos valores se escribirán en la base de datos durante el registro del módulo. Las nuevas variables añadidas posteriormente se escribirán en la primera llamada. Posteriormente, los valores de las variables solo se pueden cambiar directamente en la base de datos.
Tipo: Objeto
Ejemplo:
Descripción del módulo.
Tipo: Cadena
Ejemplo:
Configuración del widget. Se utiliza si type está establecido en widget.
Tipo: Objeto
Claves de objeto soportadas:
name (string) - se utiliza en la lista de widgets y como encabezado por defecto. Si está vacío, se usará el parámetro "name" del módulo.
size (object) - dimensiones por defecto del widget. Soporta las claves:
form_class (string) - clase con el formulario de campos del widget. Debe estar ubicada en el directorio includes. Si la clase es WidgetForm.php, que es la esperada por defecto, este parámetro puede omitirse. Si se utiliza un nombre diferente, especifíquelo aquí.
js_class (string) - nombre de una clase JavaScript para el modo de vista del widget que extiende la clase CWidget por defecto. La clase se cargará con el dashboard. El archivo fuente de la clase debe estar ubicado en el directorio assets/js. Véase también: assets.
use_time_selector (boolean) - determina si el widget requiere el selector de tiempo del dashboard. Valores soportados: true, false (por defecto).
refresh_rate (integer) - intervalo de actualización del widget en segundos (por defecto: 60).
Ejemplo:
"widget": {
"name": "",
"size": {
"width": 12,
"height": 5
},
"form_class": "WidgetForm",
"js_class": "CWidget",
"use_time_selector": false,
"refresh_rate": 60
}
Un enlace a la descripción del módulo. Para los widgets, este enlace se abrirá al hacer clic en el icono de ayuda en la ventana Añadir widget o Editar widget. Si url no se especifica, al hacer clic en el icono de ayuda se abrirá la página general de Widgets de panel.
Tipo: Cadena
Ejemplo: