manifest.json
Każdy moduł wymaga pliku manifest.json. Plik musi znajdować się w głównym katalogu (na przykład zabbix/ui/modules/module_name/manifest.json).
Jako minimum 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 manifest.json (kliknij nazwę parametry, aby zobaczyć szczegółowy opis):
| Parametr | Opis | Wymagane |
|---|---|---|
| manifest_version | Wersja modułu manifestu. | Tak |
| id | Unikalny identyfikator modułu. | |
| name | Nazwa modułu, która będzie wyświetlana w sekcji Administracja. | |
| namespace | Przestrzeń nazw PHP dla klas modułów. | |
| version | Wersja modułu. | |
| type | Typ modułu. Dla widgetu musi być ustawiony jako widget | Tak dla widgetów, w przeciwnym razie nie |
| widget | Konfiguracja widgetu. Używany tylko dla widgetów. | |
| actions | Akcje umożliwiające rejestrację w module. | |
| assets | Style CSS i pliki JavaScript do uwzględnienia. | No |
| author | Autor modułu. | |
| config | Domyślne wartości niestandardowych opcji modułów . | |
| 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 w nazewnictwie, zaleca się używanie przedrostków dla modułów (nazwa autora, firmy lub jakakolwiek inna). Na przykład, jeśli moduł jest przykładem lekcji, a nazwa modułu to "Mój moduł", wówczas identyfikatorem będzie "przykład_mój_moduł".
Typ: String
Przykład:
"id": "przykład_mój_moduł"
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"
version
Wersja modułu. Wersja zostanie wyświetlona w sekcji Administracja.
Typ: String
Przykład:
"version": "1.0"
type
Typ modułu. Wymagane w przypadku widgetów i musi być równe "widget".
Typ: String
Domyślne: "module"
Przykład:
"type": "widget"
działania
Akcje do zarejestrowania w module. Wymagane jest zdefiniowanie klucza obiektu class dla każdej akcji, pozostałe klucze akcji są opcjonalne.
Typ: Obiekt
Obsługiwane klucze obiektu, jeśli typ to module:
- write.your.action.name (obiekt) - nazwa akcji, należy zapisać małymi literami [a-z], oddzielając słowa kropkami.
Obsługuje klucze:
- class (string; wymagane) - nazwa klasy akcji.
- layout (string) - układ akcji. Obsługiwane wartości: layout.json, layout.htmlpage (domyślnie), null.
- view (string) - widok akcji.
Przykład:
"actions": {
"moduł.example.list": {
"class": "ExampleList",
"view": "example.list",
"layout": "layout.htmlpage"
}
}
Obsługiwane klucze obiektu, jeśli type to widget:
- widget.{id}.view (object) - nazwa pliku i klasy dla widoku widgetu. Zamień {id} na wartość id widżetu (na przykład widget.example_clock.view).
Obsługuje klucze:
- class (string; wymagane) - nazwa klasy akcji dla trybu widoku widgetu w celu rozszerzenia domyślnej klasy CControllerDashboardWidgetView. Plik źródłowy klasy musi znajdować się w katalogu actions.
- view (string) - widok widżetu. Musi znajdować się w katalogu views. Jeśli plik widoku to widget.view.php, co jest wartością domyślną, można pozostawić pustą wartość. Jeśli używasz innej nazwy, podaj ją tutaj.
- widget.{id}.edit (object) - nazwa pliku widoku konfiguracji widgetu. Zamień {id} na wartość id widżetu (na przykład widget.example_clock.edit).
Obsługuje klucze:
- class (string; wymagane) - 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, co jest wartością domyślną, można pozostawić pustą wartość. Jeśli używasz innej nazwy, podaj ją tutaj.
Przykład:
"actions": {
"widget.tophosts.view": {
"class": "WidgetView"
},
"widget.tophosts.column.edit": {
"class": "ColumnEdit",
"view": "column.edit",
"layout": "layout.json"
}
}
assets
Style CSS i pliki JavaScript do uwzględnienia.
Typ: Object
Obsługiwane klucze obiektów:
- css (tablica) - pliki CSS do dołączenia. Pliki muszą znajdować się w katalogu assets/css.
- js (tablica) - pliki JavaScript do dołączenia. Pliki muszą znajdować się w katalogu assets/js.
Przykład:
"assets": {
"css": ["widget.css"],
"js": ["class.widget.js"]
}
author
Autor modułu. Autor zostanie wyświetlony w sekcji Administracja.
Typ: String
Przykład:
"author": "John Smith"
konfiguracja
Domyślne wartości opcji modułu. Obiekt może zawierać dowolne klucze niestandardowe. Jeśli podane, wartości te zostaną zapisane do bazy danych podczas rejestracji modułu. Nowe zmienne dodane później zostaną zapisane przy pierwszym wywołaniu. Po zapisaniu, wartości zmiennych można zmieniać wyłącznie bezpośrednio w bazie danych.
Typ: Obiekt
Przykład:
„config”: {
"username": "Administrator",
"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 ustawiony na widget.
Typ: Object
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 z formularzem pól widgetu. Musi znajdować się w katalogu includes. Jeśli klasą jest WidgetForm.php, oczekiwana domyślnie, ten parametr może zostać pominięty. W przypadku użycia innej nazwy należy ją tutaj określić.
-
js_class (string) - nazwa klasy JavaScript dla trybu widoku widgetu, rozszerzającej domyślną klasę CWidget. Klasa zostanie załadowana wraz z pulpitem. 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 pulpitu. 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 ten link zostanie otwarty po kliknięciu ikony pomocy
w oknie Dodaj widżet
lub
Edytuj widżet.
Jeśli nie określono url, kliknięcie ikony pomocy spowoduje otwarcie strony ogólnej Widżety pulpitu nawigacyjnego.
Typ: Łańcuch znaków
Przykład:
"url": "http://example.com"