manifest.json
Jedes Modul benötigt die Datei manifest.json. Die Datei sollte sich im primären Verzeichnis des Moduls befinden (zum Beispiel zabbix/ui/modules/module_name/manifest.json).
Als Minimum müssen folgende Felder in der Datei manifest.json enthalten sein:
{
"manifest_version": 2.0,
"id": "meine_ip_addresse",
"name": "Meine IP Addresse",
"namespace": "MeineIPAddresse",
"version": "1.0"
}
Die Datei manifest.json unterstützt folgende Parameter (Parameternamen für eine detaillierte Beschreibung anklicken):
| Parameter | Beschreibung | Erforderlich |
|---|---|---|
| manifest_version | Manifest-Version des Moduls. | Ja |
| id | Eindeutige Modul-ID. | |
| name | Modulname, der im Abschnitt „Administration“ angezeigt wird. | |
| Namespace | PHP-Namespace für Modulklassen. | |
| Version | Modulversion. | |
| Typ | Modultyp. Für Widgets muss er auf widget gesetzt werden | Ja für Widgets, sonst nein |
| widget | Widget-Konfiguration. Wird nur für Widgets verwendet. | |
| Aktionen | Aktionen die im Modul registriert werden. | |
| Styles | Einzuschließende CSS-Stile und JavaScript-Dateien. | Nein |
| Autor | Modulautor. | |
| Konfiguration | Standardwerte für benutzerdefinierte Moduloptionen. | |
| Beschreibung | 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, ein Präfix für Module zu verwenden (Autor- oder Firmenname oder ein anderes). Wenn ein Modul beispielsweise ein Beispiel für Lektionen ist und der Modulname „Mein Modul“ lautet, lautet die ID „example_my_module“.
Typ: Zeichenfolge
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: Zeichenfolge
Beispiel:
"version": "1.0"
Typ
Typ des Moduls. Erforderlich für Widgets und muss "Widget" entsprechen.
Typ: Zeichenfolge
Standard: "Modul"
Beispiel:
"Typ": "Widget"
Aktionen
Aktionen, die mit dem Modul registriert werden sollen.
Die Definition des Objektschlüssels class für jede Aktion ist erforderlich, andere Aktionsschlüssel sind optional.
Type: Objekt
Unterstützte Objektschlüssel, wenn type auf module gesetzt ist:
- dein.eigener.aktions.name (Objekt) – Aktionsname, sollte in Kleinbuchstaben [a-z] geschrieben und Wörter durch Punkte getrennt werden. Unterstützt die Schlüssel:
- class (Zeichenfolge; erforderlich) – Name der Aktionsklasse.
- layout (Zeichenfolge) – Aktionslayout. Unterstützte Werte: layout.json, layout.htmlpage (Standard), null.
- view (Zeichenfolge) – Aktionsansicht.
Beispiel:
"actions": {
"module.example.list": {
"class": "ExampleList",
"view": "example.list",
"layout": "layout.htmlpage"
}
}
Unterstützte Objektschlüssel, wenn type auf widget gesetzt ist:
- widget.{id}.view (Objekt) - Datei- und Klassenname für die Widget-Ansicht. Ersetzen Sie {id} durch den id-Wert des Widgets (z. B. widget.example_clock.view). Unterstützt die Schlüssel:
- class (Zeichenfolge; erforderlich) - Aktionsklassenname für den Widget-Ansichtsmodus, um die Standardklasse CControllerDashboardWidgetView zu erweitern. Die Klassenquelldatei muss sich im Verzeichnis actions befinden.
- view (Zeichenfolge) - Widget-Ansicht. Muss sich im Verzeichnis views befinden. Wenn die Ansichtsdatei widget.view.php ist, was standardmäßig erwartet wird, kann dieser Parameter weggelassen werden. Wenn Sie einen anderen Namen verwenden, geben Sie ihn hier an.
- widget.{id}.edit (Objekt) – Dateiname für die Widget-Konfigurationsansicht. Ersetzen Sie {id} durch den id-Wert des Widgets (z. B. widget.example_clock.edit). Unterstützt die Schlüssel:
- class (Zeichenfolge; erforderlich) – Name der Aktionsklasse für den Widget-Konfigurationsansichtsmodus. Die Klassenquelldatei muss sich im Verzeichnis actions befinden.
- view (Zeichenfolge) – Widget-Konfigurationsansicht. Muss sich im Verzeichnis views befinden. Wenn die Ansichtsdatei widget.edit.php ist, was standardmäßig erwartet wird, kann dieser Parameter weggelassen werden. Wenn Sie einen anderen Namen verwenden, 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
Einzuschließende CSS-Stile und JavaScript-Dateien.
Typ: Objekt
Unterstützte Objektschlüssel:
- css (Array) – einzuschließende CSS-Dateien. Die Dateien müssen sich in assets/css befinden.
- js (Array) – einzuschließende JavaScript-Dateien. Die Dateien müssen sich in assets/js befinden.
Beispiel:
"assets": {
"css": ["widget.css"],
"js": ["class.widget.js"]
}
Autor
Modulautor. Der Autor wird im Bereich "Administration" angezeigt.
Typ: Zeichenfolge
Beispiel:
"author": "John Smith"
Konfiguration
Standardwerte für die Moduloptionen. Das Objekt kann beliebige benutzerdefinierte Schlüssel enthalten. Falls angegeben, werden diese Werte bei der Modulregistrierung in die Datenbank geschrieben. Später hinzugefügte neue Variablen werden beim ersten Aufruf geschrieben. Danach können die Variablenwerte nur noch 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 eingestellt ist.
Typ: Objekt
Unterstützte Objektschlüssel:
-
name (Zeichenfolge) – wird in der Widgetliste und als Standardkopfzeile verwendet. Wenn leer, wird der Parameter „name“ aus dem Modul verwendet.
-
size (Objekt) – Standard-Widgetabmessungen. Unterstützte Schlüssel:
-
width (Ganzzahl) – Standard-Widgetbreite.
-
height (Ganzzahl) – Standard-Widgethöhe.
-
form_class (Zeichenfolge) – Klasse mit Widgetfeldformular. Muss sich im Verzeichnis includes befinden. Wenn die Klasse WidgetForm.php ist, was standardmäßig erwartet wird, kann dieser Parameter weggelassen werden. Wenn Sie einen anderen Namen verwenden, geben Sie ihn hier an.
-
js_class (Zeichenfolge) – Name einer JavaScript-Klasse für den Widget-Ansichtsmodus, um die Standardklasse CWidget zu erweitern. Die Klasse wird mit dem Dashboard geladen. Die Klassenquelldatei muss sich im Verzeichnis „assets/js“ befinden. Siehe auch: assets.
-
use_time_selector (Boolesch) – bestimmt, ob das Widget einen Dashboard-Zeitselektor benötigt.
Unterstützte Werte: true, false (Standard).
- refresh_rate (Ganzzahl) – Aktualisierungsrate 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. Für Widgets wird dieser Link geöffnet, wenn Sie auf das Hilfesymbol
im Fenster Widget hinzufügen oder
Widget bearbeiten klicken.
Wenn url nicht angegeben ist, öffnet ein Klick auf das Hilfesymbol die allgemeine Seite Dashboard-Widgets.
Typ: Zeichenfolge
Beispiel:
"url": "http://example.com"