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 モジュールのマニフェストバージョン。 Yes
id 一意のモジュールID。
name 管理セクションに表示されるモジュール名。
namespace モジュールクラスのPHP名前空間。
version モジュールのバージョン。
type モジュールのタイプ。ウィジェットの場合はwidgetと設定する必要があります。 Yes (ウィジェットのみ)
widget ウィジェットの設定。ウィジェットのみに使用されます。
actions モジュールに登録するアクション。
assets 含めるCSSスタイルとJavaScriptファイル。 No
author モジュールの作成者。
config カスタムモジュールオプションのデフォルト値。
description モジュールの説明。
url モジュールの説明へのリンク。

manifest_version

モジュールのマニフェストバージョン。現在サポートされているバージョンは2.0です。

タイプ: Double

:

"manifest_version": 2.0

id

モジュールID。一意である必要があります。将来的に名前の競合が発生しないように、モジュールにはプレフィックス (作成者名、会社名など) を使用することをお勧めします。 たとえば、レッスンのサンプルのモジュールで、モジュール名が"My module"の場合、IDは"example_my_module"になります。

タイプ: String

:

"id": "example_my_module"

name

管理セクションに表示されるモジュール名。

タイプ: String

:

"name": "My module"

namespace

モジュールクラスのPHP名前空間。

タイプ: String

:

"namespace": "ClockWidget"

version

モジュールのバージョン。バージョンは管理セクションに表示されます。

タイプ: String

:

"version": "1.0"

type

モジュールのタイプ。ウィジェットの場合必須で、"widget"と等しくなければなりません。

タイプ: String

デフォルト: "module"

:

"type": "widget"

actions

モジュールに登録するアクション。 各アクションのclassオブジェクトキーの定義は必須ですが、他のアクションキーはオプションです。

タイプ: Object

typemoduleの場合にサポートされるオブジェクトキー:

  • write.your.action.name (object) - アクション名は小文字[a-z]で記述し、単語をドットで区切ります。 サポートするキー:
    • class (string; 必須) - アクションクラス名。
    • layout (string) - アクションレイアウト。サポートする値: layout.jsonlayout.htmlpage (デフォルト)、null
    • view (string) - アクションビュー。

:

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

typewidgetの場合にサポートされるオブジェクトキー:

  • widget.{id}.view (object) - ウィジェットビューのファイルとクラス名。 {id} をウィジェットのid値に置き換えます (例: widget.example_clock.view)。 サポートするキー:
    • class (string; 必須) - デフォルトのCControllerDashboardWidgetViewクラスを拡張するウィジェットビューモードのアクションクラス名。 クラスソースファイルはactionsディレクトリに配置する必要があります。
    • view (string) - ウィジェットビュー。viewsディレクトリに配置する必要があります。 ビューファイルがデフォルトで期待されるwidget.view.phpの場合、このパラメーターは省略できます。 別の名前を使用する場合は、ここで指定します。
  • widget.{id}.edit (object) - ウィジェット設定ビューのファイル名。{id}をウィジェットのid値に置き換えます (例: widget.example_clock.edit)。 サポートするキー:
    • class (string; 必須) - ウィジェット設定ビューモードのアクションクラス名。クラスソースファイルはactionsディレクトリに配置する必要があります。
    • view (string) - ウィジェット設定ビュー。viewsディレクトリに配置する必要があります。 ビューファイルがデフォルトで期待されるwidget.edit.phpの場合、このパラメーターは省略できます。 別の名前を使用する場合は、ここで指定します。

:

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

assets

含めるCSSスタイルとJavaScriptファイル。

タイプ: Object

サポートするオブジェクトキー:

  • css (array) - 含めるCSSファイル。ファイルはassets/cssに配置する必要があります。
  • js (array) - 含めるJavaScriptファイル。ファイルはassets/jsに配置する必要があります。

:

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

author

モジュールの作成者。作成者は管理セクションに表示されます。

タイプ: String

:

"author": "John Smith"

config

モジュールオプションのデフォルト値。オブジェクトにはカスタムキーが含まれる場合があります。 指定した場合、これらの値はモジュールの登録中にデータベースに書き込まれます。 後で追加された新しい変数は、最初の呼び出し時に書き込まれます。 その後、変数値はデータベース内でのみ直接変更できます。

タイプ: Object

:

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

description

モジュールの説明。

タイプ: String

:

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

widget

ウィジェットの設定。typewidgetに設定されている場合に使用されます。

タイプ: Object

サポートするオブジェクトキー:

  • name (string) - ウィジェットリストおよびデフォルトのヘッダーとして使用されます。空の場合、モジュールの"name"パラメーターが使用されます。

  • template_support (boolean) - ウィジェットをテンプレートダッシュボードで使用できるかどうかを決定します。 サポートする値: truefalse (デフォルト).

  • size (object) - デフォルトのウィジェットの寸法。サポートするキー:

    • width (integer) - デフォルトのウィジェットの幅。
    • height (integer) - デフォルトのウィジェットの高さ。
  • form_class (string) - ウィジェットフィールドフォームを持つクラス。includesディレクトリに配置する必要があります。 クラスがデフォルトで期待するWidgetForm.phpの場合、このパラメーターは省略できます。 別の名前を使用する場合は、ここで指定します。

  • js_class (string) - デフォルトのCWidgetクラスを拡張するウィジェットビューモードのJavaScriptクラスの名前。 クラスにはダッシュボードがロードされます。 クラスのソースファイルは、assets/jsディレクトリに配置する必要があります。参照: assets

  • use_time_selector (boolean) - ウィジェットにダッシュボード時間セレクターが必要かどうかを決定します。 サポートする値: truefalse (デフォルト)。

  • refresh_rate (integer) - ウィジェットのリフレッシュ レート (秒単位) (デフォルト: 60)。

:

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

url

モジュールの説明へのリンク。

タイプ: String

:

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