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"