As a??es s?o respons¨¢veis pela 'l¨®gica de neg¨®cios' do m¨®dulo. Uma a??o geralmente consiste em um controlador e uma visualiza??o de a??o.
Um m¨®dulo pode:
Para substituir um comportamento de a??o padr?o por algum comportamento personalizado, defina uma a??o com o mesmo nome na configura??o do m¨®dulo. Quando a a??o ¨¦ chamada, a a??o do m¨®dulo ser¨¢ executada em vez da a??o padr?o do Áú»¢¶Ä²©.
Os arquivos de a??o devem ser armazenados na pasta actions. A??es precisam ser especificadas no manifest.json.
Fluxo de trabalho do controlador de a??o:
Verifique as permiss?es do usu¨¢rio.
Preparar os dados de acordo com os par?metros passados: se checkInput() retornar true, o Áú»¢¶Ä²© chama o m¨¦todo doAction() do controlador.
Preparar o array $data para a visualiza??o. Use os m¨¦todos CControllerResponseData e setResponse() para armazenar a resposta no array $data.
Exemplo:
````php /** * Validate input parameters. @return bool */ protected function checkInput(): bool { $ret = $this->validateInput([ 'status' => 'in '.implode(',', [HOST_STATUS_MONITORED, HOST_STATUS_NOT_MONITORED]) ]);
}
/** * Check user permissions. @return bool */ protected function checkPermissions() { return $this->getUserType() >= USER_TYPE_ZABBIX_ADMIN; }
/** * Execute action and generate response object. */ protected function do Action(): void { $data = [ 'hosts_count' => API::Host()->get([ 'countOutput' => true, 'filter' => [ 'status' => $this->getInput('status') ] ]) ];
}
Voc¨º pode ver a lista completa de classes de controle dispon¨ªveis no Áú»¢¶Ä²© [c¨®digo-fonte] (https://git.zabbix.com/projects/ZBX/repos/zabbix/browse/ui/app/controllers?at=refs%2Fheads%2Frelease%2F6.4).