commit 2f87b134b7ed7cb4422f65e69943c80bb5abcefc Author: GDrupal Date: Thu May 9 13:30:00 2013 -0700 Captions and default language support diff --git a/includes/media_youtube.formatters.inc b/includes/media_youtube.formatters.inc index baf8030..f1dbde9 100644 --- a/includes/media_youtube.formatters.inc +++ b/includes/media_youtube.formatters.inc @@ -18,7 +18,7 @@ function media_youtube_file_formatter_info() { 'settings callback' => 'media_youtube_file_formatter_video_settings', ); - foreach (array('width', 'height', 'autohide', 'autoplay', 'color', 'enablejsapi', 'loop', 'modestbranding', 'nocookie', 'origin', 'protocol', 'protocol_specify', 'rel', 'showinfo', 'theme') as $setting) { + foreach (array('width', 'height', 'autohide', 'autoplay', 'color', 'enablejsapi', 'loop', 'modestbranding', 'nocookie', 'origin', 'protocol', 'protocol_specify', 'rel', 'showinfo', 'theme', 'captions') as $setting) { $formatters['media_youtube_video']['default settings'][$setting] = media_youtube_variable_get($setting); } @@ -51,7 +51,7 @@ function media_youtube_file_formatter_video_view($file, $display, $langcode) { // Fake a default for attributes so the ternary doesn't choke. $display['settings']['attributes'] = array(); - foreach (array('width', 'height', 'autohide', 'autoplay', 'color', 'enablejsapi', 'loop', 'modestbranding', 'nocookie', 'origin', 'protocol', 'protocol_specify', 'rel', 'showinfo', 'theme', 'attributes') as $setting) { + foreach (array('width', 'height', 'autohide', 'autoplay', 'color', 'enablejsapi', 'loop', 'modestbranding', 'nocookie', 'origin', 'protocol', 'protocol_specify', 'rel', 'showinfo', 'theme', 'attributes', 'captions') as $setting) { $element['#options'][$setting] = isset($file->override[$setting]) ? $file->override[$setting] : $display['settings'][$setting]; } return $element; @@ -108,6 +108,16 @@ function media_youtube_file_formatter_video_settings($form, &$form_state, $setti ), '#default_value' => $settings['autohide'], ); + $element['captions'] = array( + '#title' => t('Captions displaying options'), + '#type' => 'radios', + '#options' => array( + '0' => t('Turns captions off by default'), + '1' => t('Turns captions on by default'), + '2' => t('Turns captions on and set the caption language for the video by default'), + ), + '#default_value' => $settings['captions'], + ); // Single Options. $element['autoplay'] = array( diff --git a/includes/themes/media_youtube.theme.inc b/includes/themes/media_youtube.theme.inc index 84c97cf..0a6dc5f 100644 --- a/includes/themes/media_youtube.theme.inc +++ b/includes/themes/media_youtube.theme.inc @@ -74,7 +74,17 @@ function media_youtube_preprocess_media_youtube_video(&$variables) { if ($variables['options']['autohide'] != '2') { $query['autohide'] = $variables['options']['autohide']; } - + if ($variables['options']['captions'] > '0') { + // Add captions parameters to the query. + $query['cc_load_policy'] = '1'; + if ($variables['options']['captions'] > '1') { + global $language; + // We can specify a default language for captions. + if ($language->language != LANGUAGE_NONE) { + $query['cc_lang_pref'] = $language->language; + } + } + } // Non-query options. if ($variables['options']['nocookie']) { $url_base = 'youtube-nocookie.com';