/**\r
- * $Id: editor_plugin_src.js 201 2007-02-12 15:56:56Z spocke $\r
+ * editor_plugin_src.js\r
*\r
- * @author Moxiecode\r
- * @copyright Copyright © 2004-2007, Moxiecode Systems AB, All rights reserved.\r
+ * Copyright 2009, Moxiecode Systems AB\r
+ * Released under LGPL License.\r
+ *\r
+ * License: http://tinymce.moxiecode.com/license\r
+ * Contributing: http://tinymce.moxiecode.com/contributing\r
*/\r
\r
-/* Import plugin specific language pack */\r
-tinyMCE.importPluginLanguagePack('advimage');\r
-\r
-var TinyMCE_AdvancedImagePlugin = {\r
- getInfo : function() {\r
- return {\r
- longname : 'Advanced image',\r
- author : 'Moxiecode Systems AB',\r
- authorurl : 'http://tinymce.moxiecode.com',\r
- infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/advimage',\r
- version : tinyMCE.majorVersion + "." + tinyMCE.minorVersion\r
- };\r
- },\r
-\r
- getControlHTML : function(cn) {\r
- switch (cn) {\r
- case "image":\r
- return tinyMCE.getButtonHTML(cn, 'lang_image_desc', '{$themeurl}/images/image.gif', 'mceAdvImage');\r
- }\r
-\r
- return "";\r
- },\r
-\r
- execCommand : function(editor_id, element, command, user_interface, value) {\r
- switch (command) {\r
- case "mceAdvImage":\r
- var template = new Array();\r
-\r
- template['file'] = '../../plugins/advimage/image.htm';\r
- template['width'] = 480;\r
- template['height'] = 380;\r
-\r
- // Language specific width and height addons\r
- template['width'] += tinyMCE.getLang('lang_advimage_delta_width', 0);\r
- template['height'] += tinyMCE.getLang('lang_advimage_delta_height', 0);\r
-\r
- var inst = tinyMCE.getInstanceById(editor_id);\r
- var elm = inst.getFocusElement();\r
-\r
- if (elm != null && tinyMCE.getAttrib(elm, 'class').indexOf('mceItem') != -1)\r
- return true;\r
-\r
- tinyMCE.openWindow(template, {editor_id : editor_id, inline : "yes"});\r
-\r
- return true;\r
+(function() {\r
+ tinymce.create('tinymce.plugins.AdvancedImagePlugin', {\r
+ init : function(ed, url) {\r
+ // Register commands\r
+ ed.addCommand('mceAdvImage', function() {\r
+ // Internal image object like a flash placeholder\r
+ if (ed.dom.getAttrib(ed.selection.getNode(), 'class', '').indexOf('mceItem') != -1)\r
+ return;\r
+\r
+ ed.windowManager.open({\r
+ file : url + '/image.htm',\r
+ width : 480 + parseInt(ed.getLang('advimage.delta_width', 0)),\r
+ height : 385 + parseInt(ed.getLang('advimage.delta_height', 0)),\r
+ inline : 1\r
+ }, {\r
+ plugin_url : url\r
+ });\r
+ });\r
+\r
+ // Register buttons\r
+ ed.addButton('image', {\r
+ title : 'advimage.image_desc',\r
+ cmd : 'mceAdvImage'\r
+ });\r
+ },\r
+\r
+ getInfo : function() {\r
+ return {\r
+ longname : 'Advanced image',\r
+ author : 'Moxiecode Systems AB',\r
+ authorurl : 'http://tinymce.moxiecode.com',\r
+ infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/advimage',\r
+ version : tinymce.majorVersion + "." + tinymce.minorVersion\r
+ };\r
}\r
+ });\r
\r
- return false;\r
- },\r
-\r
- cleanup : function(type, content) {\r
- switch (type) {\r
- case "insert_to_editor_dom":\r
- var imgs = content.getElementsByTagName("img"), src, i;\r
- for (i=0; i<imgs.length; i++) {\r
- var onmouseover = tinyMCE.cleanupEventStr(tinyMCE.getAttrib(imgs[i], 'onmouseover'));\r
- var onmouseout = tinyMCE.cleanupEventStr(tinyMCE.getAttrib(imgs[i], 'onmouseout'));\r
-\r
- if ((src = this._getImageSrc(onmouseover)) != "") {\r
- if (tinyMCE.getParam('convert_urls'))\r
- src = tinyMCE.convertRelativeToAbsoluteURL(tinyMCE.settings['base_href'], src);\r
-\r
- imgs[i].setAttribute('onmouseover', "this.src='" + src + "';");\r
- }\r
-\r
- if ((src = this._getImageSrc(onmouseout)) != "") {\r
- if (tinyMCE.getParam('convert_urls'))\r
- src = tinyMCE.convertRelativeToAbsoluteURL(tinyMCE.settings['base_href'], src);\r
-\r
- imgs[i].setAttribute('onmouseout', "this.src='" + src + "';");\r
- }\r
- }\r
- break;\r
-\r
- case "get_from_editor_dom":\r
- var imgs = content.getElementsByTagName("img");\r
- for (var i=0; i<imgs.length; i++) {\r
- var onmouseover = tinyMCE.cleanupEventStr(tinyMCE.getAttrib(imgs[i], 'onmouseover'));\r
- var onmouseout = tinyMCE.cleanupEventStr(tinyMCE.getAttrib(imgs[i], 'onmouseout'));\r
-\r
- if ((src = this._getImageSrc(onmouseover)) != "") {\r
- if (tinyMCE.getParam('convert_urls'))\r
- src = eval(tinyMCE.settings['urlconverter_callback'] + "(src, null, true);");\r
-\r
- imgs[i].setAttribute('onmouseover', "this.src='" + src + "';");\r
- }\r
-\r
- if ((src = this._getImageSrc(onmouseout)) != "") {\r
- if (tinyMCE.getParam('convert_urls'))\r
- src = eval(tinyMCE.settings['urlconverter_callback'] + "(src, null, true);");\r
-\r
- imgs[i].setAttribute('onmouseout', "this.src='" + src + "';");\r
- }\r
- }\r
- break;\r
- }\r
-\r
- return content;\r
- },\r
-\r
- handleNodeChange : function(editor_id, node, undo_index, undo_levels, visual_aid, any_selection) {\r
- if (node == null)\r
- return;\r
-\r
- do {\r
- if (node.nodeName == "IMG" && tinyMCE.getAttrib(node, 'class').indexOf('mceItem') == -1) {\r
- tinyMCE.switchClass(editor_id + '_advimage', 'mceButtonSelected');\r
- return true;\r
- }\r
- } while ((node = node.parentNode));\r
-\r
- tinyMCE.switchClass(editor_id + '_advimage', 'mceButtonNormal');\r
-\r
- return true;\r
- },\r
-\r
- /**\r
- * Returns the image src from a scripted mouse over image str.\r
- *\r
- * @param {string} s String to get real src from.\r
- * @return Image src from a scripted mouse over image str.\r
- * @type string\r
- */\r
- _getImageSrc : function(s) {\r
- var sr, p = -1;\r
-\r
- if (!s)\r
- return "";\r
-\r
- if ((p = s.indexOf('this.src=')) != -1) {\r
- sr = s.substring(p + 10);\r
- sr = sr.substring(0, sr.indexOf('\''));\r
-\r
- return sr;\r
- }\r
-\r
- return "";\r
- }\r
-};\r
-\r
-tinyMCE.addPlugin("advimage", TinyMCE_AdvancedImagePlugin);\r
+ // Register plugin\r
+ tinymce.PluginManager.add('advimage', tinymce.plugins.AdvancedImagePlugin);\r
+})();
\ No newline at end of file