WordPress.org

Make WordPress Core

Ticket #21718: 21718.diff

File 21718.diff, 4.0 KB (added by nacin, 2 years ago)
  • wp-includes/class-wp-editor.php

     
    2828        private function __construct() {} 
    2929 
    3030        public static function parse_settings($editor_id, $settings) { 
    31                 $set = wp_parse_args( $settings,  array( 
     31                if ( isset( $settings['textarea_rows'] ) && ! isset( $settings['editor_height'] ) ) 
     32                        $settings['editor_height'] = $settings['textarea_rows'] * 19; // Convert rows="" to pixels. 
     33 
     34                $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' => 380, // editor height in px (380px is about 20 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". 
     
    5255                if ( self::$this_quicktags ) 
    5356                        self::$has_quicktags = true; 
    5457 
     58                if ( 'content' === $editor_id ) { 
     59                        // A cookie (set when a user resizes the editor) overrides the default height. 
     60                        $cookie = (int) get_user_setting( 'ed_s_' . $editor_id ); 
     61 
     62                        // Upgrade an old TinyMCE cookie if it is still around, and the new one isn't. 
     63                        if ( ! $cookie && isset( $_COOKIE['TinyMCE_' . $editor_id . '_size'] ) ) { 
     64                                parse_str( $_COOKIE['TinyMCE_' . $editor_id . '_size'], $cookie ); 
     65                                $cookie = $cookie['cw']; 
     66                        } 
     67 
     68                        if ( $cookie ) 
     69                                $set['editor_height'] = $cookie; 
     70                } 
     71 
     72                // 50px is the minimum height for TinyMCE and all things reasonable. 
     73                if ( $set['editor_height'] < 50 ) 
     74                        $set['editor_height'] = 50; 
     75 
     76                var_dump( $set ); 
    5577                return $set; 
    5678        } 
    5779 
     
    6789                $set = self::parse_settings($editor_id, $settings); 
    6890                $editor_class = ' class="' . trim( $set['editor_class'] . ' wp-editor-area' ) . '"'; 
    6991                $tabindex = $set['tabindex'] ? ' tabindex="' . (int) $set['tabindex'] . '"' : ''; 
    70                 $rows = ' rows="' . (int) $set['textarea_rows'] . '"'; 
     92                $editor_height = ' style="height: ' . $set['editor_height'] . 'px;"'; 
    7193                $switch_class = 'html-active'; 
    7294                $toolbar = $buttons = ''; 
    7395 
     
    116138                        echo "</div>\n"; 
    117139                } 
    118140 
    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>'); 
     141                $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>'); 
    120142                $content = apply_filters('the_editor_content', $content); 
    121143 
    122144                printf($the_editor, $content); 
     
    403425                                'body_class' => $body_class 
    404426                        ); 
    405427 
     428                        $mceInit['theme_advanced_resizing_use_cookie'] = 'content' !== $editor_id; 
     429 
    406430                        if ( $first_run ) 
    407431                                $mceInit = array_merge(self::$first_init, $mceInit); 
    408432 
  • wp-admin/js/editor.js

     
    11 
     2(function($,win){ 
     3        if ( typeof win.setUserSetting === 'undefined' ) 
     4                return; 
     5 
     6        $(document).ready( function() { 
     7                var container = $('#wp-content-editor-container'); 
     8                if ( ! container.length ) 
     9                        return; 
     10                $(win).unload( function() { 
     11                        var height = container.height() - ( $('#content').height() ? 35 : 34 ); 
     12                        if ( height < 50 ) 
     13                                return; 
     14                        win.setUserSetting( 'ed_s_content', height ); 
     15                }); 
     16        }); 
     17})(jQuery, window); 
     18 
    219var switchEditors = { 
    320 
    421        switchto: function(el) {