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"

actions

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

Тип: Object

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

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

config

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

Тип: Object

Пример:

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

description

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

Тип: String

Пример:

"description": "Это виджет часов."

widget

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

Тип: Object

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

  • имя (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"