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"