+ 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)) {
+ // Get the groups array.
+ $groupsArray = $groups[key($groups)];
+ foreach ($groupsArray as &$group) {
+ if (!is_numeric($group) && array_search($group, $allGroups)) {
+ $group = array_search($group, $allGroups);
+ }
+ }
+ // Now reset the $groups array with the ids not the titles.
+ $groups[key($groups)] = $groupsArray;
+ }
+ // handle format like 'group' => array('title1', 'title2').
+ elseif (is_array($groups)) {
+ foreach ($groups as $k => &$group) {
+ if (!is_numeric($group) && array_search($group, $allGroups)) {
+ $group = array_search($group, $allGroups);
+ }
+ if (!is_numeric($k) && array_search($k, $allGroups)) {
+ unset($groups[$k]);
+ $groups[array_search($k, $allGroups)] = $group;
+ }
+ }
+ }
+ elseif (!is_numeric($groups) && array_search($groups, $allGroups)) {
+ $groups = array_search($groups, $allGroups);
+ }
+ $params['group'] = $groups;
+ }