WordPress.org

Make WordPress Core

Ticket #21718: 21718.patch

File 21718.patch, 8.2 KB (added by azaozz, 3 years ago)
  • wp-admin/js/editor.js

     
    4949                        if ( ed && ed.isHidden() ) 
    5050                                return false; 
    5151 
    52                         if ( ed ) { 
    53                                 txtarea_el.style.height = ed.getContentAreaContainer().offsetHeight + 20 + 'px'; 
     52                        if ( ed ) 
    5453                                ed.hide(); 
    55                         } 
    5654 
    5755                        dom.removeClass(wrap_id, 'tmce-active'); 
    5856                        dom.addClass(wrap_id, 'html-active'); 
  • wp-includes/class-wp-editor.php

     
    2828        private function __construct() {} 
    2929 
    3030        public static function parse_settings($editor_id, $settings) { 
     31                $editor_height = (int) get_user_setting( $editor_id . '_ed_size', 200 ); // default height 
     32                $editor_height < 50 ? 50 : $editor_height; // min height (for TinyMCE) 
     33 
    3134                $set = wp_parse_args( $settings,  array( 
    3235                        'wpautop' => true, // use wpautop? 
    3336                        'media_buttons' => true, // show insert/upload button(s) 
    3437                        'textarea_name' => $editor_id, // set the textarea name to something different, square brackets [] can be used here 
    35                         'textarea_rows' => get_option('default_post_edit_rows', 10), // rows="..." 
     38                        'editor_height' => $editor_height, // editor height in px (replaces textarea rows) 
    3639                        'tabindex' => '', 
    3740                        'tabfocus_elements' => ':prev,:next', // the previous and next element ID to move the focus to when pressing the Tab key in TinyMCE 
    3841                        'editor_css' => '', // intended for extra styles for both visual and Text editors buttons, needs to include the <style> tags, can use "scoped". 
     
    6770                $set = self::parse_settings($editor_id, $settings); 
    6871                $editor_class = ' class="' . trim( $set['editor_class'] . ' wp-editor-area' ) . '"'; 
    6972                $tabindex = $set['tabindex'] ? ' tabindex="' . (int) $set['tabindex'] . '"' : ''; 
    70                 $rows = ' rows="' . (int) $set['textarea_rows'] . '"'; 
     73                $editor_height = ' style="height: ' . (int) $set['editor_height'] . 'px;"'; 
    7174                $switch_class = 'html-active'; 
    7275                $toolbar = $buttons = ''; 
    7376 
     
    116119                        echo "</div>\n"; 
    117120                } 
    118121 
    119                 $the_editor = apply_filters('the_editor', '<div id="wp-' . $editor_id . '-editor-container" class="wp-editor-container"><textarea' . $editor_class . $rows . $tabindex . ' cols="40" name="' . $set['textarea_name'] . '" id="' . $editor_id . '">%s</textarea></div>'); 
     122                $the_editor = apply_filters('the_editor', '<div id="wp-' . $editor_id . '-editor-container" class="wp-editor-container"><textarea' . $editor_class . $editor_height . $tabindex . ' cols="40" name="' . $set['textarea_name'] . '" id="' . $editor_id . '">%s</textarea></div>'); 
    120123                $content = apply_filters('the_editor_content', $content); 
    121124 
    122125                printf($the_editor, $content); 
     
    287290                                        'theme_advanced_statusbar_location' => 'bottom', 
    288291                                        'theme_advanced_resizing' => true, 
    289292                                        'theme_advanced_resize_horizontal' => false, 
     293                                        'theme_advanced_resizing_use_cookie' => false, 
    290294                                        'dialog_type' => 'modal', 
    291295                                        'formats' => "{ 
    292296                                                alignleft : [ 
     
    553557?> 
    554558 
    555559        <script type="text/javascript"> 
     560                var wpActiveEditor; 
     561 
    556562                (function(){ 
    557                         var init, ed, qt, first_init, mce = <?php echo wp_default_editor() == 'tinymce' ? 'true' : 'false'; ?>; 
     563                        var init, ed, qt, first_init, DOM, el, i, mce = <?php 
    558564 
     565                        if ( ( self::$has_tinymce && wp_default_editor() == 'tinymce' ) || !self::$has_quicktags ) 
     566                                echo 'true;'; 
     567                        else 
     568                                echo 'false;'; 
     569 
     570                        ?>; 
     571 
    559572                        if ( typeof(tinymce) == 'object' ) { 
     573                                DOM = tinymce.DOM; 
    560574                                // mark wp_theme/ui.css as loaded 
    561                                 tinymce.DOM.files[tinymce.baseURI.getURI() + '/themes/advanced/skins/wp_theme/ui.css'] = true; 
     575                                DOM.files[tinymce.baseURI.getURI() + '/themes/advanced/skins/wp_theme/ui.css'] = true; 
    562576 
     577                                DOM.events.add( DOM.select('.wp-editor-wrap'), 'mousedown', function(e){ 
     578                                        if ( this.id ) 
     579                                                wpActiveEditor = this.id.slice(3, -5); 
     580                                }); 
     581 
    563582                                for ( ed in tinyMCEPreInit.mceInit ) { 
    564583                                        if ( first_init ) { 
    565584                                                init = tinyMCEPreInit.mceInit[ed] = tinymce.extend( {}, first_init, tinyMCEPreInit.mceInit[ed] ); 
     
    570589                                        if ( mce ) 
    571590                                                try { tinymce.init(init); } catch(e){} 
    572591                                } 
     592                        } else { 
     593                                el = document.getElementsByClassName('wp-editor-wrap'); 
     594                                for ( i in el ) { 
     595                                        if ( typeof(el[i]) == 'object' ) 
     596                                                el[i].onmousedown = function(){ wpActiveEditor = this.id.slice(3, -5); } 
     597                                } 
    573598                        } 
    574599 
    575600                        if ( typeof(QTags) == 'function' ) { 
     
    578603                                } 
    579604                        } 
    580605                })(); 
     606                <?php 
    581607 
    582                 var wpActiveEditor; 
    583  
    584                 jQuery('.wp-editor-wrap').mousedown(function(e){ 
    585                         wpActiveEditor = this.id.slice(3, -5); 
    586                 }); 
    587  
    588 <?php 
    589  
    590608                if ( self::$ext_plugins ) 
    591609                        echo self::$ext_plugins . "\n"; 
    592610 
    593611                if ( ! $compressed && $tmce_on ) { 
    594 ?> 
    595                 (function(){var t=tinyMCEPreInit,sl=tinymce.ScriptLoader,ln=t.ref.language,th=t.ref.theme,pl=t.ref.plugins;sl.markDone(t.base+'/langs/'+ln+'.js');sl.markDone(t.base+'/themes/'+th+'/langs/'+ln+'.js');sl.markDone(t.base+'/themes/'+th+'/langs/'+ln+'_dlg.js');sl.markDone(t.base+'/themes/advanced/skins/wp_theme/ui.css');tinymce.each(pl.split(','),function(n){if(n&&n.charAt(0)!='-'){sl.markDone(t.base+'/plugins/'+n+'/langs/'+ln+'.js');sl.markDone(t.base+'/plugins/'+n+'/langs/'+ln+'_dlg.js');}});})(); 
    596 <?php 
     612                        ?> 
     613                        (function(){var t=tinyMCEPreInit,sl=tinymce.ScriptLoader,ln=t.ref.language,th=t.ref.theme,pl=t.ref.plugins;sl.markDone(t.base+'/langs/'+ln+'.js');sl.markDone(t.base+'/themes/'+th+'/langs/'+ln+'.js');sl.markDone(t.base+'/themes/'+th+'/langs/'+ln+'_dlg.js');sl.markDone(t.base+'/themes/advanced/skins/wp_theme/ui.css');tinymce.each(pl.split(','),function(n){if(n&&n.charAt(0)!='-'){sl.markDone(t.base+'/plugins/'+n+'/langs/'+ln+'.js');sl.markDone(t.base+'/plugins/'+n+'/langs/'+ln+'_dlg.js');}});})(); 
     614                        <?php 
    597615                } 
    598616 
    599617                if ( !is_admin() ) 
    600618                        echo 'var ajaxurl = "' . admin_url( 'admin-ajax.php', 'relative' ) . '";'; 
    601 ?> 
    602         </script> 
    603 <?php 
    604619 
     620                ?> 
     621                </script> 
     622                <?php 
     623 
    605624                if ( in_array('wplink', self::$plugins, true) || in_array('link', self::$qt_buttons, true) ) 
    606625                        self::wp_link_dialog(); 
    607626 
  • wp-includes/js/tinymce/plugins/wordpress/editor_plugin_src.js

     
    33 */ 
    44 
    55(function() { 
    6         var DOM = tinymce.DOM; 
     6        var DOM = tinymce.DOM, win = window; 
    77 
    88        tinymce.create('tinymce.plugins.WordPress', { 
    99                mceTout : 0, 
     
    234234                                } 
    235235                        }); 
    236236 
     237                        // resize TinyMCE to match the textarea height when switching Text -> Visual 
     238                        ed.onLoadContent.add( function(ed, o) { 
     239                                var height, tb_height, ifr_height, txt = ed.getElement(), 
     240                                        ed_toolbar = DOM.select('#'+ed.id + '_tbl tr.mceFirst'); 
     241 
     242                                if ( txt && txt.style && txt.style.height ) 
     243                                        height = parseInt( txt.style.height, 10 ); 
     244 
     245                                if ( ed_toolbar && ed_toolbar[0] ) 
     246                                        tb_height = ed_toolbar[0].clientHeight; 
     247 
     248                                if ( height && tb_height ) { 
     249                                        ifr_height = height - tb_height + 13; // compensate for the 10px padding in the textarea 
     250 
     251                                        DOM.setStyle( DOM.get(ed.id + '_tbl'), 'height', '' ); 
     252                                        DOM.setStyle( DOM.get(ed.id + '_ifr'), 'height', ifr_height ); 
     253                                        if ( win.setUserSetting ) 
     254                                                win.setUserSetting( ed.id + '_ed_size', height ); 
     255                                } 
     256                        }); 
     257 
     258                        // resize the textarea to match TinyMCE's height when switching Visual -> Text 
     259                        ed.onSaveContent.add( function(ed, o) { 
     260                                var height = DOM.get(ed.id+'_tbl').clientHeight; 
     261 
     262                                if ( height && height > 84 ) { 
     263                                        height -= 34; 
     264                                        DOM.setStyle( ed.getElement(), 'height', height ); 
     265 
     266                                        if ( win.setUserSetting ) 
     267                                                win.setUserSetting( ed.id + '_ed_size', height ); 
     268                                } 
     269                        }); 
     270 
     271                        // save on uoload 
     272                        DOM.bind(win, 'unload', function(e){ 
     273                                var height = document.getElementById('wp-'+ed.id+'-editor-container').clientHeight; 
     274 
     275                                if ( document.getElementById(ed.id).clientHeight ) 
     276                                        height -= 35; 
     277                                else 
     278                                        height -= 34; 
     279 
     280                                if ( !win.setUserSetting || height < 50 ) 
     281                                        return; 
     282 
     283                                win.setUserSetting( ed.id + '_ed_size', height ); 
     284                        }); 
     285 
    237286                        /* disable for now 
    238287                        ed.onBeforeSetContent.add(function(ed, o) { 
    239288                                o.content = t._setEmbed(o.content);