From f70e3c08da438636b8d47581e8ade41c8290508e Mon Sep 17 00:00:00 2001 From: Andrew Ozz Date: Wed, 6 May 2015 05:33:26 +0000 Subject: [PATCH] TinyMCE: work-around a bug in the tags matching regex. For 4.1. Built from https://develop.svn.wordpress.org/branches/4.1@32371 git-svn-id: http://core.svn.wordpress.org/branches/4.1@32341 1a063a9b-81f0-0310-95a4-ce76da25c4cd --- .../js/tinymce/plugins/wordpress/plugin.js | 4 ++++ .../tinymce/plugins/wordpress/plugin.min.js | 2 +- wp-includes/js/tinymce/wp-tinymce.js.gz | Bin 136227 -> 136244 bytes wp-includes/version.php | 2 +- 4 files changed, 6 insertions(+), 2 deletions(-) diff --git a/wp-includes/js/tinymce/plugins/wordpress/plugin.js b/wp-includes/js/tinymce/plugins/wordpress/plugin.js index f3af6490ce..2ea2aeb0bc 100644 --- a/wp-includes/js/tinymce/plugins/wordpress/plugin.js +++ b/wp-includes/js/tinymce/plugins/wordpress/plugin.js @@ -106,6 +106,10 @@ tinymce.PluginManager.add( 'wordpress', function( editor ) { '' ); } + + if ( e.content.indexOf( '0&&("hide"===b?(a.hide(),f+=30):(a.show(),f-=30))}),f&&!d&&(tinymce.Env.iOS||(c=a.getContentAreaContainer().firstChild,j.setStyle(c,"height",c.clientHeight+f)),"hide"===b?(setUserSetting("hidetb","0"),g&&g.active(!1)):(setUserSetting("hidetb","1"),g&&g.active(!0))),a.fire("wp-toolbar-toggle"))}function c(a){return a.replace(/\[embed\]([\s\S]+?)\[\/embed\][\s\u00a0]*/g,function(a,b){return''+b+''})}function d(a){return a.replace(/]+>/g,function(a){if(-1!==a.indexOf('class="wp-oembed')){var b=a.match(/alt="([^\"]+)"/);b[1]&&(a="[embed]"+b[1]+"[/embed]")}return a})}function e(b,c){var d,e,f,g,h;f=a.dom.getViewPort(a.getWin()),d=j.getPos(a.getContentAreaContainer()),e=a.dom.getPos(b),g=Math.max(e.x-f.x,0)+d.x,h=Math.max(e.y-f.y,0)+d.y,j.setStyles(c,{top:h+5+"px",left:g+5+"px",display:"block"})}function f(){j.hide(j.select("#wp_editbtns, #wp_gallerybtns"))}var g,h,i,j=tinymce.DOM,k=0;return"undefined"!=typeof window.jQuery&&window.jQuery(document).triggerHandler("tinymce-editor-setup",[a]),a.addButton("wp_adv",{tooltip:"Toolbar Toggle",cmd:"WP_Adv",onPostRender:function(){g=this,g.active("1"===getUserSetting("hidetb")?!0:!1)}}),a.on("PostRender",function(){a.getParam("wordpress_adv_hidden",!0)&&"0"===getUserSetting("hidetb","0")&&b("hide")}),a.addCommand("WP_Adv",function(){b()}),a.on("focus",function(){window.wpActiveEditor=a.id}),a.on("BeforeSetContent",function(b){var c;b.content&&(-1!==b.content.indexOf("/g,function(a,b){return''})),-1!==b.content.indexOf("")&&(c=a.editorManager.i18n.translate("Page break"),b.content=b.content.replace(//g,'')))}),a.on("PostProcess",function(a){a.get&&(a.content=a.content.replace(/]+>/g,function(a){var b,c="";return-1!==a.indexOf('data-wp-more="more"')?((b=a.match(/data-wp-more-text="([^"]+)"/))&&(c=b[1]),a=""):-1!==a.indexOf('data-wp-more="nextpage"')&&(a=""),a}))}),a.on("ResolveName",function(b){var c;"IMG"===b.target.nodeName&&(c=a.dom.getAttrib(b.target,"data-wp-more"))&&(b.name=c)}),a.addCommand("WP_More",function(b){var c,d,e,f="wp-more-tag",g=a.dom,h=a.selection.getNode();return b=b||"more",f+=" mce-wp-"+b,e="more"===b?"Read more...":"Next page",e=a.editorManager.i18n.translate(e),d='',"BODY"===h.nodeName||"P"===h.nodeName&&"BODY"===h.parentNode.nodeName?void a.insertContent(d):(c=g.getParent(h,function(a){return a.parentNode&&"BODY"===a.parentNode.nodeName?!0:!1},a.getBody()),void(c&&("P"===c.nodeName?c.appendChild(g.create("p",null,d).firstChild):g.insertAfter(g.create("p",null,d),c),a.nodeChanged())))}),a.addCommand("WP_Code",function(){a.formatter.toggle("code")}),a.addCommand("WP_Page",function(){a.execCommand("WP_More","nextpage")}),a.addCommand("WP_Help",function(){a.windowManager.open({url:tinymce.baseURL+"/wp-mce-help.php",title:"Keyboard Shortcuts",width:450,height:420,classes:"wp-help",buttons:{text:"Close",onclick:"close"}})}),a.addCommand("WP_Medialib",function(){"undefined"!=typeof wp&&wp.media&&wp.media.editor&&wp.media.editor.open(a.id)}),a.addButton("wp_more",{tooltip:"Insert Read More tag",onclick:function(){a.execCommand("WP_More","more")}}),a.addButton("wp_page",{tooltip:"Page break",onclick:function(){a.execCommand("WP_More","nextpage")}}),a.addButton("wp_help",{tooltip:"Keyboard Shortcuts",cmd:"WP_Help"}),a.addButton("wp_code",{tooltip:"Code",cmd:"WP_Code",stateSelector:"code"}),"undefined"!=typeof wp&&wp.media&&wp.media.editor&&a.addMenuItem("add_media",{text:"Add Media",icon:"wp-media-library",context:"insert",cmd:"WP_Medialib"}),a.addMenuItem("wp_more",{text:"Insert Read More tag",icon:"wp_more",context:"insert",onclick:function(){a.execCommand("WP_More","more")}}),a.addMenuItem("wp_page",{text:"Page break",icon:"wp_page",context:"insert",onclick:function(){a.execCommand("WP_More","nextpage")}}),a.on("BeforeExecCommand",function(b){!tinymce.Env.webkit||"InsertUnorderedList"!==b.command&&"InsertOrderedList"!==b.command||(i||(i=a.dom.create("style",{type:"text/css"},"#tinymce,#tinymce span,#tinymce li,#tinymce li>span,#tinymce p,#tinymce p>span{font:medium sans-serif;color:#000;line-height:normal;}")),a.getDoc().head.appendChild(i))}),a.on("ExecCommand",function(b){tinymce.Env.webkit&&i&&("InsertUnorderedList"===b.command||"InsertOrderedList"===b.command)&&a.dom.remove(i)}),a.on("init",function(){var b=tinymce.Env,c=["mceContentBody"],d=a.getDoc(),e=a.dom;tinymce.Env.iOS&&e.addClass(d.documentElement,"ios"),"rtl"===a.getParam("directionality")&&(c.push("rtl"),e.setAttrib(d.documentElement,"dir","rtl")),b.ie?9===parseInt(b.ie,10)?c.push("ie9"):8===parseInt(b.ie,10)?c.push("ie8"):b.ie<8&&c.push("ie7"):b.webkit&&c.push("webkit"),c.push("wp-editor"),tinymce.each(c,function(a){a&&e.addClass(d.body,a)}),a.on("BeforeSetContent",function(a){a.content&&(a.content=a.content.replace(/

\s*<(p|div|ul|ol|dl|table|blockquote|h[1-6]|fieldset|pre|address)( [^>]*)?>/gi,"<$1$2>"),a.content=a.content.replace(/<\/(p|div|ul|ol|dl|table|blockquote|h[1-6]|fieldset|pre|address)>\s*<\/p>/gi,""))}),"undefined"!=typeof window.jQuery&&window.jQuery(document).triggerHandler("tinymce-editor-init",[a]),window.tinyMCEPreInit&&window.tinyMCEPreInit.dragDropUpload&&e.bind(d,"dragstart dragend dragover drop",function(a){"undefined"!=typeof window.jQuery&&window.jQuery(document).trigger(new window.jQuery.Event(a))}),a.getParam("wp_paste_filters",!0)&&(tinymce.Env.webkit||a.on("PastePreProcess",function(a){a.content=a.content.replace(/(<[^>]+) style="[^"]*"([^>]*>)/gi,"$1$2"),a.content=a.content.replace(/(<[^>]+) data-mce-style=([^>]+>)/gi,"$1 style=$2")}),a.on("PastePostProcess",function(a){tinymce.each(e.select("p",a.node),function(a){e.isEmpty(a)&&e.remove(a)})}))}),"undefined"!=typeof window.jQuery&&a.on("keyup",function(b){var c=b.keyCode||b.charCode;c!==k&&((13===c||8===k||46===k)&&window.jQuery(document).triggerHandler("wpcountwords",[a.getContent({format:"raw"})]),k=c)}),a.on("SaveContent",function(b){return!a.inline&&a.isHidden()?void(b.content=b.element.value):(b.content=b.content.replace(/

(?:
|\u00a0|\uFEFF| )*<\/p>/g,"

 

"),void(a.getParam("wpautop",!0)&&"undefined"!=typeof window.switchEditors&&(b.content=window.switchEditors.pre_wpautop(b.content))))}),a.on("BeforeSetContent",function(a){a.content&&(a.content=a.content.replace(/

(?: |\u00a0|\uFEFF| )+<\/p>/gi,"

"))}),a.on("preInit",function(){a.schema.addValidElements("@[id|accesskey|class|dir|lang|style|tabindex|title|contenteditable|draggable|dropzone|hidden|spellcheck|translate],i,b"),tinymce.Env.iOS&&(a.settings.height=300)}),h="alt+shift",a.addShortcut(h+"+c","","JustifyCenter"),a.addShortcut(h+"+r","","JustifyRight"),a.addShortcut(h+"+l","","JustifyLeft"),a.addShortcut(h+"+j","","JustifyFull"),a.addShortcut(h+"+q","","mceBlockQuote"),a.addShortcut(h+"+u","","InsertUnorderedList"),a.addShortcut(h+"+o","","InsertOrderedList"),a.addShortcut(h+"+n","","mceSpellCheck"),a.addShortcut(h+"+s","","unlink"),a.addShortcut(h+"+m","","WP_Medialib"),a.addShortcut(h+"+z","","WP_Adv"),a.addShortcut(h+"+t","","WP_More"),a.addShortcut(h+"+d","","Strikethrough"),a.addShortcut(h+"+h","","WP_Help"),a.addShortcut(h+"+p","","WP_Page"),a.addShortcut(h+"+x","","WP_Code"),a.addShortcut("ctrl+s","",function(){"undefined"!=typeof wp&&wp.autosave&&wp.autosave.server.triggerSave()}),a.on("init",function(){a.dom.bind(a.getWin(),"scroll",function(){f()}),a.dom.bind(a.getBody(),"dragstart",function(){f()})}),a.on("BeforeExecCommand",function(){f()}),a.on("SaveContent",function(){f()}),a.on("MouseDown",function(a){"IMG"!==a.target.nodeName&&f()}),a.on("keydown",function(a){(a.which===tinymce.util.VK.DELETE||a.which===tinymce.util.VK.BACKSPACE)&&f()}),{_showButtons:e,_hideButtons:f,_setEmbed:c,_getEmbed:d}}); \ No newline at end of file +tinymce.ui.FloatPanel.zIndex=100100,tinymce.PluginManager.add("wordpress",function(a){function b(b){var c,d,e,f=0;d="hide"===b,a.theme.panel&&(e=a.theme.panel.find(".toolbar:not(.menubar)")),!e||e.length<2||"hide"===b&&!e[1].visible()||(!b&&e[1].visible()&&(b="hide"),tinymce.each(e,function(a,c){c>0&&("hide"===b?(a.hide(),f+=30):(a.show(),f-=30))}),f&&!d&&(tinymce.Env.iOS||(c=a.getContentAreaContainer().firstChild,j.setStyle(c,"height",c.clientHeight+f)),"hide"===b?(setUserSetting("hidetb","0"),g&&g.active(!1)):(setUserSetting("hidetb","1"),g&&g.active(!0))),a.fire("wp-toolbar-toggle"))}function c(a){return a.replace(/\[embed\]([\s\S]+?)\[\/embed\][\s\u00a0]*/g,function(a,b){return''+b+''})}function d(a){return a.replace(/]+>/g,function(a){if(-1!==a.indexOf('class="wp-oembed')){var b=a.match(/alt="([^\"]+)"/);b[1]&&(a="[embed]"+b[1]+"[/embed]")}return a})}function e(b,c){var d,e,f,g,h;f=a.dom.getViewPort(a.getWin()),d=j.getPos(a.getContentAreaContainer()),e=a.dom.getPos(b),g=Math.max(e.x-f.x,0)+d.x,h=Math.max(e.y-f.y,0)+d.y,j.setStyles(c,{top:h+5+"px",left:g+5+"px",display:"block"})}function f(){j.hide(j.select("#wp_editbtns, #wp_gallerybtns"))}var g,h,i,j=tinymce.DOM,k=0;return"undefined"!=typeof window.jQuery&&window.jQuery(document).triggerHandler("tinymce-editor-setup",[a]),a.addButton("wp_adv",{tooltip:"Toolbar Toggle",cmd:"WP_Adv",onPostRender:function(){g=this,g.active("1"===getUserSetting("hidetb")?!0:!1)}}),a.on("PostRender",function(){a.getParam("wordpress_adv_hidden",!0)&&"0"===getUserSetting("hidetb","0")&&b("hide")}),a.addCommand("WP_Adv",function(){b()}),a.on("focus",function(){window.wpActiveEditor=a.id}),a.on("BeforeSetContent",function(b){var c;b.content&&(-1!==b.content.indexOf("/g,function(a,b){return''})),-1!==b.content.indexOf("")&&(c=a.editorManager.i18n.translate("Page break"),b.content=b.content.replace(//g,'')),-1!==b.content.indexOf(']+>/g,function(a){var b,c="";return-1!==a.indexOf('data-wp-more="more"')?((b=a.match(/data-wp-more-text="([^"]+)"/))&&(c=b[1]),a=""):-1!==a.indexOf('data-wp-more="nextpage"')&&(a=""),a}))}),a.on("ResolveName",function(b){var c;"IMG"===b.target.nodeName&&(c=a.dom.getAttrib(b.target,"data-wp-more"))&&(b.name=c)}),a.addCommand("WP_More",function(b){var c,d,e,f="wp-more-tag",g=a.dom,h=a.selection.getNode();return b=b||"more",f+=" mce-wp-"+b,e="more"===b?"Read more...":"Next page",e=a.editorManager.i18n.translate(e),d='',"BODY"===h.nodeName||"P"===h.nodeName&&"BODY"===h.parentNode.nodeName?void a.insertContent(d):(c=g.getParent(h,function(a){return a.parentNode&&"BODY"===a.parentNode.nodeName?!0:!1},a.getBody()),void(c&&("P"===c.nodeName?c.appendChild(g.create("p",null,d).firstChild):g.insertAfter(g.create("p",null,d),c),a.nodeChanged())))}),a.addCommand("WP_Code",function(){a.formatter.toggle("code")}),a.addCommand("WP_Page",function(){a.execCommand("WP_More","nextpage")}),a.addCommand("WP_Help",function(){a.windowManager.open({url:tinymce.baseURL+"/wp-mce-help.php",title:"Keyboard Shortcuts",width:450,height:420,classes:"wp-help",buttons:{text:"Close",onclick:"close"}})}),a.addCommand("WP_Medialib",function(){"undefined"!=typeof wp&&wp.media&&wp.media.editor&&wp.media.editor.open(a.id)}),a.addButton("wp_more",{tooltip:"Insert Read More tag",onclick:function(){a.execCommand("WP_More","more")}}),a.addButton("wp_page",{tooltip:"Page break",onclick:function(){a.execCommand("WP_More","nextpage")}}),a.addButton("wp_help",{tooltip:"Keyboard Shortcuts",cmd:"WP_Help"}),a.addButton("wp_code",{tooltip:"Code",cmd:"WP_Code",stateSelector:"code"}),"undefined"!=typeof wp&&wp.media&&wp.media.editor&&a.addMenuItem("add_media",{text:"Add Media",icon:"wp-media-library",context:"insert",cmd:"WP_Medialib"}),a.addMenuItem("wp_more",{text:"Insert Read More tag",icon:"wp_more",context:"insert",onclick:function(){a.execCommand("WP_More","more")}}),a.addMenuItem("wp_page",{text:"Page break",icon:"wp_page",context:"insert",onclick:function(){a.execCommand("WP_More","nextpage")}}),a.on("BeforeExecCommand",function(b){!tinymce.Env.webkit||"InsertUnorderedList"!==b.command&&"InsertOrderedList"!==b.command||(i||(i=a.dom.create("style",{type:"text/css"},"#tinymce,#tinymce span,#tinymce li,#tinymce li>span,#tinymce p,#tinymce p>span{font:medium sans-serif;color:#000;line-height:normal;}")),a.getDoc().head.appendChild(i))}),a.on("ExecCommand",function(b){tinymce.Env.webkit&&i&&("InsertUnorderedList"===b.command||"InsertOrderedList"===b.command)&&a.dom.remove(i)}),a.on("init",function(){var b=tinymce.Env,c=["mceContentBody"],d=a.getDoc(),e=a.dom;tinymce.Env.iOS&&e.addClass(d.documentElement,"ios"),"rtl"===a.getParam("directionality")&&(c.push("rtl"),e.setAttrib(d.documentElement,"dir","rtl")),b.ie?9===parseInt(b.ie,10)?c.push("ie9"):8===parseInt(b.ie,10)?c.push("ie8"):b.ie<8&&c.push("ie7"):b.webkit&&c.push("webkit"),c.push("wp-editor"),tinymce.each(c,function(a){a&&e.addClass(d.body,a)}),a.on("BeforeSetContent",function(a){a.content&&(a.content=a.content.replace(/

\s*<(p|div|ul|ol|dl|table|blockquote|h[1-6]|fieldset|pre|address)( [^>]*)?>/gi,"<$1$2>"),a.content=a.content.replace(/<\/(p|div|ul|ol|dl|table|blockquote|h[1-6]|fieldset|pre|address)>\s*<\/p>/gi,""))}),"undefined"!=typeof window.jQuery&&window.jQuery(document).triggerHandler("tinymce-editor-init",[a]),window.tinyMCEPreInit&&window.tinyMCEPreInit.dragDropUpload&&e.bind(d,"dragstart dragend dragover drop",function(a){"undefined"!=typeof window.jQuery&&window.jQuery(document).trigger(new window.jQuery.Event(a))}),a.getParam("wp_paste_filters",!0)&&(tinymce.Env.webkit||a.on("PastePreProcess",function(a){a.content=a.content.replace(/(<[^>]+) style="[^"]*"([^>]*>)/gi,"$1$2"),a.content=a.content.replace(/(<[^>]+) data-mce-style=([^>]+>)/gi,"$1 style=$2")}),a.on("PastePostProcess",function(a){tinymce.each(e.select("p",a.node),function(a){e.isEmpty(a)&&e.remove(a)})}))}),"undefined"!=typeof window.jQuery&&a.on("keyup",function(b){var c=b.keyCode||b.charCode;c!==k&&((13===c||8===k||46===k)&&window.jQuery(document).triggerHandler("wpcountwords",[a.getContent({format:"raw"})]),k=c)}),a.on("SaveContent",function(b){return!a.inline&&a.isHidden()?void(b.content=b.element.value):(b.content=b.content.replace(/

(?:
|\u00a0|\uFEFF| )*<\/p>/g,"

 

"),void(a.getParam("wpautop",!0)&&"undefined"!=typeof window.switchEditors&&(b.content=window.switchEditors.pre_wpautop(b.content))))}),a.on("BeforeSetContent",function(a){a.content&&(a.content=a.content.replace(/

(?: |\u00a0|\uFEFF| )+<\/p>/gi,"

"))}),a.on("preInit",function(){a.schema.addValidElements("@[id|accesskey|class|dir|lang|style|tabindex|title|contenteditable|draggable|dropzone|hidden|spellcheck|translate],i,b"),tinymce.Env.iOS&&(a.settings.height=300)}),h="alt+shift",a.addShortcut(h+"+c","","JustifyCenter"),a.addShortcut(h+"+r","","JustifyRight"),a.addShortcut(h+"+l","","JustifyLeft"),a.addShortcut(h+"+j","","JustifyFull"),a.addShortcut(h+"+q","","mceBlockQuote"),a.addShortcut(h+"+u","","InsertUnorderedList"),a.addShortcut(h+"+o","","InsertOrderedList"),a.addShortcut(h+"+n","","mceSpellCheck"),a.addShortcut(h+"+s","","unlink"),a.addShortcut(h+"+m","","WP_Medialib"),a.addShortcut(h+"+z","","WP_Adv"),a.addShortcut(h+"+t","","WP_More"),a.addShortcut(h+"+d","","Strikethrough"),a.addShortcut(h+"+h","","WP_Help"),a.addShortcut(h+"+p","","WP_Page"),a.addShortcut(h+"+x","","WP_Code"),a.addShortcut("ctrl+s","",function(){"undefined"!=typeof wp&&wp.autosave&&wp.autosave.server.triggerSave()}),a.on("init",function(){a.dom.bind(a.getWin(),"scroll",function(){f()}),a.dom.bind(a.getBody(),"dragstart",function(){f()})}),a.on("BeforeExecCommand",function(){f()}),a.on("SaveContent",function(){f()}),a.on("MouseDown",function(a){"IMG"!==a.target.nodeName&&f()}),a.on("keydown",function(a){(a.which===tinymce.util.VK.DELETE||a.which===tinymce.util.VK.BACKSPACE)&&f()}),{_showButtons:e,_hideButtons:f,_setEmbed:c,_getEmbed:d}}); \ No newline at end of file diff --git a/wp-includes/js/tinymce/wp-tinymce.js.gz b/wp-includes/js/tinymce/wp-tinymce.js.gz index 19dd3ed1b47a9d7cad2158f8b056c3a1e7e231ac..4fb2fa7aa36c41dcb8a94d86d8d358eb103d1544 100644 GIT binary patch delta 7381 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