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"