$dedupeParams['check_permission'] = $params['check_permission'];
}
- $ids = CRM_Dedupe_Finder::dupesByParams($dedupeParams, $params['contact_type'], 'Strict', array());
+ $ids = CRM_Dedupe_Finder::dupesByParams($dedupeParams, $params['contact_type'], 'Unsupervised', array());
if (count($ids) >0) {
throw new API_Exception("Found matching contacts: ". implode(',',$ids),"duplicate",array("ids"=>$ids));
if(!in_array($searchField, $list)) {
$list[] = $searchField;
}
+ $request['description_field'] = $list;
$list[] = 'contact_type';
- $request['params']['return'] = $list;
+ $request['params']['return'] = array_unique(array_merge($list, $request['extra']));
$request['params']['options']['sort'] = 'sort_name';
// Contact api doesn't support array(LIKE => 'foo') syntax
$request['params'][$request['search_field']] = $request['input'];
'label' => $row[$request['label_field']],
'description' => array(),
);
- foreach ($request['params']['return'] as $item) {
- if (!strpos($item, '_name') && $item != 'contact_type' && !in_array($item, $addressFields) && !empty($row[$item])) {
+ foreach ($request['description_field'] as $item) {
+ if (!strpos($item, '_name') && !in_array($item, $addressFields) && !empty($row[$item])) {
$data['description'][] = $row[$item];
}
}
else {
$data['icon_class'] = $row['contact_type'];
}
+ foreach ($request['extra'] as $field) {
+ $data['extra'][$field] = isset($row[$field]) ? $row[$field] : NULL;
+ }
$output[] = $data;
}
}