manifest.json
Jedes Modul benötigt die Datei manifest.json. Die Datei muss sich im Hauptverzeichnis des Moduls befinden (zum Beispiel in zabbix/ui/modules/module_name/manifest.json).
Als Mindestanforderung sollte manifest.json die folgenden Felder angeben:
{
"manifest_version": 2.0,
"id": "my_ip_address",
"name": "My IP Address",
"namespace": "MyIPAddress",
"version": "1.0"
}
In manifest.json unterstützte Parameter (klicken Sie auf den Parameternamen, um eine detaillierte Beschreibung anzuzeigen):
| Parameter | Beschreibung | Erforderlich |
|---|---|---|
| manifest_version | Manifestversion des Moduls. | Ja |
| id | Eindeutige Modul-ID. | |
| name | Modulname, der im Bereich „Administration“ angezeigt wird. | |
| namespace | PHP-Namespace für Modulklassen. | |
| version | Modulversion. | |
| type | Typ des Moduls. Für ein Widget muss widget festgelegt werden. | Ja für Widgets, andernfalls nein |
| widget | Widget-Konfiguration. Wird nur für Widgets verwendet. | |
| actions | Aktionen, die beim Modul registriert werden sollen. | |
| assets | Einzuschließende CSS-Stile und JavaScript-Dateien. | Nein |
| author | Modulautor. | |
| config | Standardwerte für benutzerdefinierte Moduloptionen. | |
| description | Modulbeschreibung. | |
| url | Ein Link zur Modulbeschreibung. |
manifest_version
Manifestversion des Moduls.
Derzeit wird die Version 2.0 unterstützt.
Typ: Double
Beispiel:
"manifest_version": 2.0
id
Modul-ID.
Muss eindeutig sein.
Um zukünftige Namenskonflikte zu vermeiden, wird empfohlen, für Module ein Präfix zu verwenden (Name des Autors oder Unternehmens oder ein anderes Präfix).
Wenn ein Modul beispielsweise für Lernzwecke gedacht ist und der Modulname „My module“ lautet, ist die ID „example_my_module“.
Typ: String
Beispiel:
"id": "example_my_module"
Name
Modulname, der im Abschnitt „Administration“ angezeigt wird.
Typ: Zeichenfolge
Beispiel:
"name": "Mein Modul"
Namespace
PHP-Namespace für Modulklassen.
Typ: String
Beispiel:
"namespace": "ClockWidget"
Version
Modulversion. Die Version wird im Bereich „Administration“ angezeigt.
Typ: String
Beispiel:
"version": "1.0"
type
Typ des Moduls.
Für Widgets erforderlich und muss „widget“ entsprechen.
Typ: String
Standard: „module“
Beispiel:
"type": "widget"
actions
Aktionen, die mit dem Modul registriert werden sollen.
Das Definieren des Objektschlüssels class für jede Aktion ist erforderlich; andere Aktionsschlüssel sind optional.
Typ: Object
Unterstützte Objektschlüssel, wenn type den Wert module hat:
- write.your.action.name (object) – Aktionsname; er sollte in Kleinbuchstaben [a-z] geschrieben werden, wobei Wörter durch Punkte getrennt werden.
Unterstützt die folgenden Schlüssel:
- class (string; erforderlich) – Klassenname der Aktion.
- layout (string) – Aktionslayout. Unterstützte Werte: layout.json, layout.htmlpage (Standard), null.
- view (string) – Aktionsansicht.
Beispiel:
"actions": {
"module.example.list": {
"class": "ExampleList",
"view": "example.list",
"layout": "layout.htmlpage"
}
}
Unterstützte Objektschlüssel, wenn type den Wert widget hat:
- widget.{id}.view (object) – Datei- und Klassenname für die Widget-Ansicht.
Ersetzen Sie {id} durch den Wert id des Widgets (zum Beispiel widget.example_clock.view).
Unterstützt die folgenden Schlüssel:
- class (string; erforderlich) – Klassenname der Aktion für den Ansichtsmodus des Widgets, der die standardmäßige Klasse CControllerDashboardWidgetView erweitert. Die Quelldatei der Klasse muss sich im Verzeichnis actions befinden.
- view (string) – Widget-Ansicht. Sie muss sich im Verzeichnis views befinden. Wenn die Ansichtsdatei widget.view.php heißt, was standardmäßig erwartet wird, kann dieser Parameter weggelassen werden. Bei Verwendung eines anderen Namens geben Sie ihn hier an.
- widget.{id}.edit (object) – Dateiname für die Konfigurationsansicht des Widgets.
Ersetzen Sie {id} durch den Wert id des Widgets (zum Beispiel widget.example_clock.edit).
Unterstützt die folgenden Schlüssel:
- class (string; erforderlich) – Klassenname der Aktion für den Konfigurationsansichtsmodus des Widgets. Die Quelldatei der Klasse muss sich im Verzeichnis actions befinden.
- view (string) – Konfigurationsansicht des Widgets. Sie muss sich im Verzeichnis views befinden. Wenn die Ansichtsdatei widget.edit.php heißt, was standardmäßig erwartet wird, kann dieser Parameter weggelassen werden. Bei Verwendung eines anderen Namens geben Sie ihn hier an.
Beispiel:
"actions": {
"widget.tophosts.view": {
"class": "WidgetView"
},
"widget.tophosts.column.edit": {
"class": "ColumnEdit",
"view": "column.edit",
"layout": "layout.json"
}
}
Assets
CSS-Stile und JavaScript-Dateien, die eingebunden werden sollen.
Typ: Object
Unterstützte Objektschlüssel:
- css (array) – CSS-Dateien, die eingebunden werden sollen. Die Dateien müssen sich im Verzeichnis assets/css befinden.
- js (array) – JavaScript-Dateien, die eingebunden werden sollen. Die Dateien müssen sich im Verzeichnis assets/js befinden.
Beispiel:
"assets": {
"css": ["widget.css"],
"js": ["class.widget.js"]
}
Autor
Autor des Moduls.
Der Autor wird im Bereich „Administration“ angezeigt.
Typ: String
Beispiel:
"author": "John Smith"
config
Standardwerte für die Moduloptionen.
Das Objekt kann beliebige benutzerdefinierte Schlüssel enthalten.
Falls angegeben, werden diese Werte während der Modulregistrierung in die Datenbank geschrieben.
Später hinzugefügte Variablen werden beim ersten Aufruf geschrieben.
Anschließend können die Variablenwerte nur direkt in der Datenbank geändert werden.
Typ: Objekt
Beispiel:
"config": {
"username": "Admin",
"password": "",
"auth_url": "https://example.com/auth"
}
Beschreibung
Modulbeschreibung.
Typ: Zeichenfolge
Beispiel:
"Beschreibung": "Dies ist ein Uhr-Widget."
Widget
Widget-Konfiguration.
Wird verwendet, wenn type auf widget gesetzt ist.
Typ: Objekt
Unterstützte Objektschlüssel:
-
name (string) – wird in der Widget-Liste und als Standardüberschrift verwendet.
Wenn der Wert leer ist, wird der Parameter „name“ aus dem Modul verwendet. -
size (object) – Standardabmessungen des Widgets.
Unterstützt folgende Schlüssel:- width (integer) – Standardbreite des Widgets.
- height (integer) – Standardhöhe des Widgets.
-
form_class (string) – Klasse mit dem Formular für die Widget-Felder.
Muss sich im Verzeichnis includes befinden.
Wenn die Klasse WidgetForm.php heißt, was standardmäßig erwartet wird, kann dieser Parameter weggelassen werden.
Bei Verwendung eines anderen Namens geben Sie ihn hier an. -
js_class (string) – Name einer JavaScript-Klasse, die für den Ansichtsmodus des Widgets die Standardklasse CWidget erweitert.
Die Klasse wird zusammen mit dem Dashboard geladen.
Die Quelldatei der Klasse muss sich im Verzeichnis assets/js befinden.
Siehe auch: assets. -
use_time_selector (boolean) – bestimmt, ob das Widget die Zeitauswahl des Dashboards benötigt.
Unterstützte Werte: true, false (Standard). -
refresh_rate (integer) – Aktualisierungsintervall des Widgets in Sekunden (Standard: 60).
Beispiel:
"widget": {
"name": "",
"size": {
"width": 12,
"height": 5
},
"form_class": "WidgetForm",
"js_class": "CWidget",
"use_time_selector": false,
"refresh_rate": 60
}
url
Ein Link zur Modulbeschreibung.
Bei Widgets wird dieser Link geöffnet, wenn im Fenster Widget hinzufügen oder Widget bearbeiten auf das Hilfesymbol
geklickt wird.
Wenn url nicht angegeben ist, wird beim Klicken auf das Hilfesymbol die allgemeine Seite Dashboard-Widgets geöffnet.
Typ: String
Beispiel:
"url": "http://example.com"