You are here

function location_cck_field_formatter_view in Location 7.5

Same name and namespace in other branches
  1. 7.3 contrib/location_cck/location_cck.module \location_cck_field_formatter_view()

Implements hook_field_formatter_view(). @Todo: This.

File

contrib/location_cck/location_cck.module, line 296
Defines location field type.

Code

function location_cck_field_formatter_view($entity_type, $entity, $field, $instance, $langcode, $items, $display) {
  $element = array();
  $settings = $field['settings']['location_settings'];
  $hide = isset($settings['display']['hide']) ? array_keys(array_filter($settings['display']['hide'])) : array();
  switch ($display['type']) {
    case 'location_default':
      foreach ($items as $delta => $item) {
        if (!empty($item['lid']) || !empty($entity->in_preview)) {
          $element[$delta]['#theme'] = 'location';
          $element[$delta]['#location'] = $item;
          $element[$delta]['#hide'] = $hide;
        }
      }
      break;
    case 'location_all':
      foreach ($items as $delta => $item) {
        if (!empty($item['lid']) || !empty($entity->in_preview)) {
          $element[$delta]['#theme'] = 'location_cck_field_all';
          $element[$delta]['#location'] = $item;
          $element[$delta]['#hide'] = $hide;
          $element[$delta]['#field'] = $field;
          $element[$delta]['#instance'] = $instance;
        }
      }
      break;
    case 'location_map':
      foreach ($items as $delta => $item) {
        if (!empty($item['lid']) || !empty($entity->in_preview)) {
          $element[$delta]['#theme'] = 'location_cck_field_map';
          $element[$delta]['#locations'] = array(
            $item,
          );
          $element[$delta]['#field'] = $field;
          $element[$delta]['#instance'] = $instance;
        }
      }
      break;
    case 'location_multiple':
      $element[0]['#theme'] = 'location_cck_field_map';
      $element[0]['#locations'] = $items;
      $element[0]['#field'] = $field;
      $element[0]['#instance'] = $instance;
      break;
  }
  return $element;
}