-
-
Save amusarra/8570573 to your computer and use it in GitHub Desktop.
<?php | |
$viewdefs ['Contacts'] = | |
array ( | |
'DetailView' => | |
array ( | |
'templateMeta' => | |
array ( | |
'form' => | |
array ( | |
'buttons' => | |
array ( | |
0 => 'EDIT', | |
1 => 'DUPLICATE', | |
2 => 'DELETE', | |
3 => 'FIND_DUPLICATES', | |
4 => | |
array ( | |
'customCode' => '<input type="submit" class="button" title="{$APP.LBL_MANAGE_SUBSCRIPTIONS}" onclick="this.form.return_module.value=\'Contacts\'; this.form.return_action.value=\'DetailView\'; this.form.return_id.value=\'{$fields.id.value}\'; this.form.action.value=\'Subscriptions\'; this.form.module.value=\'Campaigns\'; this.form.module_tab.value=\'Contacts\';" name="Manage Subscriptions" value="{$APP.LBL_MANAGE_SUBSCRIPTIONS}"/>', | |
'sugar_html' => | |
array ( | |
'type' => 'submit', | |
'value' => '{$APP.LBL_MANAGE_SUBSCRIPTIONS}', | |
'htmlOptions' => | |
array ( | |
'class' => 'button', | |
'id' => 'manage_subscriptions_button', | |
'title' => '{$APP.LBL_MANAGE_SUBSCRIPTIONS}', | |
'onclick' => 'this.form.return_module.value=\'Contacts\'; this.form.return_action.value=\'DetailView\'; this.form.return_id.value=\'{$fields.id.value}\'; this.form.action.value=\'Subscriptions\'; this.form.module.value=\'Campaigns\'; this.form.module_tab.value=\'Contacts\';', | |
'name' => 'Manage Subscriptions', | |
), | |
), | |
), | |
), | |
), | |
'maxColumns' => '2', | |
'widths' => | |
array ( | |
0 => | |
array ( | |
'label' => '10', | |
'field' => '30', | |
), | |
1 => | |
array ( | |
'label' => '10', | |
'field' => '30', | |
), | |
), | |
'includes' => | |
array ( | |
0 => | |
array ( | |
'file' => 'modules/Leads/Lead.js', | |
), | |
), | |
'useTabs' => false, | |
'tabDefs' => | |
array ( | |
'LBL_CONTACT_INFORMATION' => | |
array ( | |
'newTab' => false, | |
'panelDefault' => 'expanded', | |
), | |
'LBL_PANEL_ADVANCED' => | |
array ( | |
'newTab' => false, | |
'panelDefault' => 'expanded', | |
), | |
'LBL_PANEL_ASSIGNMENT' => | |
array ( | |
'newTab' => false, | |
'panelDefault' => 'expanded', | |
), | |
), | |
), | |
'panels' => | |
array ( | |
'lbl_contact_information' => | |
array ( | |
0 => | |
array ( | |
0 => | |
array ( | |
'name' => 'full_name', | |
'label' => 'LBL_NAME', | |
), | |
), | |
1 => | |
array ( | |
0 => | |
array ( | |
'name' => 'title', | |
'comment' => 'The title of the contact', | |
'label' => 'LBL_TITLE', | |
), | |
1 => | |
array ( | |
'name' => 'phone_work', | |
'label' => 'LBL_OFFICE_PHONE', | |
), | |
), | |
2 => | |
array ( | |
0 => | |
array ( | |
'name' => 'department', | |
'label' => 'LBL_DEPARTMENT', | |
), | |
1 => | |
array ( | |
'name' => 'phone_mobile', | |
'label' => 'LBL_MOBILE_PHONE', | |
), | |
), | |
3 => | |
array ( | |
0 => | |
array ( | |
'name' => 'account_name', | |
'label' => 'LBL_ACCOUNT_NAME', | |
'displayParams' => | |
array ( | |
'enableConnectors' => true, | |
'module' => 'Contacts', | |
'connectors' => | |
array ( | |
0 => 'ext_rest_linkedin', | |
), | |
), | |
), | |
1 => | |
array ( | |
'name' => 'phone_fax', | |
'label' => 'LBL_FAX_PHONE', | |
), | |
), | |
4 => | |
array ( | |
0 => | |
array ( | |
'name' => 'primary_address_street', | |
'label' => 'LBL_PRIMARY_ADDRESS', | |
'type' => 'address', | |
'displayParams' => | |
array ( | |
'key' => 'primary', | |
), | |
), | |
1 => | |
array ( | |
'name' => 'alt_address_street', | |
'label' => 'LBL_ALTERNATE_ADDRESS', | |
'type' => 'address', | |
'displayParams' => | |
array ( | |
'key' => 'alt', | |
), | |
), | |
), | |
5 => | |
array ( | |
0 => | |
array ( | |
'name' => 'email1', | |
'studio' => 'false', | |
'label' => 'LBL_EMAIL_ADDRESS', | |
), | |
), | |
6 => | |
array ( | |
0 => | |
array ( | |
'name' => 'description', | |
'comment' => 'Full text of the note', | |
'label' => 'LBL_DESCRIPTION', | |
), | |
), | |
), | |
'LBL_PANEL_ADVANCED' => | |
array ( | |
0 => | |
array ( | |
0 => | |
array ( | |
'name' => 'report_to_name', | |
'label' => 'LBL_REPORTS_TO', | |
), | |
1 => | |
array ( | |
'name' => 'sync_contact', | |
'comment' => 'Synch to outlook? (Meta-Data only)', | |
'label' => 'LBL_SYNC_CONTACT', | |
), | |
), | |
1 => | |
array ( | |
0 => | |
array ( | |
'name' => 'lead_source', | |
'comment' => 'How did the contact come about', | |
'label' => 'LBL_LEAD_SOURCE', | |
), | |
1 => | |
array ( | |
'name' => 'do_not_call', | |
'comment' => 'An indicator of whether contact can be called', | |
'label' => 'LBL_DO_NOT_CALL', | |
), | |
), | |
2 => | |
array ( | |
0 => | |
array ( | |
'name' => 'campaign_name', | |
'label' => 'LBL_CAMPAIGN', | |
), | |
), | |
), | |
'LBL_PANEL_ASSIGNMENT' => | |
array ( | |
0 => | |
array ( | |
0 => | |
array ( | |
'name' => 'assigned_user_name', | |
'label' => 'LBL_ASSIGNED_TO_NAME', | |
), | |
1 => | |
array ( | |
'name' => 'account_assigned_to', | |
'label' => 'LBL_ACCOUNT_ASSIGNED_TO', | |
), | |
2 => | |
array ( | |
'name' => 'assigned_account_user_link', | |
'label' => 'LBL_ACCOUNT_ASSIGNED_TO', | |
), | |
3 => | |
array ( | |
'name' => 'date_modified', | |
'customCode' => '{$fields.date_modified.value} {$APP.LBL_BY} {$fields.modified_by_name.value}', | |
'label' => 'LBL_DATE_MODIFIED', | |
), | |
), | |
1 => | |
array ( | |
0 => | |
array ( | |
'name' => 'date_entered', | |
'customCode' => '{$fields.date_entered.value} {$APP.LBL_BY} {$fields.created_by_name.value}', | |
'label' => 'LBL_DATE_ENTERED', | |
), | |
), | |
), | |
), | |
), | |
); | |
?> |
<?php | |
# File: custom/Extension/modules/Contacts/Ext/Language/it_it.lang.ext.php | |
$mod_strings = array_merge($mod_strings, | |
array( | |
'LBL_ACCOUNT_ASSIGNED_TO' => "Account assegnato a", | |
) | |
); |
<?php | |
# File: custom/Extension/modules/Contacts/Ext/Vardefs/sugarfield_account_assigned_to.ph | |
$dictionary['Contact']['fields']['account_assigned_to'] = array ( | |
'name' => 'account_assigned_to', | |
'rname' => 'assigned_user_id', | |
'id_name' => 'account_id', | |
'vname' => 'LBL_ACCOUNT_ASSIGNED_TO', | |
'type' => 'relate', | |
'join_name'=>'accounts', | |
'table' => 'accounts', | |
'isnull' => 'true', | |
'module' => 'Accounts', | |
'dbType' => 'id', | |
'reportable' => false, | |
'source' => 'non-db', | |
'massupdate' => false, | |
'duplicate_merge' => 'disabled', | |
); | |
$dictionary['Contact']['fields']['assigned_account_user_link'] = array ( | |
'name' => 'assigned_account_user_link', | |
'type' => 'relate', | |
'vname' => 'LBL_ASSIGNED_TO_USER', | |
'join_name'=>'Users', | |
'table' => 'Users', | |
'module' => 'Users', | |
'source' => 'non-db', | |
'rname' => 'full_name', | |
'id_name' => 'account_assigned_to', | |
'duplicate_merge'=>'enabled' | |
); | |
?> |
Ciao Gianluca, è veramente strano. Ti ho aggiornato il detailviewdef con la versione completa e in ogni caso di ho messo sulla pagina del gruppo lo zip che contiene la personalizzazione del modulo contact che potresti direttamente installare.
In genere per il debug sono più che sufficienti i file di log di SugarCRM (a livello di debug) e quelli di PHP. Per situazioni più anomale allora utilizzo Eclipse + XDebug.
Bye,
Antonio.
Ciao Antonio, l'installazione attraverso il modulo ha funzionato.
Ora analizzando il codice vedo che i file contenuti nello zip del modulo Contact custom vengono inseriti:
sugarcrm\custom\EJ8TJS~8\modules\Contacts\Ext\Vardefs\sugarfield_account_assigned_to.php
mentre mi sarei aspettato di trovarlo in:
sugarcrm\custom\Extension\modules\Contacts\Ext\Vardefs\sugarfield_account_assigned_to.php
e ancora:
sugarcrm\custom\working\modules\Contacts\metadata\detailviewdefs.php
pensavo dovesse andare in:
sugarcrm\custom\modules\Contacts\metadata\detailviewdefs.php
Quello che non capisco è:
ora le modifiche apportate mediante il modulo Contatti "custom" (lo zip che mi hai passato tu) funzionano correttamente, i file sono nelle directory che ti ho detto sopra, mentre nelle directory
custom/modules/Contacts/metadata/detailviewdefs.php
custom/Extension/modules/Contacts/Ext/Vardefs/sugarfield_account_assigned_to.php
ci sono ancora i miei file di ieri in cui avevo inserito a mano le modifiche che mi avevi consigliato tu, io mi aspettavo che avrebbe sovrascritto questi file, con la versione dello zip...
La directory EJ8TJS~8 in sugarcrm\custom\ esiste di default o è stata creata nella mia versione per contenere modifiche specifiche? (io sto lavorando su una versione di sugar 6.5.11 con personalizzazioni apportate da una società esterna).
Il tuo aiuto è stato preziosissimo, ma ho notato che viene inserito l'id dell'account (azienda) collegato, mentre a me serve il nome completo dell'utente assegnato all'account in relazione con il contatto (quindi ora ho un id che punta ad una azienda, di quella azienda mi serve il nome dell'assigned_user_id e la devo portare sul contatto).
Quindi in definitiva, per proseguire a sviluppare modifiche sul campo nuovo devo lavorare sulle directory in cui trovo i file dello zip (sugarcrm\custom\EJ8TJS~8\modules\Contacts\Ext\Vardefs\ sugarcrm\custom\working\modules\Contacts\metadata\ )?
Infine voglio ringraziarti per l'aiuto che mi stai dando con impegno quotidiano, davvero apprezzato. GRAZIE
In realtà il link che compare sulla detailview del contatto porta alla scheda detailview dell'azienda, mentre il testo è l'id corretto dello user assegnato all'azienda...
In più se apporto modifiche alla maschera di dettaglio le modifiche apportate con lo zip svaniscono O_o
Ciao Gianluca,
sono stato molto impegnato e trovo solo adesso il tempo per risponderti.
L'esempio da me riportato mostra l'id dell'utente a cui è assegnato l'account collegato al contatto. Ho aggiornato il vardefext e detailview per mostrare il nome completo dell'utente. Spero che questo sia il tuo desiderato.
Ma la directory EJ8TJS~8 presente sulla tua installazione si chiama proprio così o si tratta di un errore di copia & incolla? Questo nome non mi torna, dovrebbe essere Ext, non vorrei che sia stato fatto qualche genere di modifica alquanto strana.
La directory working è utilizzata in genere dall'ambiente di studio. Mi sembra comunque strano che le modifiche apportate dall'installazione dello zip svaniscano con la modifica in studio.
Bye,
Antonio.
Grazie per l'aiuto, ma purtroppo non riesco a far funzionare il codice..
Non mi da errore e non mi aggiunge i 3 campi definiti in custom/modules/Contacts/metadata/detailviewdefs.php
Tu come fai debug su sugar? Il log non aiuta, non dando errore non capisco dove sia il problema, potrebbe essere un carattere sbagliato, come un errore diverso..
Aggiungendo il tuo codice, e facendo un quick repair and rebuild, non vengono aggiunti i campi alla vista dettagliata, magari questa sera provo su una installazione "vergine" di sugar poi ti faccio sapere.
Se hai cmq altri consigli da darmi sono sempre ben accetti (io cmq prima di chiedere a te, avevo provato da solo ed ero molto vicino alla soluzione che mi hai proposto tu ).
Grazie ancora