You are here

function brightcove_media_file_formatter_video_html_tag_view in Brightcove Video Connect 7.7

Same name and namespace in other branches
  1. 7.6 brightcove_media/brightcove_media.module \brightcove_media_file_formatter_video_html_tag_view()

The brightcove_media_video_file_formatter view callback.

1 string reference to 'brightcove_media_file_formatter_video_html_tag_view'
brightcove_media_file_formatter_info in brightcove_media/brightcove_media.module
Implements hook_file_formatter_info().

File

brightcove_media/brightcove_media.module, line 229
This module provide the hook implementations for the integration with Media module.

Code

function brightcove_media_file_formatter_video_html_tag_view($file, $display, $langcode) {
  $scheme = file_uri_scheme($file->uri);

  // WYSIWYG does not yet support video inside a running editor instance.
  if ($scheme === BRIGHTCOVE_EMBED_TYPE_VIDEO && empty($file->override['wysiwyg'])) {
    $wrapper = _brightcove_media_get_wrapper($file->uri);
    $result = $wrapper
      ->brightcoveValues(TRUE);
    $element = [
      '#theme' => 'brightcove_field_embed',
      '#account_id' => $result['account'],
      '#player_id' => $result['player'],
      '#brightcove_id' => $result['id'],
      '#attached' => [
        'js' => [
          brightcove_get_experiences_js_url() => [
            'type' => 'external',
          ],
        ],
      ],
    ];

    // add player override
    if (isset($display['settings']['player']) && $display['settings']['player']) {
      $element['#player'] = $display['settings']['player'];
    }
    foreach ([
      'width',
      'height',
    ] as $setting) {
      if (isset($display['settings'][$setting]) && $display['settings'][$setting]) {
        $element['#' . $setting] = $display['settings'][$setting];
      }
    }
    return $element;
  }
  return NULL;
}