manifest.json

任何模块都需要 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 指向模块描述的链接。

manifest_version

模块的version清单。当前支持的version为2.0。

类型:双精度浮点数

示例:

"manifest_version": 2.0

id

模块ID。必须唯一。为了避免未来的命名冲突,建议为模块使用前缀(作者名、公司名,或其他任何名称)。 例如,如果一个模块是课程示例,且模块名称为 "My module",则该ID将是 "example_my_module"。

类型: string

示例:

"id": "example_my_module"

名称

在“管理”部分中显示的模块名称。

类型: string

示例:

"name": "My module"

命名空间

模块类的 PHP 命名空间。

类型:string

示例:

"namespace": "ClockWidget"

版本

模块版本。version 将显示在管理部分。

类型:string

示例:

"version": "1.0"

类型

模块的类型。用于小部件,且必须等于 "widget"。

类型: string

默认值: "module"

示例:

"type": "widget"

动作

需要注册到模块中的动作。
每个动作必须定义class object键,其他动作键是可选的。

类型: object

如果type为module,支持的object键:

  • write.your.action.name (object) - 动作名称,应使用小写字母[a-z],单词之间用点分隔。 支持的键:
    • class (string; 必需) - 动作类名。
    • layout (string) - 动作布局。支持的值:layout.json, layout.htmlpage (默认), null。
    • view (string) - 动作视图。

示例:

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

如果type为widget,支持的object键:

  • widget.{id}.view (object) - widget视图的file和类名。将{id}替换为小部件的id值(例如,widget.example_clock.view)。 支持的键:
    • class (string; 必需) - 用于widget视图模式的动作类名,以扩展默认的CControllerDashboardWidgetView类。 类的file源文件必须位于actions目录中。
    • view (string) - widget视图。必须位于views目录中。 如果视图file为默认预期的widget.view.php,则可以省略此参数。 如果使用其他名称,请在此处指定。
  • widget.{id}.edit (object) - widget配置视图的file名称。将{id}替换为小部件的id值(例如,widget.example_clock.edit)。 支持的键:
    • class (string; 必需) - 用于widget配置视图模式的动作类名。类的file源文件必须位于actions目录中。
    • view (string) - widget配置视图。必须位于views目录中。 如果视图file为默认预期的widget.edit.php,则可以省略此参数。 如果使用其他名称,请在此处指定。

示例:

"actions": {
    "widget.tophosts.view": {
        "class": "WidgetView"
    },
    "widget.tophosts.column.edit": {
        "class": "ColumnEdit",
        "view": "column.edit",
        "layout": "layout.json"
    }
}

资产

要包含的 CSS 样式和 JavaScript 文件。

类型:object

支持的 object 键:

  • css (array) - 要包含的 CSS 文件。文件必须位于 assets/css 目录中。
  • js (array) - 要包含的 JavaScript 文件。文件必须位于 assets/js 目录中。

示例:

"assets": {
    "css": ["widget.css"],
    "js": ["class.widget.js"]
}

作者

模块作者。作者将在“管理”部分中显示。

类型:string

示例:

"author": "John Smith"

配置

模块选项的默认值。object 可以包含任何自定义键。 如果指定,这些值将在模块注册期间写入数据库。 之后添加的新变量将在第一次调用时写入。 此后,变量值只能直接在数据库中更改。

类型: object

示例:

"config": {
    "username": "Admin",
    "password": "",
    "auth_url": "https://example.com/auth"
}

描述

模块描述。

类型: string

示例:

"description": "This is a clock widget."

小组件

部件配置。当类型设置为widget时使用。

类型: object

支持的object键值:

  • 名称 (string) - 用于部件列表及默认标题显示。若为空,则使用模块中的"name"参数。

  • 尺寸 (object) - 默认部件尺寸。支持以下键值:

    • 宽度 (integer) - 默认部件宽度。
    • 高度 (integer) - 默认部件高度。
  • 表单类 (string) - 包含部件字段表单的类。必须位于includes目录下。 若类名为默认预期的WidgetForm.php,则可省略此参数。 若使用不同名称,需在此处指定。

  • JS类 (string) - 用于扩展默认CWidget类的部件视图模式JavaScript类名。 该类将与仪表盘一同加载。 类源文件file必须位于assets/js目录。另请参阅:资源文件。

  • 使用时间选择器 (boolean) - 决定部件是否需要仪表盘时间选择器。 支持值:true、false(默认)。

  • 刷新频率 (integer) - 部件刷新间隔秒数(默认:60)。

示例:

"widget": {
    "name": "",
    "size": {
        "width": 12,
        "height": 5
    },
    "form_class": "WidgetForm",
    "js_class": "CWidget",
    "use_time_selector": false,
    "refresh_rate": 60
}

url

模块描述的链接。对于小部件,点击帮助图标 时将打开此链接,
在 添加部件 或
小部件 窗口中也是如此。
如果未指定 url,点击帮助图标将打开通用的
Dashboard widgets 页面。

类型: string

示例:

"url": "http://example.com"