'QuickTime Video', 'types' => array('local' => array('mov', 'mpg', 'mpeg', 'mp4', 'qt', '3g2', '3gp')), 'description' => t('Embed video asset for the QuickTime player.'), ); $formats['jquerymedia_quicktime_audio'] = array( 'name' => 'QuickTime Audio', 'types' => array('local' => array('aif', 'aiff', 'aac', 'au', 'gsm', 'mid', 'midi', 'mov', 'm4a', 'snd', 'wav')), 'description' => t('Embed audio asset for the QuickTime player.'), ); $formats['jquerymedia_winmedia_video'] = array( 'name' => 'Windows Media Video', 'types' => array('local' => array('asf', 'avi', 'wmv')), 'description' => t('Embed video asset for the Windows Media Player.'), ); $formats['jquerymedia_winmedia_audio'] = array( 'name' => 'Windows Media Audio', 'types' => array('local' => array('wma')), 'description' => t('Embed audio asset for the Windows Media Player.'), ); $formats['jquerymedia_mp3'] = array( 'name' => 'MP3 Player', 'types' => array('local' => array('mp3')), 'description' => t('Embed asset for the MP3 Player.'), ); $formats['jquerymedia_flash'] = array( 'name' => 'Flash', 'types' => array('local' => array('flv', 'swf')), 'description' => t('Embed Flash player.'), ); $formats['jquerymedia_realplayer'] = array( 'name' => 'Real Player', 'types' => array('local' => array('ra', 'ram', 'rm', 'rpm', 'rv', 'smi', 'smil')), 'description' => t('Embed asset for the Real Player.'), ); $formats['jquerymedia_iframe'] = array( 'name' => 'iframe', 'types' => array('local' => array('html', 'pdf')), 'description' => t('Inline the asset in the page for easier viewing.'), ); // TODO: test this: // $formats['jquerymedia_quicktime_image'] = array( // 'name' => 'QuickTime Image', // 'types' => array('local' => array('bmp', 'psd', 'qif', 'qtif', 'qti', 'tif', 'tiff')), // 'description' => t('Embed image asset for display in the QuickTime player.'), // ); // TODO: test this: // $formats['jquerymedia_silverlight'] = array( // 'name' => 'Silverlight', // 'types' => array('local' => array('xaml')), // 'description' => t('Embed asset for the Silverlight Player.'), // ); return $formats; case 'img': $path = drupal_get_path('module', 'asset_jquerymedia') .'/images/'. $attr['format'] .'.png'; if (file_exists($path)) { return $path; } break; case 'options': $defaults = _asset_jquerymedia_defaults($attr['format']); $form['width'] = array( '#type' => 'textfield', '#title' => t('Width'), '#size' => '10', '#default_value' => isset($defaults['width']) ? $defaults['width'] : 320, ); $form['height'] = array( '#type' => 'textfield', '#title' => t('Height'), '#size' => '10', '#default_value' => isset($defaults['height']) ? $defaults['height'] : 240, ); return $form; case 'preview': case 'render': // Ensure to add default values for attributes whose values are unspecified. $attr = array_merge(_asset_jquerymedia_defaults($attr['format']), $attr); // Render the player. return theme('asset_jquerymedia', $op, $asset, $attr); } } /** * Return appropriate default player attributes given the format. */ function _asset_jquerymedia_defaults($format) { static $defaults = NULL; if (!isset($defaults[$format])) { switch ($format) { case 'jquerymedia_quicktime_video': $defaults[$format]['width'] = 320; $defaults[$format]['height'] = 256; break; case 'jquerymedia_quicktime_audio': $defaults[$format]['width'] = 320; $defaults[$format]['height'] = 16; break; case 'jquerymedia_winmedia_video': $defaults[$format]['width'] = 320; $defaults[$format]['height'] = 286; break; case 'jquerymedia_winmedia_audio': $defaults[$format]['width'] = 320; $defaults[$format]['height'] = 46; break; case 'jquerymedia_mp3': $defaults[$format]['width'] = 320; $defaults[$format]['height'] = 20; break; case 'jquerymedia_flash': $defaults[$format]['width'] = 320; $defaults[$format]['height'] = 260; break; case 'jquerymedia_realplayer': $defaults[$format]['width'] = 350; $defaults[$format]['height'] = 298; break; case 'jquerymedia_iframe': $defaults[$format]['width'] = 480; $defaults[$format]['height'] = 360; break; // TODO: test this: // case 'jquerymedia_quicktime_image': // $defaults[$format]['width'] = 320; // $defaults[$format]['height'] = 240; // break; // TODO: test this: // case 'jquerymedia_silverlight': // $defaults[$format]['width'] = 320; // $defaults[$format]['height'] = 240; // break; default: return array(); // Unexpected format. } } return $defaults[$format]; } /** * Output the asset and the needed JavaScript code for embedding it. */ function theme_asset_jquerymedia($op, $asset, $attr = array()) { $js = " $('a.jquerymedia-link-{$asset->aid}').media({ caption: false, width: {$attr['width']}, height: {$attr['height']} })"; $js = "\nif (Drupal.jsEnabled) {\n$(document).ready(function() {\n$js\n});\n}"; if ($op == 'preview') { // jquery_media.module does not include the plugin when we're in the Asset Wizard. $jquerymedia = base_path() . drupal_get_path('module', 'jquery_media') . '/js/jquery.media.js'; $output .= ""; } // Not using drupal_add_js() because of caching issues. $output .= "\n"; if (substr($asset->url, 0, 4) != 'http') { $asset->url = '/'. $asset->url; } $output .= '