You are here

function field_kaltura_field_formatter_view in Kaltura 7.2

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

Implements hook_field_formatter_view().

File

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

Code

function field_kaltura_field_formatter_view($entity_type, $entity, $field, $instance, $langcode, $items, $display) {
  $element = array();
  foreach ($display['settings'] as $key => $val) {
    $settings[$key] = !empty($display['settings'][$key]) ? $display['settings'][$key] : $field['settings'][$key];
  }
  if (isset($items[0]['entryid'])) {
    $item = $items[0]['entryid'];
  }
  if (isset($items[0]['mediatype'])) {
    $type = $items[0]['mediatype'];
  }
  if (empty($item)) {
    $element[0]['#markup'] = '';
    return $element;
  }
  $query = db_select('node_kaltura', 'k')
    ->fields('k')
    ->condition('kaltura_entryid', $item, '=')
    ->execute()
    ->fetchAssoc();
  $metadata['views'] = $query['kaltura_views'];
  $metadata['plays'] = $query['kaltura_plays'];
  $metadata['votes'] = $query['kaltura_votes'];
  $metadata['rank'] = $query['kaltura_rank'];
  $metadata['total_rank'] = $query['kaltura_total_rank'];
  $seometa['description'] = $query['kaltura_description'];
  $seometa['title'] = $query['kaltura_title'];
  $type = !empty($type) ? $type : $query['kaltura_media_type'];
  $thumb_url = $query['kaltura_thumbnail_url'] . '/type/1/width/' . $settings['thumbsize_width'] . '/height/' . $settings['thumbsize_height'];

  // Could be a problem if this is not a node.
  $path = !empty($entity->uri['path']) ? $entity->uri['path'] : '';
  $user_id = $entity->uid;
  switch ($display['type']) {
    case 'field_kaltura_player_default':
      $embed = field_kaltura_build_embed($item, $type, $settings, $path, $user_id, $thumb_url, $seometa);
      $element[0] = array(
        '#theme' => 'kaltura_player_default',
        '#embed' => $embed,
      );
      break;
    case 'field_kaltura_player':
      $embed = field_kaltura_build_embed($item, $type, $settings, $path, $user_id, $thumb_url, $seometa);
      $element[0] = array(
        '#theme' => 'kaltura_player',
        '#embed' => $embed,
      );
      break;
    case 'field_kaltura_player_title':
      $embed = field_kaltura_build_embed($item, $type, $settings, $path, $user_id, $thumb_url, $seometa);
      $element[0] = array(
        '#theme' => 'kaltura_player_title',
        '#embed' => $embed,
      );
      break;
    case 'field_kaltura_player_meta':
      $embed = field_kaltura_build_embed($item, $type, $settings, $path, $user_id, $thumb_url, $seometa);
      $element[0] = array(
        '#theme' => 'kaltura_player_meta',
        '#embed' => $embed,
        '#meta' => $metadata,
      );
      break;
    case 'field_kaltura_thumbnail_only':
      $element[0] = array(
        '#theme' => 'kaltura_thumbnail',
        '#thub' => $thumb_url,
        '#meta' => $metadata,
        '#rotate' => $settings['rotate'],
      );
      break;
    case 'field_kaltura_thumbnail_title':
      $element[0] = array(
        '#theme' => 'kaltura_thumbnail_default',
        '#thub' => $thumb_url,
        '#meta' => $metadata,
        '#rotate' => $settings['rotate'],
      );
      break;
    case 'field_kaltura_thumbnail_title_desc':
      $element[0] = array(
        '#theme' => 'kaltura_thumbnail_title_desc',
        '#thub' => $thumb_url,
        '#meta' => $metadata,
        '#rotate' => $settings['rotate'],
      );
      break;
    case 'field_kaltura_thumbnail_metadata':
      $element[0] = array(
        '#theme' => 'kaltura_thumbnail_meta',
        '#thub' => $thumb_url,
        '#meta' => $metadata,
        '#rotate' => $settings['rotate'],
      );
      break;
  }
  if (!empty($element[0])) {
    $element[0]['#title'] = $query['kaltura_title'];
    $element[0]['#desc'] = $query['kaltura_description'];
  }
  return $element;
}