Rendere un campo non modificabile è più semplice di quanto si possa immaginare.
Quante volte ci siamo trovati con l’esigenza di mostrare dati, ma impedire che gli operatori possano modificarli. La soluzione è semplice, ma richiede di intervenire direttamente su alcuni files.
Ogni modulo, ha dei files che indicano quali campi mostrare nelle viste. Questi files presentano degli array di “meta dati”, dove si possono andare a impostare diverse caratteristiche per quel campo. Una di queste caratteristiche è di rendere il campo non modificabile.
Banalmente è sufficiente inserire l’istruzione
1 2 3 |
'type' => 'readonly', |
associata al campo da rendere non modificabile.
E’ possibile vedere un esempio presente su SuiteCRM per il campo case_number del modulo dei Casi.
Aprendo il file:
public/legacy/modules/Cases/metadata/editviewdefs.php
troverete l’istruzione seguente
1 2 3 4 5 6 |
array ( 'name' => 'case_number', 'type' => 'readonly', ), |
Per applicare questa specifica a qualsiasi dei nostri campi sarà sufficiente copiare il files editviewdefs.php sotto la cartella “custom” (se non fosse già presente) ed applicare la specifica readonly al campo desiderato.
Ad esempio se volessimo rendere “readonly” il campo “website” del modulo delle Aziende sarebbe sufficiente copiare il file editviewdefs.php in
public/legacy/custom/modules/Accounts/metadata/editviewdefs.php
apritelo, cercate il campo “website”, modificate come sotto e il gioco è fatto.
1 2 3 4 5 6 7 |
array ( 'name' => 'website', 'type' => 'readonly', 'label' => 'LBL_WEBSITE', ), |
Potrebbe essere necessario il solito ripara e ricostruisci per veder applicate le modifiche