function civicrm_entity_contact_group_assign_field_field_load in CiviCRM Entity 7.2
Implements hook_field_load().
Parameters
$entity_type:
$entities:
$field:
$instances:
$langcode:
$items:
$age:
File
- modules/
civicrm_entity_contact_group_assign_field/ civicrm_entity_contact_group_assign_field.module, line 116 - Provide CiviCRM Entity Contact Group Assign Field Type. Provides a widget for adding/removing a contact to a selected list of groups.
Code
function civicrm_entity_contact_group_assign_field_field_load($entity_type, $entities, $field, $instances, $langcode, &$items, $age) {
if ($entity_type == 'civicrm_contact') {
$field_group_ids = array_keys($field['settings']['groups']);
civicrm_initialize();
foreach ($entities as $entity_id => $entity) {
$contact_id = $entity->contact_id;
try {
$result = civicrm_api3('GroupContact', 'get', array(
'contact_id' => $contact_id,
));
} catch (CiviCRM_API3_Exception $e) {
continue;
}
$api_contact_groups = array();
foreach ($result['values'] as $group_contact_id => $data) {
if (in_array($data['group_id'], $field_group_ids)) {
$api_contact_groups[] = $data['group_id'];
}
}
foreach ($field_group_ids as $group_id) {
if (in_array($group_id, $api_contact_groups)) {
$items[$entity_id][0]['groups'][$group_id] = $group_id;
}
else {
$items[$entity_id][0]['groups'][$group_id] = 0;
}
}
}
}
}