Hi all,
This has been a much requested feature so I thought I'd spend a few minutes working on a way to allow the user to control the size of embedded .swf files.
Attached is a patch for the multimedia plugin to allow a user to set the required size to display a Flash .swf file.
I've replaced the yellow code below with the green code in filter/mediaplugin/filter.php (if you're going to make the changes manually remove the minuses and pluses from the lines).
I've tested this on my site.
I'll post instructions for use in a reply to this post.
Jamie
if (empty($CFG->filter_mediaplugin_ignore_swf)) {
- $search = '/<a(.*?)href=\"([^<]+)\.swf\"([^>]*)>(.*?)<\/a>/is';
-
-
$replace = '\\0<p class="mediaplugin swf"><object
classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"';
-
$replace .= '
codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,0,0"
';
- $replace .= ' width="400" height="300" id="mp3player">';
- $replace .= " <param name=\"movie\" value=\"\\2.swf\" />";
- $replace .= ' <param name="quality" value="high" />';
- $replace .= ' <param name="AllowScriptAccess" value="never" />';
- $replace .= " <embed src=\"\\2.swf\" ";
-
$replace .= ' quality="high" width="400" height="300"
name="flashfilter" AllowScriptAccess="never" ';
- $replace .= ' type="application/x-shockwave-flash" ';
- $replace .= ' pluginspage="http://www.macromedia.com/go/getflashplayer">';
- $replace .= '</embed>';
- $replace .= '</object></p>';
+
$search =
array('/<a(.*?)href=\"([^<]+)\.swf\"([^>]*)>(.*?)<\/a>/is',
+
'/<a(.*?)href=\"([^<]+)\.swf\?w=([0-9]*?)&h=([0-9]*?)\"([^>]*)>(.*?)<\/a>/is',
+
'/<a(.*?)href=\"([^<]+)\.swf\?h=([0-9]*?)&w=([0-9]*?)\"([^>]*)>(.*?)<\/a>/is');
+
+
$replace = array('\\0<p class="mediaplugin swf"><object
classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"'
+
. '
codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,0,0"
'
+
. ' width="400" height="300" id="mp3player">'
+
. " <param name=\"movie\" value=\"\\2.swf\" />"
+
. ' <param name="quality" value="high" />'
+
. ' <param name="AllowScriptAccess" value="never" />'
+
. " <embed src=\"\\2.swf\" "
+
. ' quality="high" width="400" height="300" name="flashfilter"
AllowScriptAccess="never" '
+
. ' type="application/x-shockwave-flash" '
+
. ' pluginspage="http://www.macromedia.com/go/getflashplayer">'
+
. '</embed>'
+
. '</object></p>',
+
+
'\\0<p class="mediaplugin swf"><object
classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"'
+
. '
codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,0,0"
'
+
. ' width="\\3" height="\\4" id="mp3player">'
+
. " <param name=\"movie\" value=\"\\2.swf\" />"
+
. ' <param name="quality" value="high" />'
+
. ' <param name="AllowScriptAccess" value="never" />'
+
. " <embed src=\"\\2.swf\" "
+
. ' quality="high" width="\3" height="\4" name="flashfilter"
AllowScriptAccess="never" '
+
. ' type="application/x-shockwave-flash" '
+
. ' pluginspage="http://www.macromedia.com/go/getflashplayer">'
+
. '</embed>'
+
. '</object></p>',
+
+
'\\0<p class="mediaplugin swf"><object
classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"'
+
. '
codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,0,0"
'
+
. ' width="\\4" height="\\3" id="mp3player">'
+
. " <param name=\"movie\" value=\"\\2.swf\" />"
+
. ' <param name="quality" value="high" />'
+
. ' <param name="AllowScriptAccess" value="never" />'
+
. " <embed src=\"\\2.swf\" "
+
. ' quality="high" width="\4" height="\3" name="flashfilter"
AllowScriptAccess="never" '
+
. ' type="application/x-shockwave-flash" '
+
. ' pluginspage="http://www.macromedia.com/go/getflashplayer">'
+
. '</embed>'
+
. '</object></p>');
+
$text = preg_replace($search, $replace, $text);
}