manifest.json
Qualquer módulo precisa do arquivo manifest.json. O arquivo deve estar localizado no diretório principal do módulo (por exemplo, zabbix/ui/modules/module_name/manifest.json).
No mínimo, manifest.json deve especificar estes campos:
{
"manifest_version": 2.0,
"id": "my_ip_address",
"name": "My IP Address",
"namespace": "MyIPAddress",
"version": "1.0"
}
Parâmetros compatíveis com manifest.json (pressione o nome do parâmetro para obter uma descrição detalhada):
| Parâmetro | Descrição | Obrigatório |
|---|---|---|
| manifest_version | Versão do manifesto do módulo. | Sim |
| id | ID exclusivo do módulo. | |
| name | Nome do módulo que será exibido na seção Administração. | |
| namespace | Namespace PHP para as classes do módulo. | |
| version | Versão do módulo. | |
| type | Tipo do módulo. Para um widget, deve ser definido como widget | Sim para widgets; caso contrário, não |
| widget | Configuração do widget. Usado somente para widgets. | |
| actions | Ações a serem registradas com o módulo. | |
| assets | Estilos CSS e arquivos JavaScript a serem incluídos. | Não |
| author | Autor do módulo. | |
| config | Valores padrão para opções personalizadas do módulo. | |
| description | Descrição do módulo. | |
| url | Um link para a descrição do módulo. |
manifest_version
Versão do manifesto do módulo.
Atualmente, a versão compatível é 2.0.
Tipo: Double
Exemplo:
"manifest_version": 2.0
id
ID do módulo.
Deve ser exclusivo.
Para evitar conflitos de nomenclatura no futuro, recomenda-se usar um prefixo para os módulos (nome do autor ou da empresa, ou qualquer outro).
Por exemplo, se um módulo for um exemplo para aulas e o nome do módulo for "Meu módulo", o ID será "example_my_module".
Tipo: String
Exemplo:
"id": "example_my_module"
name
Nome do módulo que será exibido na seção Administração.
Tipo: String
Exemplo:
"name": "Meu módulo"
namespace
Namespace PHP para classes de módulo.
Tipo: String
Exemplo:
"namespace": "ClockWidget"
versão
Versão do módulo.
A versão será exibida na seção Administração.
Tipo: String
Exemplo:
"version": "1.0"
type
Tipo do módulo. Obrigatório para widgets e deve ser igual a "widget".
Tipo: String
Padrão: "module"
Exemplo:
"type": "widget"
actions
Ações a serem registradas com o módulo. É obrigatório definir a chave de objeto class para cada ação; as outras chaves de ação são opcionais.
Tipo: Objeto
Chaves de objeto compatíveis quando type é module:
- write.your.action.name (objeto) - nome da ação, que deve ser escrito em letras minúsculas [a-z], separando as palavras com pontos.
Compatível com as chaves:
- class (string; obrigatório) - nome da classe da ação.
- layout (string) - layout da ação. Valores compatíveis: layout.json, layout.htmlpage (padrão), null.
- view (string) - view da ação.
Exemplo:
"actions": {
"module.example.list": {
"class": "ExampleList",
"view": "example.list",
"layout": "layout.htmlpage"
}
}
Chaves de objeto compatíveis quando type é widget:
- widget.{id}.view (objeto) - nome do arquivo e da classe para a view do widget.
Substitua {id} pelo valor de id do widget (por exemplo, widget.example_clock.view).
Compatível com as chaves:
- class (string; obrigatório) - nome da classe da ação para que o modo de view do widget estenda a classe CControllerDashboardWidgetView padrão. O arquivo-fonte da classe deve estar localizado no diretório actions.
- view (string) - view do widget. Deve estar localizada no diretório views. Se o arquivo de view for widget.view.php, que é o esperado por padrão, este parâmetro pode ser omitido. Se estiver usando um nome diferente, especifique-o aqui.
- widget.{id}.edit (objeto) - nome do arquivo para a view de configuração do widget.
Substitua {id} pelo valor de id do widget (por exemplo, widget.example_clock.edit).
Compatível com as chaves:
- class (string; obrigatório) - nome da classe da ação para o modo de view de configuração do widget. O arquivo-fonte da classe deve estar localizado no diretório actions.
- view (string) - view de configuração do widget. Deve estar localizada no diretório views. Se o arquivo de view for widget.edit.php, que é o esperado por padrão, este parâmetro pode ser omitido. Se estiver usando um nome diferente, especifique-o aqui.
Exemplo:
"actions": {
"widget.tophosts.view": {
"class": "WidgetView"
},
"widget.tophosts.column.edit": {
"class": "ColumnEdit",
"view": "column.edit",
"layout": "layout.json"
}
}
assets
Estilos CSS e arquivos JavaScript a serem incluídos.
Tipo: Objeto
Chaves de objeto compatíveis:
- css (array) - Arquivos CSS a serem incluídos. Os arquivos devem estar localizados em assets/css.
- js (array) - Arquivos JavaScript a serem incluídos. Os arquivos devem estar localizados em assets/js.
Exemplo:
"assets": {
"css": ["widget.css"],
"js": ["class.widget.js"]
}
autor
Autor do módulo. O autor será exibido na seção Administração.
Tipo: String
Exemplo:
"author": "John Smith"
config
Valores padrão para as opções do módulo.
O objeto pode conter quaisquer chaves personalizadas.
Se especificados, esses valores serão gravados no banco de dados durante o registro do módulo.
As novas variáveis adicionadas posteriormente serão gravadas na primeira chamada.
Depois disso, os valores das variáveis só poderão ser alterados diretamente no banco de dados.
Tipo: Object
Exemplo:
"config": {
"username": "Admin",
"password": "",
"auth_url": "https://example.com/auth"
}
description
Descrição do módulo.
Tipo: String
Exemplo:
"description": "This is a clock widget."
widget
Configuração do widget. Usado quando type está definido como widget.
Tipo: Objeto
Chaves de objeto compatíveis:
-
name (string) - usado na lista de widgets e como cabeçalho padrão. Se estiver vazio, o parâmetro "name" do módulo será usado.
-
size (objeto) - dimensões padrão do widget. Compatível com as chaves:
- width (integer) - largura padrão do widget.
- height (integer) - altura padrão do widget.
-
form_class (string) - classe com o formulário dos campos do widget. Deve estar localizada no diretório includes. Se a classe for WidgetForm.php, que é esperada por padrão, este parâmetro poderá ser omitido. Se estiver usando um nome diferente, especifique-o aqui.
-
js_class (string) - nome de uma classe JavaScript para o modo de visualização do widget, que estende a classe CWidget padrão. A classe será carregada com o dashboard. O arquivo-fonte da classe deve estar localizado no diretório assets/js. Consulte também: assets.
-
use_time_selector (boolean) - determina se o widget requer o seletor de tempo do dashboard. Valores compatíveis: true, false (padrão).
-
refresh_rate (integer) - intervalo de atualização do widget em segundos (padrão: 60).
Exemplo:
"widget": {
"name": "",
"size": {
"width": 12,
"height": 5
},
"form_class": "WidgetForm",
"js_class": "CWidget",
"use_time_selector": false,
"refresh_rate": 60
}
url
Um link para a descrição do módulo.
Para widgets, este link será aberto ao clicar no ícone de ajuda
na janela Adicionar widget ou
Editar widget.
Se url não for especificado, clicar no ícone de ajuda abrirá a página geral
Widgets do dashboard.
Tipo: String
Exemplo:
"url": "http://example.com"