How to modify Listview of a subpanel?

I can modify Listview of modules by changing the code in include\ListView\ListViewData. If I wanted any column data to show in red color I can do that by changing code of above file. Now, can we do something like it with the subpanel data? I have made a subpanel and want to make phone call column of the subpanel clickable. How can i do it? 

Parents
  • Which Sugar version do you use? Which edition?

    You never should modify any core files, like files in the include/... directory, if possible.

    Each such customization should be done in the custom/... directory to creatze upgrade safe customizations.

    The phone numbers are stored in phone fields, so if you look in the definition of these phone fields (e.g. in include/SugarFields/Fields/ (6.x) or clients/base/fields/ (7.x)) you are at the right placeto start with some customizations.
    On the other side there is a so called "SkypeOut®-Integration" option which can be set in admin - system settings which creates a callto:-reference on phone numbers (which is accepted by some other cti integrations too). This feature creates a callto:-reference every time a phone number starts with + or 00 or 011.

    Harald Kuske
    Principal Solution Architect – Professional Services, EMEA
    hkuske@sugarcrm.com
    SugarCRM Deutschland GmbH

  • Offshore Evolution Yes, I am trying process_record. But process_record do not get fired in detail view and subpanels are in detail view. According to docs, process_record Executes when the record is being processed as a part of the ListView or subpanel list. I did not understand what docs meant as part of subpanel list. If it fires on subpanel list then it must fire in the detail view where subpanels are. How can i use process_record to access the subpanel data. Help needed.

  • As a subpanel view is derived from listview, the process_record hook is called for each visible entry of a subpanel.

    So, if you have a logic_hook function for contacts in custom/modules/Contacts/ContactHook.php 

    <?php
    class ContactHook {
    function CallHook($bean, $event, $arguments){
    $GLOBALS['log']->fatal("ContactHook:".$event."-".$bean->id);
    }
    }
    ?>

    and two logic_hooks for that in custom/modules/Contacts/logic_hooks.php

    $hook_array['after_retrieve'] = Array();
    $hook_array['after_retrieve'][] = Array(1, 'Contacts Hook', 'custom/modules/Contacts/ContactHook.php', 'ContactHook', 'CallHook');

    $hook_array['process_record'] = Array();
    $hook_array['process_record'][] = Array(1, 'Contacts Hook', 'custom/modules/Contacts/ContactHook.php','ContactHook', 'CallHook');

    you get a log entry if you open a single contact and you get log entries for all related contacts if you open a single account because in the account detail view the related contacts are shown in a subpanel which is derived from list view.

    sugarcrm.log  - Detail view of one contact

    11/14/16 18:27:34 [472][1][FATAL] ContactHook:after_retrieve-378981b4-af4e-4c5e-c90d-5829defe1958

    sugarcrm.log - Detail view of one account with 6 related accounts
    11/14/16 18:27:34 [472][1][FATAL] ContactHook:process_record-e14a3ca5-fc77-073f-e049-5829dec5355e
    11/14/16 18:27:34 [472][1][FATAL] ContactHook:process_record-378981b4-af4e-4c5e-c90d-5829defe1958
    11/14/16 18:27:34 [472][1][FATAL] ContactHook:process_record-aa663fce-2dbe-b8ee-1f4d-5829de49911a
    11/14/16 18:27:34 [472][1][FATAL] ContactHook:process_record-5f2a4ea8-b524-b38e-fdfe-5829decdbcbd
    11/14/16 18:27:34 [472][1][FATAL] ContactHook:process_record-40ff6c7b-6e00-54f9-eb5a-5829dedbc114
    11/14/16 18:27:34 [472][1][FATAL] ContactHook:process_record-474901ea-66fe-efb5-b32e-5829de4f6c2d

    Harald Kuske
    Principal Solution Architect – Professional Services, EMEA
    hkuske@sugarcrm.com
    SugarCRM Deutschland GmbH

Reply
  • As a subpanel view is derived from listview, the process_record hook is called for each visible entry of a subpanel.

    So, if you have a logic_hook function for contacts in custom/modules/Contacts/ContactHook.php 

    <?php
    class ContactHook {
    function CallHook($bean, $event, $arguments){
    $GLOBALS['log']->fatal("ContactHook:".$event."-".$bean->id);
    }
    }
    ?>

    and two logic_hooks for that in custom/modules/Contacts/logic_hooks.php

    $hook_array['after_retrieve'] = Array();
    $hook_array['after_retrieve'][] = Array(1, 'Contacts Hook', 'custom/modules/Contacts/ContactHook.php', 'ContactHook', 'CallHook');

    $hook_array['process_record'] = Array();
    $hook_array['process_record'][] = Array(1, 'Contacts Hook', 'custom/modules/Contacts/ContactHook.php','ContactHook', 'CallHook');

    you get a log entry if you open a single contact and you get log entries for all related contacts if you open a single account because in the account detail view the related contacts are shown in a subpanel which is derived from list view.

    sugarcrm.log  - Detail view of one contact

    11/14/16 18:27:34 [472][1][FATAL] ContactHook:after_retrieve-378981b4-af4e-4c5e-c90d-5829defe1958

    sugarcrm.log - Detail view of one account with 6 related accounts
    11/14/16 18:27:34 [472][1][FATAL] ContactHook:process_record-e14a3ca5-fc77-073f-e049-5829dec5355e
    11/14/16 18:27:34 [472][1][FATAL] ContactHook:process_record-378981b4-af4e-4c5e-c90d-5829defe1958
    11/14/16 18:27:34 [472][1][FATAL] ContactHook:process_record-aa663fce-2dbe-b8ee-1f4d-5829de49911a
    11/14/16 18:27:34 [472][1][FATAL] ContactHook:process_record-5f2a4ea8-b524-b38e-fdfe-5829decdbcbd
    11/14/16 18:27:34 [472][1][FATAL] ContactHook:process_record-40ff6c7b-6e00-54f9-eb5a-5829dedbc114
    11/14/16 18:27:34 [472][1][FATAL] ContactHook:process_record-474901ea-66fe-efb5-b32e-5829de4f6c2d

    Harald Kuske
    Principal Solution Architect – Professional Services, EMEA
    hkuske@sugarcrm.com
    SugarCRM Deutschland GmbH

Children
No Data