WordPress.org

Make WordPress Core

Changeset 26941


Ignore:
Timestamp:
01/14/2014 05:45:53 AM (8 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.