// 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']);
+ }
}
}
$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;
}
* @param array $fields
*/
function _civicrm_api3_generic_getList_defaults($entity, &$request, $apiDefaults, $fields) {
- $config = CRM_Core_Config::singleton();
$defaults = array(
'page_num' => 1,
'input' => '',
'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(),
);
);
// 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'])) {