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
模块 ID。必须是唯一的。为避免将来的命名冲突,建议使用模块前缀(作者或公司名称,或任何其他名称)。 例如,如果模块是课程示例,模块名称为“我的模块”,则 ID 将为“example_my_module”。
类型:字符串
示例:
“id”:“example_my_module”
name
将在管理部分中显示的模块名称。
类型:字符串
示例:
“name”:“我的模块”
命名空间
模块类的 PHP 命名空间。
类型:字符串
示例:
“ namespace”:“ClockWidget”
版本
将在管理部分中显示的模块版本。
类型:字符串
示例:
“version”:“1.0”
type
模块的类型。对于小部件而言是必需的,并且必须等于“widget”。
类型:String
默认:“module”
示例:
“type”:“widget”
操作
要向模块注册的操作。
必须为每个操作定义 class 对象键,其他操作键是可选的。
类型:对象
如果 type 是 模块,则支持的对象键:
- write.your.action.name (对象) - 操作名称,应以小写 [a-z] 书写,用点分隔单词。
支持的键:
- class (字符串;必需) - 操作类名。
- layout (字符串) - 操作布局。支持的值:layout.json、layout.htmlpage(默认)、null。
- view (字符串) - 操作视图。
示例:
"actions": {
"module.example.list": {
"class": "ExampleList",
"view": "example.list",
"layout": "layout.htmlpage"
}
}
如果 type 为 widget,则支持的对象键:
- widget.{id}.view (对象) - 小部件视图的文件和类名。将 {id} 替换为小部件的 id 值(例如,widget.example_clock.view)。 支持以下键:
- class (字符串;必需) - 小部件视图模式的操作类名,用于扩展默认的 CControllerDashboardWidgetView 类。 类源文件必须位于 actions 目录中。
- view (字符串) - 小部件视图。必须位于 views 目录中。 如果视图文件是 widget.view.php(默认情况下是预期的),则可以省略此参数。 如果使用其他名称,请在此处指定。
- widget.{id}.edit(对象)- 小部件配置视图的文件名。将 {id} 替换为小部件的 id 值(例如,widget.example_clock.edit)。 支持以下键:
- class(字符串;必需)- 小部件配置视图模式的操作类名。类源文件必须位于 actions 目录中。
- view(字符串)- 小部件配置视图。必须位于 views 目录中。 如果视图文件是 widget.edit.php(默认情况下是预期的),则可以省略此参数。 如果使用其他名称,请在此处指定。
示例:
"actions": {
"widget.tophosts.view": {
"class": "WidgetView"
},
"widget.tophosts.column.edit": {
"class": "ColumnEdit",
"view": "column.edit",
"layout": "layout.json"
}
}
资源
要包含的 CSS 样式和 JavaScript 文件。
类型:对象
支持的对象键:
- css (数组) - 要包含的 CSS 文件。这些文件必须位于 assets/css 中。
- js (数组) - 要包含的 JavaScript 文件。这些文件必须位于 assets/js 中。
示例:
"assets": {
"css": ["widget.css"],
"js": ["class.widget.js"]
}
name
将在管理部分中显示的模块名称。
类型:字符串
示例:
“name”:“John Smith”
config
模块选项的默认值。对象可以包含任何自定义键。 如果指定,这些值将在模块注册期间写入数据库。 稍后添加的新变量将在第一次调用时写入。 之后,只能在数据库中直接更改变量值。
类型:对象
示例:
“config”:{
“ username”:“Admin”,
“ password”:“”,
“auth_url”:“https://example.com/auth”
}
description
模块描述。
类型:字符串
示例:
“description”:“这是一个时钟小部件。”
widget
Widget 配置。如果 type 设置为 widget,则使用。
类型:对象
支持的对象键:
-
name (字符串) - 用于 widget 列表和默认标题。如果为空,则将使用模块中的“name”参数。
-
size (对象) - 默认 widget 尺寸。支持键:
-
width (整数) - 默认 widget 宽度。
-
height (整数) - 默认 widget 高度。
-
form_class (字符串) - 带有 widget 字段表单的类。必须位于 includes 目录中。 如果类是 WidgetForm.php(默认情况下是预期的),则可以省略此参数。 如果使用不同的名称,请在此处指定。
-
js_class (字符串) - 用于 widget 视图模式的 JavaScript 类的名称,用于扩展默认的 CWidget 类。 该类将与仪表板一起加载。 类源文件必须位于 assets/js 目录中。另请参阅:assets。
-
use_time_selector (布尔值) - 确定小部件是否需要仪表板时间选择器。 支持的值: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
模块说明的链接。对于小部件,单击 添加小部件 或
编辑小部件 窗口中的帮助图标
时将打开此链接。
如果未指定 url,单击帮助图标将打开常规
仪表板小部件 页面。
类型:字符串
示例:
"url": "http://example.com"