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, o 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 suportados em manifest.json (clique no nome do parâmetro para uma descrição detalhada):
| Parâmetro | Descrição | Obrigatório |
|---|---|---|
| manifest_version | Versão do manifesto do módulo. | Sim |
| id | ID único 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 widget deve ser definido como widget | Sim para widgets, caso contrário não |
| widget | Configuração do widget. Usado apenas para widgets. | |
| actions | Ações para registrar 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. |
Versão do manifesto do módulo. Atualmente, a versão suportada é 2.0.
Tipo: Double
Exemplo:
ID do módulo. Deve ser único. Para evitar conflitos de nomes futuros, 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 lições e o nome do módulo for "Meu módulo", então o ID será "example_my_module".
Tipo: String
Exemplo:
Nome do módulo que será exibido na seção Administração.
Tipo: String
Exemplo:
Namespace PHP para classes de módulo.
Tipo: String
Exemplo:
Versão do módulo. A versão será exibida na seção Administração.
Tipo: String
Exemplo:
Tipo do módulo. Obrigatório para widgets e deve ser igual a "widget".
Tipo: String
Padrão: "module"
Exemplo:
Ações a serem registradas com o módulo. Definir a chave do objeto class para cada ação é obrigatório, outras chaves de ação são opcionais.
Tipo: Objeto
Chaves de objeto suportadas se type for module:
Exemplo:
"actions": {
"module.example.list": {
"class": "ExampleList",
"view": "example.list",
"layout": "layout.htmlpage"
}
}Chaves de objeto suportadas se type for widget:
Exemplo:
"actions": {
"widget.tophosts.view": {
"class": "WidgetView"
},
"widget.tophosts.column.edit": {
"class": "ColumnEdit",
"view": "column.edit",
"layout": "layout.json"
}
}Estilos CSS e arquivos JavaScript para incluir.
Tipo: Objeto
Chaves de objeto suportadas:
Exemplo:
Autor do módulo. O autor será exibido na seção Administração.
Tipo: String
Exemplo:
Valores padrão para as opções do módulo. O objeto pode conter quaisquer chaves personalizadas. Se especificado, esses valores serão gravados no banco de dados durante o registro do módulo. Novas variáveis adicionadas posteriormente serão gravadas na primeira chamada. Depois disso, os valores das variáveis só podem ser alterados diretamente no banco de dados.
Tipo: Objeto
Exemplo:
Descrição do módulo.
Tipo: String
Exemplo:
Configuração do widget. Usado se type estiver definido como widget.
Tipo: Objeto
Chaves de objeto suportadas:
name (string) - usado na lista de widgets e como cabeçalho padrão. Se vazio, o parâmetro "name" do módulo será usado.
size (objeto) - dimensões padrão do widget. Suporta as chaves:
form_class (string) - classe com o formulário de campos do widget. Deve estar localizada no diretório includes. Se a classe for WidgetForm.php, que é esperada por padrão, este parâmetro pode 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 para estender a classe padrão CWidget. A classe será carregada com o dashboard. O arquivo fonte da classe deve estar localizado no diretório assets/js. Veja também: assets.
use_time_selector (booleano) - determina se o widget requer o seletor de tempo do dashboard. Valores suportados: true, false (padrão).
refresh_rate (inteiro) - taxa 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
}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, ao clicar no ícone de ajuda será aberta a página geral Widgets do dashboard.
Tipo: String
Exemplo: