From f63c531a723ac427830ba949c96cec5fb7d1727a Mon Sep 17 00:00:00 2001 From: eileen Date: Thu, 20 Apr 2017 14:42:44 +1200 Subject: [PATCH] CRM-20451 Do no assume all BAOs have exportableFields method in Core_report --- CRM/Report/Form.php | 21 ++++++++++----------- 1 file changed, 10 insertions(+), 11 deletions(-) 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'); -- 2.25.1