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。 一意である必要があります。 将来的な名前の競合を避けるため、モジュールにはプレフィックス(作成者名、会社名、その他の名前)を使用することを推奨します。 たとえば、レッスン用の例で、モジュール名が「My module」の場合、ID は「example_my_module」になります。

タイプ: String

例:

"id": "example_my_module"

name

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

タイプ: String

例:

"name": "My module"

namespace

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

タイプ: String

例:

"namespace": "ClockWidget"

バージョン

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

タイプ: String

例:

"version": "1.0"

type

モジュールのタイプです。 ウィジェットでは必須であり、"widget" と等しくする必要があります。

タイプ: String

デフォルト: "module"

例:

"type": "widget"

アクション

モジュールに登録するアクションです。 各アクションで class オブジェクトキーを定義する必要があります。その他のアクションキーは任意です。

タイプ: Object

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

  • 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 の場合にサポートされるオブジェクトキー:

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

アセット

含めるCSSスタイルおよびJavaScriptファイル。

タイプ: Object

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

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

例:

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

作成者

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

タイプ: 文字列

例:

"author": "John Smith"

config

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

Type: Object

Example:

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

description

モジュールの説明。

タイプ: String

例:

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

ウィジェット

ウィジェットの設定です。
type が widget に設定されている場合に使用します。

タイプ: オブジェクト

サポートされているオブジェクトキー:

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

  • size (object) - ウィジェットのデフォルトのサイズです。
    次のキーをサポートします:

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

  • js_class (string) - ウィジェットの表示モードでデフォルトの CWidget クラスを拡張する JavaScript クラスの名前です。
    このクラスはダッシュボードとともに読み込まれます。
    クラスのソースファイルは assets/js ディレクトリに配置する必要があります。
    詳細については、assetsも参照してください。

  • use_time_selector (boolean) - ウィジェットでダッシュボードの時間選択が必要かどうかを指定します。
    サポートされている値: true、false (デフォルト)。

  • 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 が指定されていない場合、ヘルプアイコンをクリックすると一般的な ダッシュボードウィジェットページが開きます。

タイプ: String

例:

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