You are here

function civicrm_entity_contact_group_assign_field_field_formatter_view in CiviCRM Entity 7.2

Implements hook_field_formatter_view().

File

modules/civicrm_entity_contact_group_assign_field/civicrm_entity_contact_group_assign_field.module, line 349
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_formatter_view($entity_type, $entity, $field, $instance, $langcode, $items, $display) {
  $element = array();
  $settings = $display['settings'];
  switch ($display['type']) {
    case 'civicrm_entity_contact_group_assign_field_default_formatter':
      $output_as_link = !empty($settings['link_to_groups']) ? 1 : 0;
      foreach ($items as $delta => $item) {
        $markup = '';
        foreach ($item['groups'] as $group_id => $value) {
          if ($value) {
            try {
              $result = civicrm_api3('Group', 'getvalue', array(
                'return' => "title",
                'id' => $group_id,
              ));
            } catch (CiviCRM_API3_Exception $e) {
              continue;
            }
            $group_text = $result;
            if ($output_as_link) {
              $group_path = 'civicrm-group' . '/' . $group_id;
              $markup .= '<div class="civicrm-group-item">' . l($group_text, $group_path) . '</div>';
            }
            else {
              $markup .= '<div class="civicrm-group-item">' . $group_text . '</div>';
            }
          }
        }
        $element[$delta] = array(
          '#markup' => $markup,
        );
      }
      break;
  }
  return $element;
}