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).

Plik manifest.json powinien zawierać co najmniej 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żywane 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 Odnośnik 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ć unikatowy.
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 zostanie wyświetlona w sekcji Administracja.

Typ: String

Przykład:

"version": "1.0"

type

Typ modułu. Wymagany w przypadku widżetó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, zapisana małymi literami [a-z], z kropkami oddzielającymi poszczególne słowa.
    Obsługiwane klucze:
    • class (string; required) - 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": {
    "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, czego domyślnie się oczekuje, ten parametr można pominąć.
      Jeśli używana jest inna nazwa, należy ją tutaj określić.
  • 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, czego domyślnie się oczekuje, ten parametr można pominąć.
      Jeśli używana jest inna nazwa, należy ją tutaj określić.

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 obiektu:

  • css (array) - pliki CSS do uwzględnienia. Pliki muszą znajdować się w katalogu assets/css.
  • js (array) - pliki JavaScript do uwzględnienia. 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

Wartości domyślne 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żywane, jeśli type ma wartość 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ługiwane 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 klasą jest WidgetForm.php, czego domyślnie się oczekuje, ten parametr można pominąć. W przypadku użycia innej nazwy należy określić ją tutaj.

  • js_class (string) - nazwa klasy JavaScript dla trybu widoku widgetu, rozszerzającej domyślną klasę CWidget. 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 zostanie otwarty po kliknięciu ikony pomocy w oknie Add widget lub Edit widget.
Jeśli parametr url nie zostanie określony, kliknięcie ikony pomocy otworzy ogólną stronę Dashboard widgets.

Typ: String

Przykład:

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