Struktura plików modułu

Cały kod związany z modułem jest przechowywany w pojedynczym katalogu wewnątrz katalogu modules instalacji frontendu Zabbix (na przykład zabbix/ui/modules).

Drzewo plików modułów

example_module_directory/ (wymagane)
   manifest.json (wymagane) Metadane i definicja akcji.
   Module.php Inicjalizacja modułu i obsługa zdarzeń.
   actions/   pliki kontrolera akcji.
       SomethingView.php
       SomethingCreate.php
       SomethingDelete.php
       data_export/
           ExportAsXml.php
           ExportAsExcel.php
   views/   pliki widoków.
       example.something.view.php
       example.something.delete.php
   assets/   wszelkie dodatkowe pliki do wykorzystania w widokach. Należy określić w pliku manifest.json.
       js/   skrypty JavaScript używane w widokach.
           example.something.view.js.php
       css/   pliki CSS używane w widokach.
           example.something.css
        image.png   obraz do użycia w widokach.
        example.something.file   dowolny plik do użycia w widokach.

Pisanie modułu

Przykładowy proces tworzenia modułu składa się z następujących kroków (jeśli to możliwe, kliknij nazwę pliku lub folderu, aby wyświetlić dodatkowe szczegóły dotyczące danego kroku):

  1. Utwórz nowy katalog dla modułu w zabbix/ui/modules/.
  2. Dodaj plik manifest.json z metadanymi modułu.
  3. Utwórz folder views i zdefiniuj widok(i) modułu.
  4. Utwórz folder actions i zdefiniuj akcję(i) modułu.
  5. Utwórz plik Module.php (lub Widget.php dla widgetów pulpitu) i zdefiniuj reguły inicjalizacji oraz obsługi zdarzeń.
  6. Utwórz folder assets na pliki JavaScript (umieszczane w assets/js), style CSS (umieszczane w assets/css) lub inne dodatkowe pliki.
  7. Upewnij się, że w pliku manifest.json określono wymagane widoki, akcje i pliki zasobów.
  8. Zarejestruj moduł we frontendzie Zabbixa i zacznij z niego korzystać.

Możesz zarejestrować i włączyć moduł zaraz po utworzeniu pliku manifest.json. Po włączeniu modułu możesz natychmiast podejrzeć wszystkie zmiany wprowadzone w plikach modułu, odświeżając frontend Zabbixa.