manifest.json
Tout module nécessite le fichier manifest.json. Le fichier doit se trouver dans le répertoire principal du module (par exemple, zabbix/ui/modules/module_name/manifest.json).
Au minimum, manifest.json doit spécifier les champs suivants :
{
"manifest_version": 2.0,
"id": "my_ip_address",
"name": "My IP Address",
"namespace": "MyIPAddress",
"version": "1.0"
}
Paramètres pris en charge dans manifest.json (cliquez sur le nom du paramètre pour obtenir une description détaillée) :
| Paramètre | Description | Obligatoire |
|---|---|---|
| manifest_version | Version du manifeste du module. | Oui |
| id | ID unique du module. | |
| name | Nom du module qui sera affiché dans la section Administration. | |
| namespace | Espace de noms PHP pour les classes du module. | |
| version | Version du module. | |
| type | Type du module. Pour un widget, doit être défini sur widget | Oui pour les widgets, sinon non |
| widget | Configuration du widget. Utilisée uniquement pour les widgets. | |
| actions | Actions à enregistrer avec le module. | |
| assets | Feuilles de style CSS et fichiers JavaScript à inclure. | Non |
| author | Auteur du module. | |
| config | Valeurs par défaut des options personnalisées du module. | |
| description | Description du module. | |
| url | Lien vers la description du module. |
manifest_version
Version du manifeste du module. Actuellement, la version prise en charge est 2.0.
Type : Double
Exemple :
"manifest_version": 2.0
id
ID du module. Doit être unique. Pour éviter de futurs conflits de noms, il est recommandé d'utiliser un préfixe pour les modules (nom de l'auteur ou de l'entreprise, ou tout autre préfixe). Par exemple, si un module est un exemple destiné aux leçons et que le nom du module est « My module », l'ID sera « example_my_module ».
Type : String
Exemple :
"id": "example_my_module"
nom
Nom du module qui sera affiché dans la section Administration.
Type : Chaîne
Exemple:
"name": "Mon module"
namespace
Namespace PHP pour les classes de modules.
Type : Chaîne
Exemple:
"namespace": "ClockWidget"
version
Version du module. La version sera affichée dans la section Administration.
Type : String
Exemple :
"version": "1.0"
type
Type du module. Requis pour les widgets et doit être égal à "widget".
Type : String
Valeur par défaut : "module"
Exemple :
"type": "widget"
actions
Actions à enregistrer avec le module. La définition de la clé d'objet class pour chaque action est obligatoire ; les autres clés d'action sont facultatives.
Type : Object
Clés d'objet prises en charge si type est module :
- write.your.action.name (object) - nom de l'action, qui doit être écrit en minuscules [a-z], en séparant les mots par des points.
Prend en charge les clés suivantes :
- class (string ; obligatoire) - nom de la classe de l'action.
- layout (string) - mise en page de l'action. Valeurs prises en charge : layout.json, layout.htmlpage (par défaut), null.
- view (string) - vue de l'action.
Exemple :
"actions": {
"module.example.list": {
"class": "ExampleList",
"view": "example.list",
"layout": "layout.htmlpage"
}
}
Clés d'objet prises en charge si type est widget :
- widget.{id}.view (object) - nom du fichier et de la classe pour la vue du widget.
Remplacez {id} par la valeur id du widget (par exemple, widget.example_clock.view).
Prend en charge les clés suivantes :
- class (string ; obligatoire) - nom de la classe de l'action pour le mode d'affichage du widget, afin d'étendre la classe CControllerDashboardWidgetView par défaut. Le fichier source de la classe doit se trouver dans le répertoire actions.
- view (string) - vue du widget. Doit se trouver dans le répertoire views. Si le fichier de vue est widget.view.php, comme prévu par défaut, ce paramètre peut être omis. Si vous utilisez un autre nom, indiquez-le ici.
- widget.{id}.edit (object) - nom du fichier pour la vue de configuration du widget.
Remplacez {id} par la valeur id du widget (par exemple, widget.example_clock.edit).
Prend en charge les clés suivantes :
- class (string ; obligatoire) - nom de la classe de l'action pour le mode d'affichage de la configuration du widget. Le fichier source de la classe doit se trouver dans le répertoire actions.
- view (string) - vue de configuration du widget. Doit se trouver dans le répertoire views. Si le fichier de vue est widget.edit.php, comme prévu par défaut, ce paramètre peut être omis. Si vous utilisez un autre nom, indiquez-le ici.
Exemple :
"actions": {
"widget.tophosts.view": {
"class": "WidgetView"
},
"widget.tophosts.column.edit": {
"class": "ColumnEdit",
"view": "column.edit",
"layout": "layout.json"
}
}
assets
Styles CSS et fichiers JavaScript à inclure.
Type : Object
Clés d'objet prises en charge :
- css (array) - Fichiers CSS à inclure. Les fichiers doivent se trouver dans assets/css.
- js (array) - Fichiers JavaScript à inclure. Les fichiers doivent se trouver dans assets/js.
Exemple :
"assets": {
"css": ["widget.css"],
"js": ["class.widget.js"]
}
auteur
Auteur du module. L’auteur sera affiché dans la section Administration.
Type : String
Exemple :
"author": "John Smith"
config
Valeurs par défaut pour les options du module. L'objet peut contenir toutes les clés personnalisées. Si elles sont spécifiées, ces valeurs seront écrites dans la base de données lors de l'enregistrement du module. Les nouvelles variables ajoutées ultérieurement seront écrites lors du premier appel. Ensuite, les valeurs des variables ne peuvent être modifiées que directement dans la base de données.
Type : Object
Exemple :
"config": {
"username": "Admin",
"password": "",
"auth_url": "https://example.com/auth"
}
description
Descriptif des modules.
Type : Chaîne
Exemple:
"description": "Ceci est un widget horloge."
widget
Configuration du widget. Utilisée si type est défini sur widget.
Type : Object
Clés d’objet prises en charge :
-
name (string) - utilisé dans la liste des widgets et comme en-tête par défaut. Si ce champ est vide, le paramètre "name" du module sera utilisé.
-
size (object) - dimensions par défaut du widget. Prend en charge les clés suivantes :
- width (integer) - largeur par défaut du widget.
- height (integer) - hauteur par défaut du widget.
-
form_class (string) - classe contenant le formulaire des champs du widget. Elle doit se trouver dans le répertoire includes. Si la classe est WidgetForm.php, comme prévu par défaut, ce paramètre peut être omis. Si vous utilisez un autre nom, indiquez-le ici.
-
js_class (string) - nom d’une classe JavaScript à étendre à la classe CWidget par défaut pour le mode d’affichage du widget. La classe sera chargée avec le tableau de bord. Le fichier source de la classe doit se trouver dans le répertoire assets/js. Voir également : assets.
-
use_time_selector (boolean) - détermine si le widget nécessite le sélecteur de temps du tableau de bord. Valeurs prises en charge : true, false (par défaut).
-
refresh_rate (integer) - fréquence d’actualisation du widget en secondes (par défaut : 60).
Exemple :
"widget": {
"name": "",
"size": {
"width": 12,
"height": 5
},
"form_class": "WidgetForm",
"js_class": "CWidget",
"use_time_selector": false,
"refresh_rate": 60
}
url
Un lien vers la description du module.
Pour les widgets, ce lien sera ouvert lorsque vous cliquerez sur l’icône d’aide
dans la fenêtre Ajouter un widget ou
Modifier le widget.
Si url n’est pas spécifié, cliquer sur l’icône d’aide ouvrira la page générale
Widgets des tableaux de bord.
Type : String
Exemple :
"url": "http://example.com"