From 72841b8ba7a5ce2f46d3b2a4e7d5997b25c98b70 Mon Sep 17 00:00:00 2001 From: Joe Bordes Date: Wed, 16 Aug 2017 21:30:18 +0200 Subject: [PATCH] fix(Campaigns) eliminate special status picklist in webservice related query and the warnings it was causing. fixes #157 Thanks John --- modules/Campaigns/Campaigns.php | 37 +++++++++++++++------------------ 1 file changed, 17 insertions(+), 20 deletions(-) diff --git a/modules/Campaigns/Campaigns.php b/modules/Campaigns/Campaigns.php index c5e5044b04..0e09526336 100644 --- a/modules/Campaigns/Campaigns.php +++ b/modules/Campaigns/Campaigns.php @@ -193,9 +193,9 @@ function get_accounts($id, $cur_tab_id, $rel_tab_id, $actions = false) { $return_value = GetRelatedList($this_module, $related_module, $other, $query, $button, $returnset); - if($return_value == null) + if ($return_value == null) $return_value = Array(); - else if($is_CampaignStatusAllowed) { + else if ($is_CampaignStatusAllowed and !empty($return_value['header'])) { $statusPos = count($return_value['header']) - 2; // Last column is for Actions, exclude that. Also the index starts from 0, so reduce one more count. $return_value = $this->add_status_popup($return_value, $statusPos, 'Accounts'); } @@ -293,9 +293,9 @@ function get_contacts($id, $cur_tab_id, $rel_tab_id, $actions=false) { $return_value = GetRelatedList($this_module, $related_module, $other, $query, $button, $returnset); - if($return_value == null) + if ($return_value == null) $return_value = Array(); - else if($is_CampaignStatusAllowed) { + else if ($is_CampaignStatusAllowed and !empty($return_value['header'])) { $statusPos = count($return_value['header']) - 2; // Last column is for Actions, exclude that. Also the index starts from 0, so reduce one more count. $return_value = $this->add_status_popup($return_value, $statusPos, 'Contacts'); } @@ -390,9 +390,9 @@ function get_leads($id, $cur_tab_id, $rel_tab_id, $actions=false) { $return_value = GetRelatedList($this_module, $related_module, $other, $query, $button, $returnset); - if($return_value == null) + if ($return_value == null) $return_value = Array(); - else if($is_CampaignStatusAllowed) { + else if ($is_CampaignStatusAllowed and !empty($return_value['header'])) { $statusPos = count($return_value['header']) - 2; // Last column is for Actions, exclude that. Also the index starts from 0, so reduce one more count. $return_value = $this->add_status_popup($return_value, $statusPos, 'Leads'); } @@ -409,32 +409,29 @@ function get_leads($id, $cur_tab_id, $rel_tab_id, $actions=false) { * @param - $status_column index of the status column in the list. * returns true on success */ - function add_status_popup($related_list, $status_column = 7, $related_module) - { + function add_status_popup($related_list, $status_column = 7, $related_module) { global $adb; if (empty($this->campaignrelstatus)) { $this->campaignrelstatus = array(); } if (count($this->campaignrelstatus)==0) { $result = $adb->query('SELECT * FROM vtiger_campaignrelstatus;'); - while($row = $adb->fetchByAssoc($result)) - { + while ($row = $adb->fetchByAssoc($result)) { $r = $row; $r['campaignrelstatusi18n'] = getTranslatedString($row['campaignrelstatus'],'Campaigns'); $this->campaignrelstatus[$row['campaignrelstatus']] = $r; } } - foreach($related_list['entries'] as $key => &$entry) - { - $popupitemshtml = ''; - foreach($this->campaignrelstatus as $campaingrelstatus) - { - $camprelstatus = $campaingrelstatus['campaignrelstatusi18n']; - $popupitemshtml .= "id."', '$key', '".$campaingrelstatus['campaignrelstatusid']."', '".addslashes($camprelstatus)."');\">$camprelstatus
"; + if (isset($related_list['entries'])) { + foreach ($related_list['entries'] as $key => &$entry) { + $popupitemshtml = ''; + foreach ($this->campaignrelstatus as $campaingrelstatus) { + $camprelstatus = $campaingrelstatus['campaignrelstatusi18n']; + $popupitemshtml .= "id."', '$key', '".$campaingrelstatus['campaignrelstatusid']."', '".addslashes($camprelstatus)."');\">$camprelstatus
"; + } + $popuphtml = '
'.$popupitemshtml.'
'; + $entry[$status_column] = "[+] ".$entry[$status_column]."".$popuphtml; } - $popuphtml = '
'.$popupitemshtml.'
'; - - $entry[$status_column] = "[+] ".$entry[$status_column]."".$popuphtml; } return $related_list; }