TinyMCE: fix `send_to_editor()`. It no longer needs to replace shortcode strings with html placeholers before inserting them in the editor. This is handled properly by the editor's `'BeforeSetContent'` event callbacks. See #24067.
Built from https://develop.svn.wordpress.org/trunk@26945 git-svn-id: http://core.svn.wordpress.org/trunk@26824 1a063a9b-81f0-0310-95a4-ce76da25c4cd
This commit is contained in:
parent
1db81755ac
commit
71101bc9e2
|
@ -3,44 +3,34 @@
|
|||
|
||||
var wpActiveEditor, send_to_editor;
|
||||
|
||||
send_to_editor = function(h) {
|
||||
var ed, mce = typeof(tinymce) != 'undefined', qt = typeof(QTags) != 'undefined';
|
||||
send_to_editor = function( html ) {
|
||||
var editor,
|
||||
hasTinymce = typeof tinymce !== 'undefined',
|
||||
hasQuicktags = typeof QTags !== 'undefined';
|
||||
|
||||
if ( ! wpActiveEditor ) {
|
||||
if ( mce && tinymce.activeEditor ) {
|
||||
ed = tinymce.activeEditor;
|
||||
wpActiveEditor = ed.id;
|
||||
} else if ( ! qt ) {
|
||||
if ( hasTinymce && tinymce.activeEditor ) {
|
||||
editor = tinymce.activeEditor;
|
||||
wpActiveEditor = editor.id;
|
||||
} else if ( ! hasQuicktags ) {
|
||||
return false;
|
||||
}
|
||||
} else if ( mce ) {
|
||||
ed = tinymce.get( wpActiveEditor );
|
||||
} else if ( hasTinymce ) {
|
||||
editor = tinymce.get( wpActiveEditor );
|
||||
}
|
||||
|
||||
if ( ed && ! ed.isHidden() ) {
|
||||
// restore caret position on IE
|
||||
// if ( tinymce.isIE && ed.windowManager.insertimagebookmark )
|
||||
// ed.selection.moveToBookmark(ed.windowManager.insertimagebookmark);
|
||||
|
||||
if ( h.indexOf('[caption') !== -1 ) {
|
||||
if ( ed.wpSetImgCaption )
|
||||
h = ed.wpSetImgCaption(h);
|
||||
} else if ( h.indexOf('[gallery') !== -1 ) {
|
||||
if ( ed.plugins.wpgallery )
|
||||
h = ed.plugins.wpgallery._do_gallery(h);
|
||||
} else if ( h.indexOf('[embed') === 0 ) {
|
||||
if ( ed.plugins.wordpress )
|
||||
h = ed.plugins.wordpress._setEmbed(h);
|
||||
}
|
||||
|
||||
ed.execCommand('mceInsertContent', false, h);
|
||||
} else if ( qt ) {
|
||||
QTags.insertContent(h);
|
||||
if ( editor && ! editor.isHidden() ) {
|
||||
editor.execCommand( 'mceInsertContent', false, html );
|
||||
} else if ( hasQuicktags ) {
|
||||
QTags.insertContent( html );
|
||||
} else {
|
||||
document.getElementById(wpActiveEditor).value += h;
|
||||
document.getElementById( wpActiveEditor ).value += html;
|
||||
}
|
||||
|
||||
try{tb_remove();}catch(e){}
|
||||
// If the old thickbox remove function exists, call it
|
||||
if ( window.tb_remove ) {
|
||||
try { window.tb_remove(); } catch( e ) {}
|
||||
}
|
||||
};
|
||||
|
||||
// thickbox settings
|
||||
|
@ -75,17 +65,5 @@ var tb_position;
|
|||
};
|
||||
|
||||
$(window).resize(function(){ tb_position(); });
|
||||
/*
|
||||
// store caret position in IE
|
||||
$(document).ready(function($){
|
||||
$('a.thickbox').click(function(){
|
||||
var ed;
|
||||
|
||||
if ( typeof(tinymce) != 'undefined' && tinymce.isIE && ( ed = tinymce.get(wpActiveEditor) ) && !ed.isHidden() ) {
|
||||
ed.focus();
|
||||
ed.windowManager.insertimagebookmark = ed.selection.getBookmark();
|
||||
}
|
||||
});
|
||||
});
|
||||
*/
|
||||
})(jQuery);
|
||||
|
|
|
@ -1 +1 @@
|
|||
var wpActiveEditor,send_to_editor;send_to_editor=function(a){var b,c="undefined"!=typeof tinymce,d="undefined"!=typeof QTags;if(wpActiveEditor)c&&(b=tinymce.get(wpActiveEditor));else if(c&&tinymce.activeEditor)b=tinymce.activeEditor,wpActiveEditor=b.id;else if(!d)return!1;b&&!b.isHidden()?(-1!==a.indexOf("[caption")?b.wpSetImgCaption&&(a=b.wpSetImgCaption(a)):-1!==a.indexOf("[gallery")?b.plugins.wpgallery&&(a=b.plugins.wpgallery._do_gallery(a)):0===a.indexOf("[embed")&&b.plugins.wordpress&&(a=b.plugins.wordpress._setEmbed(a)),b.execCommand("mceInsertContent",!1,a)):d?QTags.insertContent(a):document.getElementById(wpActiveEditor).value+=a;try{tb_remove()}catch(e){}};var tb_position;!function(a){tb_position=function(){var b=a("#TB_window"),c=a(window).width(),d=a(window).height(),e=c>720?720:c,f=0;return a("body.admin-bar").length&&(f=parseInt(jQuery("#wpadminbar").css("height"),10)),b.size()&&(b.width(e-50).height(d-45-f),a("#TB_iframeContent").width(e-50).height(d-75-f),b.css({"margin-left":"-"+parseInt((e-50)/2,10)+"px"}),"undefined"!=typeof document.body.style.maxWidth&&b.css({top:20+f+"px","margin-top":"0"})),a("a.thickbox").each(function(){var b=a(this).attr("href");b&&(b=b.replace(/&width=[0-9]+/g,""),b=b.replace(/&height=[0-9]+/g,""),a(this).attr("href",b+"&width="+(e-80)+"&height="+(d-85-f)))})},a(window).resize(function(){tb_position()})}(jQuery);
|
||||
var wpActiveEditor,send_to_editor;send_to_editor=function(a){var b,c="undefined"!=typeof tinymce,d="undefined"!=typeof QTags;if(wpActiveEditor)c&&(b=tinymce.get(wpActiveEditor));else if(c&&tinymce.activeEditor)b=tinymce.activeEditor,wpActiveEditor=b.id;else if(!d)return!1;if(b&&!b.isHidden()?b.execCommand("mceInsertContent",!1,a):d?QTags.insertContent(a):document.getElementById(wpActiveEditor).value+=a,window.tb_remove)try{window.tb_remove()}catch(e){}};var tb_position;!function(a){tb_position=function(){var b=a("#TB_window"),c=a(window).width(),d=a(window).height(),e=c>720?720:c,f=0;return a("body.admin-bar").length&&(f=parseInt(jQuery("#wpadminbar").css("height"),10)),b.size()&&(b.width(e-50).height(d-45-f),a("#TB_iframeContent").width(e-50).height(d-75-f),b.css({"margin-left":"-"+parseInt((e-50)/2,10)+"px"}),"undefined"!=typeof document.body.style.maxWidth&&b.css({top:20+f+"px","margin-top":"0"})),a("a.thickbox").each(function(){var b=a(this).attr("href");b&&(b=b.replace(/&width=[0-9]+/g,""),b=b.replace(/&height=[0-9]+/g,""),a(this).attr("href",b+"&width="+(e-80)+"&height="+(d-85-f)))})},a(window).resize(function(){tb_position()})}(jQuery);
|
|
@ -446,56 +446,43 @@
|
|||
$( wp.media.featuredImage.init );
|
||||
|
||||
wp.media.editor = {
|
||||
insert: function( h ) {
|
||||
var mce = typeof(tinymce) != 'undefined',
|
||||
qt = typeof(QTags) != 'undefined',
|
||||
wpActiveEditor = window.wpActiveEditor,
|
||||
ed;
|
||||
insert: function( html ) {
|
||||
var editor,
|
||||
hasTinymce = typeof tinymce !== 'undefined',
|
||||
hasQuicktags = typeof QTags !== 'undefined',
|
||||
wpActiveEditor = window.wpActiveEditor;
|
||||
|
||||
// Delegate to the global `send_to_editor` if it exists.
|
||||
// This attempts to play nice with any themes/plugins that have
|
||||
// overridden the insert functionality.
|
||||
if ( window.send_to_editor )
|
||||
if ( window.send_to_editor ) {
|
||||
return window.send_to_editor.apply( this, arguments );
|
||||
}
|
||||
|
||||
if ( ! wpActiveEditor ) {
|
||||
if ( mce && tinymce.activeEditor ) {
|
||||
ed = tinymce.activeEditor;
|
||||
wpActiveEditor = window.wpActiveEditor = ed.id;
|
||||
} else if ( !qt ) {
|
||||
if ( hasTinymce && tinymce.activeEditor ) {
|
||||
editor = tinymce.activeEditor;
|
||||
wpActiveEditor = window.wpActiveEditor = editor.id;
|
||||
} else if ( ! hasQuicktags ) {
|
||||
return false;
|
||||
}
|
||||
} else if ( mce ) {
|
||||
ed = tinymce.get( wpActiveEditor );
|
||||
} else if ( hasTinymce ) {
|
||||
editor = tinymce.get( wpActiveEditor );
|
||||
}
|
||||
|
||||
if ( ed && ! ed.isHidden() ) {
|
||||
// restore caret position on IE
|
||||
// if ( tinymce.isIE && ed.windowManager.insertimagebookmark )
|
||||
// ed.selection.moveToBookmark(ed.windowManager.insertimagebookmark);
|
||||
|
||||
if ( h.indexOf('[caption') !== -1 ) {
|
||||
if ( ed.wpSetImgCaption )
|
||||
h = ed.wpSetImgCaption(h);
|
||||
} else if ( h.indexOf('[gallery') !== -1 ) {
|
||||
if ( ed.plugins.wpgallery )
|
||||
h = ed.plugins.wpgallery._do_gallery(h);
|
||||
} else if ( h.indexOf('[embed') === 0 ) {
|
||||
if ( ed.plugins.wordpress )
|
||||
h = ed.plugins.wordpress._setEmbed(h);
|
||||
}
|
||||
|
||||
ed.execCommand('mceInsertContent', false, h);
|
||||
} else if ( qt ) {
|
||||
QTags.insertContent(h);
|
||||
if ( editor && ! editor.isHidden() ) {
|
||||
editor.execCommand( 'mceInsertContent', false, html );
|
||||
} else if ( hasQuicktags ) {
|
||||
QTags.insertContent( html );
|
||||
} else {
|
||||
document.getElementById(wpActiveEditor).value += h;
|
||||
document.getElementById( wpActiveEditor ).value += html;
|
||||
}
|
||||
|
||||
// If the old thickbox remove function exists, call it in case
|
||||
// a theme/plugin overloaded it.
|
||||
if ( window.tb_remove )
|
||||
if ( window.tb_remove ) {
|
||||
try { window.tb_remove(); } catch( e ) {}
|
||||
}
|
||||
},
|
||||
|
||||
add: function( id, options ) {
|
||||
|
|
File diff suppressed because one or more lines are too long
Loading…
Reference in New Issue