# Advanced query

Si può modificare la query eseguita per caricare i dati in modalità ListView, RelatedList e Popup in modo da rendere accessibili o meno alcuni dati. Questo non influenza gli utenti di tipo Administrator, che hanno accesso a tutti i dati; inoltre il modulo deve essere impostato come Privato.

La modifica della query viene fatta tramite una funzione php personalizzata (vedere sotto). In ogni modulo è possibile utilizzare solo una funzione di questo tipo. Per registrare la funzione usare:

**SDK::setAdvancedQuery($module, $func, $src);**  
*$module : il modulo in cui applicare la funzione (Se per il modulo è già registrata una funzione, non viene inserita la nuova)*  
*$func : il nome della funzione php*  
*$src : il file php in cui è contenuta la funzione*

Per de-registrare usare il metodo:

**SDK::unsetAdvancedQuery($module);**  
*$module : il modulo con cui era stata registrata la funzione*

La funzione $func deve essere definita nel seguente modo:

**function f($module)** *$module : il modulo che chiama la funzione*

E restituisce una stringa:

*“” : (stringa vuota) la query non subisce modifiche*  
*? : (stringa non vuota) questa stringa viene aggiunta alla query*

<p class="callout info">**Hooks**  
data/CRMEntity.php</p>