diff --git a/CRM/Contact/BAO/Query/Hook.php b/CRM/Contact/BAO/Query/Hook.php index ae6ee974a373..01e68fb666e1 100644 --- a/CRM/Contact/BAO/Query/Hook.php +++ b/CRM/Contact/BAO/Query/Hook.php @@ -150,14 +150,22 @@ public function setAdvancedSearchPaneTemplatePath(&$paneTemplatePathArray, $type } /** + * This gives the opportunity for a single hook to return default fields. + * + * It only runs if no core components have defaults for this $mode. + * The expectation is that only one hook will handle this mode, so just + * the first one to return a value is used. + * * @param $mode * @return array|null */ public function getDefaultReturnProperties($mode) { - foreach (self::getSearchQueryObjects() as $obj) { - $properties = $obj::defaultReturnProperties($mode); - if ($properties) { - return $properties; + foreach ($this->getSearchQueryObjects() as $obj) { + if (method_exists($obj, 'defaultReturnProperties')) { + $properties = $obj::defaultReturnProperties($mode); + if ($properties) { + return $properties; + } } } return NULL;