Áú»¢¶Ä²©

This is the documentation page for an unsupported version of Áú»¢¶Ä²©.
Is this not what you were looking for? Switch to the current version or choose one from the drop-down menu.
Table of Contents

Actions

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 :

  • Appeler des actions d¨¦j¨¤ d¨¦finies dans l'interface Áú»¢¶Ä²©.
  • Remplacer les actions par d¨¦faut par des actions personnalis¨¦es.
  • D¨¦finir des actions compl¨¨tement nouvelles.

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.

Contr?leur

Flux de travail du contr?leur d'action?:

  1. V¨¦rifiez que tous les param¨¨tres pass¨¦s dans une requ¨ºte HTTP sont valides?:
  • Appeler la m¨¦thode checkInput() du contr?leur
  • Utiliser les r¨¨gles de validation d¨¦finies dans CNewValidator.php
  • Appeler la m¨¦thode validateInput()
  1. V¨¦rifiez les autorisations des utilisateurs.

  2. Pr¨¦parez les donn¨¦es en fonction des param¨¨tres pass¨¦s : si checkInput() renvoie true, Áú»¢¶Ä²© appelle la m¨¦thode doAction() du contr?leur.

  3. 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 Áú»¢¶Ä²©.