[comment]: # translation:outdated

[comment]: # aside:1

[comment]: # attributes: notoc

[comment]: # ({fcf4f388-0ea8ed60})
# 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:

```json
{
"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)|Manifest-Version des Moduls.| Ja |
|[id](#id) |Eindeutige Modul-ID. |^|
|[name](#name) |Modulname, der im Abschnitt „Administration“ angezeigt wird. |^|
|[Namespace](#namespace) |PHP-Namespace für Modulklassen.|^|
|[Version](#version) |Modulversion. |^|
|[Typ](#typ) |Modultyp. Für Widgets muss er auf *widget* gesetzt werden | Ja für Widgets, sonst nein |
|[widget](#widget) |Widget-Konfiguration. Wird nur für Widgets verwendet. |^|
|[Aktionen](#actions) | Aktionen die im Modul registriert werden. |^|
|[Styles](#assets) | Einzuschließende CSS-Stile und JavaScript-Dateien. | Nein |
|[Autor](#author) |Modulautor. |^|
|[Konfiguration](#config) |Standardwerte für benutzerdefinierte Moduloptionen. |^|
|[Beschreibung](#description) |Modulbeschreibung.|^|
|[URL](#url) |Ein Link zur Modulbeschreibung. |^|

[comment]: # ({/fcf4f388-0ea8ed60})

[comment]: # ({e6ddbfde-7863337e})

### manifest_version {#manifest-version}

Manifestversion des Moduls. Derzeit wird die Version **2.0** unterstützt.

*Typ*: Double

*Beispiel*: 

```json
"manifest_version": 2.0
```

[comment]: # ({/e6ddbfde-7863337e})

[comment]: # ({4a354b32-40db7411})

### 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*:

```json
„id“: „example_my_module“
```

[comment]: # ({/4a354b32-40db7411})

[comment]: # ({6b60a366-1d94ce43})

### Name

Modulname, der im Abschnitt „Administration“ angezeigt wird.

*Typ*: Zeichenfolge

*Beispiel*: 

```json
"name": "Mein Modul"
```

[comment]: # ({/6b60a366-1d94ce43})

[comment]: # ({346a79b5-b1e94eb0})

### Namespace

PHP-Namespace für Modulklassen.

*Typ*: String

*Beispiel*: 

```json
"namespace": "ClockWidget"
```

[comment]: # ({/346a79b5-b1e94eb0})

[comment]: # ({2801cc8a-6669130f})

### Version

Modulversion. Die Version wird im Bereich „Administration“ angezeigt.

*Typ*: Zeichenfolge

*Beispiel*: 

```json
"version": "1.0"
```

[comment]: # ({/2801cc8a-6669130f})

[comment]: # ({3d827d1e-2f2ecfb4})

### Typ

Typ des Moduls. Erforderlich für Widgets und muss "Widget" entsprechen.

*Typ*: Zeichenfolge

*Standard*: "Modul"

*Beispiel*:

```json
"Typ": "Widget"
```

[comment]: # ({/3d827d1e-2f2ecfb4})

[comment]: # ({9f849f5d-85cbb8b0})

### 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](#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*:

```json
"actions": {
"module.example.list": {
"class": "ExampleList",
"view": "example.list",
"layout": "layout.htmlpage"
}
}
```

Unterstützte Objektschlüssel, wenn *[type](#type)* auf *widget* gesetzt ist:

- **widget.{id}.view** (Objekt) - Datei- und Klassenname für die Widget-Ansicht. Ersetzen Sie **{id}** durch den [id](#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](#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*: 

```json
"actions": {
"widget.tophosts.view": {
"class": "WidgetView"
},
"widget.tophosts.column.edit": {
"class": "ColumnEdit",
"view": "column.edit",
"layout": "layout.json"
}
}
```

[comment]: # ({/9f849f5d-85cbb8b0})

[comment]: # ({29793a59-a0998fce})

### 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*: 

```json
"assets": {
"css": ["widget.css"],
"js": ["class.widget.js"]
}
```

[comment]: # ({/29793a59-a0998fce})

[comment]: # ({199df252-0a7c568c})

### Autor

Modulautor. Der Autor wird im Bereich "Administration" angezeigt.

*Typ*: Zeichenfolge

*Beispiel*: 

```json
"author": "John Smith"
```

[comment]: # ({/199df252-0a7c568c})

[comment]: # ({e21b146a-1})

### 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*:

```json
"config": {
"username": "Admin",
"password": "",
"auth_url": "https://example.com/auth"
}
```

[comment]: # ({/e21b146a-1})

[comment]: # ({7be8b4c3-6a167d9e})

### Beschreibung

Modulbeschreibung.

*Typ*: Zeichenfolge

*Beispiel*: 

```json
"Beschreibung": "Dies ist ein Uhr-Widget."
```

[comment]: # ({/7be8b4c3-6a167d9e})

[comment]: # ({23438afa-cb9c7cd8})

### widget

Widget-Konfiguration. Wird verwendet, wenn *[type](#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](#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*: 

```json
"widget": {
"name": "",
"size": {
"width": 12,
"height": 5
},
"form_class": "WidgetForm",
"js_class": "CWidget",
"use_time_selector": false,
"refresh_rate": 60
}
```

[comment]: # ({/23438afa-cb9c7cd8})

[comment]: # ({1530a296-ee0f6140})

### url

Ein Link zur Modulbeschreibung. Für Widgets wird dieser Link geöffnet, wenn Sie auf das Hilfesymbol ![](../../../../assets/en/manual/web_interface/help_link.png){class="nozoom"}
im Fenster [*Widget hinzufügen*](/manual/web_interface/frontend_sections/dashboards#adding-widgets) oder
[*Widget bearbeiten*](/manual/web_interface/frontend_sections/dashboards#widgets) klicken.

Wenn **url** nicht angegeben ist, öffnet ein Klick auf das Hilfesymbol die allgemeine Seite
[Dashboard-Widgets](/manual/web_interface/frontend_sections/dashboards/widgets).

*Typ*: Zeichenfolge

*Beispiel*: 

```json
"url": "http://example.com"
```

[comment]: # ({/1530a296-ee0f6140})
