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 Уникальный 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

Идентификатор модуля. Должен быть уникальным. Чтобы избежать конфликта имён в будущем, рекомендуется использовать для модулей префикс (имя автора или название компании, или любой другой). Например, если модуль является примером для уроков и имя модуля «My module», то идентификатор будет «example_my_module».

Тип: String

Пример:

"id": "example_my_module"

name

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

Тип: String

Пример

"name": "My module"

namespace

Пространство имён PHP для классов модулей

Тип: String

Пример:

"namespace": "ClockWidget"

version

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

Тип: String

Пример:

"version": "1.0"

type

Тип модуля. Требуется для виджетов и должен быть равен "widget".

Тип: String

По умолчанию: "module"

Пример:

"type": "widget"

действия

Действия по регистрации в модуле. Определение ключа объекта class для каждого действия является обязательным, остальные ключи действий не являются обязательными.

Тип: Объект

Поддерживаемые ключи объекта, если type равно module:

  • write.your.action.name (объект) – название действия, пишется строчными буквами [a-z], разделяя слова точками. Поддерживает ключи:
    • class (строка; обязательный) — имя класса действия.
    • layout (строка) – макет действия. Поддерживаемые значения: layout.json, layout.htmlpage (по умолчанию), null.
    • view (строка) - просмотр действия.

Пример:

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

Поддерживаемые ключи объектов, если type равно widget:

  • widget.{id}.view (объект) — имя файла и класса для просмотра виджета. Замените {id} значением id виджета (например, widget.example_clock.view). Поддерживает ключи:
    • class (строка; обязательный) — имя класса действия для режима просмотра виджета для расширения класса CControllerDashboardWidgetView по умолчанию. Исходный файл класса должен находиться в каталоге actions.
    • view (строка) - вид виджета. Должен находиться в каталоге views. Если файлом представления является widget.view.php, который ожидается по умолчанию, этот параметр можно опустить. Если вы используете другое имя, укажите его здесь.
  • widget.{id}.edit (объект) - имя файла для просмотра конфигурации виджета. Замените {id} значением id виджета (например, widget.example_clock.edit). Поддерживает ключи:
    • class (строка; обязательный) — имя класса действия для режима просмотра конфигурации виджета. Исходный файл класса должен находиться в каталоге actions.
    • view (строка) - представление конфигурации виджета. Должен находиться в каталоге 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": "John Smith"

config

Значения по умолчанию для опций модуля. Объект может содержать любые пользовательские ключи. Если указано, эти значения будут записаны в базу данных во время регистрации модуля. Новые переменные, добавленные позже, будут записаны при первом вызове. В дальнейшем значения переменных можно будет изменить только непосредственно в базе данных.

Тип: Object

Пример:

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

description

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

Тип: String

Пример:

"description": "This is a clock widget."

widget

Настройка виджета. Используется, если для type установлено значение widget.

Тип: Объект

Поддерживаемые ключи объектов:

  • имя (строка) — используется в списке виджетов и в качестве заголовка по умолчанию. Если пусто, будет использоваться параметр «имя» из модуля.

  • template_support (логическое значение) — определяет, должен ли виджет быть доступен в шаблонах панелей мониторинга. Поддерживаемые значения: true, false (по умолчанию).

  • size (объект) – размеры виджета по умолчанию. Поддерживает ключи:

    • width (целое число) — ширина виджета по умолчанию.
    • height (целое число) — высота виджета по умолчанию.
  • 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             
       }

url

Ссылка на описание модуля.

Тип: Строка

Пример:

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