]> git.mjollnir.org Git - moodle.git/commitdiff
MDL-8957 Multimedia filter cleanup; merged from MOODLE_18_STABLE
authorskodak <skodak>
Mon, 19 Mar 2007 08:09:09 +0000 (08:09 +0000)
committerskodak <skodak>
Mon, 19 Mar 2007 08:09:09 +0000 (08:09 +0000)
filter/mediaplugin/filter.php
theme/standard/styles_layout.css

index e109295fcd2ac4065fcb5aacc551a79df9871426..e5de22f6ea06d9a7323730e354f1923212c41a33 100644 (file)
@@ -1,8 +1,8 @@
-<?php // $id$
+<?php // $Id$
 //////////////////////////////////////////////////////////////
 //  Media plugin filtering
-// 
-//  This filter will replace any links to a media file with 
+//
+//  This filter will replace any links to a media file with
 //  a media plugin that plays that media inline
 //
 //  To activate this filter, add a line like this to your
 //
 //////////////////////////////////////////////////////////////
 
-/// This is the filtering function itself.  It accepts the 
+/// This is the filtering function itself.  It accepts the
 /// courseid and the text to be filtered (in HTML form).
 
+require_once($CFG->libdir.'/filelib.php');
+
 function mediaplugin_filter($courseid, $text) {
-    global $CFG, $THEME;
+    global $CFG;
 
-    static $count = 0;
+    include 'defaultsettings.php';
 
-    $count++;
-
-    include "defaultsettings.php";
+    // We're using the UFO technique for flash to attain XHTML Strict 1.0
+    // See: http://www.bobbyvandersluis.com/ufo/
 
     if ($CFG->filter_mediaplugin_enable_mp3) {
-        static $c;
-
-        if (empty($c)) {
-            if (!empty($THEME->filter_mediaplugin_colors)) {
-                $c = $THEME->filter_mediaplugin_colors;   // You can set this up in your theme/xxx/config.php
-            } else {
-                $c = 'bgColour=000000&amp;btnColour=ffffff&amp;btnBorderColour=cccccc&amp;iconColour=000000&amp;iconOverColour=00cc00&amp;trackColour=cccccc&amp;handleColour=ffffff&amp;loaderColour=ffffff&amp;waitForPlay=yes&amp;';
-            }
-        }
-        $search = '/<a(.*?)href=\"([^<]+)\.mp3\"([^>]*)>(.*?)<\/a>/is';
-
-        // We're using the UFO technique to attain XHTML Strict 1.0
-        // See: http://www.bobbyvandersluis.com/ufo/
-
-        $replace = '<script type="text/javascript">'."\n".
-                   '//<![CDATA['."\n".
-                   'var FO'.$count.' = { movie:"'.$CFG->wwwroot.'/filter/mediaplugin/mp3player.swf?src=\\2.mp3",'.
-                   'width:"90", height:"15", majorversion:"6", build:"40", flashvars:"'.$c.'", quality: "high" };'."\n".
-                   'UFO.create(FO'.$count.', "filtermp3'.$count.'");'."\n".
-                   '//]]>'."\n".
-                   '</script>'."\n".
-                   '\\0&nbsp;<span class="mediaplugin mp3" id="filtermp3'.$count.'">'.
-                   '('.get_string('mp3audio', 'mediaplugin').')'.
-                   '</span>'."\n";
-    
-        $text = preg_replace($search, $replace, $text);
+        $search = '/<a.*?href="([^<]+\.mp3)"[^>]*>.*?<\/a>/is';
+        $text = preg_replace_callback($search, 'mediaplugin_filter_mp3_callback', $text);
     }
 
     if ($CFG->filter_mediaplugin_enable_swf) {
-        $search = array(
-                '/<a(.*?)href=\"([^<]+)\.swf\?d=([\d]{1,3}%?)x([\d]{1,3}%?)\"([^>]*)>(.*?)<\/a>/is',
-                '/<a(.*?)href=\"([^<]+)\.swf\"([^>]*)>(.*?)<\/a>/is'
-                );
-
-        $replace = array();
-
-        $replace[0] = '<script type="text/javascript">'."\n".
-                      '//<![CDATA['."\n".
-                      'var FO'.$count.' = { movie:"\\2.swf", width:"\\3", height:"\\4", majorversion:"6", build:"40", '.
-                      'allowscriptaccess:"never", quality: "high" };'."\n".
-                      'UFO.create(FO'.$count.', "filterswf'.$count.'");'."\n".
-                      '//]]>'."\n".
-                      '</script>'."\n".
-                      '\\0&nbsp;<span class="mediaplugin swf" id="filterswf'.$count.'">'.
-                      '('.get_string('flashanimation', 'mediaplugin').')'.
-                      '</span>'."\n";
-
-        $replace[1] = '<script type="text/javascript">'."\n".
-                      '//<![CDATA['."\n".
-                      'var FO'.$count.' = { movie:"\\2.swf", width:"400", height:"300", majorversion:"6", build:"40", '.
-                      'allowscriptaccess:"never", quality: "high" };'."\n".
-                      'UFO.create(FO'.$count.', "filterswf'.$count.'");'."\n".
-                      '//]]>'."\n".
-                      '</script>'."\n".
-                      '\\0&nbsp;<span class="mediaplugin swf" id="filterswf'.$count.'">'.
-                      '('.get_string('flashanimation', 'mediaplugin').')'.
-                      '</span>'."\n";
-
-        $text = preg_replace($search, $replace, $text);
-
+        $search = '/<a.*?href="([^<]+\.swf)(\?d=([\d]{1,3}%?)x([\d]{1,3}%?))?"[^>]*>.*?<\/a>/is';
+        $text = preg_replace_callback($search, 'mediaplugin_filter_swf_callback', $text);
     }
 
     if ($CFG->filter_mediaplugin_enable_flv) {
-
-        $replace = array();
-
-        $search = array(
-                '/<a(.*?)href=\"([^<]+)\.flv\?d=([\d]{1,3}%?)x([\d]{1,3}%?)\"([^>]*)>(.*?)<\/a>/is',
-                '/<a(.*?)href=\"([^<]+)\.flv\"([^>]*)>(.*?)<\/a>/is'
-                );
-
-        $replace[0] = '<script type="text/javascript">'."\n".
-                      '//<![CDATA['."\n".
-                      'var FO'.$count.' = { movie:"'.$CFG->wwwroot.'/filter/mediaplugin/flvplayer.swf?file=\\2.flv", '.
-                      'width:"\\3", height:"\\4", majorversion:"6", build:"40", '.
-                      'allowscriptaccess:"never", quality: "high" };'."\n".
-                      'UFO.create(FO'.$count.', "filterflv'.$count.'");'."\n".
-                      '//]]>'."\n".
-                      '</script>'."\n".
-                      '\\0&nbsp;<span class="mediaplugin flv" id="filterflv'.$count.'">'.
-                      '('.get_string('flashvideo', 'mediaplugin').')'.
-                      '</span>'."\n";
-
-        $replace[1] = '<script type="text/javascript">'."\n".
-                      '//<![CDATA['."\n".
-                      'var FO'.$count.' = { movie:"'.$CFG->wwwroot.'/filter/mediaplugin/flvplayer.swf?file=\\2.flv", '.
-                      'width:"480", height:"360", majorversion:"6", build:"40", '.
-                      'allowscriptaccess:"never", quality: "high" };'."\n".
-                      'UFO.create(FO'.$count.', "filterflv'.$count.'");'."\n".
-                      '//]]>'."\n".
-                      '</script>'."\n".
-                      '\\0&nbsp;<span class="mediaplugin flv" id="filterflv'.$count.'">'.
-                      '('.get_string('flashvideo', 'mediaplugin').')'.
-                      '</span>'."\n";
-
-        $text = preg_replace($search, $replace, $text);
+        $search = '/<a.*?href="([^<]+\.flv)(\?d=([\d]{1,3}%?)x([\d]{1,3}%?))?"[^>]*>.*?<\/a>/is';
+        $text = preg_replace_callback($search, 'mediaplugin_filter_flv_callback', $text);
     }
 
     if ($CFG->filter_mediaplugin_enable_mov) {
-        $search = '/<a(.*?)href=\"([^<]+)\.mov\"([^>]*)>(.*?)<\/a>/is';
-
-        $replace  = '\\0<p class="mediaplugin mov"><object classid="CLSID:02BF25D5-8C17-4B23-BC80-D3488ABDDC6B"';
-        $replace .= '        codebase="http://www.apple.com/qtactivex/qtplugin.cab" ';
-        $replace .= '        height="300" width="400"';
-        $replace .= '        id="quicktime" type="application/x-oleobject">';
-        $replace .= '<param name="src" value="\\2.mov" />';
-        $replace .= '<param name="autoplay" value="false" />';
-        $replace .= '<param name="loop" value="true" />';
-        $replace .= '<param name="controller" value="true" />';
-        $replace .= '<param name="scale" value="aspect" />';
-        $replace .= '</object></p>';
-
-        $text = preg_replace($search, $replace, $text);
+        $search = '/<a.*?href="([^<]+\.mov)(\?d=([\d]{1,3}%?)x([\d]{1,3}%?))?"[^>]*>.*?<\/a>/is';
+        $text = preg_replace_callback($search, 'mediaplugin_filter_qt_callback', $text);
     }
 
     if ($CFG->filter_mediaplugin_enable_wmv) {
-        $search = '/<a(.*?)href=\"([^<]+)\.wmv\"([^>]*)>(.*?)<\/a>/is';
-
-        $replace  = '\\0<p class="mediaplugin wmv"><object classid="CLSID:22D6f312-B0F6-11D0-94AB-0080C74C7E95"';
-        $replace .= ' codebase="http://activex.microsoft.com/activex/controls/mplayer/en/nsmp2inf.cab#Version=5,1,52,701" ';
-        $replace .= ' standby="Loading Microsoft� Windows� Media Player components..." ';
-        $replace .= ' id="msplayer" type="application/x-oleobject">';
-        $replace .= '<param name="Filename" value="\\2.wmv" />';
-        $replace .= '<param name="ShowControls" value="true" />';
-        $replace .= '<param name="AutoRewind" value="true" />';
-        $replace .= '<param name="AutoStart" value="false" />';
-        $replace .= '<param name="Autosize" value="true" />';
-        $replace .= '<param name="EnableContextMenu" value="true" />';
-        $replace .= '<param name="TransparentAtStart" value="false" />';
-        $replace .= '<param name="AnimationAtStart" value="false" />';
-        $replace .= '<param name="ShowGotoBar" value="false" />';
-        $replace .= '<param name="EnableFullScreenControls" value="true" />';
-        $replace .= '</object></p>';
-
-        $text = preg_replace($search, $replace, $text);
+        $search = '/<a.*?href="([^<]+\.wmv)(\?d=([\d]{1,3}%?)x([\d]{1,3}%?))?"[^>]*>.*?<\/a>/is';
+        $text = preg_replace_callback($search, 'mediaplugin_filter_wmp_callback', $text);
     }
 
     if ($CFG->filter_mediaplugin_enable_mpg) {
-        $search = '/<a(.*?)href=\"([^<]+)\.(mpe?g)\"([^>]*)>(.*?)<\/a>/is';
-
-        $replace = '\\0<p class="mediaplugin mpg"><object width="240" height="180">';
-        $replace .= '<param name="src" value="\\2.\\3" />';
-        $replace .= '<param name="controller" value="true" />';
-        $replace .= '<param name="autoplay" value="false" />';
-        $replace .= '</object></p>';
-        
-        $text = preg_replace($search, $replace, $text);
+        $search = '/<a.*?href="([^<]+\.mpe?g)(\?d=([\d]{1,3}%?)x([\d]{1,3}%?))?"[^>]*>.*?<\/a>/is';
+        $text = preg_replace_callback($search, 'mediaplugin_filter_qt_callback', $text);
     }
 
     if ($CFG->filter_mediaplugin_enable_avi) {
-        $search = '/<a(.*?)href=\"([^<]+)\.avi\"([^>]*)>(.*?)<\/a>/is';
-
-        $replace = '\\0<p class="mediaplugin avi"><object width="240" height="180">';
-        $replace .= '<param name="src" value="\\2.avi" />';
-        $replace .= '<param name="controller" value="true" />';
-        $replace .= '<param name="autoplay" value="false" />';
-        $replace .= '</object></p>';
-    
-        $text = preg_replace($search, $replace, $text);
+        $search = '/<a.*?href="([^<]+\.avi)(\?d=([\d]{1,3}%?)x([\d]{1,3}%?))?"[^>]*>.*?<\/a>/is';
+        $text = preg_replace_callback($search, 'mediaplugin_filter_wmp_callback', $text);
     }
-    
+
     if ($CFG->filter_mediaplugin_enable_ram) {
-        $search = '/<a(.*?)href=\"([^<]+)\.ram\"([^>]*)>(.*?)<\/a>/is';
-
-        $replace  = '\\0<p class="mediaplugin ram"><script type="text/javascript">//<![CDATA['."\n".
-        'document.write(\'<object width="240" height="180">';
-        $replace .= '<param name="src" value="\\2.ram" />';
-        $replace .= '<param name="autoStart" value="true" />';
-        $replace .= '<param name="controls" value="imagewindow" />';
-        $replace .= '<param name="console" value="video" />';
-        $replace .= '<param name="loop" value="true" />';
-        $replace .= '<embed src="\\2.ram" width=240" height="180" loop="true" type="audio/x-pn-realaudio-plugin" controls="imagewindow" console="video" autostart="true" />';
-        $replace .= '<\/object><br />';
-
-        $replace .= '<object width="240" height="30">';
-        $replace .= '<param name="src" value="\\2.ram" />';
-        $replace .= '<param name="autoStart" value="true" />';
-        $replace .= '<param name="controls" value="ControlPanel" />';
-        $replace .= '<param name="console" value="video" />';
-        $replace .= '<embed src="\\2.ram" width="240" height="30" controls="ControlPanel" type="audio/x-pn-realaudio-plugin" console="video" autostart="true" />';
-        $replace .= '<\/object>\')'."\n".'//]]>'."\n".'</script></p>';
-
-        $text = preg_replace($search, $replace, $text);
+        $search = '/<a.*?href="([^<]+\.ram)"[^>]*>.*?<\/a>/is';
+        $text = preg_replace_callback($search, 'mediaplugin_filter_real_callback', $text);
     }
-     
+
     if ($CFG->filter_mediaplugin_enable_rpm) {
-        $search = '/<a(.*?)href=\"([^<]+)\.rpm\"([^>]*)>(.*?)<\/a>/is';
-
-        $replace  = '\\0<p class="mediaplugin rpm"><script type="text/javascript">//<![CDATA['."\n".
-        'document.write(\'<object width="240" height="180">';
-        $replace .= '<param name="src" value="\\2.rpm" />';
-        $replace .= '<param name="autostart" value="true" />';
-        $replace .= '<param name="controls" value="imagewindow" />';
-        $replace .= '<param name="console" value="video" />';
-        $replace .= '<param name="loop" value="true" />';
-        $replace .= '<embed src="\\2.rpm" width=240" height="180" loop="true" type="audio/x-pn-realaudio-plugin" controls="imagewindow" console="video" autostart="true" />';
-        $replace .= '</object><br />';
-
-        $replace .= '<object width="240" height="30">';
-        $replace .= '<param name="src" value="\\2.rpm" />';
-        $replace .= '<param name="autostart" value="true" />';
-        $replace .= '<param name="controls" value="ControlPanel" />';
-        $replace .= '<param name="console" value="video" />';
-        $replace .= '<embed src="\\2.rpm" width="240" height="30" controls="ControlPanel" type="audio/x-pn-realaudio-plugin" console="video" autostart="true" />';
-        $replace .= '</object>\')'."\n".'//]]>'."\n".'</script></p>';
-
-        $text = preg_replace($search, $replace, $text);
+        $search = '/<a.*?href="([^<]+\.rpm)"[^>]*>.*?<\/a>/is';
+        $text = preg_replace_callback($search, 'mediaplugin_filter_real_callback', $text);
     }
-    
+
     if ($CFG->filter_mediaplugin_enable_rm) {
-        $search = '/<a(.*?)href=\"([^<]+)\.rm\"([^>]*)>(.*?)<\/a>/is';
-
-        $replace  = '\\0<p class="mediaplugin rm"><script type="text/javascript">//<![CDATA['."\n".
-        'document.write(\'<object width="240" height="180">';
-        $replace .= '<param name="src" value="\\2.rm" />';
-        $replace .= '<param name="autostart" value="true" />';
-        $replace .= '<param name="controls" value="imagewindow" />';
-        $replace .= '<param name="console" value="video" />';
-        $replace .= '<param name="loop" value="true" />';
-        $replace .= '<embed src="\\2.rm" width=240" height="180" loop="true" type="audio/x-pn-realaudio-plugin" controls="imagewindow" console="video" autostart="true" />';
-        $replace .= '</object><br />';
-
-        $replace .= '<object width="240" height="30">';
-        $replace .= '<param name="src" value="\\2.rm" />';
-        $replace .= '<param name="autostart" value="true" />';
-        $replace .= '<param name="controls" value="ControlPanel" />';
-        $replace .= '<param name="console" value="video" />';
-        $replace .= '<embed src="\\2.rm" width="240" height="30" controls="ControlPanel" type="audio/x-pn-realaudio-plugin" console="video" autostart="true" />';
-        $replace .= '</object>\')'."\n".'//]]>'."\n".'</script></p>';
-
-        $text = preg_replace($search, $replace, $text);
+        $search = '/<a.*?href="([^<]+\.rm)"[^>]*>.*?<\/a>/is';
+        $text = preg_replace_callback($search, 'mediaplugin_filter_real_callback', $text);
     }
 
     return $text;
 }
 
+///===========================
+/// callback filter functions
+
+function mediaplugin_filter_mp3_callback($link) {
+    global $CFG, $THEME;
+
+    if (!empty($THEME->filter_mediaplugin_colors)) {
+        $c = $THEME->filter_mediaplugin_colors;   // You can set this up in your theme/xxx/config.php
+    } else {
+        $c = 'bgColour=000000&btnColour=ffffff&btnBorderColour=cccccc&iconColour=000000&'.
+             'iconOverColour=00cc00&trackColour=cccccc&handleColour=ffffff&loaderColour=ffffff&'.
+             'waitForPlay=yes';
+    }
+    $c = htmlentities($c);
+
+    static $count = 0;
+    $count++;
+    $id = 'filter_mp3_'.time().$count; //we need something unique because it might be stored in text cache
+
+    $url = addslashes_js($link[1]);
+
+    return $link[0].
+'<span class="mediaplugin mediaplugin_mp3" id="'.$id.'">('.get_string('mp3audio', 'mediaplugin').')</span>
+<script type="text/javascript">
+//<![CDATA[
+  var FO = { movie:"'.$CFG->wwwroot.'/filter/mediaplugin/mp3player.swf?src='.$url.'",
+    width:"90", height:"15", majorversion:"6", build:"40", flashvars:"'.$c.'", quality: "high" };
+  UFO.create(FO, "'.$id.'");
+//]]>
+</script>';
+}
+
+function mediaplugin_filter_swf_callback($link) {
+    static $count = 0;
+    $count++;
+    $id = 'filter_swf_'.time().$count; //we need something unique because it might be stored in text cache
+
+    $width  = empty($link[3]) ? '400' : $link[3];
+    $height = empty($link[4]) ? '300' : $link[4];
+    $url = addslashes_js($link[1]);
+
+    return $link[0].
+'<span class="mediaplugin mediaplugin_swf" id="'.$id.'">('.get_string('flashanimation', 'mediaplugin').')</span>
+<script type="text/javascript">
+//<![CDATA[
+  var FO = { movie:"'.$url.'", width:"'.$width.'", height:"'.$height.'", majorversion:"6", build:"40",
+    allowscriptaccess:"never", quality: "high" };
+  UFO.create(FO, "'.$id.'");
+//]]>
+</script>';
+}
+
+function mediaplugin_filter_flv_callback($link) {
+    global $CFG;
+
+    static $count = 0;
+    $count++;
+    $id = 'filter_flv_'.time().$count; //we need something unique because it might be stored in text cache
+
+    $width  = empty($link[3]) ? '480' : $link[3];
+    $height = empty($link[4]) ? '360' : $link[4];
+    $url = addslashes_js($link[1]);
+
+    return $link[0].
+'<span class="mediaplugin mediaplugin_flv" id="'.$id.'">('.get_string('flashvideo', 'mediaplugin').')</span>
+<script type="text/javascript">
+//<![CDATA[
+  var FO = { movie:"'.$CFG->wwwroot.'/filter/mediaplugin/flvplayer.swf?file='.$url.'",
+    width:"'.$width.'", height:"'.$height.'", majorversion:"6", build:"40",
+    allowscriptaccess:"never", quality: "high" };
+  UFO.create(FO, "'.$id.'");
+//]]>
+</script>';
+}
+
+function mediaplugin_filter_real_callback($link, $autostart=false) {
+    $url = addslashes_js($link[1]);
+    $mimetype = mimeinfo('type', $url);
+    $autostart = $autostart ? 'true' : 'false';
+
+// embed kept for now see MDL-8674
+    return $link[0].
+'<span class="mediaplugin mediaplugin_real">
+<script type="text/javascript">
+//<![CDATA[
+document.write(\'<object classid="clsid:CFCDAA03-8BE4-11cf-B84B-0020AFBBCCFA" width="240" height="180">\\
+  <param name="src" value="'.$url.'" />\\
+  <param name="autostart" value="'.$autostart.'" />\\
+  <param name="controls" value="imagewindow" />\\
+  <param name="console" value="video" />\\
+  <param name="loop" value="true" />\\
+  <embed src="'.$url.'" width=240" height="180" loop="true" type="'.$mimetype.'" controls="imagewindow" console="video" autostart="'.$autostart.'" />\\
+  </object><br />\\
+  <object classid="clsid:CFCDAA03-8BE4-11cf-B84B-0020AFBBCCFA" width="240" height="30">\\
+  <param name="src" value="'.$url.'" />\\
+  <param name="autostart" value="'.$autostart.'" />\\
+  <param name="controls" value="ControlPanel" />\\
+  <param name="console" value="video" />\\
+  <embed src="'.$url.'" width="240" height="30" controls="ControlPanel" type="'.$mimetype.'" console="video" autostart="'.$autostart.'" />\\
+  </object>\');
+//]]>
+</script></span>';
+}
+
+/**
+ * Embed video using window media player if available
+ */
+function mediaplugin_filter_wmp_callback($link, $autostart=false) {
+    $url = $link[1];
+    if (empty($link[3]) or empty($link[4])) {
+        $mpsize = '';
+        $size = 'width="300" height="260"';
+        $autosize = 'true';
+    } else {
+        $size = 'width="'.$link[3].'" height="'.$link[4].'"';
+        $mpsize = $size;
+        $autosize = 'false';
+    }
+    $mimetype = mimeinfo('type', $url);
+    $autostart = $autostart ? 'true' : 'false';
+
+    return $link[0].
+'<span class="mediaplugin mediaplugin_wmp">
+<object classid="CLSID:6BF52A52-394A-11d3-B153-00C04F79FAA6" '.$mpsize.'
+  standby="Loading Microsoft(R) Windows(R) Media Player components..."
+  type="application/x-oleobject">
+ <param name="Filename" value="'.$url.'" />
+ <param name="src" value="'.$url.'" />
+ <param name="url" value="'.$url.'" />
+ <param name="ShowControls" value="true" />
+ <param name="AutoRewind" value="true" />
+ <param name="AutoStart" value="'.$autostart.'" />
+ <param name="Autosize" value="'.$autosize.'" />
+ <param name="EnableContextMenu" value="true" />
+ <param name="TransparentAtStart" value="false" />
+ <param name="AnimationAtStart" value="false" />
+ <param name="ShowGotoBar" value="false" />
+ <param name="EnableFullScreenControls" value="true" />
+<!--[if !IE]>-->
+  <object data="'.$url.'" type="'.$mimetype.'" '.$size.'>
+   <param name="src" value="'.$url.'" />
+   <param name="controller" value="true" />
+   <param name="autoplay" value="'.$autostart.'" />
+   <param name="autostart" value="'.$autostart.'" />
+   <param name="resize" value="scale" />
+  </object>
+<!--<![endif]-->
+</object></span>';
+}
+
+function mediaplugin_filter_qt_callback($link, $autostart=false) {
+    $url = $link[1];
+    if (empty($link[3]) or empty($link[4])) {
+        $size = 'width="280" height="210"';
+    } else {
+        $size = 'width="'.$link[3].'" height="'.$link[4].'"';
+    }
+    $mimetype = mimeinfo('type', $url);
+    $autostart = $autostart ? 'true' : 'false';
+
+    return $link[0].
+'<span class="mediaplugin mediaplugin_qt">
+<object classid="clsid:02BF25D5-8C17-4B23-BC80-D3488ABDDC6B"
+  codebase="http://www.apple.com/qtactivex/qtplugin.cab" '.$size.'>
+ <param name="pluginspage" value="http://www.apple.com/quicktime/download/" />
+ <param name="src" value="'.$url.'" />
+ <param name="coltroller" value="true" />
+ <param name="loop" value="true" />
+ <param name="autoplay" value="'.$autostart.'" />
+ <param name="autostart" value="'.$autostart.'" />
+ <param name="scale" value="aspect" />
+<!--[if !IE]>-->
+  <object data="'.$url.'" type="'.$mimetype.'" '.$size.'>
+   <param name="src" value="'.$url.'" />
+   <param name="pluginurl" value="http://www.apple.com/quicktime/download/" />
+   <param name="controller" value="true" />
+   <param name="loop" value="true" />
+   <param name="autoplay" value="'.$autostart.'" />
+   <param name="autostart" value="'.$autostart.'" />
+   <param name="scale" value="aspect" />
+  </object>
+<!--<![endif]-->
+</object></span>';
+}
 
 ?>
index 87b181b03eed63fe61cc9ed96c64aa0347c5a6a5..30bf3747d6ed27a4d835ea125ad7cd8626797c63 100644 (file)
@@ -703,6 +703,24 @@ table.navbar {
   margin-left:10px;
 }
 
+/***
+ *** Filters
+ ***/
+span.mediaplugin {
+  display:block;
+  clear:both;
+  margin-top:5px;
+  margin-bottom:5px;
+}
+
+span.mediaplugin_mp3 {
+  display:inline;
+  clear:none;
+  margin:0px;
+  margin-left:0.5em;
+}
+
+
 /***
  *** Admin
  ***/