Каждому модулю необходим файл 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 | Уникальный ID модуля. | |
name | Имя модуля, которое будет отображаться в разделе Администрирование. | |
namespace | Пространство имён PHP для классов модуля. | |
version | Версия модуля. | |
type | Тип модуля. Для виджетов необходимо указать widget | Да для виджетов, для остальных нет |
widget | Конфигурация виджета. Используется только для виджетов. | |
actions | Действия для регистрации модуля. | |
assets | Стили CSS и файлы JavaScript, которые необходимо включить. | Нет |
author | Автор модуля. | |
config | Значения по умолчанию для пользовательских параметров модуля. | |
description | Описание модуля. | |
url | Ссылка на описание модуля. |
Версия манифеста модуля. На данный момент поддерживается версия 2.0. Тип: Double
Пример:
Идентификатор модуля. Должен быть уникальным. Чтобы избежать конфликта имён в будущем, рекомендуется использовать для модулей префикс (имя автора или название компании, или любой другой). Например, если модуль является примером для уроков и имя модуля «My module», то идентификатор будет «example_my_module».
Тип: String
Пример:
Имя модуля, которое будет отображаться в секторе Администрирование.
Тип: String
Пример
Пространство имён PHP для классов модулей
Тип: String
Пример:
Версия модуля. Версия будет отображаться в секторе Администрирование.
Тип: String
Пример:
Тип модуля. Требуется для виджетов и должен быть равен "widget".
Тип: String
По умолчанию: "module"
Пример:
Действия по регистрации в модуле. Определение ключа объекта class для каждого действия является обязательным, остальные ключи действий не являются обязательными.
Тип: Объект
Поддерживаемые ключи объекта, если 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.
Тип: Объект
Поддерживаемые ключи объектов:
имя (строка) — используется в списке виджетов и в качестве заголовка по умолчанию. Если пусто, будет использоваться параметр «имя» из модуля.
template_support (логическое значение) — определяет, должен ли виджет быть доступен в шаблонах панелей мониторинга. Поддерживаемые значения: true, false (по умолчанию).
size (объект) – размеры виджета по умолчанию. Поддерживает ключи:
form_class (строка) - класс с формой полей виджета. Должен находиться в каталоге includes. Если класс WidgetForm.php, который ожидается по умолчанию, этот параметр можно опустить. Если вы используете другое имя, укажите его здесь.
js_class (строка) — имя класса JavaScript для режима просмотра виджета для расширения класса CWidget по умолчанию. Класс будет загружен с информационной панелью. Исходный файл класса должен находиться в каталоге assets/js. См. также: активы.
use_time_selector (логическое значение) — определяет, требует ли виджет селектор времени на панели управления. Поддерживаемые значения: true, false (по умолчанию).
refresh_rate (целое число) — частота обновления виджета в секундах (по умолчанию: 60).
Пример:
"widget": {
"name": "",
"template_support": true,
"size": {
"width": 12,
"height": 5
},
"form_class": "WidgetForm",
"js_class": "CWidget",
"use_time_selector": false,
"refresh_rate": 60
}
Ссылка на описание модуля.
Тип: Строка
Пример: