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 でサポートされるパラメータ(詳細な説明を表示するには、パラメータ名をクリックしてください):

Parameter Description Required
manifest_version モジュールのマニフェストバージョン。 Yes
id 一意のモジュール ID。
name Administration セクションに表示されるモジュール名。
namespace モジュールクラスの PHP 名前空間。
version モジュールのバージョン。
type モジュールのタイプ。ウィジェットの場合は widget に設定する必要があります。 Yes for widgets, otherwise no
widget ウィジェットの設定。ウィジェットでのみ使用します。
actions モジュールに登録するアクション。
assets 読み込む CSS スタイルおよび JavaScript ファイル。 No
author モジュールの作成者。
config カスタムモジュールオプションのデフォルト値。
description モジュールの説明。
url モジュールの説明へのリンク。

manifest_version

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

Type: Double

Example:

"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": "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 に設定されている場合に使用されます。

タイプ: Object

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

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