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": "mi_direccion_ip",
"name": "Mi dirección IP",
"namespace": "MiDirecciónIP",
"version": "1.0"
}
Parámetros admitidos en manifest.json (pulse sobre el nombre del parámetro para obtener una descripción detallada):
| Parámetro | Descripción | Requerido |
|---|---|---|
| manifest_version | Versión del manifiesto del módulo. | Si |
| id | ID único del módulo. | ^ |
| name | Nombre del módulo que se mostrará en la sección Administración. | ^ |
| namespace | Espacio de nombres de PHP para las clases del módulo. | ^ |
| version | Versión del módulo. | ^ |
| type Tipo del módulo. Para widget debe establecerse como widget | Si para widgets, de lo contrario no | |
| widget | Configuración del widget. Usado sólo para widgets. | ^ |
| actions | Acciones a registrar con el módulo. | ^ |
| assets | Estilos CSS y archivos 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. | ^ |
manifest_version
Versión de manifiesto del módulo. Actualmente, la versión compatible es 2.0.
Type: Double
Ejemplo:
"manifest_version": 2.0
id
identificación
Identificación del módulo. Debe ser único. Para evitar futuros conflictos de nombres, se recomienda utilizar prefijos 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á "ejemplo_mi_módulo".
Type: String
Ejemplo:
"id": "example_my_module"
nombre
Nombre del módulo que se mostrará en la sección Administración.
Type: String
Ejemplo:
"name": "My module"
espacio de nombres
Espacio de nombres PHP para clases de módulos.
Type: String
Example:
"namespace": "ClockWidget"
versión
Versión del módulo. La versión se mostrará en la sección Administración. Module version. The version will be displayed in the Administration section.
Type: String
Example:
"version": "1.0"
tipo
Tipo del módulo. Requerido para widgets y debe ser igual a "widget".
Tipo: String
Default: "module"
Ejemplo:
"type": "widget"
actions
Acciones a registrar con el módulo. Se requiere definir la clave de objeto class para cada acción, otras claves de acción son opcionales.
Type: Objeto
Claves de objeto soportadas 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 admitidos: layout.json, layout.htmlpage (por defecto), null.
- view ( string) - vista de la acción.
Ejemplo:
"actions": {
"modulo.ejemplo.lista": {
"clase": "ListaEjemplo",
"vista": "ejemplo.list",
"layout": "layout.htmlpage"
}
}
Claves de objeto soportadas si type es widget:
- widget.{id}.view (objeto) - archivo y nombre de clase para la vista del widget. Sustituya {id} por el valor id del widget (por ejemplo, widget. example_clock.view). Admite las claves:
- class ( string; required) - nombre de la clase de acción para el modo de vista del widget para extender la clase predeterminada CControllerDashboardWidgetView. El archivo fuente de la clase debe encontrarse en el directorio actions.
- view ( string) - vista del widget. Debe estar en el directorio views. Si el archivo de la vista es widget.view.php, que es lo esperado por defecto, este parámetro puede omitirse. Si utiliza un nombre diferente, especifíquelo aquí.
- widget.{id}.edit (objeto) - nombre del archivo para la vista de configuración del widget. Sustituya {id} por el valor id del widget (por ejemplo, widget. example_clock.edit). Admite las claves:
- class ( string; obligatorio) - nombre de la clase de acción para el modo de vista de configuración del widget. El archivo fuente de la clase debe encontrarse en el directorio actions.
- view (cadena) - vista de configuración del widget. Debe estar en el directorio views. Si el archivo de la vista es widget.edit.php, que es lo esperado por defecto, este parámetro puede omitirse. Si usa un nombre diferente, especifíquelo aquí.
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 para incluir.
Tipo: Objeto
Claves de objetos compatibles:
-css (matriz) - Archivos CSS para incluir. Los archivos deben estar ubicados en assets/css. -js (matriz) - Archivos JavaScript para incluir. Los archivos deben estar ubicados en assets/js.
Ejemplo:
"assets": {
"css": ["widget.css"],
"js": ["widget.js"]
}
autor
Autor del módulo. El autor se mostrará en la sección Administración.
Tipo: Cadena
Ejemplo:
"author": "John Smith"
configuración
Valores predeterminados para las opciones del módulo. El objeto puede contener cualquier clave personalizada. Si se especifica, estos valores se escribirán en la base de datos durante el registro del módulo. Las nuevas variables agregadas más tarde 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:
"config": {
"username": "Admin",
"password": "",
"auth_url": "https://example.com/auth"
}
descripción
Descripción del módulo.
Tipo: Cadena
Ejemplo:
"description": "This is a clock widget."
widget
Configuración del widget. Utilizado, si type se establece en widget.
Type: Objeto
Claves de objeto soportadas:
-
name (string) - usado en la lista de widgets y como cabecera por defecto. Si está vacío, se utilizará el parámetro "name" del módulo.
-
template_support (booleano) - determina si el widget debe estar disponible en las plantillas de dashboards. Valores admitidos: true, false (por defecto).
-
size (objeto) - dimensiones por defecto del widget. Valores soportados:
- width (integer) - anchura por defecto del widget.
- height (integer) - altura por defecto del widget.
-
form_class (string) - clase con el formulario de los campos del widget. Debe estar ubicada en el directorio includes. Si la clase es WidgetForm.php, que se espera por defecto, este parámetro puede omitirse. Si usa un nombre diferente, especifíquelo aquí.
-
js_class (string) - nombre de una clase JavaScript para el modo de vista widget para extender 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 admitidos: true, false (por defecto).
-
refresh_rate (integer) - frecuencia de actualización del widget en segundos (por defecto: 60).
Ejemplo:
"widget": {
"name": "",
"template_support": true,
"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.
Tipo: Cadena
Ejemplo:
"url": "http://ejemplo.com"