Index: filefield.token.inc =================================================================== RCS file: /cvs/drupal-contrib/contributions/modules/filefield/filefield.token.inc,v retrieving revision 1.5 diff -u -p -r1.5 filefield.token.inc --- filefield.token.inc 30 Jul 2009 16:47:43 -0000 1.5 +++ filefield.token.inc 14 Oct 2009 16:37:32 -0000 @@ -24,6 +24,25 @@ function filefield_token_list($type = 'a $tokens['file']['filefield-view'] = t('Fully formatted HTML file tag'); $tokens['file']['filefield-onlyname'] = t('File name without extension'); $tokens['file']['filefield-extension'] = t('File extension'); + // Tokens for metadata + if (module_exists('filefield_meta')) { + $tokens['file']['filefield-width'] = t('File Video width'); + $tokens['file']['filefield-height'] = t('File Video height'); + $tokens['file']['filefield-duration'] = t('File Duration'); + $tokens['file']['filefield-audio-format'] = t('File Audio Format path'); + $tokens['file']['filefield-audio-sample-rate'] = t('File Audio sample rate'); + $tokens['file']['filefield-audio-channel-mode'] = t('File Audio channel mode (stereo, mono)'); + $tokens['file']['filefield-audio-bitrate'] = t('File Audio bitrate'); + $tokens['file']['filefield-audio-bitrate-mode'] = t('File Audio bitrate mode (cbr, vbr, abr...)'); + $tokens['file']['filefield-audio-title'] = t('File Audio id3 title'); + $tokens['file']['filefield-audio-artist'] = t('File Audio id3 artist'); + $tokens['file']['filefield-audio-album'] = t('File Audio id3 album'); + $tokens['file']['filefield-audio-track-number'] = t('File Audio id3 track number'); + $tokens['file']['filefield-audio-recording-time'] = t('File Audio id3 recording time'); + $tokens['file']['filefield-audio-genre'] = t('File Audio id3 genre'); + $tokens['file']['filefield-audio-year'] = t('File Audio id3 year'); + + } return $tokens; } } @@ -61,6 +80,23 @@ function filefield_token_values($type, $ $tokens['filefield-onlyname'] = $info['filename']; $tokens['filefield-extension'] = $info['extension']; } + if (module_exists('filefield_meta')) { + $tokens['filefield-width'] = $item['data']['width'] ; + $tokens['filefield-height'] = $item['data']['height'] ; + $tokens['filefield-duration'] = $item['data']['duration'] ; + $tokens['filefield-audio-format'] = isset($item['data']['audio_format']) ? $item['data']['audio_format'] : ''; + $tokens['filefield-audio-sample-rate'] = $item['data']['sample_rate'] ; + $tokens['filefield-audio-channel-mode'] = isset($item['data']['audio_channel_mode']) ? $item['data']['audio_channel_mode'] : ''; + $tokens['filefield-audio-bitrate'] = isset($item['data']['audio_bitrate']) ? $item['data']['audio_bitrate'] : ''; + $tokens['filefield-audio-bitrate-mode'] = isset($item['data']['audio_bitrate_mode']) ? $item['data']['audio_bitrate_mode'] : ''; + $tokens['filefield-audio-title'] = isset($item['data']['audio_title']) ? $item['data']['audio_title'] : ''; + $tokens['filefield-audio-artist'] = isset($item['data']['audio_artist']) ? $item['data']['audio_artist'] : ''; + $tokens['filefield-audio-album'] = isset($item['data']['audio_album']) ? $item['data']['audio_album'] : ''; + $tokens['filefield-audio-track-number'] = isset($item['data']['audio_track_number']) ? $item['data']['audio_track_number'] : ''; + $tokens['filefield-audio-recording-time'] = isset($item['data']['audio_recording_time']) ? $item['data']['audio_recording_time'] : ''; + $tokens['filefield-audio-genre'] = isset($item['data']['audio_genre']) ? $item['data']['audio_genre'] : ''; + $tokens['filefield-audio-year'] = isset($item['data']['audio_year']) ? $item['data']['audio_year'] : ''; + } } return $tokens; } Index: filefield_meta/filefield_meta.module =================================================================== RCS file: /cvs/drupal-contrib/contributions/modules/filefield/filefield_meta/filefield_meta.module,v retrieving revision 1.14 diff -u -p -r1.14 filefield_meta.module --- filefield_meta/filefield_meta.module 20 Apr 2009 22:29:24 -0000 1.14 +++ filefield_meta/filefield_meta.module 14 Oct 2009 16:37:33 -0000 @@ -5,6 +5,7 @@ * FileField Meta: Add Video Support to File Field. */ + /** * Implementation of hook_theme(). */ @@ -103,6 +104,13 @@ function filefield_meta(&$file) { $file->data['audio_bitrate'] = isset($info['audio']['bitrate']) ? $info['audio']['bitrate'] : NULL; //e.g. 64000 $file->data['audio_bitrate_mode'] = isset($info['audio']['bitrate_mode']) ? $info['audio']['bitrate_mode'] : NULL; //e.g. cbr } + + // Added for tags + if(isset($info['tags'])) { + foreach ($info['tags']['id3v2'] as $key => $value) { + $file->data['audio_'. $key] = $value[0]; + } + } }; /** Index: filefield_meta/includes/filefield_meta.views.inc =================================================================== RCS file: /cvs/drupal-contrib/contributions/modules/filefield/filefield_meta/includes/filefield_meta.views.inc,v retrieving revision 1.1 diff -u -p -r1.1 filefield_meta.views.inc --- filefield_meta/includes/filefield_meta.views.inc 11 Mar 2009 06:02:24 -0000 1.1 +++ filefield_meta/includes/filefield_meta.views.inc 14 Oct 2009 16:37:33 -0000 @@ -162,6 +162,87 @@ function filefield_meta_views_data() { ), ); + // Artist + $data['filefield_meta']['audio_artist'] = array( + 'title' => t('Audio Tag - artist'), + 'help' => t('Song\'s artist'), + 'field' => array( + 'handler' => 'views_handler_field_string', + 'click sortable' => TRUE, + ), + 'sort' => array( + 'handler' => 'views_handler_sort', + ), + 'filter' => array( + 'handler' => 'views_handler_filter_string', + ), + ); + + + // Album + $data['filefield_meta']['audio_album'] = array( + 'title' => t('Audio Tag - album'), + 'help' => t('Song\'s artist'), + 'field' => array( + 'handler' => 'views_handler_field_string', + 'click sortable' => TRUE, + ), + 'sort' => array( + 'handler' => 'views_handler_sort', + ), + 'filter' => array( + 'handler' => 'views_handler_filter_string', + ), + ); + + // Title + $data['filefield_meta']['audio_title'] = array( + 'title' => t('Audio Tag - title'), + 'help' => t('Song\'s title'), + 'field' => array( + 'handler' => 'views_handler_field_string', + 'click sortable' => TRUE, + ), + 'sort' => array( + 'handler' => 'views_handler_sort', + ), + 'filter' => array( + 'handler' => 'views_handler_filter_string', + ), + ); + + // Track + $data['filefield_meta']['audio_track_number'] = array( + 'title' => t('Audio Tag - Track number'), + 'help' => t('Song\'s track number'), + 'field' => array( + 'handler' => 'views_handler_field_numeric', + 'click sortable' => TRUE, + ), + 'sort' => array( + 'handler' => 'views_handler_sort', + ), + 'filter' => array( + 'handler' => 'views_handler_filter_numeric', + ), + ); + + // Genre + $data['filefield_meta']['audio_genre'] = array( + 'title' => t('Audio Tag: genre'), + 'help' => t('Song\'s genre'), + 'field' => array( + 'handler' => 'views_handler_field_string', + 'click sortable' => TRUE, + ), + 'sort' => array( + 'handler' => 'views_handler_sort', + ), + 'filter' => array( + 'handler' => 'views_handler_filter_string', + ), + ); + return $data; }