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"