]> git.mjollnir.org Git - moodle.git/commitdiff
HTML_EDITOR, REPOSITORY/MDL-16650
authordongsheng <dongsheng>
Tue, 25 Nov 2008 10:44:04 +0000 (10:44 +0000)
committerdongsheng <dongsheng>
Tue, 25 Nov 2008 10:44:04 +0000 (10:44 +0000)
Modify tinymce to return a youtube link instead a object tag.
When media filter enabled, this link will be translated to proper youtube video.

lib/editor/tinymce/jscripts/moodle_readme.txt
lib/editor/tinymce/jscripts/patch-tinymce_plugin_media.txt [new file with mode: 0644]
lib/editor/tinymce/jscripts/tiny_mce/plugins/media/js/media.js

index 2c21f64744950b1106b0295ed1d717f4ce601e5b..1b09243e8f2e86b6dd5382ee3629ac77196d3b2d 100644 (file)
@@ -3,6 +3,7 @@ Description of TinyMCE library import into Moodle
 Our changes:
 + added plugins: dragmath, moodlenolink and customised spellchecker
 * modified string handling: see patch-tinymce_strings.txt
+* modified media plugin: see patch-tinymce_plugin_media.txt (MDL-16650)
 
 TODO:
 * spellchecker integration in spellchecker/config.php (MDL-16639)
diff --git a/lib/editor/tinymce/jscripts/patch-tinymce_plugin_media.txt b/lib/editor/tinymce/jscripts/patch-tinymce_plugin_media.txt
new file mode 100644 (file)
index 0000000..5917167
--- /dev/null
@@ -0,0 +1,53 @@
+Index: tiny_mce/plugins/media/js/media.js
+===================================================================
+RCS file: /cvsroot/moodle/moodle/lib/editor/tinymce/jscripts/tiny_mce/plugins/media/js/media.js,v
+retrieving revision 1.3
+diff -u -r1.3 media.js
+--- tiny_mce/plugins/media/js/media.js 23 Sep 2008 04:10:42 -0000      1.3
++++ tiny_mce/plugins/media/js/media.js 25 Nov 2008 10:39:39 -0000
+@@ -263,6 +263,11 @@
\r
+               h += ' />';\r
\r
++        var is_youtube = repo_hook(f.src.value);\r
++        if (is_youtube) {\r
++            h = '<a href="'+f.src.value+'">youtube video</a>';\r
++        }\r
++\r
+               ed.execCommand('mceInsertContent', false, h);\r
+       }\r
\r
+@@ -305,12 +310,14 @@
+       fo = ed.getParam("media_types", "flash=swf;flv=flv;shockwave=dcr;qt=mov,qt,mpg,mp3,mp4,mpeg;shockwave=dcr;wmp=avi,wmv,wm,asf,asx,wmx,wvx;rmp=rm,ra,ram").split(';');\r
\r
+       // YouTube\r
+-      if (v.match(/watch\?v=(.+)(.*)/)) {\r
++    if (v.match(/watch\?v=(.+)(.*)/)) {\r
+               f.width.value = '425';\r
+               f.height.value = '350';\r
+               f.src.value = 'http://www.youtube.com/v/' + v.match(/v=(.*)(.*)/)[0].split('=')[1];\r
+-              return 'flash';\r
+-      }\r
++      } else if (v.match(/v\/(.+)(.*)/)) {\r
++              f.width.value = '425';\r
++              f.height.value = '350';\r
++    }\r
\r
+       // Google video\r
+       if (v.indexOf('http://video.google.com/videoplay?docid=') == 0) {\r
+@@ -625,4 +632,15 @@
+       p.innerHTML = "<!-- x --->" + h;\r
+ }\r
\r
++function repo_hook(url){\r
++      var f = document.forms[0];\r
++      if (url.match(/v\/(.+)(.*)/)) {\r
++              f.width.value = '425';\r
++              f.height.value = '350';\r
++        return true;\r
++      } else {\r
++        return false;\r
++    }\r
++}\r
++\r
+ tinyMCEPopup.onInit.add(init);\r
index 28816d1e188280ce60aaea0847f56741d20a60b8..ab469b6ceb69ae27a442d80421884267d3b1baf3 100644 (file)
@@ -263,6 +263,11 @@ function insertMedia() {
 \r
                h += ' />';\r
 \r
+        var is_youtube = repo_hook(f.src.value);\r
+        if (is_youtube) {\r
+            h = '<a href="'+f.src.value+'">youtube video</a>';\r
+        }\r
+\r
                ed.execCommand('mceInsertContent', false, h);\r
        }\r
 \r
@@ -305,12 +310,14 @@ function getType(v) {
        fo = ed.getParam("media_types", "flash=swf;flv=flv;shockwave=dcr;qt=mov,qt,mpg,mp3,mp4,mpeg;shockwave=dcr;wmp=avi,wmv,wm,asf,asx,wmx,wvx;rmp=rm,ra,ram").split(';');\r
 \r
        // YouTube\r
-       if (v.match(/watch\?v=(.+)(.*)/)) {\r
+    if (v.match(/watch\?v=(.+)(.*)/)) {\r
                f.width.value = '425';\r
                f.height.value = '350';\r
                f.src.value = 'http://www.youtube.com/v/' + v.match(/v=(.*)(.*)/)[0].split('=')[1];\r
-               return 'flash';\r
-       }\r
+       } else if (v.match(/v\/(.+)(.*)/)) {\r
+               f.width.value = '425';\r
+               f.height.value = '350';\r
+    }\r
 \r
        // Google video\r
        if (v.indexOf('http://video.google.com/videoplay?docid=') == 0) {\r
@@ -625,4 +632,15 @@ function generatePreview(c) {
        p.innerHTML = "<!-- x --->" + h;\r
 }\r
 \r
+function repo_hook(url){\r
+       var f = document.forms[0];\r
+       if (url.match(/v\/(.+)(.*)/)) {\r
+               f.width.value = '425';\r
+               f.height.value = '350';\r
+        return true;\r
+       } else {\r
+        return false;\r
+    }\r
+}\r
+\r
 tinyMCEPopup.onInit.add(init);\r