Ciao tboard,
ti posso fare l'esempio in Sugar 5.0.0a di come ho collegato tra loro due dropdown in modo che nel secondo compaia una lista di valori in base alle scelte effettuate nel primo.
1) Si creano due dropdown... Per esempio:
Dropdown 1:
'AAA' -> 'valore 1'
'BBB' -> 'valore 2'
'CCC' -> 'valore 3'
Dropdown 2:
'AAA_1' -> 'valore A1'
'AAA_2' -> 'valore A2'
'AAA_3' -> 'valore A3'
'BBB_1' -> 'valore B1'
'BBB_2' -> 'valore B2'
'CCC_1' -> 'valore C1'
'CCC_2' -> 'valore C2'
'CCC_3 -> 'valore C3'
2) Se si ha del codice in un file .js separato, lo si deve includere dentro al file *viewdefs.php relativo alla vista del modulo in cui si utilizzano i due dropdown. Nel mio caso, i dropdown sono utilizzati nella vista Edit del modulo Accounts, quindi ho aggiunto l'include del mio file .js nel file editviewdefs.php relativo al modulo accounts. Per farlo sono andato in sugar-root\custom\modules\Accounts\metadata\editviewdefs .php e ho aggiunto questo codice:
Code:
'includes' =>
array (
0 =>
array (
'file' => 'modules/Accounts/miofile.js',
),
),
3) A questo punto ho inserito la chiamata alle funzione presenti in miofile.js dentro al file sugar-root\custom\modules\Accounts\metadata\editviewdefs .php, aggiungendo il riferimento al javascript, in questo modo:
Code:
array (
0 =>
array (
'name' => 'DROPDOWN_A',
'label' => 'LBL_DROPDOWN_A',
'displayParams' => array (
'javascript' => 'onchange="mia_funzione();"'
),
),
1 =>
array (
'name' => 'DROPDOWN_B',
'label' => 'LBL_DROPDOWN_B',
'javascript' => 'onchange="altra_mia_funzione();"'
),
),
),
E questo è più o meno tutto. Consiglio di chiudere il browser, eliminare la cartella sugar-root\cache\ ed effettuare nuovamente l'accesso a Sugar.
Spero di esserti stato utile
Ciao
Bookmarks