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

如果typemodule,支持的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"
               }
           }

如果typewidget,支持的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键值:

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

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

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

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

  • use_time_selector (boolean) - 决定部件是否需要仪表板时间选择器。 支持值:truefalse(默认)。

  • 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

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

类型: string

示例:

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