load_video($element['#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($element); } /* * Renders the video thumbnail as a link to the node page. */ function theme_video_formatter_video_nodelink($element, $imagecache = FALSE) { // Inside a view $element may contain null data. In that case, just return. if (empty($element['#item']['fid'])) return ''; //setup our thumbnail object module_load_include('inc', 'video', '/includes/video_helper'); $video_helper = new video_helper; $thumbnail = $video_helper->thumbnail_object($element); //get our themed image $image = theme('video_image', $thumbnail, $thumbnail->alt, $thumbnail->title, '', TRUE, $imagecache); $class = 'popups video video-nodelink video-'. $element['#field_name']; return l($image, 'node/'. $element['#node']->nid, array('attributes' => array('class' => $class), 'html' => TRUE)); } /* * 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_formatter_video_colorbox($element, $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', $element); } // Inside a view $element may contain null data. In that case, just return. if (empty($element['#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($element); $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-'. $element['#field_name'] .'{width:\''.$video->player_width.'px\', height:\''.$video->player_height.'px\', player:\''.$player.'\'}'; return l($image, $video->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_formatter_video_media_js($element) { 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($element); //lets output the link to be overtaken by jmedia $link = l($video->filename, $video->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 '