manifest.json
Jedes Modul benötigt die Datei manifest.json. Die Datei muss sich im primären Verzeichnis des Moduls befinden (zum Beispiel zabbix/ui/modules/module_name/manifest.json).
Mindestens sollte manifest.json diese Felder angeben:
{
"manifest_version": 2.0,
"id": "my_ip_address",
"name": "My IP Address",
"namespace": "MyIPAddress",
"version": "1.0"
}
Unterstützte Parameter in manifest.json (klicken Sie auf den Parameternamen für eine detaillierte Beschreibung):
| Parameter | Beschreibung | Erforderlich |
|---|---|---|
| manifest_version | Manifest-Version 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 Widgets muss widget gesetzt werden | Ja für Widgets, sonst nein |
| widget | Widget-Konfiguration. Nur für Widgets verwendet. | |
| actions | Mit dem Modul zu registrierende Aktionen. | |
| assets | CSS-Styles und JavaScript-Dateien, die eingebunden werden sollen. | Nein |
| author | Autor des Moduls. | |
| 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, 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 Modullbeschreibung. Bei Widgets wird dieser Link geöffnet, wenn auf das Hilfe-Symbol
im Fenster Widget hinzufügen oder
Widget bearbeiten geklickt wird.
Wenn url nicht angegeben ist, wird beim Klicken auf das Hilfe-Symbol die allgemeine Seite
Dashboard-Widgets geöffnet.
Typ: String
Beispiel:
"url": "http://example.com"