manifest.json

Jebkuram modulim ir nepieciešams fails manifest.json. Fails jānovieto moduļa primārajā direktorijā (piemēram, zabbix/ui/modules/module_name/manifest.json).

Vismaz minimālajā gadījumā manifest.json jānorāda šādi lauki:

{
    "manifest_version": 2.0,
    "id": "my_ip_address",
    "name": "My IP Address",
    "namespace": "MyIPAddress",
    "version": "1.0"
}

Parametri, kas atbalstīti manifest.json (noklikšķiniet uz parametra nosaukuma, lai skatītu detalizētu aprakstu):

Parameter Description Required
manifest_version Moduļa manifestācijas versija. Yes
id Unikāls moduļa ID.
name Moduļa nosaukums, kas tiks parādīts administrēšanas sadaļā.
namespace PHP namespace moduļa klasēm.
version Moduļa versija.
type Moduļa tips. Widgetam jābūt iestatītam uz widget Yes for widgets, otherwise no
widget Widget konfigurācija. Tiek izmantota tikai widgetiem.
actions Darbības, kas jāreģistrē kopā ar moduli.
assets CSS stili un JavaScript faili, kas jāiekļauj. No
author Moduļa autors.
config Pielāgoto moduļa opciju noklusējuma vērtības.
description Moduļa apraksts.
url Saite uz moduļa aprakstu.

manifest_version

Moduļa manifesta versija. Pašlaik atbalstītā versija ir 2.0.

Tips: Double

Piemērs:

"manifest_version": 2.0

id

Moduļa ID. Tam jābūt unikālam. Lai izvairītos no nosaukumu konfliktiem nākotnē, moduļiem ieteicams izmantot prefiksu (autora vai uzņēmuma nosaukumu, vai jebkuru citu). Piemēram, ja modulis ir piemērs mācību stundām un moduļa nosaukums ir "My module", tad ID būs "example_my_module".

Type: String

Example:

"id": "example_my_module"

nosaukums

Moduļa nosaukums, kas tiks parādīts sadaļā Administrēšana.

Type: String

Example:

"name": "My module"

nosaukumtelpa

PHP nosaukumtelpa moduļa klasēm.

Tips: String

Piemērs:

"namespace": "ClockWidget"

versija

Moduļa versija. Versija tiks parādīta sadaļā Administrēšana.

Tips: String

Piemērs:

"version": "1.0"

type

Moduļa tips. Nepieciešams logrīkiem, un tam jābūt vienādam ar "widget".

Tips: String

Noklusējums: "module"

Piemērs:

"type": "widget"

darbības

Darbības, kas jāreģistrē modulī. Katrai darbībai ir obligāti jādefinē class objekta atslēga, pārējās darbību atslēgas ir neobligātas.

Tips: Object

Atbalstītās objekta atslēgas, ja type ir module:

  • write.your.action.name (object) - darbības nosaukums; tas jāraksta ar mazajiem burtiem [a-z], atdalot vārdus ar punktiem. Atbalsta šādas atslēgas:
    • class (string; required) - darbības klases nosaukums.
    • layout (string) - darbības izkārtojums. Atbalstītās vērtības: layout.json, layout.htmlpage (noklusējums), null.
    • view (string) - darbības skats.

Piemērs:

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

Atbalstītās objekta atslēgas, ja type ir widget:

  • widget.{id}.view (object) - faila un klases nosaukums logrīka skatam. Aizstājiet {id} ar logrīka id vērtību (piemēram, widget.example_clock.view). Atbalsta šādas atslēgas:
    • class (string; required) - darbības klases nosaukums logrīka skata režīmam, lai paplašinātu noklusēto CControllerDashboardWidgetView klasi. Klases pirmkoda failam jāatrodas direktorijā actions.
    • view (string) - logrīka skats. Tam jāatrodas direktorijā views. Ja skata fails ir widget.view.php, kas pēc noklusējuma tiek sagaidīts, šo parametru var izlaist. Ja tiek izmantots cits nosaukums, norādiet to šeit.
  • widget.{id}.edit (object) - faila nosaukums logrīka konfigurācijas skatam. Aizstājiet {id} ar logrīka id vērtību (piemēram, widget.example_clock.edit). Atbalsta šādas atslēgas:
    • class (string; required) - darbības klases nosaukums logrīka konfigurācijas skata režīmam. Klases pirmkoda failam jāatrodas direktorijā actions.
    • view (string) - logrīka konfigurācijas skats. Tam jāatrodas direktorijā views. Ja skata fails ir widget.edit.php, kas pēc noklusējuma tiek sagaidīts, šo parametru var izlaist. Ja tiek izmantots cits nosaukums, norādiet to šeit.

Piemērs:

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

assets

Iekļaujamie CSS stili un JavaScript faili.

Tips: Object

Atbalstītās objekta atslēgas:

  • css (array) - Iekļaujamie CSS faili. Failiem jāatrodas mapē assets/css.
  • js (array) - Iekļaujamie JavaScript faili. Failiem jāatrodas mapē assets/js.

Piemērs:

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

autors

Moduļa autors. Autors tiks parādīts sadaļā Administrēšana.

Type: String

Piemērs:

"author": "John Smith"

config

Noklusējuma vērtības moduļa opcijām. Objekts var saturēt jebkādas pielāgotas atslēgas. Ja norādīts, šīs vērtības moduļa reģistrācijas laikā tiks ierakstītas datubāzē. Jaunas mainīgās vērtības, kas pievienotas vēlāk, tiks ierakstītas pirmajā izsaukuma reizē. Pēc tam mainīgo vērtības var mainīt tikai tieši datubāzē.

Type: Object

Piemērs:

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

apraksts

Moduļa apraksts.

Type: String

Piemērs:

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

logrīks

Logrīka konfigurācija. Tiek izmantota, ja type ir iestatīts uz widget.

Tips: Object

Atbalstītās objekta atslēgas:

  • name (string) - tiek izmantots logrīku sarakstā un kā noklusējuma galvene. Ja tukšs, tiks izmantots moduļa parametrs "name".

  • size (object) - noklusējuma logrīka izmēri. Atbalsta atslēgas:

    • width (integer) - noklusējuma logrīka platums.
    • height (integer) - noklusējuma logrīka augstums.
  • form_class (string) - klase ar logrīka lauku formu. Tai jāatrodas includes direktorijā. Ja klase ir WidgetForm.php, kas pēc noklusējuma tiek sagaidīta, šo parametru var izlaist. Ja tiek izmantots cits nosaukums, norādiet to šeit.

  • js_class (string) - JavaScript klases nosaukums logrīka skata režīmam, lai paplašinātu noklusējuma CWidget klasi. Klase tiks ielādēta kopā ar paneli. Klases avota failam jāatrodas assets/js direktorijā. Skatiet arī: assets.

  • use_time_selector (boolean) - nosaka, vai logrīkam ir nepieciešams paneļa laika atlasītājs. Atbalstītās vērtības: true, false (noklusējums).

  • refresh_rate (integer) - logrīka atsvaidzināšanas intervāls sekundēs (noklusējums: 60).

Piemērs:

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

url

Saite uz moduļa aprakstu. Attiecībā uz logrīkiem šī saite tiks atvērta, noklikšķinot uz palīdzības ikonas logā Pievienot logrīku vai Rediģēt logrīku. Ja url nav norādīts, noklikšķinot uz palīdzības ikonas, tiks atvērta vispārīgā Dashboard widgets lapa.

Tips: String

Piemērs:

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