aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--video.module56
1 files changed, 48 insertions, 8 deletions
diff --git a/video.module b/video.module
index c2e44b6..d065959 100644
--- a/video.module
+++ b/video.module
@@ -296,6 +296,9 @@ function video_settings() {
$output .= form_textfield(t('File extensions to show'), 'video_download_ext',
variable_get('video_download_ext', 'mov,wmv,rm,flv,avi,divx,mpg,mpeg,mp4,zip'), 60, 250,
t('The extensions of files to list from the multi-file download folder on the download page. Extensions should be comma seperated with no spaces, for example (mov,wmv,rm).'));
+ $output .= form_radios(t('Display Optional Metadata'), 'video_display_metadata',
+ variable_get('video_display_metadata', FALSE), array(0 => 'No', 1 => 'Yes'),
+ t('Allows displaying a list of videos metadata: Video bitrate, Audio bitrate, Audio Sampling Rate and Audio Channels.'));
$group = form_textfield(t('Custom field group title'), 'video_customfieldtitle', variable_get('video_customfieldtitle', ''), 40, 200, t('Title of the group of all custom fields.'));
$group .= form_radios(t('Start group initially collapsed'), 'video_customgroupcollapsed',
variable_get('video_customgroupcollapsed', 1), array(0 => 'No', 1 => 'Yes'),
@@ -411,12 +414,14 @@ function video_form($node) {
$output .= form_group_collapsible(variable_get('video_customfieldtitle', 'Custom Fields'), $group, variable_get('video_customgroupcollapsed', '0'), t(''));
}
- $group = form_textfield(t('Video Bitrate'), 'video_bitrate', ($node->video_bitrate == 0) ? '' : $node->video_bitrate, 11, 11, t('Integer value of video bitrate'));
- $group .= form_textfield(t('Audio Bitrate'), 'audio_bitrate', ($node->audio_bitrate == 0) ? '' : $node->audio_bitrate, 11, 11, t('Integer value of audio bitrate'));
+ // Optional Video Metadata
+ $group = form_textfield(t('Video Bitrate'), 'video_bitrate', ($node->video_bitrate == 0) ? '' : $node->video_bitrate, 11, 11, t('Integer value of video bitrate in Bytes/seconds'));
+ $group .= form_textfield(t('Audio Bitrate'), 'audio_bitrate', ($node->audio_bitrate == 0) ? '' : $node->audio_bitrate, 11, 11, t('Integer value of audio bitrate in Bytes/seconds'));
$group .= form_textfield(t('Audio Sampling Rate'), 'audio_sampling_rate', ($node->audio_sampling_rate == 0) ? '' : $node->audio_sampling_rate, 11, 11, t('Integer value of audio sampling rate in Hz'));
$group .= form_select(t('Audio Channels'), 'audio_channels', $node->audio_channels, array('' => '', '5.1' => t('5.1'), 'stereo' => t('Stereo'), 'mono' => t('Mono')));
- $output .= form_group_collapsible(t('Optional Metadata'), $group, TRUE, t('Metadata entered here will not be displayed. It is currently for administrative reference only.'));
-
+ $output .= form_group_collapsible(t('Optional Metadata'), $group, !variable_get('video_display_metadata', FALSE), t('Metadata entered here will be displayed only if administrator enables displaying on the '.l(t('administration page'),'admin/settings/video', array('title'=>t('administration page'))).'.')); // We display this group expanded only if displaying of optional metadata is enabled on front page.
+ // Ends Video Optional Metadata
+
if (function_exists('taxonomy_node_form')) {
$output .= implode('', taxonomy_node_form('video', $node));
}
@@ -771,9 +776,13 @@ function video_play() {
function video_view(&$node, $teaser = FALSE, $page = FALSE) {
//Run the body through the standard filters.
$node = node_prepare($node, $teaser);
- //Add the HTML formatted output of the custom fields to the bottom.
if ($teaser == FALSE) {
+ //Add the HTML formatted output of the custom fields to the bottom.
$node->body .= theme('video_view', $node);
+ if(variable_get('video_display_metadata', FALSE)) {
+ //Add the HTML formatted output of the optional video metadata to the bottom.
+ $node->body .= theme('video_display_metadata', $node);
+ }
}
}
@@ -1016,6 +1025,38 @@ function theme_video_view($node) {
}
/**
+ * Display optional metadata (Video and Audio bitrate,..) on the view page.
+ *
+ * @param $node
+ * object with node information
+ *
+ * @return
+ * string of content to display
+ $node->video_bitrate, $node->audio_bitrate, $node->audio_sampling_rate, $node->audio_channels,
+ */
+function theme_video_display_metadata(&$node) {
+ // Do not do anything if all fields are empty
+ if($node->video_bitrate == 0 && $node->audio_bitrate == 0 && $node->audio_sampling_rate == 0 && $node->audio_channels == 0)
+ return '';
+ $output = "\n\n<div class=\"video_metadata\">\n";
+ $output .= ' <div class="title"><h2>'.t('Video Metadata')."</h2></div>\n";
+ if($node->video_bitrate != 0) {
+ $output .= ' <div class="odd"><b>' . t('Video Bitrate') . '</b> '.format_size($node->video_bitrate) . '/seconds</div>';
+ }
+ if($node->audio_bitrate != 0) {
+ $output .= ' <div class="even"><b>' . t('Audio Bitrate') . '</b> '.format_size($node->audio_bitrate) . '/seconds</div>';
+ }
+ if($node->audio_sampling_rate != 0) {
+ $output .= ' <div class="odd"><b>' . t('Audio Sampling Rate') . '</b> '. $node->audio_sampling_rate . ' ' . t('Hz') . '</div>';
+ }
+ if($node->audio_channels != '') {
+ $output .= ' <div class="even"><b>' . t('Audio Channels') . '</b> '. $node->audio_channels . '</div>';
+ }
+ $output .= '</div>'; //Closing div video_metadata
+ return $output;
+}
+
+/**
* Outputs the HTML for the download page when multi-file download are turned on.
*
* @param $node
@@ -1046,9 +1087,8 @@ function theme_video_download(&$node) {
$headers = array(t('File Link'), t('File Size'), t('File Type'));
$output .= theme_table($headers, $file_array_table); //Create the table of files.
$output .= '</div>'; //Close the "videodownload" class.
- } else { //If there is an error.
- drupal_set_message(t('There are no files to download for this video.'), 'error');
- drupal_goto("node/$node->nid"); //Redirect back to view page.
+ } else { //If there is an error lets download the play file.
+ _video_download_goto($node->vidfile, $node->nid);
}
//Adds a breadcrumb back to view on the download page. This may not be needed but some better breadcrumbs are.