[comment]: # aside:1

[comment]: # attributes: notoc

[comment]: # ({fcf4f388-0ea8ed60})
# manifest.json

Jebkuram modulim ir nepieciešams fails manifest.json.
Failam jāatrodas moduļa galvenajā direktorijā (piemēram, *zabbix/ui/modules/module_name/manifest.json*).

Kā minimālā prasība manifest.json jānorāda šādi lauki:

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

**manifest.json** atbalstītie parametri (nospiediet uz parametra nosaukuma, lai skatītu detalizētu aprakstu):

|Parameter |Description |Required |
|--|--------|--|
|[manifest_version](#manifest-version)|Moduļa manifesta versija.| Yes |
|[id](#id) |Unikāls moduļa ID. |^|
|[name](#name) |Moduļa nosaukums, kas tiks parādīts sadaļā Administration. |^|
|[namespace](#namespace) |PHP nosaukumtelpa moduļa klasēm.|^|
|[version](#version) |Moduļa versija. |^|
|[type](#type) |Moduļa tips. Logrīkam jābūt iestatītam uz *widget* | Yes for widgets, otherwise no |
|[widget](#widget) |Logrīka konfigurācija. Tiek izmantota tikai logrīkiem. |^|
|[actions](#actions) | Darbības, ko reģistrēt ar moduli. |^|
|[assets](#assets) | Iekļaujamie CSS stili un JavaScript faili. | No |
|[author](#author) |Moduļa autors. |^|
|[config](#config) |Noklusējuma vērtības pielāgotām moduļa opcijām. |^|
|[description](#description) |Moduļa apraksts.|^|
|[url](#url) |Saite uz moduļa aprakstu. |^|

[comment]: # ({/fcf4f388-0ea8ed60})

[comment]: # ({e6ddbfde-7863337e})
### manifest_version {#manifest-version}

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

*Tips*: Double

*Piemērs*: 

```json
"manifest_version": 2.0
```

[comment]: # ({/e6ddbfde-7863337e})

[comment]: # ({4a354b32-40db7411})
### 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*:

```json
"id": "example_my_module"
```

[comment]: # ({/4a354b32-40db7411})

[comment]: # ({6b60a366-1d94ce43})
### nosaukums

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

*Type*: String

*Example*: 

```json
"name": "My module"
```

[comment]: # ({/6b60a366-1d94ce43})

[comment]: # ({346a79b5-b1e94eb0})
### nosaukumtelpa

PHP nosaukumtelpa moduļa klasēm.

*Tips*: String

*Piemērs*: 

```json
"namespace": "ClockWidget"
```

[comment]: # ({/346a79b5-b1e94eb0})

[comment]: # ({2801cc8a-6669130f})
### versija

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

*Tips*: String

*Piemērs*: 

```json
"version": "1.0"
```

[comment]: # ({/2801cc8a-6669130f})

[comment]: # ({3d827d1e-2f2ecfb4})
### type

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

*Tips*: String

*Noklusējums*: "module"

*Piemērs*:

```json
"type": "widget"
```

[comment]: # ({/3d827d1e-2f2ecfb4})

[comment]: # ({9f849f5d-85cbb8b0})
### 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](#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*:

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

Atbalstītās objekta atslēgas, ja *[type](#type)* ir *widget*:

-   **widget.{id}.view** (object) - faila un klases nosaukums logrīka skatam. Aizstājiet **{id}** ar logrīka [id](#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](#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*: 

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

[comment]: # ({/9f849f5d-85cbb8b0})

[comment]: # ({29793a59-a0998fce})
### 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*: 

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

[comment]: # ({/29793a59-a0998fce})

[comment]: # ({199df252-0a7c568c})
### autors

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

*Type*: String

*Piemērs*: 

```json
"author": "John Smith"
```

[comment]: # ({/199df252-0a7c568c})

[comment]: # ({e21b146a-1})
### 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*:

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

[comment]: # ({/e21b146a-1})

[comment]: # ({7be8b4c3-6a167d9e})
### apraksts

Moduļa apraksts.

*Type*: String

*Piemērs*: 

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

[comment]: # ({/7be8b4c3-6a167d9e})

[comment]: # ({23438afa-cb9c7cd8})
### logrīks

Logrīka konfigurācija. Tiek izmantota, ja *[type](#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](#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*: 

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

[comment]: # ({/23438afa-cb9c7cd8})

[comment]: # ({1530a296-ee0f6140})
### url

Saite uz moduļa aprakstu. Logrīkiem šī saite tiks atvērta, noklikšķinot uz palīdzības ikonas ![](../../../../assets/en/manual/web_interface/help_link.png){class="nozoom"}
logā [*Pievienot logrīku*](/manual/web_interface/frontend_sections/dashboards#adding-widgets) vai
[*Rediģēt logrīku*](/manual/web_interface/frontend_sections/dashboards#widgets).
Ja **url** nav norādīts, noklikšķinot uz palīdzības ikonas, tiks atvērta vispārīgā
lapa [Paneļa logrīki](/manual/web_interface/frontend_sections/dashboards/widgets).

*Tips*: String

*Piemērs*: 

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

[comment]: # ({/1530a296-ee0f6140})
