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"