Line 1: |
Line 1: |
− | Benvenuti nella pagina Wiki di Simone Giustetti.
| + | {{header_it|title=Personalizzare i campi data di VtigerCRM| keyword={{Template:keyword_it_vtigercrm}}| description=Una guida alla modifica del comportamento standard dei campi data del CRM open source VtigerCRM | link_page=vtigercrm_update_date_field_default_behavior}} |
| | | |
| | | |
− | Lingue: [http://www.giustetti.net/wiki/index.php?title=vtigercrm_update_date_field_default_behavior English] - '''Italiano'''
| + | == Comportamento del Controllo '''datefield''' == |
| | | |
− | ----
| + | Le date sono gestite mediante un '''apposito controllo calendario''' (datefield) in VtigerCRM. In fase di inserimento o modifica dei dati, il controllo '''suggerisce automaticamente la data del giorno corrente'''. La compilazione automatica, generalmente utile, può risultare fastidiosa in alcuni contesti: ad esempio maschere con molte date. Una maschera in cui siano presenti molti campi data costringerebbe l'utente a scorrerli tutti correggendo o rimuovendo i valori indesiderati. Ne consegue la necessità di '''modificare il comportamento standard del controllo in modo che suggerisca in automatico una data nulla'''. Il suggerimento dovrebbe comparire solo quando l'utente selezioni esplicitamente il controllo e non a prescindere. Nel proseguo dell'articolo verrà esposto come modificare il comportamento standard per i controlli data in '''VtigerCRM versione 5.2.1'''. |
| | | |
− | == Comportamento del controllo '''datefield''' ==
| |
− | Le date sono gestite mediante un '''apposito controllo calendario''' (datefield) in VtigerCRM. In fase di inserimento o modifica dei dati, il controllo '''suggerisce automaticamente la data del giorno corrente'''. La compilazione automatica, generalmente utile, può risultare fastidiosa in alcuni contesti: ad esempio maschere con molte date. Una maschera in cui siano presenti molti campi data costringerebbe l'utente a scorrerli tutti correggendo o rimuovendo i valori indesiderati. Ne consegue la necessità di '''modificare il comportamento standard del controllo in modo che suggerisca in automatico una data nulla'''. Il suggerimento dovrebbe comparire solo quando l'utente selezioni esplicitamente il controllo e non a prescindere. Nel proseguo dell'articolo verrà esposto come modificare il comportamento standard per i controlli data in '''VtigerCRM versione 5.2.1'''.
| |
| | | |
| + | == Funzionamento Interno di VtigerCRM == |
| | | |
− | == Funzionamento interno di VtigerCRM ==
| |
| In VtigerCRM il codice di elaborazione dei dati è separato da quello di presentazione degli stessi. Le informazioni vengono estratte dal database, i file di configurazione ed altre fonti, elaborate e infine passate a sezioni separate del codice, che si occupano della formattazione e scrittura delle pagine HTML. '''Tutte le pagine generate dal software sono basate su modelli predefiniti detti template'''. VtigerCRM utilizza '''Smarty''' come motore per i template. I template consistono in file di testo formattati secondo una sintassi specifica, simile ad '''HTML''' con l'aggiunta di variabili e cicli. I modelli sono reperibili in una apposita directory all'interno dell'albero di installazione di VtigerCRM: '''Smarty/templates'''. Di seguito è elencato il contenuto di tale directory: | | In VtigerCRM il codice di elaborazione dei dati è separato da quello di presentazione degli stessi. Le informazioni vengono estratte dal database, i file di configurazione ed altre fonti, elaborate e infine passate a sezioni separate del codice, che si occupano della formattazione e scrittura delle pagine HTML. '''Tutte le pagine generate dal software sono basate su modelli predefiniti detti template'''. VtigerCRM utilizza '''Smarty''' come motore per i template. I template consistono in file di testo formattati secondo una sintassi specifica, simile ad '''HTML''' con l'aggiunta di variabili e cicli. I modelli sono reperibili in una apposita directory all'interno dell'albero di installazione di VtigerCRM: '''Smarty/templates'''. Di seguito è elencato il contenuto di tale directory: |
− | bash-4.1# ls -la ./Smarty | + | bash-4.1# '''ls''' ''-la'' ./Smarty |
| total 64 | | total 64 |
| drwxr-xr-x 8 apache apache 4096 Nov 15 2010 . | | drwxr-xr-x 8 apache apache 4096 Nov 15 2010 . |
Line 42: |
Line 40: |
| Il codice sorgente della funzione deve essere modificato in modo da alterare il comportamento standard dei controlli calendario utilizzati nei moduli del programma. Il fine della modifica è far si che i campi data vengano inizializzati con valore nullo anzichè la data corrente. Di seguito e' riportato il codice sorgente originale ed il codice a seguito della modifica apportata. | | Il codice sorgente della funzione deve essere modificato in modo da alterare il comportamento standard dei controlli calendario utilizzati nei moduli del programma. Il fine della modifica è far si che i campi data vengano inizializzati con valore nullo anzichè la data corrente. Di seguito e' riportato il codice sorgente originale ed il codice a seguito della modifica apportata. |
| | | |
− | === Codice sorgente originale === | + | === Codice Sorgente Originale === |
| + | <syntaxhighlight lang="php"> |
| /** This function returns the date in user specified format. | | /** This function returns the date in user specified format. |
| * Takes no param, receives the date format from current user object | | * Takes no param, receives the date format from current user object |
Line 76: |
Line 75: |
| return $display_date; | | return $display_date; |
| } | | } |
| + | </syntaxhighlight> |
| | | |
− | === Codice sorgente modificato === | + | === Codice Sorgente Modificato === |
| + | <syntaxhighlight lang="php"> |
| /** This function returns the date in user specified format. | | /** This function returns the date in user specified format. |
| * Takes no param, receives the date format from current user object | | * Takes no param, receives the date format from current user object |
Line 91: |
Line 92: |
| return $display_date; | | return $display_date; |
| } | | } |
| + | </syntaxhighlight> |
| | | |
− | === Modifica solo per moduli specifici === | + | === Modifica Solo per Moduli Specifici === |
| Il cambiamento introdotto influenzerà il comportamento di tutti i moduli di VtigerCRM. Naturalmente potrebbe essere desiderabile una modifica meno invasiva. Potrebbe valere ad esempio la pena di '''modificare il comportamento dei controlli calendario per alcuni moduli specifici''' lasciando invece inalterato il resto del programma. Supponendo di voler limitare la modifica al modulo predefinito "Progetti" ed al modulo personalizzato "Polizze", il codice sorgente dovra' essere modificato come segue: | | Il cambiamento introdotto influenzerà il comportamento di tutti i moduli di VtigerCRM. Naturalmente potrebbe essere desiderabile una modifica meno invasiva. Potrebbe valere ad esempio la pena di '''modificare il comportamento dei controlli calendario per alcuni moduli specifici''' lasciando invece inalterato il resto del programma. Supponendo di voler limitare la modifica al modulo predefinito "Progetti" ed al modulo personalizzato "Polizze", il codice sorgente dovra' essere modificato come segue: |
| + | <syntaxhighlight lang="php"> |
| /** This function returns the date in user specified format. | | /** This function returns the date in user specified format. |
| * Takes no param, receives the date format from current user object | | * Takes no param, receives the date format from current user object |
Line 129: |
Line 132: |
| return $display_date; | | return $display_date; |
| } | | } |
| + | </syntaxhighlight> |
| | | |
| La riga: | | La riga: |
| + | <syntaxhighlight lang="php"> |
| $module_name = $_REQUEST['module']; | | $module_name = $_REQUEST['module']; |
| + | </syntaxhighlight> |
| + | |
| salva in una variabile locale il nome del modulo interessato, che verrà utilizzato in un apposito filtro. Il costrutto "case" consente di filtrare i moduli applicando codice specifico per ognuno di essi. In particolare le righe | | salva in una variabile locale il nome del modulo interessato, che verrà utilizzato in un apposito filtro. Il costrutto "case" consente di filtrare i moduli applicando codice specifico per ognuno di essi. In particolare le righe |
| + | <syntaxhighlight lang="php"> |
| case "Policy": | | case "Policy": |
| $display_date = ''; | | $display_date = ''; |
Line 139: |
Line 147: |
| $display_date = ''; | | $display_date = ''; |
| break; | | break; |
| + | </syntaxhighlight> |
| + | |
| impongono un valore nullo in fase di inserimento e modifica dei campi data per i moduli "Polizze" e "Progetti". Infine le righe | | impongono un valore nullo in fase di inserimento e modifica dei campi data per i moduli "Polizze" e "Progetti". Infine le righe |
| + | <syntaxhighlight lang="php"> |
| default: | | default: |
| global $current_user; | | global $current_user; |
Line 154: |
Line 165: |
| } | | } |
| } | | } |
| + | </syntaxhighlight> |
| + | |
| specificano che venga applicato il comportamento standard del controllo calendario in tutti gli altri moduli di VtigerCRM. | | specificano che venga applicato il comportamento standard del controllo calendario in tutti gli altri moduli di VtigerCRM. |
| | | |
Line 162: |
Line 175: |
| | | |
| | | |
− | ----
| + | {{footer_it | link_page=vtigercrm_update_date_field_default_behavior}} |
− | | |
− | Lingue: [http://www.giustetti.net/wiki/index.php?title=vtigercrm_update_date_field_default_behavior English] - '''Italiano'''
| |