[comment]: # aside:2

[comment]: # ({f589b4e2-e31d2e06})
# Azioni

Le azioni sono responsabili della 'logica di business' del modulo. Un'azione solitamente consiste in un [controller](#controller) e una [vista azione](viste#vista-azione). 

Un modulo può: 

- Richiamare azioni che sono già definite nel frontend di Zabbix.
- Sovrascrivere le azioni di default con azioni personalizzate.
- Definire azioni completamente nuove.

Per sovrascrivere il comportamento di default di un'azione con un comportamento personalizzato, definire un'azione con lo stesso nome nella configurazione del modulo. 
Quando viene richiamata l'azione, il modulo dell'azione verrà eseguito invece dell'azione Zabbix di default. 

I file azione dovrebbero essere archiviati nella cartella *azioni*. Le azioni devono essere specificate nel [manifesto.json](manifesto).

[comment]: # ({/f589b4e2-e31d2e06})

[comment]: # ({17d83096-348a3343})
### Controller

Workflow dell'azione Controller:

1) Verifica che tutti i parametri trasmessi nella richiesta HTTP siano validi:
- Richiamare il metodo *checkInput()* del controller
- Usare regole di validazione definite in CNewValidator.php
- Richiamare il metodo *validateInput()*

2) Controllare i permessi utente.

3) Preparare i dati in concordanza con i parametri approvati: se *checkInput()* restituisce valore true, Zabbix richiama il metodo *doAction()* del controller.

Preparare l'array **$data** per la visualizzazione. Usare i metodi *CControllerResponseData* e *setResponse()* per archiviare il riscontro nell'array **$data**.

Esempio:

````php
/**
* Validare i parametri di input.
*
* @return bool
*/

[comment]: # ({/17d83096-348a3343})
