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"