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, 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. | ^ |
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 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:
"id": "example_my_module"
nome
Nome do módulo que será exibido na seção Administração.
Type: String
Exemplo:
"name": "My module"
Espaço de nomes
Espaço de nome PHP para classes de módulo.
Type: 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"
tipo
Tipo do módulo. Obrigatório para widgets e deve ser igual a "widget".
Type: String
Padrão: "module"
Exemplo:
"type": "widget"
ações
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:
- widget.{id}.view (objeto) - nome do arquivo e da classe para a exibição do widget. Substitua {id} pelo valor id do widget (por exemplo, widget.example_clock.view).
Suporta as chaves:
- class (string; obrigatório) - nome da classe de ação para o modo de exibição do widget para estender a classe padrão CControllerDashboardWidgetView. O arquivo de origem da classe deve estar localizado no diretório actions.
- view (string) - visualização do widget. Deve estar localizada no diretório views. Se o arquivo de visualização for widget.view.php, o que é esperado por padrão, esse parâmetro poderá ser omitido. Se estiver usando um nome diferente, especifique-o aqui.
- widget.{id}.edit (objeto) - nome do arquivo da visualização de configuração do widget. Substitua {id} pelo valor id do widget (por exemplo, widget.example_clock.edit).
Suporta as chaves:
- class (string; obrigatório) - nome da classe de ação para o modo de exibição de configuração do widget. O arquivo de origem da classe deve estar localizado no diretório actions.
- view (string) - visualização de configuração do widget. Deve estar localizada no diretório views. Se o arquivo de visualização for widget.edit.php, o que é esperado por padrão, esse parâmetro poderá 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"
}
}
ativos
Estilos CSS e arquivos JavaScript a serem incluídos.
Type: Object
Supported object keys:
- 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.
Type: String
Exemplo:
"autor": "John Smith"
config
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
Descrição do módulo.
Type: String
Exemplo:
"description": "This is a clock widget."
Widget
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:
- width (inteiro) - largura padrão do widget.
- height (inteiro) - 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, 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
}
url
Um link para a descrição do módulo.
Type: String
Exemplo:
"url": "http://example.com"