任何模块都需要 manifest.json 文件。
file 必须位于模块的主目录中(例如,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 | 模块的清单 version。 | 是 |
id | 唯一模块 ID。 | |
name | 将在“管理”部分中显示的模块名称。 | |
namespace | 模块类的 PHP 命名空间。 | |
version | 模块版本。 | |
type | 模块类型。对于小get必须设置为 widget | 小部件时必填,其他情况非必填 |
widget | 小get配置。仅用于小部件。 | |
actions | 要与模块一起注册的操作。 | |
assets | 要包含的 CSS 样式和 JavaScript 文件。 | 否 |
author | 模块作者。 | |
config | 自定义模块选项的默认值。 | |
description | 模块描述。 | |
url | 指向模块描述的链接。 |
模块的version清单。当前支持的version为2.0。
类型:双精度浮点数
示例:
模块ID。必须唯一。为了避免未来的命名冲突,建议为模块使用前缀(作者名、公司名,或其他任何名称)。 例如,如果一个模块是课程示例,且模块名称为 "My module",则该ID将是 "example_my_module"。
类型: string
示例:
在“管理”部分中显示的模块名称。
类型: string
示例:
模块类的 PHP 命名空间。
类型:string
示例:
模块版本。version 将显示在管理部分。
类型:string
示例:
模块的类型。用于小部件,且必须等于 "widget"。
类型: string
默认值: "module"
示例:
需要注册到模块中的动作。
每个动作必须定义class object键,其他动作键是可选的。
类型: object
如果type为module,支持的object键:
示例:
"actions": {
"module.example.list": {
"class": "ExampleList",
"view": "example.list",
"layout": "layout.htmlpage"
}
}
如果type为widget,支持的object键:
示例:
"actions": {
"widget.tophosts.view": {
"class": "WidgetView"
},
"widget.tophosts.column.edit": {
"class": "ColumnEdit",
"view": "column.edit",
"layout": "layout.json"
}
}
要包含的 CSS 样式和 JavaScript 文件。
类型:object
支持的 object 键:
示例:
模块作者。作者将在“管理”部分中显示。
类型:string
示例:
模块选项的默认值。object 可以包含任何自定义键。 如果指定,这些值将在模块注册期间写入数据库。 之后添加的新变量将在第一次调用时写入。 此后,变量值只能直接在数据库中更改。
类型: object
示例:
模块描述。
类型: string
示例:
部件配置。当类型设置为widget时使用。
类型: object
支持的object键值:
name (string) - 用于部件列表和默认标题显示。若为空,则使用模块中的"name"参数。
size (object) - 默认部件尺寸。支持以下键值:
form_class (string) - 包含部件字段表单的类。必须位于includes目录中。 若类名为默认预期的WidgetForm.php,则可省略此参数。 若使用不同名称,需在此处指定。
js_class (string) - 用于部件视图模式的JavaScript类名,用于扩展默认CWidget类。 该类将随仪表板加载。 类源文件file必须位于assets/js目录。另请参阅:资源文件。
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,点击帮助图标将打开通用的
Dashboard widgets 页面。
类型: string
示例: