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
Идентификатор модуля.
Должен быть уникальным.
Чтобы избежать конфликтов имен в будущем, рекомендуется использовать префикс для модулей (имя автора или компании либо любой другой).
Например, если модуль является примером для учебных занятий и называется «Мой модуль», его идентификатором будет example_my_module.
Тип: String
Пример:
"id": "example_my_module"
name
Имя модуля, которое будет отображаться в секторе Администрирование.
Тип: String
Пример
"name": "My module"
namespace
Пространство имён PHP для классов модулей
Тип: String
Пример:
"namespace": "ClockWidget"
версия
Версия модуля. Версия будет отображаться в разделе «Администрирование».
Тип: строка
Пример:
"version": "1.0"
type
Тип модуля. Обязателен для виджетов и должен иметь значение "widget".
Тип: String
Значение по умолчанию: "module"
Пример:
"type": "widget"
действия
Действия, регистрируемые в модуле.
Для каждого действия необходимо определить ключ объекта 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, как ожидается по умолчанию, этот параметр можно не указывать.
При использовании другого имени укажите его здесь.
- class (string; required) — имя класса действия для режима представления виджета, расширяющего класс CControllerDashboardWidgetView по умолчанию.
- widget.{id}.edit (object) — имя файла для представления настройки виджета.
Замените {id} значением id виджета (например, widget.example_clock.edit).
Поддерживаемые ключи:- class (string; required) — имя класса действия для режима представления настройки виджета.
Исходный файл класса должен находиться в каталоге actions. - view (string) — представление настройки виджета.
Должно находиться в каталоге views.
Если файл представления называется widget.edit.php, как ожидается по умолчанию, этот параметр можно не указывать.
При использовании другого имени укажите его здесь.
- class (string; required) — имя класса действия для режима представления настройки виджета.
Пример:
"actions": {
"widget.tophosts.view": {
"class": "WidgetView"
},
"widget.tophosts.column.edit": {
"class": "ColumnEdit",
"view": "column.edit",
"layout": "layout.json"
}
}
ресурсы
CSS-стили и файлы JavaScript для подключения.
Тип: Object
Поддерживаемые ключи объекта:
- css (array) - CSS-файлы для подключения. Файлы должны находиться в каталоге assets/css.
- js (array) - файлы JavaScript для подключения. Файлы должны находиться в каталоге assets/js.
Пример:
"assets": {
"css": ["widget.css"],
"js": ["class.widget.js"]
}
автор
Автор модуля.
Автор будет отображаться в разделе «Администрирование».
Тип: String
Пример:
"author": "John Smith"
config
Значения по умолчанию для параметров модуля.
Объект может содержать любые пользовательские ключи.
Если они указаны, эти значения будут записаны в базу данных во время регистрации модуля.
Новые переменные, добавленные позднее, будут записаны при первом вызове.
После этого значения переменных можно изменить только непосредственно в базе данных.
Тип: Object
Пример:
"config": {
"username": "Admin",
"password": "",
"auth_url": "https://example.com/auth"
}
description
Описание модуля.
Тип: String
Пример:
"description": "Это виджет часов."
виджет
Конфигурация виджета.
Используется, если для type задано значение widget.
Тип: Object
Поддерживаемые ключи объекта:
-
name (string) — используется в списке виджетов и в качестве заголовка по умолчанию.
Если значение пустое, будет использоваться параметр "name" из модуля. -
size (object) — размеры виджета по умолчанию.
Поддерживаемые ключи:- width (integer) — ширина виджета по умолчанию.
- height (integer) — высота виджета по умолчанию.
-
form_class (string) — класс формы с полями виджета.
Должен находиться в каталоге includes.
Если класс называется WidgetForm.php, как предусмотрено по умолчанию, этот параметр можно не указывать.
При использовании другого имени укажите его здесь. -
js_class (string) — имя класса JavaScript, который расширяет класс CWidget по умолчанию для режима просмотра виджета.
Класс будет загружен вместе с панелью мониторинга.
Исходный файл класса должен находиться в каталоге assets/js.
См. также: assets. -
use_time_selector (boolean) — определяет, требуется ли виджету селектор времени панели мониторинга.
Поддерживаемые значения: true, false (по умолчанию). -
refresh_rate (integer) — интервал обновления виджета в секундах (по умолчанию: 60).
Пример:
"widget": {
"name": "",
"size": {
"width": 12,
"height": 5
},
"form_class": "WidgetForm",
"js_class": "CWidget",
"use_time_selector": false,
"refresh_rate": 60
}
url
Ссылка на описание модуля.
Для виджетов эта ссылка будет открываться при нажатии на значок справки
в окне Добавление виджета или
Редактирование виджета.
Если url не указан, при нажатии на значок справки будет открываться общая
страница Виджеты панелей мониторинга.
Тип: String
Пример:
"url": "http://example.com"