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, 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 compatíveis com manifest.json (pressione o nome do parâmetro para obter uma descrição detalhada):

Parâmetro Descrição Obrigatório
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 Namespace PHP para as classes do módulo.
version Versão do módulo.
type Tipo do módulo. Para um 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 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.

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 conflitos de nomenclatura no futuro, 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 aulas e o nome do módulo for "Meu módulo", o ID será "example_my_module".

Tipo: String

Exemplo:

"id": "example_my_module"

name

Nome do módulo que será exibido na seção Administração.

Tipo: String

Exemplo:

"name": "Meu módulo"

namespace

Namespace PHP para classes de módulo.

Tipo: 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"

type

Tipo do módulo. Obrigatório para widgets e deve ser igual a "widget".

Tipo: String

Padrão: "module"

Exemplo:

"type": "widget"

actions

Ações a serem registradas com o módulo. É obrigatório definir a chave de objeto class para cada ação; as outras chaves de ação são opcionais.

Tipo: Objeto

Chaves de objeto compatíveis quando type é module:

  • write.your.action.name (objeto) - nome da ação, que deve ser escrito em letras minúsculas [a-z], separando as palavras com pontos. Compatível com as chaves:
    • class (string; obrigatório) - nome da classe da ação.
    • layout (string) - layout da ação. Valores compatíveis: layout.json, layout.htmlpage (padrão), null.
    • view (string) - view da ação.

Exemplo:

"actions": {
    "module.example.list": {
        "class": "ExampleList",
        "view": "example.list",
        "layout": "layout.htmlpage"
        }
    }

Chaves de objeto compatíveis quando type é widget:

  • widget.{id}.view (objeto) - nome do arquivo e da classe para a view do widget. Substitua {id} pelo valor de id do widget (por exemplo, widget.example_clock.view). Compatível com as chaves:
    • class (string; obrigatório) - nome da classe da ação para que o modo de view do widget estenda a classe CControllerDashboardWidgetView padrão. O arquivo-fonte da classe deve estar localizado no diretório actions.
    • view (string) - view do widget. Deve estar localizada no diretório views. Se o arquivo de view for widget.view.php, que é o esperado por padrão, este parâmetro pode ser omitido. Se estiver usando um nome diferente, especifique-o aqui.
  • widget.{id}.edit (objeto) - nome do arquivo para a view de configuração do widget. Substitua {id} pelo valor de id do widget (por exemplo, widget.example_clock.edit). Compatível com as chaves:
    • class (string; obrigatório) - nome da classe da ação para o modo de view de configuração do widget. O arquivo-fonte da classe deve estar localizado no diretório actions.
    • view (string) - view de configuração do widget. Deve estar localizada no diretório views. Se o arquivo de view for widget.edit.php, que é o esperado por padrão, este parâmetro pode 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"
    }
}

assets

Estilos CSS e arquivos JavaScript a serem incluídos.

Tipo: Objeto

Chaves de objeto compatíveis:

  • 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.

Tipo: String

Exemplo:

"author": "John Smith"

config

Valores padrão para as opções do módulo.
O objeto pode conter quaisquer chaves personalizadas.
Se especificados, esses valores serão gravados no banco de dados durante o registro do módulo.
As 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.

Tipo: Object

Exemplo:

"config": {
    "username": "Admin",
    "password": "",
    "auth_url": "https://example.com/auth"
}

description

Descrição do módulo.

Tipo: String

Exemplo:

"description": "This is a clock widget."

widget

Configuração do widget. Usado quando type está definido como widget.

Tipo: Objeto

Chaves de objeto compatíveis:

  • name (string) - usado na lista de widgets e como cabeçalho padrão. Se estiver vazio, o parâmetro "name" do módulo será usado.

  • size (objeto) - dimensões padrão do widget. Compatível com as chaves:

    • width (integer) - largura padrão do widget.
    • height (integer) - 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, que é esperada por padrão, este 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 visualização do widget, que estende a classe CWidget padrão. A classe será carregada com o dashboard. O arquivo-fonte da classe deve estar localizado no diretório assets/js. Consulte também: assets.

  • use_time_selector (boolean) - determina se o widget requer o seletor de tempo do dashboard. Valores compatíveis: true, false (padrão).

  • refresh_rate (integer) - intervalo 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
}

url

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, clicar no ícone de ajuda abrirá a página geral Widgets do dashboard.

Tipo: String

Exemplo:

"url": "http://example.com"