manifest.json
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 compatibles con manifest.json (pulse el nombre del parámetro para obtener una descripción detallada):
| Parámetro | Descripción | Obligatorio |
|---|---|---|
| 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 un widget, debe establecerse en widget | Sí para los widgets; de lo contrario, no |
| widget | Configuración del widget. Se utiliza únicamente para los widgets. | |
| actions | Acciones que se registrarán con el módulo. | |
| assets | Estilos CSS y archivos JavaScript que se incluirán. | No |
| author | Autor del módulo. | |
| config | Valores predeterminados para las opciones personalizadas del módulo. | |
| description | Descripción del módulo. | |
| url | Enlace a la descripción del módulo. |
manifest_version
Versión del manifiesto del módulo.
Actualmente, la versión compatible es 2.0.
Tipo: Double
Ejemplo:
"manifest_version": 2.0
id
ID del módulo.
Debe ser único.
Para evitar conflictos de nombres en el futuro, se recomienda utilizar un prefijo para los módulos (el nombre del autor o 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", el ID será "example_my_module".
Tipo: String
Ejemplo:
"id": "example_my_module"
name
Nombre del módulo que se mostrará en la sección de Administración.
Tipo: Cadena
Ejemplo:
"name": "Mi módulo"
namespace
Espacio de nombres PHP para las clases del módulo.
Tipo: Cadena
Ejemplo:
"namespace": "ClockWidget"
versión
Versión del módulo.
La versión se mostrará en la sección Administración.
Tipo: String
Ejemplo:
"version": "1.0"
type
Tipo del módulo. Obligatorio para los widgets y debe ser igual a "widget".
Type: String
Default: "module"
Example:
"type": "widget"
actions
Acciones que se registrarán con el módulo.
Es obligatorio definir la clave de objeto class para cada acción; las demás claves de acción son opcionales.
Tipo: Object
Claves de objeto compatibles si type es module:
- write.your.action.name (object): nombre de la acción; debe escribirse en minúsculas [a-z], separando las palabras con puntos.
Admite las claves:- class (string; obligatorio): nombre de la clase de la acción.
- layout (string): diseño de la acción.
Valores compatibles: layout.json, layout.htmlpage (predeterminado), null. - view (string): vista de la acción.
Ejemplo:
"actions": {
"module.example.list": {
"class": "ExampleList",
"view": "example.list",
"layout": "layout.htmlpage"
}
}
Claves de objeto compatibles si type es widget:
- widget.{id}.view (object): nombre del archivo y de la clase para la vista del widget.
Reemplace {id} por el valor de id del widget (por ejemplo, widget.example_clock.view).
Admite las claves:- class (string; obligatorio): nombre de la clase de la acción para que el modo de vista del widget extienda la clase CControllerDashboardWidgetView predeterminada.
El archivo de origen de la clase debe encontrarse en el directorio actions. - view (string): vista del widget.
Debe encontrarse en el directorio views.
Si el archivo de vista es widget.view.php, que es el esperado de forma predeterminada, este parámetro puede omitirse.
Si utiliza un nombre diferente, especifíquelo aquí.
- class (string; obligatorio): nombre de la clase de la acción para que el modo de vista del widget extienda la clase CControllerDashboardWidgetView predeterminada.
- widget.{id}.edit (object): nombre del archivo para la vista de configuración del widget.
Reemplace {id} por el valor de id del widget (por ejemplo, widget.example_clock.edit).
Admite las claves:- class (string; obligatorio): nombre de la clase de la acción para el modo de vista de configuración del widget.
El archivo de origen de la clase debe encontrarse en el directorio actions. - view (string): vista de configuración del widget.
Debe encontrarse en el directorio views.
Si el archivo de vista es widget.edit.php, que es el esperado de forma predeterminada, este parámetro puede omitirse.
Si utiliza un nombre diferente, especifíquelo aquí.
- class (string; obligatorio): nombre de la clase de la acción para el modo de vista de configuración del widget.
Ejemplo:
"actions": {
"widget.tophosts.view": {
"class": "WidgetView"
},
"widget.tophosts.column.edit": {
"class": "ColumnEdit",
"view": "column.edit",
"layout": "layout.json"
}
}
assets
Estilos CSS y archivos JavaScript que se incluirán.
Tipo: Object
Claves de objeto compatibles:
- css (array): archivos CSS que se incluirán. Los archivos deben encontrarse en assets/css.
- js (array): archivos JavaScript que se incluirán. Los archivos deben encontrarse en assets/js.
Ejemplo:
"assets": {
"css": ["widget.css"],
"js": ["class.widget.js"]
}
autor
Autor del módulo.
El autor se mostrará en la sección Administración.
Tipo: Cadena
Ejemplo:
"author": "John Smith"
config
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 variables nuevas que se agreguen posteriormente se escribirán durante la primera llamada.
Después, los valores de las variables solo se podrán cambiar directamente en la base de datos.
Tipo: Object
Ejemplo:
"config": {
"username": "Admin",
"password": "",
"auth_url": "https://example.com/auth"
}
description
Descripción del módulo.
Tipo: Cadena
Ejemplo:
"description": "Este es un widget de reloj."
widget
Configuración del widget. Se utiliza si type está establecido en widget.
Tipo: Object
Claves de objeto compatibles:
-
name (string): se utiliza en la lista de widgets y como encabezado predeterminado. Si está vacío, se utilizará el parámetro "name" del módulo.
-
size (object): dimensiones predeterminadas del widget. Admite las siguientes claves:
- width (integer): ancho predeterminado del widget.
- height (integer): alto predeterminado del widget.
-
form_class (string): clase que contiene el formulario de campos del widget. Debe encontrarse en el directorio includes. Si la clase es WidgetForm.php, que es la esperada de forma predeterminada, este parámetro puede omitirse. Si utiliza un nombre diferente, especifíquelo aquí.
-
js_class (string): nombre de una clase de JavaScript que se extenderá a la clase CWidget predeterminada para el modo de visualización del widget. La clase se cargará con el dashboard. El archivo de origen de la clase debe encontrarse en el directorio assets/js. Consulte también: assets.
-
use_time_selector (boolean): determina si el widget requiere el selector de tiempo del dashboard. Valores compatibles: true, false (predeterminado).
-
refresh_rate (integer): intervalo de actualización del widget en segundos (predeterminado: 60).
Ejemplo:
"widget": {
"name": "",
"size": {
"width": 12,
"height": 5
},
"form_class": "WidgetForm",
"js_class": "CWidget",
"use_time_selector": false,
"refresh_rate": 60
}
url
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 no se especifica url, al hacer clic en el icono de ayuda se abrirá la página general de Widgets del dashboard.
Tipo: String
Ejemplo:
"url": "http://example.com"