# Modifica della visibilità dei campi

Si può modificare la visibilità dei vari campi (valore di $readonly) e altre variabili nelle varie modalità (ListView, EditView…). Per registrare una nuova “Vista” usare il metodo:

**SDK::addView($module, $src, $mode, $success);**  
*$module : il modulo in cui applicare la vista*  
*$src : il file php*  
*$mode : la modalità di applicazione della regola (vedere sotto)*  
*$success: cosa fare dopo l’applicazione della regola (vedere sotto)*

Le Viste definite per ogni modulo vengono applicate nell’ordine in cui sono registrate. Quando si registrano, vengono aggiunte in coda a quelle già definite per quel modulo. Il parametro $mode ha senso solo se si modifica la variabile

*$readonly, e ammette i seguenti valori:*  
*“constrain” : forza il valore di $readonly ad assumere il nuovo valore dato nello script.*  
*“restrict” : cambia il valore di $readonly solo verso un valore più restrittivo (da 1 a 99 o 100, da 99 a 100, non viceversa)*

Il parametro $success invece può essere:

*“continue” : dopo l’applicazione della vista, continua con la successiva*  
*“stop” : se la vista restituisce $success = true, non vengono eseguite altre regole*

All’interno degli script sono disponibili le seguenti variabili:

*$sdk\_mode : uno tra “” (create), “edit”, “detail”, “popup\_query”, “list\_related\_query”, “popup”, “related”, “list”, “mass\_edit”*  
*$readonly : il valore di readonly per il campo che si sta per scrivere (1, 99, 100 rispettivamente lettura/scrittura, sola lettura, nascosto)*  
*$col\_fields: valori dei campi, solo per $sdk\_mode = “edit”, “detail” e “”*  
*$fieldname o $fieldName: nome del campo corrente*  
*$current\_user: l’utente corrente*

Ed è possibile restituire la variabile $success con true o false.  
A seconda della modalità (ListView, EditView, …) ci sono diversi modi per modificare le query e diverse variabili disponibili.

<table border="1" id="bkmrk-modalit%C3%A0-valore-di-" style="border-collapse: collapse; width: 100%; height: 276px;"><tbody><tr style="height: 30px;"><td style="width: 25%; height: 30px;">**Modalità**</td><td style="width: 25%; height: 30px;">**Valore di $sdk\_mode**</td><td style="width: 25%; height: 30px;">**Variabili disponibili**</td><td style="width: 25%; height: 30px;">**Note**</td></tr><tr style="height: 31px;"><td style="width: 25%; height: 31px;">CreateView</td><td style="width: 25%; height: 31px;">*""*</td><td rowspan="4" style="width: 25%; height: 101px;">*$col\_fields*  
*$current\_user*  
*$fieldname*  
*$readonly*  
*$success*</td><td style="width: 25%; height: 31px;">1</td></tr><tr style="height: 30px;"><td style="width: 25%; height: 30px;">EditView</td><td style="width: 25%; height: 30px;">*"edit"*</td><td style="width: 25%; height: 30px;"> </td></tr><tr style="height: 10px;"><td style="width: 25%; height: 10px;">DetailView</td><td style="width: 25%; height: 10px;">*"detail"*</td><td style="width: 25%; height: 10px;"> </td></tr><tr style="height: 30px;"><td style="width: 25%; height: 30px;">MassEdit</td><td style="width: 25%; height: 30px;">*"mass\_edit"*</td><td style="width: 25%; height: 30px;"> </td></tr><tr style="height: 25px;"><td style="width: 25%; height: 25px;">PopupQuery</td><td style="width: 25%; height: 25px;">*"popup\_query"*</td><td style="width: 25%; height: 25px;">*$sdk\_columns*  
*$success*</td><td style="width: 25%; height: 25px;">2</td></tr><tr style="height: 30px;"><td style="width: 25%; height: 30px;">List/RelatedQuery</td><td style="width: 25%; height: 30px;">*"list\_related\_query"*</td><td style="width: 25%; height: 30px;">*$sdk\_columns*  
*$success*</td><td style="width: 25%; height: 30px;"> </td></tr><tr style="height: 30px;"><td style="width: 25%; height: 30px;">Popup</td><td style="width: 25%; height: 30px;">*"popup"*</td><td rowspan="3" style="width: 25%; height: 90px;">*$current\_user*  
*$fieldname*  
*$sdk\_columnnames*  
*$sdk\_columnvalues*  
*$readonly*  
*$success*</td><td style="width: 25%; height: 30px;">3</td></tr><tr style="height: 30px;"><td style="width: 25%; height: 30px;">Related</td><td style="width: 25%; height: 30px;">*"related"*</td><td style="width: 25%; height: 30px;">4</td></tr><tr style="height: 30px;"><td style="width: 25%; height: 30px;">List</td><td style="width: 25%; height: 30px;">*"list"*</td><td style="width: 25%; height: 30px;"> </td></tr></tbody></table>

Note:

1. In queste modalità i valori dei campi sono in $col\_fields\[ nomi-dei-campi \]
2. Queste modalità servono per modificare la query in modo da poter prelevare campi aggiuntivi. In $sdk\_columns ci sono le colonne del db da aggiungere alla query. Includere poi il file “modules/SDK/AddColumnsToQueryView.php”
3. Per prelevare valori di altri campi, specificati nelle modalità PopupQuery e ListRelatedQuery, scriverli nell’array $sdk\_columnnames, includere il file “modules/SDK/GetFieldsFromQueryView.php” e prenderli poi da $sdk\_columnvalues
4. Nel caso della related “Storico attività” sono disponibili solo le variabili $recordId e $readonly e si applicano all'intera riga, non al singolo campo.

Per de-registrare la vista usare:

**SDK::deleteView($module, $src);**  
*$module : il modulo associato*  
*$src : il file php*

<p class="callout info">**Hooks**  
include/ListView/ListViewController.php  
include/utils/DetailViewUtils.php  
include/utils/EditViewUtils.php  
include/utils/ListViewUtils.php  
include/QueryGenerator/QueryGenerator.php  
Popup.php</p>