From 4d8bccf44734a99cafacbec703f73334171e1726 Mon Sep 17 00:00:00 2001 From: moodler Date: Tue, 25 Nov 2008 07:52:52 +0000 Subject: [PATCH] filter/mediaplugin MDL-16650 Added a Youtube search/replace to turn links to Youtube into embedded videos Could use a quick security review! --- filter/mediaplugin/filter.php | 24 ++++++++++++++++++++++++ filter/mediaplugin/filtersettings.php | 2 ++ lang/en_utf8/admin.php | 1 + 3 files changed, 27 insertions(+) diff --git a/filter/mediaplugin/filter.php b/filter/mediaplugin/filter.php index 8b106a7695..a6c2f50501 100644 --- a/filter/mediaplugin/filter.php +++ b/filter/mediaplugin/filter.php @@ -85,6 +85,11 @@ function mediaplugin_filter($courseid, $text) { $newtext = preg_replace_callback($search, 'mediaplugin_filter_real_callback', $newtext); } + if ($CFG->filter_mediaplugin_enable_youtube) { + $search = '/]*>(.*?)<\/a>/is'; + $newtext = preg_replace_callback($search, 'mediaplugin_filter_youtube_callback', $newtext); + } + if (is_null($newtext) or $newtext === $text) { // error or not filtered return $text; @@ -202,6 +207,25 @@ document.write(\''; } +/** + * Change links to Youtube into embedded Youtube videos + */ +function mediaplugin_filter_youtube_callback($link, $autostart=false) { + + $site = addslashes_js($link[1]); + $url = addslashes_js($link[2]); + $info = addslashes_js($link[3]); + + return '
'. + ''. + ''. + ''. + ''. + ''. + '
'; +} + /** * Embed video using window media player if available */ diff --git a/filter/mediaplugin/filtersettings.php b/filter/mediaplugin/filtersettings.php index 40d5fb07fb..bb5893d066 100644 --- a/filter/mediaplugin/filtersettings.php +++ b/filter/mediaplugin/filtersettings.php @@ -20,4 +20,6 @@ $settings->add(new admin_setting_configcheckbox('filter_mediaplugin_enable_rpm', $settings->add(new admin_setting_configcheckbox('filter_mediaplugin_enable_rm', get_string('mediapluginrm','admin'), '', 1)); +$settings->add(new admin_setting_configcheckbox('filter_mediaplugin_enable_youtube', get_string('mediapluginyoutube','admin'), '', 1)); + ?> diff --git a/lang/en_utf8/admin.php b/lang/en_utf8/admin.php index b2a8891930..b0f5caf1ac 100644 --- a/lang/en_utf8/admin.php +++ b/lang/en_utf8/admin.php @@ -509,6 +509,7 @@ $string['mediapluginram'] = 'Enable .ram filter'; $string['mediapluginrm'] = 'Enable .rm filter'; $string['mediapluginrpm'] = 'Enable .rpm filter'; $string['mediapluginswf'] = 'Enable .swf filter'; +$string['mediapluginyoutube'] = 'Enable YouTube links filter'; $string['mediapluginswfnote'] = 'As a default security measure, normal users should not be allowed to embed swf flash files.'; $string['mediapluginwmv'] = 'Enable .wmv filter'; $string['memcachedhosts'] = 'memcached hosts'; -- 2.39.5