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 | 模块的清单版本。 | Yes |
| id | 唯一的模块 ID。 | |
| name | 将在“管理”部分中显示的模块名称。 | |
| namespace | 模块类的 PHP 命名空间。 | |
| version | 模块版本。 | |
| type | 模块类型。对于小组件,必须设置为 widget。 | Yes for widgets, otherwise no |
| widget | 小组件配置。仅用于小组件。 | |
| actions | 要向模块注册的操作。 | |
| assets | 要包含的 CSS 样式和 JavaScript 文件。 | No |
| author | 模块作者。 | |
| config | 自定义模块选项的默认值。 | |
| description | 模块描述。 | |
| url | 指向模块描述的链接。 |
manifest_version
模块的清单版本。 目前支持的版本为 2.0。
类型: Double
示例:
"manifest_version": 2.0
id
模块 ID。
必须唯一。
为避免将来的命名冲突,建议为模块使用前缀(作者或公司名称,或其他名称)。
例如,如果模块是用于课程的示例,且模块名称为“My module”,则 ID 将为“example_my_module”。
类型:String
示例:
"id": "example_my_module"
name
将在管理部分中显示的模块名称。
类型:字符串
示例:
“name”:“我的模块”
命名空间
模块类的 PHP 命名空间。
类型:字符串
示例:
“ namespace”:“ClockWidget”
version
模块版本。 该版本将显示在“管理”部分。
类型:字符串
示例:
"version": "1.0"
type
模块的类型。 对于小组件是必需的,且必须等于 "widget"。
类型: String
默认值: "module"
示例:
"type": "widget"
actions
要向模块注册的操作。 必须为每个操作定义 class 对象键,其他操作键为可选项。
类型: Object
当 type 为 module 时支持的对象键:
- write.your.action.name (object) - 操作名称,应使用小写字母 [a-z],并使用点号分隔单词。
支持以下键:
- class (string; required) - 操作类名称。
- 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) - widget 视图的文件和类名称。
将 {id} 替换为 widget 的 id 值(例如,widget.example_clock.view)。
支持以下键:
- class (string; required) - widget 视图模式的操作类名称,用于扩展默认的 CControllerDashboardWidgetView 类。 类源文件必须位于 actions 目录中。
- view (string) - widget 视图。 必须位于 views 目录中。 如果视图文件为默认预期的 widget.view.php,则可以省略此参数。 如果使用其他名称,请在此处指定。
- widget.{id}.edit (object) - widget 配置视图的文件名称。
将 {id} 替换为 widget 的 id 值(例如,widget.example_clock.edit)。
支持以下键:
- class (string; required) - widget 配置视图模式的操作类名称。 类源文件必须位于 actions 目录中。
- view (string) - widget 配置视图。 必须位于 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": "John Smith"
config
模块选项的默认值。 该对象可以包含任意自定义键。 如果指定了这些值,则会在模块注册期间将其写入数据库。 之后添加的新变量将在首次调用时写入。 此后,只能直接在数据库中更改变量值。
类型: Object
示例:
"config": {
"username": "Admin",
"password": "",
"auth_url": "https://example.com/auth"
}
description
模块描述。
类型:字符串
示例:
“description”:“这是一个时钟小部件。”
widget
Widget 配置。 当 type 设置为 widget 时使用。
类型: Object
支持的对象键:
-
name (string) - 用于 widget 列表,并作为默认标题。 如果为空,将使用模块中的 "name" 参数。
-
size (object) - 默认 widget 尺寸。 支持以下键:
- width (integer) - 默认 widget 宽度。
- height (integer) - 默认 widget 高度。
-
form_class (string) - 包含 widget 字段表单的类。 必须位于 includes 目录中。 如果类为默认预期的 WidgetForm.php,则可以省略此参数。 如果使用其他名称,请在此处指定。
-
js_class (string) - 用于 widget 查看模式的 JavaScript 类名称,用于扩展默认的 CWidget 类。 该类将随仪表板一起加载。 该类的源文件必须位于 assets/js 目录中。 另请参阅:assets。
-
use_time_selector (boolean) - 确定 widget 是否需要仪表板时间选择器。 支持的值:true、false(默认)。
-
refresh_rate (integer) - widget 刷新间隔,单位为秒(默认值: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"