Ticket #21718: 21718-4.patch
File 21718-4.patch, 11.8 KB (added by , 13 years ago) |
---|
-
wp-admin/css/wp-admin.css
3107 3107 background: transparent url(../images/resize.gif) no-repeat scroll right bottom; 3108 3108 width: 12px; 3109 3109 cursor: se-resize; 3110 margin: 0 2px;3110 margin: 0 1px; 3111 3111 position: relative; 3112 3112 top: -2px; 3113 3113 } … … 3116 3116 top: 20px; 3117 3117 } 3118 3118 3119 #content-resize-handle { 3120 background: transparent url(../images/resize.gif) no-repeat scroll right bottom; 3121 width: 12px; 3122 cursor: se-resize; 3123 position: absolute; 3124 right: 2px; 3125 height: 19px; 3126 } 3127 3128 .tmce-active #content-resize-handle { 3129 display: none; 3130 } 3131 3132 .post-php #content { 3133 resize: none; 3134 } 3135 3119 3136 #wp-word-count { 3120 3137 display: block; 3121 3138 padding: 2px 10px; … … 4309 4326 box-shadow: none; 4310 4327 } 4311 4328 4329 .comment-php .wp-editor-area { 4330 height: 200px; 4331 } 4332 4312 4333 .comment-ays { 4313 4334 margin-bottom: 0; 4314 4335 border-style: solid; -
wp-admin/js/editor.js
49 49 if ( ed && ed.isHidden() ) 50 50 return false; 51 51 52 if ( ed ) { 53 txtarea_el.style.height = ed.getContentAreaContainer().offsetHeight + 20 + 'px'; 52 if ( ed ) 54 53 ed.hide(); 55 }56 54 57 55 dom.removeClass(wrap_id, 'tmce-active'); 58 56 dom.addClass(wrap_id, 'html-active'); -
wp-admin/js/post.js
667 667 } 668 668 669 669 wptitlehint(); 670 671 // resizable textarea#content 672 (function() { 673 var textarea = $('textarea#content'), offset = null, el; 674 675 function dragging(e) { 676 textarea.height( Math.max(50, offset + e.pageY) + 'px' ); 677 return false; 678 } 679 680 function endDrag(e) { 681 var height = $('#wp-content-editor-container').height(); 682 683 textarea.focus(); 684 $(document).unbind('mousemove', dragging).unbind('mouseup', endDrag); 685 686 if ( height > 83 ) { 687 height -= 33; // compensate for toolbars, padding... 688 setUserSetting( 'content_ed_size', height ); 689 } 690 } 691 692 el = $('<div id="content-resize-handle"><br></div>'); 693 $('#wp-content-wrap').append(el); 694 el.on('mousedown', function(e) { 695 offset = textarea.height() - e.pageY; 696 textarea.blur(); 697 $(document).mousemove(dragging).mouseup(endDrag); 698 return false; 699 }); 700 })(); 701 670 702 }); -
wp-includes/class-wp-editor.php
28 28 private function __construct() {} 29 29 30 30 public static function parse_settings($editor_id, $settings) { 31 if ( isset( $settings['textarea_rows'] ) && ! isset( $settings['editor_height'] ) ) 32 $settings['editor_height'] = $settings['textarea_rows'] * 18; // Convert rows="" to pixels. 33 31 34 $set = wp_parse_args( $settings, array( 32 35 'wpautop' => true, // use wpautop? 33 36 'media_buttons' => true, // show insert/upload button(s) 34 37 '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 in px (replaces textarea rows) 36 39 'tabindex' => '', 37 40 'tabfocus_elements' => ':prev,:next', // the previous and next element ID to move the focus to when pressing the Tab key in TinyMCE 38 41 'editor_css' => '', // intended for extra styles for both visual and Text editors buttons, needs to include the <style> tags, can use "scoped". … … 52 55 if ( self::$this_quicktags ) 53 56 self::$has_quicktags = true; 54 57 58 if ( 'content' === $editor_id && self::$this_tinymce ) { 59 // A cookie (set when a user resizes the editor) overrides the height. 60 $cookie = (int) get_user_setting( $editor_id . '_ed_size' ); 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['ch']; 66 } 67 68 if ( $cookie ) 69 $set['editor_height'] = $cookie; 70 else 71 $set['editor_height'] = 360; // 360px is about 20 textarea rows. the old default val for the main editor 72 } 73 74 // 50px is the minimum height for TinyMCE and all things reasonable. 75 if ( !empty($set['editor_height']) && $set['editor_height'] < 50 ) 76 $set['editor_height'] = 50; 77 55 78 return $set; 56 79 } 57 80 … … 67 90 $set = self::parse_settings($editor_id, $settings); 68 91 $editor_class = ' class="' . trim( $set['editor_class'] . ' wp-editor-area' ) . '"'; 69 92 $tabindex = $set['tabindex'] ? ' tabindex="' . (int) $set['tabindex'] . '"' : ''; 70 $ rows = ' rows="' . (int) $set['textarea_rows'] . '"';93 $editor_height = $set['editor_height'] ? ' style="height: ' . $set['editor_height'] . 'px;"' : ''; 71 94 $switch_class = 'html-active'; 72 95 $toolbar = $buttons = ''; 73 96 … … 116 139 echo "</div>\n"; 117 140 } 118 141 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>');142 $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>'); 120 143 $content = apply_filters('the_editor_content', $content); 121 144 122 145 printf($the_editor, $content); … … 403 426 'body_class' => $body_class 404 427 ); 405 428 429 $mceInit['theme_advanced_resizing_use_cookie'] = 'content' !== $editor_id; 430 406 431 if ( $first_run ) 407 432 $mceInit = array_merge(self::$first_init, $mceInit); 408 433 … … 553 578 ?> 554 579 555 580 <script type="text/javascript"> 581 var wpActiveEditor; 582 556 583 (function(){ 557 var init, ed, qt, first_init, mce = <?php echo wp_default_editor() == 'tinymce' ? 'true' : 'false'; ?>;584 var init, ed, qt, first_init, DOM, el, i, mce = <?php 558 585 586 if ( ( self::$has_tinymce && wp_default_editor() == 'tinymce' ) || !self::$has_quicktags ) 587 echo 'true'; 588 else 589 echo 'false'; 590 591 ?>; 592 559 593 if ( typeof(tinymce) == 'object' ) { 594 DOM = tinymce.DOM; 560 595 // mark wp_theme/ui.css as loaded 561 tinymce.DOM.files[tinymce.baseURI.getURI() + '/themes/advanced/skins/wp_theme/ui.css'] = true;596 DOM.files[tinymce.baseURI.getURI() + '/themes/advanced/skins/wp_theme/ui.css'] = true; 562 597 598 DOM.events.add( DOM.select('.wp-editor-wrap'), 'mousedown', function(e){ 599 if ( this.id ) 600 wpActiveEditor = this.id.slice(3, -5); 601 }); 602 563 603 for ( ed in tinyMCEPreInit.mceInit ) { 564 604 if ( first_init ) { 565 605 init = tinyMCEPreInit.mceInit[ed] = tinymce.extend( {}, first_init, tinyMCEPreInit.mceInit[ed] ); … … 570 610 if ( mce ) 571 611 try { tinymce.init(init); } catch(e){} 572 612 } 613 } else { 614 el = document.getElementsByClassName('wp-editor-wrap'); 615 for ( i in el ) { 616 if ( typeof(el[i]) == 'object' ) 617 el[i].onmousedown = function(){ wpActiveEditor = this.id.slice(3, -5); } 618 } 573 619 } 574 620 575 621 if ( typeof(QTags) == 'function' ) { … … 578 624 } 579 625 } 580 626 })(); 627 <?php 581 628 582 var wpActiveEditor;583 584 jQuery('.wp-editor-wrap').mousedown(function(e){585 wpActiveEditor = this.id.slice(3, -5);586 });587 588 <?php589 590 629 if ( self::$ext_plugins ) 591 630 echo self::$ext_plugins . "\n"; 592 631 593 632 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 <?php633 ?> 634 (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');}});})(); 635 <?php 597 636 } 598 637 599 638 if ( !is_admin() ) 600 639 echo 'var ajaxurl = "' . admin_url( 'admin-ajax.php', 'relative' ) . '";'; 601 ?>602 </script>603 <?php604 640 641 ?> 642 </script> 643 <?php 644 605 645 if ( in_array('wplink', self::$plugins, true) || in_array('link', self::$qt_buttons, true) ) 606 646 self::wp_link_dialog(); 607 647 -
wp-includes/css/editor.css
1018 1018 } 1019 1019 1020 1020 /* WP specific */ 1021 .wp-editor-wrap { 1022 position: relative; 1023 } 1024 1021 1025 .wp-editor-area { 1022 1026 font-family: Consolas, Monaco, monospace; 1023 1027 padding: 10px; 1028 margin: 1px 0 0; 1024 1029 line-height: 150%; 1025 1030 border: 0 none; 1026 1031 outline: none; 1032 display: block; 1027 1033 resize: vertical; 1028 1034 -moz-box-sizing: border-box; 1029 1035 -webkit-box-sizing: border-box; -
wp-includes/js/tinymce/plugins/wordpress/editor_plugin_src.js
3 3 */ 4 4 5 5 (function() { 6 var DOM = tinymce.DOM ;6 var DOM = tinymce.DOM, win = window; 7 7 8 8 tinymce.create('tinymce.plugins.WordPress', { 9 9 mceTout : 0, … … 234 234 } 235 235 }); 236 236 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 else if ( o.initial && win.getUserSetting ) 245 height = win.getUserSetting( ed.id + '_ed_size' ); 246 247 if ( ed_toolbar && ed_toolbar[0] ) 248 tb_height = ed_toolbar[0].clientHeight; 249 250 if ( height && tb_height ) { 251 ifr_height = (height - tb_height) + 12; // compensate for padding in the textarea 252 253 DOM.setStyle( DOM.get(ed.id + '_tbl'), 'height', '' ); 254 DOM.setStyle( DOM.get(ed.id + '_ifr'), 'height', ifr_height + 'px' ); 255 256 if ( win.setUserSetting ) 257 win.setUserSetting( ed.id + '_ed_size', height ); 258 } 259 }); 260 261 // resize the textarea to match TinyMCE's height when switching Visual -> Text 262 ed.onSaveContent.add( function(ed, o) { 263 var height = DOM.get(ed.id+'_tbl').clientHeight; 264 265 if ( height && height > 83 ) { 266 height -= 33; 267 268 DOM.setStyle( ed.getElement(), 'height', height + 'px' ); 269 270 if ( win.setUserSetting ) 271 win.setUserSetting( ed.id + '_ed_size', height ); 272 } 273 }); 274 275 // save on resize 276 ed.onPostRender.add(function() { 277 tinymce.dom.Event.add(DOM.doc, 'mouseup', function(e) { 278 var height = document.getElementById('wp-'+ed.id+'-editor-container').clientHeight; 279 280 height -= 33; 281 282 if ( !win.setUserSetting || height < 50 || height == win.getUserSetting( ed.id + '_ed_size' ) ) 283 return; 284 285 win.setUserSetting( ed.id + '_ed_size', height ); 286 }); 287 }); 288 237 289 /* disable for now 238 290 ed.onBeforeSetContent.add(function(ed, o) { 239 291 o.content = t._setEmbed(o.content);