Les actions sont responsables de la "logique m¨¦tier" du module. Une action se compose g¨¦n¨¦ralement d'un controller et d'une vue d'action.
Un module peut :
Pour remplacer un comportement d'action par d¨¦faut par un comportement personnalis¨¦, d¨¦finissez une action portant le m¨ºme nom dans la configuration du module. Lorsque l'action est appel¨¦e, l'action du module sera ex¨¦cut¨¦e ¨¤ la place de l'action Áú»¢¶Ä²© par d¨¦faut.
Les fichiers d'action doivent ¨ºtre stock¨¦s dans le dossier actions. Les actions doivent ¨ºtre sp¨¦cifi¨¦es dans le manifest.json.
Flux de travail du contr?leur d'action?:
V¨¦rifiez les autorisations des utilisateurs.
Pr¨¦parez les donn¨¦es en fonction des param¨¨tres pass¨¦s : si checkInput() renvoie true, Áú»¢¶Ä²© appelle la m¨¦thode doAction() du contr?leur.
Pr¨¦parez le tableau $data pour la vue. Utilisez la m¨¦thode CControllerResponseData et setResponse() pour stocker la r¨¦ponse dans le tableau $data.
Exemple :
/**
* Valider les param¨¨tres d'entr¨¦e.
*
* @return ²ú´Ç´Ç±ô¨¦±ð²Ô
*/
protected function checkInput(): bool {
$ret = $this->validateInput([
'status' => 'in '.implode(',', [HOST_STATUS_MONITORED, HOST_STATUS_NOT_MONITORED])
]);
if (!$ret) {
$this->setResponse(new CControllerResponseFatal());
}
return $ret;
}
/**
* V¨¦rifiez les autorisations des utilisateurs.
*
* @return ²ú´Ç´Ç±ô¨¦±ð²Ô
*/
protected function checkPermissions() {
return $this->getUserType() >= USER_TYPE_ZABBIX_ADMIN;
}
/**
* Ex¨¦cuter l'action et g¨¦n¨¦rer un objet de r¨¦ponse.
*/
protected function do Action(): void {
$data = [
'hosts_count' => API::Host()->get([
'countOutput' => true,
'filter' => [
'status' => $this->getInput('status')
]
])
];
$this->setResponse(new CControllerResponseData($data));
}
Vous pouvez consulter la liste compl¨¨te des classes de contr?leurs disponibles dans le Áú»¢¶Ä²©.