You are here

function field_collection_views_field_formatter_view in Field Collection Views 7

Same name and namespace in other branches
  1. 8 field_collection_views.module \field_collection_views_field_formatter_view()

Implements hook_field_formatter_view().

File

./field_collection_views.module, line 29
Module implementing a field-collection views formatter.

Code

function field_collection_views_field_formatter_view($entity_type, $entity, $field, $instance, $langcode, $items, $display) {
  $element = array();
  $settings = $display['settings'];
  switch ($display['type']) {
    case 'field_collection_views_view':
      $args = '';
      $i = 1;
      foreach ($items as $delta => $item) {
        if ($i == 1) {
          $args .= $item['value'];
        }
        else {
          $args .= '+' . $item['value'];
        }
        $i++;
      }
      $view_name = isset($settings['name']) ? $settings['name'] : 'field_collection_view';
      $display_id = isset($settings['display_id']) ? $settings['display_id'] : 'default';
      $entity_uri = entity_uri($entity_type, $entity);
      $entity_uri = $entity_uri['path'];
      $field_path = 'field-collection/' . strtr($field['field_name'], array(
        '_' => '-',
      ));
      $add_path = $field_path . '/add/' . $entity_uri;
      $content = views_embed_view($view_name, $display_id, $args, $add_path);
      $element[0] = array(
        '#markup' => $content,
      );
      if (empty($items)) {
        field_collection_field_formatter_links($element, $entity_type, $entity, $field, $instance, $langcode, $items, $display);
      }
      break;
  }
  return $element;
}