From: eileen Date: Thu, 20 Apr 2017 02:42:44 +0000 (+1200) Subject: CRM-20451 Do no assume all BAOs have exportableFields method in Core_report X-Git-Url: https://vcs.fsf.org/?a=commitdiff_plain;h=f63c531a723ac427830ba949c96cec5fb7d1727a;p=civicrm-core.git CRM-20451 Do no assume all BAOs have exportableFields method in Core_report --- diff --git a/CRM/Report/Form.php b/CRM/Report/Form.php index b33215bfde..1ecc52d633 100644 --- a/CRM/Report/Form.php +++ b/CRM/Report/Form.php @@ -701,18 +701,17 @@ class CRM_Report_Form extends CRM_Core_Form { $this->_aliases[$tableName] = $this->_columns[$tableName]['alias']; - $daoOrBaoName = NULL; + $expFields = array(); // higher preference to bao object - if (array_key_exists('bao', $table)) { - $daoOrBaoName = $table['bao']; - $expFields = $daoOrBaoName::exportableFields(); - } - elseif (array_key_exists('dao', $table)) { - $daoOrBaoName = $table['dao']; - $expFields = $daoOrBaoName::export(); - } - else { - $expFields = array(); + $daoOrBaoName = CRM_Utils_Array::value('bao', $table, CRM_Utils_Array::value('dao', $table)); + + if ($daoOrBaoName) { + if (method_exists($daoOrBaoName, 'exportableFields')) { + $expFields = $daoOrBaoName::exportableFields(); + } + else { + $expFields = $daoOrBaoName::export(); + } } $doNotCopy = array('required');