]> git.mjollnir.org Git - moodle.git/commitdiff
filter/mediaplugin MDL-19006 Add auto-embedding of images that are linked to.
authormoodler <moodler>
Wed, 29 Apr 2009 07:30:41 +0000 (07:30 +0000)
committermoodler <moodler>
Wed, 29 Apr 2009 07:30:41 +0000 (07:30 +0000)
filter/mediaplugin/filter.php
filter/mediaplugin/filtersettings.php
lang/en_utf8/admin.php

index f42f8f7b4cded904eaefb2a3b0ae5324cd80b654..9368d102d5c92a7a3138690878cebaf6d651915e 100644 (file)
@@ -92,6 +92,15 @@ class mediaplugin_filter extends moodle_text_filter {
             $newtext = preg_replace_callback($search, 'mediaplugin_filter_youtube_callback', $newtext);
         }
 
+        if ($CFG->filter_mediaplugin_enable_img) {
+            $search = '/<a.*?href="([^<]+\.jpg)"[^>]*>(.*?)<\/a>/is';
+            $newtext = preg_replace_callback($search, 'mediaplugin_filter_img_callback', $newtext);
+            $search = '/<a.*?href="([^<]+\.png)"[^>]*>(.*?)<\/a>/is';
+            $newtext = preg_replace_callback($search, 'mediaplugin_filter_img_callback', $newtext);
+            $search = '/<a.*?href="([^<]+\.gif)"[^>]*>(.*?)<\/a>/is';
+            $newtext = preg_replace_callback($search, 'mediaplugin_filter_img_callback', $newtext);
+        }
+
         if (empty($newtext) or $newtext === $text) {
             // error or not filtered
             unset($newtext);
@@ -230,6 +239,16 @@ function mediaplugin_filter_youtube_callback($link, $autostart=false) {
            '</object>';
 }
 
+/**
+ * Change links to images into embedded images
+ */
+function mediaplugin_filter_img_callback($link, $autostart=false) {
+    $url = addslashes_js($link[1]);
+    $info = addslashes_js($link[2]);
+
+    return '<img class="mediaplugin mediaplugin_img" alt="" title="'.$info.'" src="'.$url.'" />';
+}
+
 /**
  * Embed video using window media player if available
  */
index bb5893d066a82b7994b7f9564c9b7bdf4b236bdb..3068a79c44d1b650870ef62ee332662d349487c1 100644 (file)
@@ -22,4 +22,6 @@ $settings->add(new admin_setting_configcheckbox('filter_mediaplugin_enable_rm',
 
 $settings->add(new admin_setting_configcheckbox('filter_mediaplugin_enable_youtube', get_string('mediapluginyoutube','admin'), '', 1));
 
+$settings->add(new admin_setting_configcheckbox('filter_mediaplugin_enable_img', get_string('mediapluginimg','admin'), '', 1));
+
 ?>
index 2ec37196f17c0ca24e24397d6b16b8d9b5861e54..fdb18f767322e138516be846e2187d40eae60a2b 100644 (file)
@@ -560,6 +560,7 @@ $string['mediapluginrm'] = 'Enable .rm filter';
 $string['mediapluginrpm'] = 'Enable .rpm filter';
 $string['mediapluginswf'] = 'Enable .swf filter';
 $string['mediapluginyoutube'] = 'Enable YouTube links filter';
+$string['mediapluginimg'] = 'Enable auto-embedding of linked images';
 $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';