You are here

function field_kaltura_field_formatter_view in Kaltura 7.3

Same name and namespace in other branches
  1. 7.2 plugins/field_kaltura/field_kaltura.module \field_kaltura_field_formatter_view()

Implements hook_field_formatter_view().

File

plugins/field_kaltura/field_kaltura.module, line 917
Kaltura as a field primary module file.

Code

function field_kaltura_field_formatter_view($entity_type, $entity, $field, $instance, $langcode, $items, $display) {
  $element = array();

  // Override display settings.
  if (isset($display['context']['actual_view_mode'])) {
    $mode = $display['context']['actual_view_mode'];
  }
  else {

    // The case when field_default_view() is called with display parameters
    // instead of a view name.
    $mode = 'default';
  }
  foreach ($items as $delta => $item) {
    if (!empty($item['settings'][$mode]['non_default'])) {
      $settings = $item['settings'][$mode]['settings'];
    }
    else {
      $settings = $display['settings'];
    }
    $settings = array_intersect_key(array_filter($settings) + $field['settings'], $settings);
    $entry = kaltura_entry_load($item['entryid']);
    if (!$entry) {
      continue;
    }
    $metadata = array(
      'views' => $entry->kaltura_views,
      'plays' => $entry->kaltura_plays,
      'votes' => $entry->kaltura_votes,
      'rank' => $entry->kaltura_rank,
      'total_rank' => $entry->kaltura_total_rank,
    );
    $thumb_url = $entry->kaltura_thumbnail_url . '/type/1/width/' . $settings['thumbsize_width'] . '/height/' . $settings['thumbsize_height'];
    $themes = array(
      'field_kaltura_player_default' => 'kaltura_player_default',
      'field_kaltura_player' => 'kaltura_player',
      'field_kaltura_player_title' => 'kaltura_player_title',
      'field_kaltura_player_meta' => 'kaltura_player_meta',
      'field_kaltura_thumbnail_only' => 'kaltura_thumbnail',
      'field_kaltura_thumbnail_title' => 'kaltura_thumbnail_default',
      'field_kaltura_thumbnail_title_desc' => 'kaltura_thumbnail_title_desc',
      'field_kaltura_thumbnail_metadata' => 'kaltura_thumbnail_meta',
    );
    $element[$delta]['#theme'] = $themes[$display['type']];
    $element[$delta]['#title'] = $entry->kaltura_title;
    $element[$delta]['#desc'] = $entry->kaltura_description;
    switch ($display['type']) {
      case 'field_kaltura_player_meta':
        $element[$delta]['#meta'] = $metadata;

      // No break.
      case 'field_kaltura_player_default':
      case 'field_kaltura_player':
      case 'field_kaltura_player_title':
        $media_type = !empty($item['mediatype']) ? $item['mediatype'] : $entry->kaltura_media_type;
        $seo_meta = array(
          'title' => $entry->kaltura_title,
          'description' => $entry->kaltura_description,
        );
        $element[$delta]['#embed'] = field_kaltura_build_embed($entry->kaltura_entryid, $media_type, $settings, NULL, NULL, $thumb_url, $seo_meta);
        break;
      case 'field_kaltura_thumbnail_only':
      case 'field_kaltura_thumbnail_title':
      case 'field_kaltura_thumbnail_title_desc':
      case 'field_kaltura_thumbnail_metadata':
        $element[$delta]['#thub'] = $thumb_url;
        $element[$delta]['#meta'] = $metadata;
        $element[$delta]['#rotate'] = $settings['rotate'];
        break;
    }
  }
  return $element;
}