L’esempio mostra come nascondere dinamicamente i sottopannelli “Contatti”, “Lead”, “Documenti” e “Casi” quando il tipo di azienda è “Partner”.
Per prima cosa dobbiamo creare il seguente file sovrascrivendo così la DetailView del modulo Aziende:
1 2 3 |
./custom/modules/Accounts/views/view.detail.php |
Successivamente inseriamo nel file il seguente codice:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 |
<?php if(!defined('sugarEntry') || !sugarEntry) die('Not A Valid Entry Point'); require_once('modules/Accounts/views/view.detail.php'); class CustomAccountsViewDetail extends AccountsViewDetail { function CustomAccountsViewDetail() { parent::AccountsViewDetail(); } protected function _displaySubPanels() { if (isset($this->bean) && !empty($this->bean->id) && (file_exists('modules/' . $this->module . '/metadata/subpaneldefs.php') || file_exists('custom/modules/' . $this->module . '/metadata/subpaneldefs.php') || file_exists('custom/modules/' . $this->module . '/Ext/Layoutdefs/layoutdefs.ext.php'))) { $GLOBALS['focus'] = $this->bean; require_once ('include/SubPanel/SubPanelTiles.php'); $subpanel = new SubPanelTiles($this->bean, $this->module); if ($this->bean->account_type == 'Partner') { //Sottopannelli da nascondere $hideSubpanels=array( 'contacts', 'leads', 'documents', 'cases', ); foreach ($hideSubpanels as $subpanelKey) { //Rimuove i sottopannelli if (isset($subpanel->subpanel_definitions->layout_defs['subpanel_setup'][$subpanelKey])) { unset($subpanel->subpanel_definitions->layout_defs['subpanel_setup'][$subpanelKey]); } } } echo $subpanel->display(); } } } ?> |
Il codice permette di visualizzare tutti i sottopannelli escluso “Contatti”, “Lead”, “Documenti” e “Casi” quando il tipo di azienda è “Partner”.