$regularGroupIDs = $smartGroupIDs = array();
foreach ((array) $value as $id) {
- if (!is_numeric($id)) {
- $check = civicrm_api3('group', 'get', array('name' => $id, 'options' => array('limit' => 1), 'sequential' => 1));
- if (!empty($check['values'])) {
- $id = $check['values'][0]['id'];
- }
- else {
- $check = civicrm_api3('group', 'get', array('title' => $id, 'options' => array('limit' => 1), 'sequential' => 1));
- if (!empty($check['values'])) {
- $id = $check['values'][0]['id'];
- }
- }
- }
if (CRM_Core_DAO::getFieldValue('CRM_Contact_DAO_Group', $id, 'saved_search_id')) {
$smartGroupIDs[] = $id;
}
unset($params['filter.group_id']);
$options['input_params']['group'] = $groups;
}
+ if (isset($params['group'])) {
+ $groups = $params['group'];
+ $allGroups = CRM_Core_PseudoConstant::group();
+ if (is_array($groups) && in_array(key($groups), CRM_Core_DAO::acceptedSQLOperators(), TRUE)) {
+ $groupsArray = $groups[key($groups)];
+ foreach ($groupsArray as $group => &$ignore) {
+ if (!is_numeric($group) && array_search($group, $allGroups)) {
+ $group = array_search($group, $allGroups);
+ }
+ }
+ }
+ elseif (is_array($groups)) {
+ foreach ($groups as $k => &$group) {
+ if (array_search($group, $allGroups)) {
+ $group = array_search($group, $allGroups);
+ }
+ }
+ }
+ elseif (!is_numeric($groups) && array_search($groups, $allGroups)) {
+ $groups = array_search($groups, $allGroups);
+ }
+ $params['group'] = $groups;
+ }
}
/**