From 13c72ba193e512fed7446bbf4e2e5fbff378e5de Mon Sep 17 00:00:00 2001 From: Andrew Ozz Date: Wed, 28 Sep 2011 07:26:34 +0000 Subject: [PATCH] Fix enqueueing of the right scripts when more than one instance of the editor, fix inserting images in full screen mode, see #17144 git-svn-id: https://develop.svn.wordpress.org/trunk@18799 602fd350-edb4-49c9-b593-d223f7449a82 --- wp-admin/js/media-upload.dev.js | 10 ++++++---- wp-admin/js/media-upload.js | 2 +- wp-includes/class-wp-editor.php | 23 ++++++++++++++++++----- wp-includes/script-loader.php | 2 +- 4 files changed, 26 insertions(+), 11 deletions(-) diff --git a/wp-admin/js/media-upload.dev.js b/wp-admin/js/media-upload.dev.js index c5dbfed08c..1e63385082 100644 --- a/wp-admin/js/media-upload.dev.js +++ b/wp-admin/js/media-upload.dev.js @@ -12,10 +12,12 @@ function send_to_editor(h) { } else if ( !qt ) { return false; } - } - - if ( !ed && mce && wpActiveEditor ) - ed = tinymce.get(wpActiveEditor); + } else { + if ( mce && tinymce.activeEditor && (tinymce.activeEditor.id == 'mce_fullscreen' || tinymce.activeEditor.id == 'wp_mce_fullscreen') ) + ed = tinymce.activeEditor; + else + ed = tinymce.get(wpActiveEditor); + } if ( ed && !ed.isHidden() ) { // restore caret position on IE diff --git a/wp-admin/js/media-upload.js b/wp-admin/js/media-upload.js index 40444ac5a8..3f1ce42c46 100644 --- a/wp-admin/js/media-upload.js +++ b/wp-admin/js/media-upload.js @@ -1 +1 @@ -var wpActiveEditor;function send_to_editor(c){var b,a=typeof(tinymce)!="undefined",f=typeof(QTags)!="undefined";if(!wpActiveEditor){if(a&&tinymce.activeEditor){b=tinymce.activeEditor;wpActiveEditor=b.id}else{if(!f){return false}}}if(!b&&a&&wpActiveEditor){b=tinymce.get(wpActiveEditor)}if(b&&!b.isHidden()){if(tinymce.isIE&&b.windowManager.insertimagebookmark){b.selection.moveToBookmark(b.windowManager.insertimagebookmark)}if(c.indexOf("[caption")===0){if(b.plugins.wpeditimage){c=b.plugins.wpeditimage._do_shcode(c)}}else{if(c.indexOf("[gallery")===0){if(b.plugins.wpgallery){c=b.plugins.wpgallery._do_gallery(c)}}else{if(c.indexOf("[embed")===0){if(b.plugins.wordpress){c=b.plugins.wordpress._setEmbed(c)}}}}b.execCommand("mceInsertContent",false,c)}else{if(f){QTags.insertContent(c)}else{document.getElementById(wpActiveEditor).value+=c}}try{tb_remove()}catch(d){}}var tb_position;(function(a){tb_position=function(){var f=a("#TB_window"),e=a(window).width(),d=a(window).height(),c=(720can_richedit = user_can_richedit(); @@ -67,6 +70,7 @@ class WP_Editor { if ( $this->this_quicktags && $this->this_tinymce ) { $switch_class = 'html-active'; + $this->has_tinymce = $this->has_quicktags = true; if ( 'html' == $this->default_editor ) { add_filter('the_editor_content', 'wp_htmledit_pre'); @@ -77,6 +81,12 @@ class WP_Editor { $buttons .= '' . __('HTML') . "\n"; $buttons .= '' . __('Visual') . "\n"; + } else { + if ( $this->this_tinymce ) + $this->has_tinymce = true; + + if ( $this->this_quicktags ) + $this->has_quicktags = true; } echo '
'; @@ -89,6 +99,8 @@ class WP_Editor { echo $buttons; if ( $set['media_buttons'] ) { + $this->has_medialib = true; + if ( !function_exists('media_buttons') ) include(ABSPATH . 'wp-admin/includes/media.php'); @@ -442,10 +454,10 @@ class WP_Editor { wp_enqueue_script('word-count'); wp_enqueue_style('editor-buttons'); - if ( $this->this_tinymce ) + if ( $this->has_tinymce ) wp_enqueue_script('editor'); - if ( $this->this_quicktags ) + if ( $this->has_quicktags ) wp_enqueue_script('quicktags'); if ( in_array('wplink', $this->plugins, true) || in_array('link', $this->qt_buttons, true) ) { @@ -457,8 +469,10 @@ class WP_Editor { if ( in_array('wpfullscreen', $this->plugins, true) || in_array('fullscreen', $this->qt_buttons, true) ) wp_enqueue_script('wp-fullscreen'); - add_thickbox(); - wp_enqueue_script('media-upload'); + if ( $this->has_medialib ) { + add_thickbox(); + wp_enqueue_script('media-upload'); + } } function editor_js() { @@ -800,4 +814,3 @@ class WP_Editor { } } - diff --git a/wp-includes/script-loader.php b/wp-includes/script-loader.php index c2b5d40a3b..4eb5fd9df3 100644 --- a/wp-includes/script-loader.php +++ b/wp-includes/script-loader.php @@ -276,7 +276,7 @@ function wp_default_scripts( &$scripts ) { $scripts->add( 'word-count', "/wp-admin/js/word-count$suffix.js", array( 'jquery' ), '20110515', 1 ); - $scripts->add( 'media-upload', "/wp-admin/js/media-upload$suffix.js", array( 'thickbox' ), '20110922', 1 ); + $scripts->add( 'media-upload', "/wp-admin/js/media-upload$suffix.js", array( 'thickbox' ), '20110927', 1 ); if ( is_admin() ) { $scripts->add( 'ajaxcat', "/wp-admin/js/cat$suffix.js", array( 'wp-lists' ), '20090102' );