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": "Meu endereço IP",
"namespace": "MyIPAddress",
"version": "1.0"
}
Parâmetros suportados em manifest.json (pressione o nome do parâmetro para obter uma descrição detalhada):
Parâmetro | Descrição | Requerido |
---|---|---|
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 | Espaço de nomes PHP para classes de 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 somente para widgets. | |
actions | Ações a serem registradas no 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 compatível é 2.0.
Tipo: Double
Exemplo:
ID do módulo. Deve ser exclusivo. Para evitar futuros conflitos de nomes, recomenda-se usar o prefixo para os módulos (nome do autor ou da empresa, ou qualquer outro). Por exemplo, se um módulo for um exemplo de aula e o nome do módulo for "My module", o ID será "example_my_module".
Type: String
Exemplo:
Nome do módulo que será exibido na seção Administração.
Type: String
Exemplo:
Espaço de nome PHP para classes de módulo.
Type: 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".
Type: String
Padrão: "module"
Exemplo:
Ações a serem registradas no módulo. É necessário definir a chave de objeto class para cada ação; outras chaves de ação são opcionais.
Type: Object
Chaves de objeto compatíveis se type for module:
-write.your.action.name (object) - nome da ação, deve ser escrito em letras minúsculas [a-z], separando as palavras com pontos. Suporta as chaves: - class (string; obrigatório) - nome da classe da ação. - layout (string) - layout da ação. Valores suportados: layout.json, layout.htmlpage (padrão), null. - view (string) - visualização da ação.
Exemplo:
"actions": {
"module.example.list": {
"class": "ExampleList",
"view": "example.list",
"layout": "layout.htmlpage"
}
}
Chaves de objeto compatíveis 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 a serem incluídos.
Type: Object
Supported object keys:
Exemplo:
Autor do módulo. O autor será exibido na seção Administração.
Type: 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ó poderão ser alterados diretamente no banco de dados.
Type Object
Exemplo:
"config": {
"username" (nome de usuário): "Admin",
"password" (senha): "",
"auth_url": "https://example.com/auth"
}
Descrição do módulo.
Type: String
Exemplo:
Configuração do widget. Usado se type estiver definido como widget.
Type: Object
Supported object keys:
-name (string) - usado na lista de widgets e como cabeçalho padrão. Se estiver vazio, será usado o parâmetro "name" do módulo.
template_support (booleano) - determina se o widget deve estar disponível em painéis de modelo. Valores suportados: true, false (padrão).
size (objeto) - dimensões padrão do widget. Chaves compatíveis:
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, o que é esperado por padrão, esse 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 exibição de widget para estender a classe CWidget padrão. A classe será carregada com o painel. O arquivo de origem 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 horário do dashboard. Valores suportados: true, false (padrão).
refresh_rate (integer) - taxa de atualização do widget em segundos (padrão: 60).
Exemplo:
"widget": {
"name": "",
"template_support": true,
"size" (tamanho): {
"width": 12,
"height" (altura): 5
},
"form_class": "WidgetForm",
"js_class": "CWidget",
"use_time_selector": false,
"refresh_rate": 60
}
Um link para a descrição do módulo.
Type: String
Exemplo: