Для будь-якого модуля потрібний файл 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 | Посилання на опис модуля. |
Версія маніфесту модуля. Наразі підтримується версія 2.0.
Тип: Double
Приклад:
ID модуля. Повинно бути унікальним. Щоб уникнути майбутніх конфліктів іменування, рекомендується використовувати префікс для модулів (назва автора, компанії чи будь-який інший). Наприклад, якщо модуль є прикладом для уроків, а назва модуля – «Мій модуль», тоді ідентифікатор буде «example_my_module».
Тип: String
Приклад:
Назва модуля, яка буде відображатися в розділі Адміністрування.
Тип: String
Приклад:
Простір імен PHP для класів модулів.
Тип: String
Приклад:
Версія модуля. Версія буде відображатися в розділі Адміністрування.
Тип: String
Приклад:
Тип модуля. Необхідний для віджетів і має дорівнювати "widget".
Тип: String
За замовчуванням: "module"
Приклад:
Дії для реєстрації в модулі. Необхідно визначити ключ об’єкта class для кожної дії, інші ключі дії необов’язкові.
Тип: Object
Підтримувані ключі об’єктів, якщо type є module:
Приклад:
"actions": {
"module.example.list": {
"class": "ExampleList",
"view": "example.list",
"layout": "layout.htmlpage"
}
}
Підтримувані ключі об’єктів, якщо type є widget:
Приклад:
"actions": {
"widget.tophosts.view": {
"class": "WidgetView"
},
"widget.tophosts.column.edit": {
"class": "ColumnEdit",
"view": "column.edit",
"layout": "layout.json"
}
}
Стилі CSS і файли JavaScript для включення.
Тип: Object
Підтримувані ключі об’єктів:
Приклад:
Автор модуля. Автор буде відображатися в розділі Адміністрування.
Тип: String
Приклад:
Значення за замовчуванням для параметрів модуля. Об'єкт може містити будь-які спеціальні ключі. Якщо вказано, ці значення будуть записані в базу даних під час реєстрації модуля. Нові змінні, додані пізніше, будуть записані під час першого виклику. Після цього значення змінних можна змінити лише безпосередньо в базі даних.
Тип: Object
Приклад:
Опис модуля.
Тип: String
Приклад:
Конфігурація віджета. Використовується, якщо type має значення widget.
Тип: Object
Підтримувані ключі об’єктів:
name (string) - використовується у списку віджетів і як заголовок за замовчуванням. Якщо значення пусте, буде використано параметр "name" модуля.
template_support (boolean) - визначає, чи повинен віджет бути доступним на дашборді шаблонів. Підтримувані значення: true, false (за замовчуванням).
size (object) - розміри віджета за замовчуванням. Підтримує ключі:
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
}
Посилання на опис модуля.
Тип: String
Приклад: