From f812a4d3731b38c773f42f9cea7292e4d3976fd1 Mon Sep 17 00:00:00 2001 From: Nathan Heskew Date: Wed, 3 Mar 2010 14:55:22 -0800 Subject: [PATCH] Adding an AddMedia TinyMCE plugin, that doesn't yet do anything --HG-- branch : dev --- .../Scripts/plugins/addmedia/addmedia.htm | 36 ++++++++++ .../Scripts/plugins/addmedia/editor_plugin.js | 68 ++++++++++++++++++ .../plugins/addmedia/img/picture_add.png | Bin 0 -> 750 bytes .../Scripts/plugins/addmedia/js/addmedia.js | 1 + .../Scripts/plugins/addmedia/langs/en_dlg.js | 4 ++ .../Modules/TinyMce/TinyMce.csproj | 11 +++ .../EditorTemplates/TinyMceTextEditor.ascx | 4 +- 7 files changed, 122 insertions(+), 2 deletions(-) create mode 100644 src/Orchard.Web/Modules/TinyMce/Scripts/plugins/addmedia/addmedia.htm create mode 100644 src/Orchard.Web/Modules/TinyMce/Scripts/plugins/addmedia/editor_plugin.js create mode 100644 src/Orchard.Web/Modules/TinyMce/Scripts/plugins/addmedia/img/picture_add.png create mode 100644 src/Orchard.Web/Modules/TinyMce/Scripts/plugins/addmedia/js/addmedia.js create mode 100644 src/Orchard.Web/Modules/TinyMce/Scripts/plugins/addmedia/langs/en_dlg.js diff --git a/src/Orchard.Web/Modules/TinyMce/Scripts/plugins/addmedia/addmedia.htm b/src/Orchard.Web/Modules/TinyMce/Scripts/plugins/addmedia/addmedia.htm new file mode 100644 index 000000000..4d8ff00a1 --- /dev/null +++ b/src/Orchard.Web/Modules/TinyMce/Scripts/plugins/addmedia/addmedia.htm @@ -0,0 +1,36 @@ + + + + {#addmedia_dlg.title} + + + + +
+ +
+ + + + + +
+ + +
+
+
+ + +
+
+ +
+
+
+ + diff --git a/src/Orchard.Web/Modules/TinyMce/Scripts/plugins/addmedia/editor_plugin.js b/src/Orchard.Web/Modules/TinyMce/Scripts/plugins/addmedia/editor_plugin.js new file mode 100644 index 000000000..9ce4962e2 --- /dev/null +++ b/src/Orchard.Web/Modules/TinyMce/Scripts/plugins/addmedia/editor_plugin.js @@ -0,0 +1,68 @@ +(function() { + // Load plugin specific language pack + tinymce.PluginManager.requireLangPack('dlg'); + + tinymce.create('tinymce.plugins.Orchard.AddMedia', { + /** + * Initializes the plugin, this will be executed after the plugin has been created. + * This call is done before the editor instance has finished it's initialization so use the onInit event + * of the editor instance to intercept that event. + * + * @param {tinymce.Editor} ed Editor instance that the plugin is initialized in. + * @param {string} url Absolute URL to where the plugin is located. + */ + init: function(ed, url) { + // Register the command so that it can be invoked by using tinyMCE.activeEditor.execCommand('mceExample'); + ed.addCommand('mceAddMedia', function() { + ed.windowManager.open({ + file: url + '/addmedia.htm', + width: 480 + parseInt(ed.getLang('addmedia.delta_width', 0)), + height: 110 + parseInt(ed.getLang('addmedia.delta_height', 0)), + inline: 1 + }, { + plugin_url: url, // Plugin absolute URL + }); + }); + + // Register example button + ed.addButton('addmedia', { + title: 'addmedia_desc', + cmd: 'mceAddMedia', + image: url + '/img/picture_add.png' + }); + }, + + /** + * Creates control instances based in the incomming name. This method is normally not + * needed since the addButton method of the tinymce.Editor class is a more easy way of adding buttons + * but you sometimes need to create more complex controls like listboxes, split buttons etc then this + * method can be used to create those. + * + * @param {String} n Name of the control to create. + * @param {tinymce.ControlManager} cm Control manager to use inorder to create new control. + * @return {tinymce.ui.Control} New control instance or null if no control was created. + */ + createControl: function(n, cm) { + return null; + }, + + /** + * Returns information about the plugin as a name/value array. + * The current keys are longname, author, authorurl, infourl and version. + * + * @return {Object} Name/value array containing information about the plugin. + */ + getInfo: function() { + return { + longname: 'Orchard AddMedia Plugin', + author: 'Nathan Heskew', + authorurl: 'http://orchardproject.net', + infourl: 'http://orchardproject.net', + version: '0.1' + }; + } + }); + + // Register plugin + tinymce.PluginManager.add('addmedia', tinymce.plugins.Orchard.AddMedia); +})(); \ No newline at end of file diff --git a/src/Orchard.Web/Modules/TinyMce/Scripts/plugins/addmedia/img/picture_add.png b/src/Orchard.Web/Modules/TinyMce/Scripts/plugins/addmedia/img/picture_add.png new file mode 100644 index 0000000000000000000000000000000000000000..9e9d5da9d1e5c3fbd108265e178c5d1ea779b5b9 GIT binary patch literal 750 zcmeAS@N?(olHy`uVBq!ia0vp^A|TAc3?z4jzqJQa%*9TgAsieWw;%dHU|?WW3-AeX z{r~^JPqpE~&FAK z-M0(Rb{)F2|M1OSM=!76c4f|%D^pLNn6v6)%Zf`S%Pur6JTrO0+1iDBU(7s{Hh=f? z87H%*pGcm)Wd-Z!G>h=WHZ(ewLe#pi7A?=&;TbAFc*-+86 z?0D^>n-#0(H?B^sUY%XL=xEja>s71#%I97yo_n}tnOEk#Sy?leW=&hXzRf;;mP5+q ziCNRUbEkyIPwHv!c8r_Qnbzmu&>S|a+O(`GE}_dKyk9rCMa>QWe}Xi&D$;i?WLqoP$l+HeFr-RCm(T#W6%;YI4E?-h`y*4_X-c z(pD%~+w=2$;4E-pwX85HJ)5esG_+=q&Ci6UIX1J@jDkLSbye+q*TmtNYMiMWnk(BY zpx&aee$&=9tNK<>O_b<39Ez>4mdQo&kQ2+FB+ihb}Tj zUO0T%`qHs$_6iynHhqF>8ag^US_}1(o+#<12pnz_U}?-KEX=EIcG;jHZLiOAq`R=V zxZ9a!W~8Npg5&)ew + + + + + + + + + + + diff --git a/src/Orchard.Web/Modules/TinyMce/Views/EditorTemplates/TinyMceTextEditor.ascx b/src/Orchard.Web/Modules/TinyMce/Views/EditorTemplates/TinyMceTextEditor.ascx index 662a464b6..8b9f14733 100644 --- a/src/Orchard.Web/Modules/TinyMce/Views/EditorTemplates/TinyMceTextEditor.ascx +++ b/src/Orchard.Web/Modules/TinyMce/Views/EditorTemplates/TinyMceTextEditor.ascx @@ -7,10 +7,10 @@ theme: "advanced", mode: "specific_textareas", editor_selector: "html", - plugins: "fullscreen,autoresize,searchreplace", + plugins: "fullscreen,autoresize,searchreplace,addmedia", theme_advanced_toolbar_location: "top", theme_advanced_toolbar_align: "left", - theme_advanced_buttons1: "search,replace,|,cut,copy,paste,|,undo,redo,|,image,|,link,unlink,charmap,emoticon,codeblock,|,bold,italic,|,numlist,bullist,formatselect,|,code,fullscreen", + theme_advanced_buttons1: "search,replace,|,cut,copy,paste,|,undo,redo,|,image,addmedia,|,link,unlink,charmap,emoticon,codeblock,|,bold,italic,|,numlist,bullist,formatselect,|,code,fullscreen", theme_advanced_buttons2: "", theme_advanced_buttons3: "" });