manifest.json

Ogni modulo richiede il file manifest.json.
Il file deve trovarsi nella directory principale del modulo (ad esempio, zabbix/ui/modules/module_name/manifest.json).

Come requisito minimo, manifest.json deve specificare i seguenti campi:

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

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

Parametro Descrizione Obbligatorio
manifest_version Versione del manifest del modulo. Sì
id ID univoco del modulo.
name Nome del modulo visualizzato nella sezione Amministrazione.
namespace Namespace PHP per le classi del modulo.
version Versione del modulo.
type Tipo di modulo. Per un widget deve essere impostato su widget Sì per i widget, altrimenti no
widget Configurazione del widget. Utilizzato solo per i widget.
actions Azioni da registrare con il modulo.
assets Stili CSS e file JavaScript da includere. No
author Autore del modulo.
config Valori predefiniti per le opzioni personalizzate del modulo.
description Descrizione del modulo.
url Link alla descrizione del modulo.

manifest_version

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

Tipo: Double

Esempio:

"manifest_version": 2.0

id

ID del modulo. Deve essere univoco. Per evitare conflitti di denominazione futuri, si consiglia di utilizzare un prefisso per i moduli (nome dell'autore o dell'azienda, o qualsiasi altro). Ad esempio, se un modulo è un esempio per le lezioni e il nome del modulo è "My module", l'ID sarà "example_my_module".

Tipo: Stringa

Esempio:

"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"

versione

Versione del modulo. La versione verrà visualizzata nella sezione Amministrazione.

Tipo: Stringa

Esempio:

"version": "1.0"

type

Tipo del modulo. Obbligatorio per i widget e deve essere uguale a "widget".

Tipo: String

Predefinito: "module"

Esempio:

"type": "widget"

actions

Azioni da registrare con il modulo. È obbligatorio definire la chiave dell'oggetto class per ogni azione; le altre chiavi dell'azione sono facoltative.

Tipo: Object

Chiavi dell'oggetto supportate se type è module:

  • write.your.action.name (object) - nome dell'azione, deve essere scritto in lettere minuscole [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 (predefinito), null.
    • view (string) - vista dell'azione.

Esempio:

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

Chiavi dell'oggetto supportate se type è widget:

  • widget.{id}.view (object) - nome del file e della classe per la vista del widget. Sostituire {id} con il valore id del widget (ad esempio, widget.example_clock.view). Supporta le chiavi:
    • class (string; required) - nome della classe dell'azione per estendere la classe CControllerDashboardWidgetView predefinita nella modalità di visualizzazione del widget. Il file sorgente della classe deve trovarsi nella directory actions.
    • view (string) - vista del widget. Deve trovarsi nella directory views. Se il file della vista è widget.view.php, come previsto per impostazione predefinita, questo parametro può essere omesso. Se si utilizza un nome diverso, specificarlo qui.
  • widget.{id}.edit (object) - nome del file per la vista di configurazione del widget. Sostituire {id} con il valore id del widget (ad esempio, widget.example_clock.edit). Supporta le chiavi:
    • class (string; required) - nome della classe dell'azione per la modalità di visualizzazione della configurazione del widget. Il file sorgente della classe deve trovarsi nella directory actions.
    • view (string) - vista di configurazione del widget. Deve trovarsi nella directory views. Se il file della vista è widget.edit.php, come previsto per impostazione predefinita, questo parametro può essere omesso. Se si utilizza un nome diverso, specificarlo qui.

Esempio:

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

assets

Stili CSS e file JavaScript da includere.

Tipo: Object

Chiavi dell'oggetto supportate:

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

Esempio:

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

autore

Autore del modulo. L'autore verrà visualizzato nella sezione Amministrazione.

Tipo: Stringa

Esempio:

"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 in seguito verranno scritte alla prima chiamata.
Successivamente, i valori delle variabili potranno essere modificati solo direttamente nel database.

Tipo: Object

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: Object

Chiavi dell'oggetto supportate:

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

  • size (object) - dimensioni predefinite del widget. Supporta le chiavi:

    • width (integer) - larghezza predefinita del widget.
    • height (integer) - altezza predefinita del widget.
  • form_class (string) - classe con il modulo 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 (string) - nome di una classe JavaScript che estende la classe CWidget predefinita per la modalità di visualizzazione del widget. La classe verrà caricata insieme alla dashboard. Il file sorgente della classe deve trovarsi nella directory assets/js. Vedere anche: assets.

  • use_time_selector (boolean) - determina se il widget richiede il selettore temporale della dashboard. Valori supportati: true, false (predefinito).

  • refresh_rate (integer) - intervallo di aggiornamento del widget in secondi (predefinito: 60).

Esempio:

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

url

Un collegamento alla descrizione del modulo. Per i widget, questo collegamento verrà aperto facendo clic sull'icona della guida nella finestra Aggiungi widget o Modifica widget. Se url non è specificato, facendo clic sull'icona della guida si aprirà la pagina generale Widget della dashboard.

Tipo: Stringa

Esempio:

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