You are here

function views_field_formatter_field_formatter_view in Views field formatter 7

Implements hook_field_formatter_view().

File

./views_field_formatter.module, line 131
Views field formatter module.

Code

function views_field_formatter_field_formatter_view($entity_type, $entity, $field, $instance, $langcode, $items, $display) {
  $element = array();
  if (!empty($items)) {
    $settings = $display['settings']['views_field_formatter'];
    list($view, $view_display) = explode('::', $settings['view']);
    $field_columns = array_keys($field['columns']);
    $index = array_shift($field_columns);
    $entity_info = entity_get_info($entity_type);
    $key = $entity_info['entity keys']['id'];
    if (isset($field['cardinality']) && $field['cardinality'] != 1 && boolval($settings['multiple']) == TRUE) {
      if (!empty($settings['implode_character'])) {
        $values = array();
        foreach ($items as $item) {
          $values[] = isset($item[$index]) ? $item[$index] : NULL;
        }
        $value = implode($settings['implode_character'], array_filter($values));
        $element[0] = array(
          '#markup' => views_embed_view($view, $view_display, $value, $entity->{$key}, 0),
        );
      }
      else {
        foreach ($items as $delta => $item) {
          $value = isset($item[$index]) ? $item[$index] : NULL;
          $element[$delta] = array(
            '#markup' => views_embed_view($view, $view_display, $value, $entity->{$key}, $delta),
          );
        }
      }
    }
    else {
      $value = isset($items[0][$index]) ? $items[0][$index] : NULL;
      $element[0] = array(
        '#markup' => views_embed_view($view, $view_display, $value, $entity->{$key}, 0),
      );
    }
  }
  return $element;
}