manifest.json

Tutti i moduli devono contenere il file manifest.json. Il file deve essere posto nella cartella principale del modulo (ad esempio, zabbix/ui/modules/module_name/manifest.json).

Come minimo, manifest.json dovrebbe specificare questi campi:

{
    "manifest_version": 2.0,
    "id": "my_ip_address",
    "name": "My IP Address",
    "namespace": "MyIPAddress",
    "version": "1.0"
}

Parametri supportati in manifest.json (clicca sul nome del parametro per una descrizione dettagliata):

Parameter Description Required
manifest_version Versione del Manifest del modulo. Yes
id ID univoco del modulo.
name Nome del modulo che verrà mostrato nella sezione Administration.
namespace Namespace PHP per le classi del modulo.
version Versione del Modulo.
type Tipo del modulo. Per i widget deve essere impostato a widget Yes per widgets, altimenti No
widget Configurazione del Widget . Utilizzato solo per i Widget.
actions Actions da registrare con il modulo.
assets Stili CSS e file JavaScript da includere. No
author Autore del modulo.
config Valori di default per le opzioni custom del modulo.
description Descrizione del modulo.
url Un link alla descrizione del modulo.

manifest_version

Versione manifest del modulo. Attualmente, la versione supportata è 2.0.

Type: Double

Esempio:

"manifest_version": 2.0

id

Module ID. Deve essere univoco. Al fine di evitare futuri conflitti di nome, è raccomandato utilizzare prefissi per i moduli (autore, nome della società o altro). Per esempio, se il modulo è un esempio per lezioni e il nome del modulo è "My module", allora l'ID sarà "example_my_module".

Type: String

Example:

"id": "example_my_module"

name

Nome del modulo che verrà mostrato nella sezione Administration.

Type: String

Example:

"name": "My module"

namespace

PHP Namespace per le classi del modulo.

Type: String

Example:

"namespace": "ClockWidget"

version

Versione del modulo. La versione verrà mostrata nella sezione Administration.

Type: String

Example:

"version": "1.0"

type

Tipo del modulo. Obbligatorio per i Widget e deve contenere la stringa "widget".

Type: String

Default: "module"

Example:

"type": "widget"

actions

Azioni da registrare con il modulo. La definizione di una class object key per ciascuna azione è obbligatoria, altre action keys sono opzionali.

Type: Object

Object keys supportate se type è module:

  • write.your.action.name (object) - nome dell'azione, deve essere scritto in minuscolo [a-z], separando le parole con dei punti. Supporta le chiavi:
    • class (string; required) - nome della classe dell'azione.
    • layout (string) - layout dell'azione. Valori supportati: layout.json, layout.htmlpage (default), null.
    • view (string) - view dell'azione.

Esempio:

"actions": {
    "module.example.list": {
        "class": "ExampleList",
        "view": "example.list",
        "layout": "layout.htmlpage"
        }
    }

Object keys supportate se type è widget:

  • widget.{id}.view (object) - file e nome della classe per la widget view. Sostituisci {id} con il valore id del widget (per esempio, widget.example_clock.view). Supporta le chiavi:
    • class (string; required) - nome della classe dell'azione per la modalità di visualizzazione widget da utilizzare per estendere la classe di default CControllerDashboardWidgetView. Il file sorgente della classe deve essere posto nella cartella actions.
    • view (string) - vista widget. Deve essere posto nella cartella views. Se il file di vista è chiamato widget.view.php, che è il default atteso, questo parametro può essere omesso. Se invece si usa un nome differente, specificatelo qui.
  • widget.{id}.edit (object) - nome del file per la configurazione della vista widget. Sostituisci {id} con il valore id del widget (ad esempio, widget.example_clock.edit). Supporta le chiavi:
    • class (string; required) - nome della classe action per la vista della modalita di configurazione del widget. Il sorgente della classe deve essere posto nella cartella actions.
    • view (string) - vista configurazione del widget. Deve essere posta nella cartella views. Se il nome del file di vista è widget.edit.php, che è il default atteso, allora questo parametro può essere omesso. Se invece si usa un nome differente, specificatelo qui.

Esempio:

"actions": {
    "widget.tophosts.view": {
        "class": "WidgetView"
    },
    "widget.tophosts.column.edit": {
        "class": "ColumnEdit",
        "view": "column.edit",
        "layout": "layout.json"
    }
}

assets

File CSS e JavaScript da includere

Tipo: Object

Object keys supportate:

  • css (array) - File CSS da includere. I file devono essere posizionati in assets/css.
  • js (array) - File JavaScript da includere. I file devono essere posizionati in assets/js.

Esempio:

"assets": {
    "css": ["widget.css"],
    "js": ["class.widget.js"]
}

Autore

Autore del modulo. L'autore verrà mostrato nella sezione Amministrativa.

Type: String

Example:

"author": "John Smith"

config

Valori predefiniti per le opzioni del modulo. L'oggetto può contenere qualsiasi chiave personalizzata. Se specificati, questi valori verranno scritti nel database durante la registrazione del modulo. Le nuove variabili aggiunte successivamente verranno scritte alla prima chiamata. Successivamente, i valori delle variabili potranno essere modificati solo direttamente nel database.

Tipo: Oggetto

Esempio:

"config": {
"username": "Admin",
"password": "",
"auth_url": "https://example.com/auth"
}

descrizione

Descrizione del modulo.

Type: String

Esempio:

"description": "This is a clock widget."

widget

Configurazione del widget. Utilizzata se type è impostato su widget.

Tipo: Oggetto

Chiavi dell'oggetto supportate:

  • name (stringa) - utilizzato nell'elenco dei widget e come intestazione predefinita. Se vuoto, verrà utilizzato il parametro "nome" del modulo.

  • size (oggetto) - dimensioni predefinite del widget. Chiavi supportate:

  • width (intero) - larghezza predefinita del widget.

  • height (intero) - altezza predefinita del widget.

  • form_class (stringa) - classe con il form dei campi del widget. Deve trovarsi nella directory includes. Se la classe è WidgetForm.php, come previsto per impostazione predefinita, questo parametro può essere omesso. Se si utilizza un nome diverso, specificarlo qui.

  • js_class (stringa) - nome di una classe JavaScript per la modalità di visualizzazione del widget per estendere la classe CWidget predefinita. La classe verrà caricata con la dashboard. Il file sorgente della classe deve trovarsi nella directory assets/js. Vedi anche: assets.

  • use_time_selector (booleano) - determina se il widget richiede un selettore di tempo per la dashboard. Valori supportati: true, false (predefinito).

  • refresh_rate (intero) - frequenza di aggiornamento del widget in secondi (predefinita: 60).

Esempio:

"widget": {
"name": "",
"size": {
"width": 12,
"height": 5
},
"form_class": "WidgetForm",
"js_class": "CWidget",
"use_time_selector": false,
"refresh_rate": 60
}

url

Un link alla descrizione del modulo. Per i widget, questo link si aprirà cliccando sull'icona della guida nella finestra Aggiungi widget o Modifica widget. Se l'url non viene specificato, cliccando sull'icona della guida si aprirà la pagina generale Widget della dashboard.

Tipo: Stringa

Esempio:

"url": "http://example.com"