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 (притисните назив параметра за детаљан опис):

Parameter Description Required
manifest_version Манифест верзија модула. Да
id Јединствени ID модула.
name Назив модула који ће бити приказан у одељку Администрација.
namespace PHP именски простор за класе модула.
version Верзија модула.
type Тип модула. За виџет мора бити подешен на widget Да за виџете, иначе не
widget Конфигурација виџета. Користи се само за виџете.
actions Радње за регистрацију у модулу.
assets CSS стилови и JavaScript датотеке које треба укључити. Не
author Аутор модула.
config Подразумеване вредности за опције прилагођеног модула.
description Опис модула.
url Веза до описа модула.

manifest_version

Верзија манифеста модула. Тренутно, подржана верзија је 2.0. Тип: Двоструки

Пример:

"manifest_version": 2.0

id

ID модула. Мора бити јединствен. Да бисте избегли будуће сукобе имена, препоручује се коришћење префикса за модуле (аутор или назив компаније, или било који други). На пример, ако је модул пример за лекције и назив модула је "My module", онда ће ID бити "example_my_module".

Тип: String

Пример:

"id": "example_my_module"

назив

Назив модула који ће бити приказан у одељку Администрација.

Tip: String

Пример:

"name": "My module"

именски простор

PHP именски простор за класе модула.

Тип: String

Пример:

"namespace": "ClockWidget"

верзија

Верзија модула. Верзија ће бити приказана у одељку Администрација.

Тип: String

Пример:

"version": "1.0"

тип

Тип модула. Обавезно за видџете и мора бити једнако "widget".

Тип:String

Подразумевано:"module"

Пример:`

"type": "widget"

акције

Акције за регистрацију са модулима. Дефинисање кључа објекта class за сваку акцију је потребно, остали акциони кључеви су опциони.

Тип: Објекат

Подржани кључеви објеката ако је type module:

  • write.your.action.name (објекат) - назив радње, треба писати малим словима [a-z], раздвајајући речи тачкама. Подржава кључеве:
  • ** класа** (string; обавезно) - назив класе акције.
  • изглед (string) - распоред акције. Подржане вредности: layout.json, layout.htmlpage (подразумевано), null.
  • поглед (string) - приказ акције.

Пример:

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

Подржани кључеви објеката ако је type widget:

  • widget.{id}.view (објекат) - назив датотеке и класе за приказ виџета. Замените {id} са вредношћу id виџета (на пример, widget.example_clock.view). Подржава кључеве:
    • класа (string; обавезно) - име класе радње за режим приказа виџета ради проширења подразумеване класе CControllerDashboardWidgetView. Изворна датотека класе мора да се налази у директоријуму actions.
    • приказ (string) - приказ виџета. Мора да се налази у директоријуму views. Ако је датотека приказа widget.view.php, што се подразумевано очекује, овај параметар је можда изостављен. Ако користите друго име, наведите га овде.
  • widget.{id}.edit (објекат) - назив датотеке за приказ конфигурације виџета. Замените {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 датотеке које треба укључити.

Тип: Објекат

Подржани кључеви објеката:

  • ** css** (низ) - CSS датотеке које треба укључити. Датотеке се морају налазити у assets/css.
  • ** js** (низ) - JavaScript датотеке које треба укључити. Датотеке морају да се налазе у assets/js.

Пример:

"assets": {
          "css": ["widget.css"],
          "js": ["class.widget.js"]
       }

аутор

Аутор модула. Аутор ће бити приказан у одељку Администрација.

Тип: String

Пример:

"author": "John Smith"

конфигурација

Подразумеване вредности за опције модула. Објекат може садржати било које прилагођене кључеве.Ако је специфицирано, ове вредности ће бити уписане у базу података током регистрације модула.Нове варијабле додате касније ће бити уписане при првом позиву.После тога, вредности променљивих се могу мењати само директно у бази података.

Тип: Објекат

Пример:

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

опис

Опис модула.

Тип: String

Пример:

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

виџет

Конфигурација виџета. Користи се ако је type постављено на widget.

Тип: Објекат

Подржани кључеви објеката:

  • ** name** (string) - користи се у листи виџета и као подразумевано заглавље. Ако је празно, користиће се параметар "name" из модула.

  • ** size** (објекат) - подразумеване димензије виџета. Подржава следеће кључеве:

    • width* (цео број) - подразумевана ширина виџета.
    • height* (цео број) - подразумевана висина виџета.
  • form_class (string) - класа са формом за поља виџета. Мора да се налази у директоријуму includes. Ако је класа WidgetForm.php, што се подразумевано очекује, овај параметар је можда изостављен.
    Ако користите друго име, наведите га овде.

  • js_class (string) - име JavaScript класе за режим приказа виџета ради проширења подразумеване класе CWidget. Класа ће бити учитана са контролном таблом. Изворна датотека класе мора да се налази у директоријуму assets/js. Такође погледајте: assets.

  • use_time_selector (boolean) - одређује да ли виџет захтева бирач времена на контролној табли. Подржане вредности: * true, false* (подразумевано).

  • refresh_rate (цео број) - брзина освежавања виџета у секундама (подразумевано: 60).

Пример:

"widget": {
        "name": "",
        "size": {"width": 12,
        "height": 5
        },
        "form_class": "WidgetForm",
        "js_class": "CWidget",
        "use_time_selector": false,
        "refresh_rate": 60
       }

url

Веза до описа модула. За виџете, ова веза ће се отворити када кликнете на икону помоћи у Add widget илиEdit widget прозор. Ако ** url** није наведен, кликом на икону помоћи отвориће се општа страница Dashboard widgets.

Тип: String

Пример:

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