View source
<?php
define('BRIGHTCOVE_DEFAULT_VIDEO_WIDTH', 425);
define('BRIGHTCOVE_DEFAULT_VIDEO_HEIGHT', 350);
define('BRIGHTCOVE_DEFAULT_THUMBNAIL_WIDTH', 180);
define('BRIGHTCOVE_DEFAULT_THUMBNAIL_HEIGHT', 176);
function theme_brightcove_cck_lightbox2_imagecache($element) {
$preset_data = str_replace('lightbox2_imagecache_', '', $element['#formatter']);
list($preset, $field) = split('__', $preset_data);
if (isset($element['#item']['video_id'])) {
$video = brightcove_video_load($element['#item']['video_id']);
if (!empty($video->thumbnailURL)) {
$image = theme('imagecache', $preset, brightcove_remote_image($video->{$field}));
}
else {
$image = theme('imagecache', $preset, brightcove_get_default_image());
}
return theme('brightcove_cck_formatter_lightbox2_player_' . $field, $element, $image, $preset);
}
}
function theme_brightcove_cck_lightbox2_player($element, $image = NULL, $preset = NULL) {
if (!empty($element['#item']['video_id'])) {
$field = str_replace('lightbox2_player_', '', $element['#formatter']);
$video = brightcove_video_load($element['#item']['video_id']);
$video_name = check_plain($video->name);
if (!$image) {
if (!empty($video->{$field})) {
$image = theme('image', $video->{$field}, '', '', NULL, FALSE);
}
else {
$image = theme('image', brightcove_get_default_image(), $video_name, $video_name, array(
'width' => 120,
'height' => 120,
), FALSE);
}
}
$destination = 'brightcove_cck_player/' . $element['#node']->nid . '/' . $element['#field_name'] . '/' . $element['#item']['#delta'];
$player = theme('brightcove_cck_embed', 'video', variable_get('brightcove_player', ''), variable_get('brightcove_player_key', ''), $element['#item']['video_id'], $params);
preg_match('/<param name="width" value="(\\d{1,5})" \\/>/', $player, $width);
preg_match('/<param name="height" value="(\\d{1,5})" \\/>/', $player, $height);
$width = $width[1] + 30;
$height = $height[1] + 30;
$rel_full = 'lightframe[|width: ' . $width . 'px; height: ' . $height . 'px; overflow: visible;]';
$output = l($image, $destination, array(
'attributes' => array(
'rel' => $rel_full,
'class' => $element['#field_name'],
'title' => check_plain($video->name),
),
'html' => TRUE,
));
$video_width = $width - 30;
$video_height = $height - 30;
$lightbox2_width = $width;
$lightbox2_height = $height;
$video_id = $element['#item']['video_id'];
}
if ($output) {
return theme('brightcove_cck_lightbox2', $output, $video_id, $video_width, $video_height, $lightbox2_width, $lightbox2_height, $destination, $field, $element['#field_name'], $element['#type_name'], $preset);
}
}
function template_preprocess_brightcove_cck_lightbox2(&$vars) {
$vars['template_files'] = array(
'brightcove-cck-lightbox2--' . $vars['image_field'],
'brightcove-cck-lightbox2--' . $vars['field_name'] . '--' . $vars['image_field'],
'brightcove-cck-lightbox2--' . $vars['type_name'] . '--' . $vars['field_name'] . '--' . $vars['image_field'],
);
}
function theme_brightcove_cck_formatter_default($element) {
$player = '';
if (isset($element['#item']['video_id'])) {
static $vidcount = 1;
if ($vidcount == 1) {
drupal_set_html_head('<script type="text/javascript" src="http://admin.brightcove.com/js/BrightcoveExperiences.js"></script>');
}
$params['id'] = 'myExperience' . $vidcount;
$field = content_fields($element['#field_name'], $element['#type_name']);
switch ($element['#formatter']) {
case 'default':
$params['width'] = $field['widget']['video_width'] ? $field['widget']['video_width'] : variable_get('brightcove_cck_default_video_width', BRIGHTCOVE_DEFAULT_VIDEO_WIDTH);
$params['height'] = $field['widget']['video_height'] ? $field['widget']['video_height'] : variable_get('brightcove_cck_default_video_height', BRIGHTCOVE_DEFAULT_VIDEO_HEIGHT);
break;
case 'video_thumbnail':
$params['width'] = $field['widget']['thumbnail_width'] ? $field['widget']['thumbnail_width'] : variable_get('brightcove_cck_default_thumbnail_width', BRIGHTCOVE_DEFAULT_THUMBNAIL_WIDTH);
$params['height'] = $field['widget']['thumbnail_height'] ? $field['widget']['thumbnail_height'] : variable_get('brightcove_cck_default_thumbnail_height', BRIGHTCOVE_DEFAULT_THUMBNAIL_HEIGHT);
break;
}
$player = theme('brightcove_cck_embed', 'video', variable_get('brightcove_player', ''), variable_get('brightcove_player_key', ''), $element['#item']['video_id'], $params);
$vidcount++;
}
if ($player) {
return theme('brightcove_cck_player', $player, $element['#item']['video_id']);
}
}
function theme_brightcove_cck_node_link($element, $image = NULL) {
if (!empty($element['#item']['video_id'])) {
$field = str_replace('node_link_', '', $element['#formatter']);
$video = brightcove_video_load($element['#item']['video_id']);
if (!$image) {
if (!empty($video->{$field})) {
$image = theme('image', $video->{$field}, '', '', NULL, FALSE);
}
else {
$image = theme('image', brightcove_get_default_image(), $video_name, $video_name, array(
'width' => 120,
'height' => 120,
), FALSE);
}
}
$destination = 'node/' . $element['#node']->nid;
$output = l($image, $destination, array(
'attributes' => array(
'class' => $element['#field_name'],
'title' => check_plain($element['#node']->name),
),
'html' => TRUE,
));
$video_id = $element['#item']['video_id'];
}
if ($output) {
return theme('brightcove_cck_node_link', $output, $video_id, url($destination), $field, $element['#field_name'], $element['#type_name'], $preset);
}
}
function template_preprocess_brightcove_cck_node_link(&$vars) {
$vars['template_files'] = array(
'brightcove-cck-node-link--' . $vars['image_field'],
'brightcove-cck-node-link--' . $vars['field_name'] . '--' . $vars['image_field'],
'brightcove-cck-node-link--' . $vars['type_name'] . '--' . $vars['field_name'] . '--' . $vars['image_field'],
);
}
function theme_brightcove_cck_node_link_imagecache($element) {
$preset_data = str_replace('node_link_imagecache_', '', $element['#formatter']);
list($preset, $field) = split('__', $preset_data);
if (isset($element['#item']['video_id'])) {
$video = brightcove_video_load($element['#item']['video_id']);
if (!empty($video->{$field})) {
$image = theme('imagecache', $preset, brightcove_remote_image($video->{$field}));
}
else {
$image = theme('imagecache', $preset, brightcove_get_default_image());
}
return theme('brightcove_cck_formatter_node_link_' . $field, $element, $image, $preset);
}
}
function theme_brightcove_cck_node_image($element, $image = NULL) {
if (!empty($element['#item']['video_id'])) {
$field = str_replace('node_image_', '', $element['#formatter']);
$video = brightcove_video_load($element['#item']['video_id']);
if (!$image) {
if (!empty($video->{$field})) {
$image = theme('image', $video->{$field}, '', '', NULL, FALSE);
}
else {
$image = theme('image', brightcove_get_default_image(), $video_name, $video_name, array(
'width' => 120,
'height' => 120,
), FALSE);
}
}
$output = $image;
$video_id = $element['#item']['video_id'];
$nid = $element['#node']->nid;
}
if ($output) {
return theme('brightcove_cck_node_image', $output, $video_id, $nid, $field, $element['#field_name'], $element['#type_name']);
}
}
function template_preprocess_brightcove_cck_node_image(&$vars) {
$vars['template_files'] = array(
'brightcove-cck-node-image--' . $vars['image_field'],
'brightcove-cck-node-image--' . $vars['field_name'] . '--' . $vars['image_field'],
'brightcove-cck-node-image--' . $vars['type_name'] . '--' . $vars['field_name'] . '--' . $vars['image_field'],
);
}
function theme_brightcove_cck_node_image_imagecache($element) {
$preset_data = str_replace('node_image_imagecache_', '', $element['#formatter']);
list($preset, $field) = split('__', $preset_data);
if (isset($element['#item']['video_id'])) {
$video = brightcove_video_load($element['#item']['video_id']);
if (!empty($video->{$field})) {
$image = theme('imagecache', $preset, brightcove_remote_image($video->{$field}));
}
else {
$image = theme('imagecache', $preset, brightcove_get_default_image());
}
return theme('brightcove_cck_formatter_node_image_' . $field, $element, $image);
}
}