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 000000000..9e9d5da9d Binary files /dev/null and b/src/Orchard.Web/Modules/TinyMce/Scripts/plugins/addmedia/img/picture_add.png differ diff --git a/src/Orchard.Web/Modules/TinyMce/Scripts/plugins/addmedia/js/addmedia.js b/src/Orchard.Web/Modules/TinyMce/Scripts/plugins/addmedia/js/addmedia.js new file mode 100644 index 000000000..85ad2bea1 --- /dev/null +++ b/src/Orchard.Web/Modules/TinyMce/Scripts/plugins/addmedia/js/addmedia.js @@ -0,0 +1 @@ +tinyMCEPopup.requireLangPack(); \ No newline at end of file diff --git a/src/Orchard.Web/Modules/TinyMce/Scripts/plugins/addmedia/langs/en_dlg.js b/src/Orchard.Web/Modules/TinyMce/Scripts/plugins/addmedia/langs/en_dlg.js new file mode 100644 index 000000000..3a6a0b493 --- /dev/null +++ b/src/Orchard.Web/Modules/TinyMce/Scripts/plugins/addmedia/langs/en_dlg.js @@ -0,0 +1,4 @@ +tinyMCE.addI18n('en.addmedia_dlg',{ +title:"Add Media", +path_label:"Media File Path" +}); \ No newline at end of file diff --git a/src/Orchard.Web/Modules/TinyMce/TinyMce.csproj b/src/Orchard.Web/Modules/TinyMce/TinyMce.csproj index 63c109849..8045c5d64 100644 --- a/src/Orchard.Web/Modules/TinyMce/TinyMce.csproj +++ b/src/Orchard.Web/Modules/TinyMce/TinyMce.csproj @@ -135,6 +135,17 @@ + + + + + + + + + + + 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: "" });