load_job($variables['item']['fid'])) { if ($video->video_status == VIDEO_RENDERING_ACTIVE || $video->video_status == VIDEO_RENDERING_PENDING) { return theme('video_inprogress'); } else if ($video->video_status == VIDEO_RENDERING_FAILED) { return theme('video_encoding_failed'); } } } return video_get_player($variables); } /* * Renders the video thumbnail as a link to the node page. */ function theme_video_thumbnail($variables) { // Inside a view $variables may contain null data. In that case, just return. if (empty($variables['item']['fid'])) return ''; //setup our thumbnail object module_load_include('inc', 'video', '/includes/video_helper'); $video_helper = new video_helper; // @TODO : change the object to an array $thumbnail = (array) $video_helper->thumbnail_object($variables); // return if no file path found for the video thumbnails and add log message if (empty($thumbnail['filepath'])) { watchdog('video', 'Unable to find the video thumbnail for the %node.', array('%node' => $variables['entity']->title), WATCHDOG_ERROR); return ''; } $image = array( 'path' => $thumbnail['filepath'], 'alt' => $thumbnail['alt'], ); // Do not output an empty 'title' attribute. if (drupal_strlen($thumbnail['title']) > 0) { $image['title'] = $thumbnail['title']; } if ($variables['video_style']) { $image['style_name'] = $variables['video_style']; $output = theme('image_style', $image); } else { $output = theme('image', $image); } if ($variables['path']) { $path = $variables['path']['path']; $options = $variables['path']['options']; // When displaying an image inside a link, the html option must be TRUE. $options['html'] = TRUE; $output = l($output, $path, $options); } return $output; } /* * Renders the video thumbnail linked to the absolute filepath of the video. Colorbox is introduced to handle * the video in an overlay. * * @todo Very unstable, need better methods of integration. Seems hackish right now to find out what flv player is being * used. We are also using jmedia for all other filetypes. */ function theme_video_colorbox($variables, $imagecache = FALSE) { global $base_path; if (!module_exists('colorbox')) { drupal_set_message(t('You must download and enable !colorbox for this formatter.', array('!colorbox' => l(t('Colorbox'), 'http://www.drupal.org/project/colorbox'))), 'error'); return theme('video_formatter_video_nodelink', $variables); } // Inside a view $variables may contain null data. In that case, just return. if (empty($variables['#item']['fid'])) return ''; //load up our media plugins drupal_add_js(drupal_get_path('module', 'video') . '/js/jquery.media.js'); drupal_add_js(drupal_get_path('module', 'video') . '/js/jquery.metadata.js'); drupal_add_js(drupal_get_path('module', 'video') . '/js/flowplayer-3.2.0.min.js'); //setup our video object module_load_include('inc', 'video', '/includes/video_helper'); $video_helper = new video_helper; $video = $video_helper->video_object($variables); $action = swftools_get_action($video->filepath); $player = swftools_get_player($action); $path = explode("_", $player); $player_url = $base_path . swftools_get_player_path() . '/' . $path[0] . '/' . variable_get($player . '_file', ''); if (stristr($player, 'flowplayer')) { $player = 'flowplayer'; } //add our default settings to the Drupal.settings object $settings = array('video' => array( 'flvplayer' => $player_url, 'autoplay' => $video->autoplay, 'autobuffer' => $video->autobuffering, 'player' => $player, )); drupal_add_js($settings, 'setting'); $image = theme('video_image', $video->thumbnail, $video->thumbnail->alt, $video->thumbnail->title, '', TRUE, $imagecache); $class = 'video-box video-' . $variables['#field_name'] . '{width:\'' . $video->player_width . 'px\', height:\'' . $video->player_height . 'px\', player:\'' . $player . '\'}'; return l($image, $video->files->{$video->player}->url, array('attributes' => array('class' => $class), 'html' => TRUE)); } /* * We are using the jMedia library to output our video files. * * @todo Does not work with flv files as this requires an actual flv player. Need to figure out how to best integrate the player * into this function. * * We are outputing an anchor to the videofile. The jMedia functions will overtake this anchor and setup our object/embed tags. */ function theme_video_media_js($variables) { //#913928 $field = content_fields($variables['#field_name'], $variables['#type_name']); if (!empty($field['list_field']) && !$variables['#item']['list']) return ''; drupal_add_js(drupal_get_path('module', 'video') . '/js/jquery.media.js'); drupal_add_js(drupal_get_path('module', 'video') . '/js/jquery.metadata.js'); //setup our video object module_load_include('inc', 'video', '/includes/video_helper'); $video_helper = new video_helper; $video = $video_helper->video_object($variables); //lets output the link to be overtaken by jmedia $link = l($video->filename, $video->files->{$video->player}->url, array('attributes' => array('class' => 'jmedia {width: ' . $video->player_width . ', height: ' . $video->player_height . ', autoplay: ' . $video->autoplay . '}'))); return $link; } /** * Displays a "encoding in progress message" */ function theme_video_inprogress() { return '
' . t('This video is currently being processed. Please wait.') . '
'; } /** * Display an "encoding failed" message" */ function theme_video_encoding_failed() { return '
' . t('The video conversion process has failed. You might want to submit a simpler video format like mpeg or divx avi.
If the problem persists please contact website administrators.') . '
'; } function theme_video_flv($video, $node) { if ($video->flash_player == 'swftools') { $options = array( 'params' => array( 'width' => $video->player_width, 'height' => $video->player_height, ), 'othervars' => array( //@todo: swftools bug, can't enable this until they fix their pathing for the images. 'image' => $video->thumbnail->swfthumb, ), ); $themed_output = swf($video->files->{$video->player}->url, $options); } elseif ($video->flash_player == 'flowplayer') { // kjh: use a playlist to display the thumbnail if not auto playing if (!$video->autoplay && $video->thumbnail->url) { $options = array( 'playlist' => array($video->thumbnail->url, array('url' => urlencode($video->files->{$video->player}->url), 'autoPlay' => $video->autoplay, 'autoBuffering' => $video->autobuffering, ),),); } else { $options = array( 'clip' => array('url' => urlencode($video->files->{$video->player}->url), 'autoPlay' => $video->autoplay, 'autoBuffering' => $video->autobuffering, ),); } $themed_output = theme( 'flowplayer', $options, $video->formatter, // adding 24px to height #973636 array('style' => 'width:' . $video->player_width . 'px;height:' . ($video->player_height + 24) . 'px;') ); } else { $themed_output = t('No flash player has been setup. ' . l(t('Please select a player to play Flash videos.'), 'admin/settings/video/players')); } return theme('video_play_flv', $video, $node, $themed_output); } /** * Process variables for video-play-quicktime.tpl.php. * * The $variables array contains the following arguments: * - $video * * @see video-play-quicktime.tpl.php */ function template_preprocess_video_play_quicktime(&$variables) { $variables['video'] = (object) $variables; } /** * Process variables for video-play-dcr.tpl.php * * The $variables array contains the following arguments: * - $video * * @see video-play-dcr.tpl.php */ function template_preprocess_video_play_dcr(&$variables) { $variables['video'] = (object) $variables; } /** * Process variables for video-play-divx.tpl.php * * The $variables array contains the following arguments: * - $video * * @see video-play-divx.tpl.php */ function template_preprocess_video_play_divx(&$variables) { $variables['video'] = (object) $variables; } /** * Process variables for video-play-flash.tpl.php * * The $variables array contains the following arguments: * - $video * * @see video-play-flash.tpl.php */ function template_preprocess_video_play_flash(&$variables) { $variables['video'] = (object) $variables; } /** * Process variables for video-play-flv.tpl.php * * The $variables array contains the following arguments: * - $video * * @see video-play-flv.tpl.php */ function template_preprocess_video_play_flv(&$variables) { $variables['video'] = (object) $variables; $variables['themed_output'] = (object) $variables; } /** * Process variables for video-play-html5.tpl.php * * The $variables array contains the following arguments: * - $video * * @see video-play-html5.tpl.php */ function template_preprocess_video_play_html5(&$variables) { $variables['video'] = (object) $variables; } /** * Process variables for video-play-realmedia.tpl.php * * The $variables array contains the following arguments: * - $video * * @see video-play-realmedia.tpl.php */ function template_preprocess_video_play_realmedia(&$variables) { $variables['video'] = (object) $variables; } /** * Process variables for video-play-theora.tpl.php * * The $variables array contains the following arguments: * - $video * * @see video-play-theora.tpl.php */ function template_preprocess_video_play_theora(&$variables) { $variables['video'] = (object) $variables; } /** * Process variables for video-play-windowsmedia.tpl.php * * The $variables array contains the following arguments: * - $video * * @see video-play-windowsmedia.tpl.php */ function template_preprocess_video_play_windowsmedia(&$variables) { $variables['video'] = (object) $variables; }