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"