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"