Make WordPress Core

Changeset 26941


Ignore:
Timestamp:
01/14/2014 05:45:53 AM (13 years ago)
Author:
azaozz
Message:

TinyMCE: improve handling of Read More and Nextpage tags. See #24067, fixes #16239.

Location:
trunk/src/wp-includes/js
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/wp-includes/js/quicktags.js

    r26876 r26941  
    644644        edButtons[100] = new qt.TagButton('li','li','\t<li>','</li>\n','l'),
    645645        edButtons[110] = new qt.TagButton('code','code','<code>','</code>','c'),
    646         edButtons[120] = new qt.TagButton('more','more','<!--more-->','','t'),
     646        edButtons[120] = new qt.TagButton('more','more','\n\n<!--more-->\n\n','','t'),
    647647        edButtons[140] = new qt.CloseButton();
    648648
  • trunk/src/wp-includes/js/tinymce/plugins/wordpress/plugin.js

    r26880 r26941  
    127127        });
    128128
     129        // Make sure the "more" tag is in a separate paragraph
     130        editor.on( 'PreProcess', function( event ) {
     131                var more;
     132
     133                if ( event.save ) {
     134                        more = editor.dom.select( 'img.wp-more-tag', event.node );
     135
     136                        if ( more.length ) {
     137                                tinymce.each( more, function( node ) {
     138                                        var parent = node.parentNode, p;
     139
     140                                        if ( parent.nodeName === 'P' && parent.childNodes.length > 1 ) {
     141                                                p = editor.dom.create('p');
     142                                                parent.parentNode.insertBefore( p, parent );
     143                                                p.appendChild( node );
     144                                        }
     145                                });
     146                        }
     147                }
     148        });
     149
    129150        // Register commands
    130151        editor.addCommand( 'WP_More', function( tag ) {
    131                 var parent, html, title,
     152                var parent, html, title, p1, p2,
    132153                        classname = 'wp-more-tag',
     154                        spacer = tinymce.Env.ie ? '' : '<br data-mce-bogus="1" />',
    133155                        dom = editor.dom,
    134156                        node = editor.selection.getNode();
    … …  
    137159                classname += ' mce-wp-' + tag;
    138160                title = tag === 'more' ? 'More...' : 'Next Page';
    139                 html = '<img src="' + tinymce.Env.transparentSrc + '" title="' + title + '" class="' + classname + '" data-mce-resize="false" data-mce-placeholder="1" />';
     161                html = '<img src="' + tinymce.Env.transparentSrc + '" title="' + title + '" class="' + classname + '" ' +
     162                        'data-mce-resize="false" data-mce-placeholder="1" />';
    140163
    141164                if ( node.nodeName === 'BODY' ) {
    142                         editor.insertContent( '<p>' + html + '</p>' );
     165                        editor.insertContent( '<p>' + html + '</p><p></p>' );
    143166                        return;
    144167                }
    … …  
    154177
    155178                if ( parent ) {
    156                         dom.insertAfter( dom.create( 'p', null, html ), parent );
     179                        p1 = dom.create( 'p', null, html );
     180                        dom.insertAfter( p1, parent );
     181
     182                        if ( ! ( p2 = p1.nextSibling ) ) {
     183                                p2 = dom.create( 'p', null, spacer );
     184                                dom.insertAfter( p2, p1 );
     185                        }
     186
     187                        editor.nodeChanged();
     188                        editor.selection.setCursorLocation( p2, 0 );
    157189                }
    158190        });
Note: See TracChangeset for help on using the changeset viewer.