//
// To set the variable, use the following method:
//
- // $ drush vset --format=string groups_field_filters "{'profile': {'468': [25, 41]}, 'contribution': {'14': [25, 41]}, 'event': {'49': [25, 41]}}"
+ // $ drush vset --format=string groups_field_filters '
+ // {
+ // "profile": {
+ // "468": {
+ // "groups": [41, 25],
+ // "titles": ["Yes, sign me up!", "Sign me up to the other group!"]
+ // }
+ // },
+ // "contribution": {
+ // "14": {
+ // "groups": [41, 25],
+ // "titles": ["Yes, sign me up!"]
+ // }
+ // },
+ // "event": {
+ // "49": {
+ // "groups": [25]
+ // }
+ // }
+ // }'
//
// The "string" format must be used and not the "json" format.
// Otherwise the json will be converted to a PHP array, which will not
case 'CRM_Profile_Form_Edit':
$page_id = $form->get('gid'); // gid, not id
- $filter = $groups_field_filters['profile'][strval($page_id)];
+ $filter_config = $groups_field_filters['profile'][strval($page_id)];
break;
case 'CRM_Contribute_Form_Contribution_Main':
case 'CRM_Contribute_Form_Contribution_Confirm':
case 'CRM_Contribute_Form_Contribution_ThankYou':
$page_id = $form->get('id'); // id, not gid
- $filter = $groups_field_filters['contribution'][strval($page_id)];
+ $filter_config = $groups_field_filters['contribution'][strval($page_id)];
break;
case 'CRM_Event_Form_Registration_Register':
$page_id = $form->get('id'); // id, not gid
- $filter = $groups_field_filters['event'][strval($page_id)];
+ $filter_config = $groups_field_filters['event'][strval($page_id)];
break;
}
+
+ if (isset($filter_config)) {
+
+ $filter_ids = $filter_config['groups'];
+ $filter_titles = $filter_config['titles'];
+ }
// sudoman hack continues further below
+
$attributes['skiplabel'] = TRUE;
$elements = array();
$groupsOptions = array();
// sudoman hack continues
// filter groups if a filter is set
- if (isset($filter) and !in_array($id, $filter)) {
+ if (isset($filter_ids) and !in_array($id, $filter_ids)) {
continue;
}
- // sudoman hack continues with calls to CRM_Contact_Form_Edit_TagsAndGroups::reInsertFilteredGroupMemberships
+ // sudoman hack continues further below
// make sure that this group has public visibility
if ($visibility &&
$groupsOptions[$id] = $group['title'];
}
else {
+
+ // sudoman hack continues
+ if (isset($filter_titles)) {
+ $custom_group_title = $filter_titles[array_search($id, $filter_ids)];
+ }
+ if (isset($custom_group_title)) {
+ $group_title = $custom_group_title;
+ } else {
+ $group_title = $group['title'];
+ }
+
+ // only slight modification here
$form->_tagGroup[$fName][$id]['description'] = $group['description'];
- $elements[] = &$form->addElement('advcheckbox', $id, NULL, $group['title'], $attributes);
+ $elements[] = &$form->addElement('advcheckbox', $id, NULL, $group_title, $attributes);
+
+ // sudoman hack continues with calls to CRM_Contact_Form_Edit_TagsAndGroups::reInsertFilteredGroupMemberships
}
}
$contactID, $ignorePermission, $params) {
$groups_field_filters = json_decode(variable_get('groups_field_filters', NULL), $assoc = TRUE);
- $filter = $groups_field_filters[$page_type][strval($page_id)];
+ $filter_ids = $groups_field_filters[$page_type][strval($page_id)]['groups'];
if ($contactID !== NULL) {
foreach ($contactGroupList as $value) {
$groupId = $value['group_id'];
- if (!empty($filter) && !in_array($groupId, $filter)) {
+ if (!empty($filter_ids) && !in_array($groupId, $filter_ids)) {
$params['group'][strval($groupId)] = 1;
}