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.jsonlayout.htmlpage(默认)、null。 - view (字符串) - 操作视图。

示例

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

如果 typewidget,则支持的对象键:

  • 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 (布尔值) - 确定小部件是否需要仪表板时间选择器。 支持的值:truefalse(默认值)。

  • 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"