You are here

function civicrm_entity_contact_assign_rel_contact_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_assign_rel_contact_field/civicrm_entity_contact_assign_rel_contact_field.module, line 257
Provide CiviCRM Entity Contact Assign Relationship Contacts List Field Type. Provides a widget for adding/removing a contacts relationships to a list of contacts.

Code

function civicrm_entity_contact_assign_rel_contact_field_field_load($entity_type, $entities, $field, $instances, $langcode, &$items, $age) {
  if ($entity_type == 'civicrm_contact') {
    $relationship_type_id = $field['settings']['relationship_type'];
    $field_contact_options = _civicrm_entity_contact_assign_rel_contact_field_get_field_settings_contacts($field);
    civicrm_initialize();
    foreach ($entities as $entity_id => $entity) {
      $contact_a_id = $entity->contact_id;
      foreach ($field_contact_options as $contact_b_id => $name) {
        try {
          $result = civicrm_api3('Relationship', 'get', array(
            'contact_id_a' => $contact_a_id,
            'contact_id_b' => $contact_b_id,
            'relationship_type_id' => $relationship_type_id,
            'is_active' => 1,
          ));
          if ($result['count']) {
            $items[$entity_id][0]['contacts'][$contact_b_id] = $contact_b_id;
          }
          else {
            $items[$entity_id][0]['contacts'][$contact_b_id] = 0;
          }
        } catch (CiviCRM_API3_Exception $e) {
          continue;
        }
      }
    }
  }
}