function brightcove_field_formatter_view in Brightcove Video Connect 7.7
Same name and namespace in other branches
- 7.6 brightcove.module \brightcove_field_formatter_view()
Implements hook_field_formatter_view().
Parameters
$entity_type:
$entity:
$field:
$instance:
$langcode:
$items:
$display:
Return value
array
File
- ./
brightcove.module, line 1526 - Brightcove module is an integration layer between any modules using Brightcove API. It makes all necessary checks for the API and makes settings available to the user.
Code
function brightcove_field_formatter_view($entity_type, $entity, $field, $instance, $langcode, $items, $display) {
$element = [];
$theme = NULL;
$variables = [];
$settings = $display['settings'];
$variables['#brightcove_widget_type'] = $instance['widget']['type'];
if ($display['type'] === 'brightcove_default') {
$theme = 'brightcove_field_formatter_default';
}
if ($display['type'] === 'brightcove_iframe') {
$theme = 'brightcove_field_formatter_iframe';
}
if ($display['type'] === 'brightcove_image') {
$theme = 'brightcove_field_image';
$variables['#brightcove_image_style'] = $settings['brightcove_image_style'];
$variables['#brightcove_image_link'] = $settings['brightcove_image_link'];
$variables['#brightcove_image_type'] = $settings['brightcove_image_type'];
}
if ($display['type'] === 'brightcove_metadata') {
$metadata_options = _brightcove_field_get_object_formatter_keys();
$theme = 'brightcove_field_metadata';
$variables['#key'] = $settings['brightcove_metadata_type'];
$variables['#label'] = $metadata_options[$settings['brightcove_metadata_type']];
}
if (isset($settings['brightcove_image_link']) && $settings['brightcove_image_link'] == 'dialog') {
$variables['#attached']['library'][] = [
'system',
'drupal.ajax',
];
$variables['#attached']['library'][] = [
'system',
'ui.dialog',
];
$variables['#attached']['js'][] = drupal_get_path('module', 'brightcove') . '/js/brightcove.js';
}
$variables['#attached']['css'][] = drupal_get_path('module', 'brightcove') . '/styles/brightcove.css';
if ($theme) {
switch ($instance['widget']['type']) {
case BRIGHTCOVE_VIDEO_WIDGET:
foreach ($items as $delta => $item) {
$video = FALSE;
if (isset($item['brightcove_id'])) {
$client = brightcove_client_load_or_default($item['bcid']);
if (!$client) {
return [];
}
$video = brightcove_load_video($item['brightcove_id'], $client);
}
$element[$delta] = [
'#theme' => $theme,
'#type' => BRIGHTCOVE_EMBED_TYPE_VIDEO,
'#element' => $item,
'#delta' => $delta,
'#entity_type' => $entity_type,
'#entity' => $entity,
'#field' => $field,
'#instance' => $instance,
'#display' => $display,
'#video' => $video,
'#width' => isset($settings['width']) ? $settings['width'] : NULL,
'#height' => isset($settings['height']) ? $settings['height'] : NULL,
] + $variables;
}
break;
case BRIGHTCOVE_PLAYLIST_WIDGET:
foreach ($items as $delta => $item) {
$playlist = FALSE;
if (isset($item['brightcove_id'])) {
if (!$item['bcid'] && ($defaultclient = brightcove_client_load_or_default())) {
$item['bcid'] = $defaultclient->bcid;
}
$playlist = brightcove_load_playlist($item['brightcove_id'], $item['bcid']);
if (!$playlist) {
return [];
}
}
$element[$delta] = [
'#theme' => $theme,
'#type' => BRIGHTCOVE_EMBED_TYPE_PLAYLIST,
'#element' => $item,
'#delta' => $delta,
'#entity_type' => $entity_type,
'#entity' => $entity,
'#field' => $field,
'#instance' => $instance,
'#display' => $display,
'#playlist' => $playlist,
'#width' => isset($settings['width']) ? $settings['width'] : NULL,
'#height' => isset($settings['height']) ? $settings['height'] : NULL,
] + $variables;
}
break;
}
}
return $element;
}