From: samhemelryk Date: Mon, 29 Jun 2009 08:05:21 +0000 (+0000) Subject: filter-mediaplugin MDL-16706 Replaced inline JS with new PAGE methods and created... X-Git-Url: http://git.mjollnir.org/gw?a=commitdiff_plain;h=82afb58797e0acdae63ba0c8ab58841a0d214fbc;p=moodle.git filter-mediaplugin MDL-16706 Replaced inline JS with new PAGE methods and created mediaplugin.js --- diff --git a/filter/mediaplugin/filter.php b/filter/mediaplugin/filter.php index 0d4bd16351..ce18d1c347 100644 --- a/filter/mediaplugin/filter.php +++ b/filter/mediaplugin/filter.php @@ -20,7 +20,7 @@ require_once($CFG->libdir.'/filelib.php'); class mediaplugin_filter extends moodle_text_filter { private $eolas_fix_applied = false; function filter($text) { - global $CFG; + global $CFG, $PAGE; // You should never modify parameters passed to a method or function, it's BAD practice. Create a copy instead. // The reason is that you must always be able to refer to the original parameter that was passed. // For this reason, I changed $text = preg_replace(..,..,$text) into $newtext = preg.... (NICOLAS CONNAULT) @@ -108,7 +108,7 @@ class mediaplugin_filter extends moodle_text_filter { } if (!$this->eolas_fix_applied) { - $newtext .= ''; + $PAGE->requires->js('filter/mediaplugin/eolas_fix.js'); $this->eolas_fix_applied = true; } @@ -120,7 +120,7 @@ class mediaplugin_filter extends moodle_text_filter { /// callback filter functions function mediaplugin_filter_mp3_callback($link) { - global $CFG, $THEME; + global $CFG, $THEME, $PAGE; if (!empty($THEME->filter_mediaplugin_colors)) { $c = $THEME->filter_mediaplugin_colors; // You can set this up in your theme/xxx/config.php @@ -137,18 +137,25 @@ function mediaplugin_filter_mp3_callback($link) { $url = addslashes_js($link[1]); - return $link[0]. -'('.get_string('mp3audio', 'mediaplugin').') -'; + $args = Array(); + $args['movie'] = $CFG->wwwroot.'/filter/mediaplugin/mp3player.swf?src='.$url; + $args['width'] = 90; + $args['height'] = 15; + $args['majorversion'] = 6; + $args['build'] = 40; + $args['flashvars'] = $c; + $args['quality'] = 'high'; + $jsoutput = $PAGE->requires->js('filter/mediaplugin/mediaplugin.js')->asap(); + $jsoutput .= $PAGE->requires->data_for_js('FO', $args)->asap(); + $jsoutput .= $PAGE->requires->js_function_call('create_UFO_object', Array($id))->asap(); + + $output = $link[0].'('.get_string('mp3audio', 'mediaplugin').')'.$jsoutput; + + return $output; } function mediaplugin_filter_swf_callback($link) { + global $PAGE; static $count = 0; $count++; $id = 'filter_swf_'.time().$count; //we need something unique because it might be stored in text cache @@ -157,19 +164,25 @@ function mediaplugin_filter_swf_callback($link) { $height = empty($link[4]) ? '300' : $link[4]; $url = addslashes_js($link[1]); - return $link[0]. -'('.get_string('flashanimation', 'mediaplugin').') -'; + $args = Array(); + $args['movie'] = $url; + $args['width'] = $width; + $args['height'] = $height; + $args['majorversion'] = 6; + $args['build'] = 40; + $args['allowscriptaccess'] = 'never'; + $args['quality'] = 'high'; + $jsoutput = $PAGE->requires->js('filter/mediaplugin/mediaplugin.js')->asap(); + $jsoutput .= $PAGE->requires->data_for_js('FO', $args)->asap(); + $jsoutput .= $PAGE->requires->js_function_call('create_UFO_object', Array($id))->asap(); + + $output = $link[0].'('.get_string('flashanimation', 'mediaplugin').')'.$jsoutput; + + return $output; } function mediaplugin_filter_flv_callback($link) { - global $CFG; + global $CFG, $PAGE; static $count = 0; $count++; @@ -179,16 +192,22 @@ function mediaplugin_filter_flv_callback($link) { $height = empty($link[4]) ? '360' : $link[4]; $url = addslashes_js($link[1]); - return $link[0]. -'('.get_string('flashvideo', 'mediaplugin').') -'; + $args = Array(); + $args['movie'] = $CFG->wwwroot.'/filter/mediaplugin/flvplayer.swf?file='.$url; + $args['width'] = $width; + $args['height'] = $height; + $args['majorversion'] = 6; + $args['build'] = 40; + $args['allowscriptaccess'] = 'never'; + $args['quality'] = 'high'; + $args['allowfullscreen'] = 'true'; + $jsoutput = $PAGE->requires->js('filter/mediaplugin/mediaplugin.js')->asap(); + $jsoutput .= $PAGE->requires->data_for_js('FO', $args)->asap(); + $jsoutput .= $PAGE->requires->js_function_call('create_UFO_object', Array($id))->asap(); + + $output = $link[0].'('.get_string('flashvideo', 'mediaplugin').')'.$jsoutput; + + return $output; } function mediaplugin_filter_real_callback($link, $autostart=false) { diff --git a/filter/mediaplugin/mediaplugin.js b/filter/mediaplugin/mediaplugin.js new file mode 100644 index 0000000000..a5886a3654 --- /dev/null +++ b/filter/mediaplugin/mediaplugin.js @@ -0,0 +1,3 @@ +function create_UFO_object(eid) { + UFO.create(FO, eid); +} \ No newline at end of file