From 81b7bb6f9cdeed8af864f7c16d98fdb4fa88da25 Mon Sep 17 00:00:00 2001 From: Coleman Watts Date: Wed, 10 May 2017 15:35:25 -0500 Subject: [PATCH] CRM-20540 - Add widcard setting to entityRef fields --- api/v3/Contact.php | 10 ++++++++++ api/v3/Generic/Getlist.php | 4 ++-- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/api/v3/Contact.php b/api/v3/Contact.php index 5765fd7d9f..8b2711cd1e 100644 --- a/api/v3/Contact.php +++ b/api/v3/Contact.php @@ -1254,6 +1254,11 @@ function _civicrm_api3_contact_getlist_params(&$request) { // Contact api doesn't support array(LIKE => 'foo') syntax if (!empty($request['input'])) { $request['params'][$request['search_field']] = $request['input']; + // Temporarily override wildcard setting + if (Civi::settings()->get('includeWildCardInName') != $request['add_wildcard']) { + Civi::$statics['civicrm_api3_contact_getlist']['override_wildcard'] = !$request['add_wildcard']; + Civi::settings()->set('includeWildCardInName', $request['add_wildcard']); + } } } @@ -1306,6 +1311,11 @@ function _civicrm_api3_contact_getlist_output($result, $request) { $output[] = $data; } } + // Restore wildcard override by _civicrm_api3_contact_getlist_params + if (isset(Civi::$statics['civicrm_api3_contact_getlist']['override_wildcard'])) { + Civi::settings()->set('includeWildCardInName', Civi::$statics['civicrm_api3_contact_getlist']['override_wildcard']); + unset(Civi::$statics['civicrm_api3_contact_getlist']['override_wildcard']); + } return $output; } diff --git a/api/v3/Generic/Getlist.php b/api/v3/Generic/Getlist.php index e151d1787b..124dc9eb11 100644 --- a/api/v3/Generic/Getlist.php +++ b/api/v3/Generic/Getlist.php @@ -83,7 +83,6 @@ function civicrm_api3_generic_getList($apiRequest) { * @param array $fields */ function _civicrm_api3_generic_getList_defaults($entity, &$request, $apiDefaults, $fields) { - $config = CRM_Core_Config::singleton(); $defaults = array( 'page_num' => 1, 'input' => '', @@ -91,6 +90,7 @@ function _civicrm_api3_generic_getList_defaults($entity, &$request, $apiDefaults 'color_field' => isset($fields['color']) ? 'color' : NULL, 'id_field' => $entity == 'option_value' ? 'value' : 'id', 'description_field' => array(), + 'add_wildcard' => Civi::settings()->get('includeWildCardInName'), 'params' => array(), 'extra' => array(), ); @@ -119,7 +119,7 @@ function _civicrm_api3_generic_getList_defaults($entity, &$request, $apiDefaults ); // When searching e.g. autocomplete if ($request['input']) { - $params[$request['search_field']] = array('LIKE' => ($config->includeWildCardInName ? '%' : '') . $request['input'] . '%'); + $params[$request['search_field']] = array('LIKE' => ($request['add_wildcard'] ? '%' : '') . $request['input'] . '%'); } // When looking up a field e.g. displaying existing record if (!empty($request['id'])) { -- 2.25.1