manifest.json

Для будь-якого модуля потрібний файл manifest.json. Файл має бути розташований у основному каталозі модуля (наприклад zabbix/ui/modules/module_name/manifest.json).

Як мінімум, у файлі manifest.json мають бути вказані такі поля:

{
       "manifest_version": 2.0,
       "id": "my_ip_address",
       "name": "My IP Address",
       "namespace": "MyIPAddress",
       "version": "1.0"
       }

Параметри, які підтримуються в manifest.json (натисніть назву параметра для детального опису):

Параметр Опис Обов'язковий
manifest_version Версія маніфесту модуля. Так
id Унікальний ідентифікатор модуля.
name Назва модуля, що відображатиметься в розділі Адміністрування.
namespace Простір імен PHP для класів модулів.
version Версія модуля.
type Тип модуля. Для віджета потрібно встановити widget Так для віджетів, ні для решти
widget Конфігурація віджета. Використовується лише для віджетів.
actions Дії для реєстрації в модулі.
assets Стилі CSS і файли JavaScript для включення. Ні
author Автор модуля.
config Значення за замовчуванням для користувацьких параметрів модуля.
description Опис модуля.
url Посилання на опис модуля.

manifest_version

Версія маніфесту модуля. Наразі підтримується версія 2.0.

Тип: Double

Приклад:

"manifest_version": 2.0

id

ID модуля. Повинно бути унікальним. Щоб уникнути майбутніх конфліктів іменування, рекомендується використовувати префікс для модулів (назва автора, компанії чи будь-який інший). Наприклад, якщо модуль є прикладом для уроків, а назва модуля – «Мій модуль», тоді ідентифікатор буде «example_my_module».

Тип: String

Приклад:

"id": "example_my_module"

name

Назва модуля, яка буде відображатися в розділі Адміністрування.

Тип: String

Приклад:

"name": "Мій модуль"

namespace

Простір імен PHP для класів модулів.

Тип: String

Приклад:

"namespace": "ClockWidget"

version

Версія модуля. Версія буде відображатися в розділі Адміністрування.

Тип: String

Приклад:

"version": "1.0"

type

Тип модуля. Необхідний для віджетів і має дорівнювати "widget".

Тип: String

За замовчуванням: "module"

Приклад:

"type": "widget"

actions

Дії для реєстрації в модулі. Необхідно визначити ключ об’єкта class для кожної дії, інші ключі дії необов’язкові.

Тип: Object

Підтримувані ключі об’єктів, якщо type є module:

  • write.your.action.name (object) - назва дії, має бути написано малими літерами [a-z], розділяючи слова крапками. Підтримує ключі:
    • class (string; required) - назва класу дії.
    • layout (string) - розкладка дії. Підтримувані значення: layout.json, layout.htmlpage (за замовчуванням), null.
    • view (string) - представлення дії.

Приклад:

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

Підтримувані ключі об’єктів, якщо type є widget:

  • widget.{id}.view (object) - ім'я файлу та класу для представлення віджетів. Замініть {id} значенням id віджета (наприклад, widget.example_clock.view). Підтримує ключі:
    • class (string; required) - ім'я класу дії для режиму перегляду віджетів для розширення стандартного класу CControllerDashboardWidgetView. Вихідний файл класу має бути розташований у каталозі actions.
    • view (string) - представлення віджета. Повинен знаходитися в каталозі views. Якщо файл представлення widget.view.php, що очікується за замовчуванням, цей параметр може бути пропущений. Якщо ви використовуєте інше ім’я, вкажіть його тут.
  • widget.{id}.edit (object) - ім'я файлу для представлення конфігурації віджета. Замініть {id} значенням id віджета (наприклад, widget.example_clock.edit). Підтримує ключі:
    • class (string; required) - назва класу дії для режиму представлення конфігурації віджета. Вихідний файл класу має бути розташований у каталозі actions.
    • view (string) - представлення конфігурації віджета. Повинен знаходитися в каталозі views. Якщо файл представлення widget.edit.php, що очікується за замовчуванням, цей параметр може бути пропущений. Якщо ви використовуєте інше ім’я, вкажіть його тут.

Приклад:

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

assets

Стилі CSS і файли JavaScript для включення.

Тип: Object

Підтримувані ключі об’єктів:

  • css (array) - файли CSS для включення. Файли мають бути розташовані в assets/css.
  • js (array) - файли JavaScript для включення. Файли мають бути розташовані в assets/js.

Приклад:

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

author

Автор модуля. Автор буде відображатися в розділі Адміністрування.

Тип: String

Приклад:

"author": "Лесь Подерв'янський"

config

Значення за замовчуванням для параметрів модуля. Об'єкт може містити будь-які спеціальні ключі. Якщо вказано, ці значення будуть записані в базу даних під час реєстрації модуля. Нові змінні, додані пізніше, будуть записані під час першого виклику. Після цього значення змінних можна змінити лише безпосередньо в базі даних.

Тип: Object

Приклад:

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

description

Опис модуля.

Тип: String

Приклад:

"description": "Це віджет годинника."

widget

Конфігурація віджета. Використовується, якщо type має значення widget.

Тип: Object

Підтримувані ключі об’єктів:

  • name (string) - використовується у списку віджетів і як заголовок за замовчуванням. Якщо значення пусте, буде використано параметр "name" модуля.

  • template_support (boolean) - визначає, чи повинен віджет бути доступним на дашборді шаблонів. Підтримувані значення: true, false (за замовчуванням).

  • size (object) - розміри віджета за замовчуванням. Підтримує ключі:

    • width (integer) - ширина віджета за замовчуванням.
    • height (integer) - висота віджета за замовчуванням.
  • form_class (string) - клас з формою полів віджетів. Повинен знаходитися в каталозі includes. Якщо класом є WidgetForm.php, який очікується за замовчуванням, цей параметр можна опустити. Якщо ви використовуєте інше ім’я, вкажіть його тут.

  • js_class (stringdashboard) - назва класу JavaScript для режиму перегляду віджетів для розширення стандартного класу CWidget. Клас буде завантажено разом із панеллю інструментів. Вихідний файл класу має бути розташований у каталозі assets/js. Дивіться також: assets.

  • use_time_selector (boolean) - визначає, чи потрібен віджет селектор часу на інформаційній панелі. Підтримувані значення: true, false (за замовчуванням).

  • refresh_rate (integer) - частота оновлення віджета в секундах (за замовчуванням: 60).

Приклад:

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

url

Посилання на опис модуля.

Тип: String

Приклад:

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