manifest.json
Każdy moduł wymaga pliku manifest.json. Plik musi znajdować się w głównym katalogu modułu (na przykład zabbix/ui/modules/module_name/manifest.json).
W najprostszej wersji plik manifest.json powinien określać następujące pola:
{
"manifest_version": 2.0,
"id": "my_ip_address",
"name": "My IP Address",
"namespace": "MyIPAddress",
"version": "1.0"
}
Parametry obsługiwane w pliku manifest.json (kliknij nazwę parametru, aby wyświetlić szczegółowy opis):
| Parametr | Opis | Wymagany |
|---|---|---|
| manifest_version | Wersja manifestu modułu. | Tak |
| id | Unikalny identyfikator modułu. | |
| name | Nazwa modułu wyświetlana w sekcji Administracja. | |
| namespace | Przestrzeń nazw PHP dla klas modułu. | |
| version | Wersja modułu. | |
| type | Typ modułu. W przypadku widgetu należy ustawić wartość widget | Tak w przypadku widgetów, w przeciwnym razie nie |
| widget | Konfiguracja widgetu. Używana tylko w przypadku widgetów. | |
| actions | Akcje rejestrowane w module. | |
| assets | Arkusze stylów CSS i pliki JavaScript do dołączenia. | Nie |
| author | Autor modułu. | |
| config | Wartości domyślne niestandardowych opcji modułu. | |
| description | Opis modułu. | |
| url | Link do opisu modułu. |
manifest_version
Wersja manifestu modułu.
Obecnie obsługiwana wersja to 2.0.
Typ: Double
Przykład:
"manifest_version": 2.0
id
Identyfikator modułu.
Musi być unikalny.
Aby uniknąć przyszłych konfliktów nazw, zaleca się używanie prefiksu dla modułów (nazwy autora lub firmy albo innego prefiksu).
Na przykład jeśli moduł jest przykładem do lekcji, a jego nazwa to „Mój moduł”, identyfikator będzie mieć wartość „example_my_module”.
Typ: String
Przykład:
"id": "example_my_module"
name
Nazwa modułu, która będzie wyświetlana w sekcji Administracja.
Typ: String
Przykład:
"name": "My module"
namespace
Przestrzeń nazw PHP dla klas modułów.
Typ: String
Przykład:
"namespace": "ClockWidget"
wersja
Wersja modułu.
Wersja będzie wyświetlana w sekcji Administracja.
Typ: String
Przykład:
"version": "1.0"
type
Typ modułu. Wymagany w przypadku widgetów i musi mieć wartość „widget”.
Typ: String
Wartość domyślna: „module”
Przykład:
"type": "widget"
actions
Akcje rejestrowane w module.
Zdefiniowanie klucza obiektu class dla każdej akcji jest wymagane, pozostałe klucze akcji są opcjonalne.
Typ: Object
Obsługiwane klucze obiektu, jeśli wartość type to module:
- write.your.action.name (object) - nazwa akcji, powinna być zapisana małymi literami [a-z], a poszczególne słowa należy oddzielać kropkami.
Obsługiwane klucze:- class (string; required) - nazwa klasy akcji.
- layout (string) - układ akcji.
Obsługiwane wartości: layout.json, layout.htmlpage (domyślna), null. - view (string) - widok akcji.
Przykład:
"actions": {
"module.example.list": {
"class": "ExampleList",
"view": "example.list",
"layout": "layout.htmlpage"
}
}
Obsługiwane klucze obiektu, jeśli wartość type to widget:
- widget.{id}.view (object) - nazwa pliku i klasy widoku widgetu.
Zastąp {id} wartością id widgetu (na przykład widget.example_clock.view).
Obsługiwane klucze:- class (string; required) - nazwa klasy akcji dla trybu widoku widgetu, rozszerzającej domyślną klasę CControllerDashboardWidgetView.
Plik źródłowy klasy musi znajdować się w katalogu actions. - view (string) - widok widgetu.
Musi znajdować się w katalogu views.
Jeśli plik widoku to widget.view.php, zgodnie z domyślnym oczekiwaniem, ten parametr można pominąć.
W przypadku użycia innej nazwy należy określić ją tutaj.
- class (string; required) - nazwa klasy akcji dla trybu widoku widgetu, rozszerzającej domyślną klasę CControllerDashboardWidgetView.
- widget.{id}.edit (object) - nazwa pliku widoku konfiguracji widgetu.
Zastąp {id} wartością id widgetu (na przykład widget.example_clock.edit).
Obsługiwane klucze:- class (string; required) - nazwa klasy akcji dla trybu widoku konfiguracji widgetu.
Plik źródłowy klasy musi znajdować się w katalogu actions. - view (string) - widok konfiguracji widgetu.
Musi znajdować się w katalogu views.
Jeśli plik widoku to widget.edit.php, zgodnie z domyślnym oczekiwaniem, ten parametr można pominąć.
W przypadku użycia innej nazwy należy określić ją tutaj.
- class (string; required) - nazwa klasy akcji dla trybu widoku konfiguracji widgetu.
Przykład:
"actions": {
"widget.tophosts.view": {
"class": "WidgetView"
},
"widget.tophosts.column.edit": {
"class": "ColumnEdit",
"view": "column.edit",
"layout": "layout.json"
}
}
zasoby
Style CSS i pliki JavaScript do dołączenia.
Typ: Object
Obsługiwane klucze obiektu:
- css (array) - pliki CSS do dołączenia. Pliki muszą znajdować się w katalogu assets/css.
- js (array) - pliki JavaScript do dołączenia. Pliki muszą znajdować się w katalogu assets/js.
Przykład:
"assets": {
"css": ["widget.css"],
"js": ["class.widget.js"]
}
autor
Autor modułu. Autor zostanie wyświetlony w sekcji Administracja.
Typ: String
Przykład:
"author": "John Smith"
config
Domyślne wartości opcji modułu. Obiekt może zawierać dowolne niestandardowe klucze. Jeśli zostaną określone, wartości te zostaną zapisane w bazie danych podczas rejestracji modułu. Nowe zmienne dodane później zostaną zapisane podczas pierwszego wywołania. Następnie wartości zmiennych można zmieniać wyłącznie bezpośrednio w bazie danych.
Typ: Object
Przykład:
"config": {
"username": "Admin",
"password": "",
"auth_url": "https://example.com/auth"
}
description
Opis modułu.
Typ: String
Przykład:
"description": "To jest widget zegara."
widget
Konfiguracja widgetu. Używana, jeśli type jest ustawione na widget.
Typ: Obiekt
Obsługiwane klucze obiektu:
-
name (string) - używana na liście widgetów oraz jako domyślny nagłówek. Jeśli jest pusta, zostanie użyty parametr "name" z modułu.
-
size (object) - domyślne wymiary widgetu. Obsługuje klucze:
- width (integer) - domyślna szerokość widgetu.
- height (integer) - domyślna wysokość widgetu.
-
form_class (string) - klasa zawierająca formularz pól widgetu. Musi znajdować się w katalogu includes. Jeśli klasa nosi nazwę WidgetForm.php, która jest domyślnie oczekiwana, ten parametr można pominąć. W przypadku użycia innej nazwy należy określić ją tutaj.
-
js_class (string) - nazwa klasy JavaScript rozszerzającej domyślną klasę CWidget dla trybu widoku widgetu. Klasa zostanie załadowana wraz z dashboardem. Plik źródłowy klasy musi znajdować się w katalogu assets/js. Zobacz także: assets.
-
use_time_selector (boolean) - określa, czy widget wymaga selektora czasu dashboardu. Obsługiwane wartości: true, false (domyślnie).
-
refresh_rate (integer) - częstotliwość odświeżania widgetu w sekundach (domyślnie: 60).
Przykład:
"widget": {
"name": "",
"size": {
"width": 12,
"height": 5
},
"form_class": "WidgetForm",
"js_class": "CWidget",
"use_time_selector": false,
"refresh_rate": 60
}
url
Link do opisu modułu.
W przypadku widżetów link ten zostanie otwarty po kliknięciu ikony pomocy
w oknie Dodaj widżet lub
Edytuj widżet.
Jeśli parametr url nie zostanie określony, kliknięcie ikony pomocy otworzy ogólną stronę
Widżety pulpitu nawigacyjnego.
Typ: String
Przykład:
"url": "http://example.com"