WordPress.org

Make WordPress Core

Ticket #28951: 28951.2.diff

File 28951.2.diff, 3.6 KB (added by kadamwhite, 6 years ago)

Alter existing patch to use "align" instead of "aln", and make alignment class regex case-insensitive

  • src/wp-includes/js/tinymce/plugins/wpeditimage/plugin.js

    diff --git src/wp-includes/js/tinymce/plugins/wpeditimage/plugin.js src/wp-includes/js/tinymce/plugins/wpeditimage/plugin.js
    index b1350e4..e8586b9 100644
    tinymce.PluginManager.add( 'wpeditimage', function( editor ) { 
    44
    55        function parseShortcode( content ) {
    66                return content.replace( /(?:<p>)?\[(?:wp_)?caption([^\]]+)\]([\s\S]+?)\[\/(?:wp_)?caption\](?:<\/p>)?/g, function( a, b, c ) {
    7                         var id, cls, w, cap, img, width,
     7                        var id, align, cls, w, cap, img, width,
    88                                trim = tinymce.trim;
    99
    1010                        id = b.match( /id=['"]([^'"]*)['"] ?/ );
    tinymce.PluginManager.add( 'wpeditimage', function( editor ) { 
    1212                                b = b.replace( id[0], '' );
    1313                        }
    1414
    15                         cls = b.match( /align=['"]([^'"]*)['"] ?/ );
     15                        align = b.match( /align=['"]([^'"]*)['"] ?/ );
     16                        if ( align ) {
     17                                b = b.replace( align[0], '' );
     18                        }
     19
     20                        cls = b.match( /class=['"]([^'"]*)['"] ?/ );
    1621                        if ( cls ) {
    1722                                b = b.replace( cls[0], '' );
    1823                        }
    tinymce.PluginManager.add( 'wpeditimage', function( editor ) { 
    3540                        }
    3641
    3742                        id = ( id && id[1] ) ? id[1] : '';
    38                         cls = ( cls && cls[1] ) ? cls[1] : 'alignnone';
     43                        align = ( align && align[1] ) ? align[1] : 'alignnone';
     44                        cls = ( cls && cls[1] ) ? ' ' + cls[1] : '';
    3945
    4046                        if ( ! w && img ) {
    4147                                w = img.match( /width=['"]([0-9]*)['"]/ );
    tinymce.PluginManager.add( 'wpeditimage', function( editor ) { 
    5460                                width += 10;
    5561                        }
    5662
    57                         return '<div class="mceTemp"><dl id="'+ id +'" class="wp-caption '+ cls +'" style="width: '+ width +'px">' +
     63                        return '<div class="mceTemp"><dl id="' + id + '" class="wp-caption ' + align + cls + '" style="width: ' + width + 'px">' +
    5864                                '<dt class="wp-caption-dt">'+ img +'</dt><dd class="wp-caption-dd">'+ cap +'</dd></dl></div>';
    5965                });
    6066        }
    tinymce.PluginManager.add( 'wpeditimage', function( editor ) { 
    7682                        }
    7783
    7884                        out = b.replace( /<dl ([^>]+)>\s*<dt [^>]+>([\s\S]+?)<\/dt>\s*<dd [^>]+>([\s\S]*?)<\/dd>\s*<\/dl>/gi, function( a, b, c, cap ) {
    79                                 var id, cls, w;
     85                                var id, cls, align, w;
    8086
    8187                                w = c.match( /width="([0-9]*)"/ );
    8288                                w = ( w && w[1] ) ? w[1] : '';
    tinymce.PluginManager.add( 'wpeditimage', function( editor ) { 
    9096
    9197                                cls = b.match( /class="([^"]*)"/ );
    9298                                cls = ( cls && cls[1] ) ? cls[1] : '';
    93                                 cls = cls.match( /align[a-z]+/ ) || 'alignnone';
     99
     100                                align = cls.match( /align[a-z]+/i ) || 'alignnone';
     101                                cls = cls.replace( 'wp-caption '+ cls.match( /align[a-z]+/i ) + ' ', '' );
    94102
    95103                                cap = cap.replace( /\r\n|\r/g, '\n' ).replace( /<[a-zA-Z0-9]+( [^<>]+)?>/g, function( a ) {
    96104                                        // no line breaks inside HTML tags
    tinymce.PluginManager.add( 'wpeditimage', function( editor ) { 
    100108                                // convert remaining line breaks to <br>
    101109                                cap = cap.replace( /\s*\n\s*/g, '<br />' );
    102110
    103                                 return '[caption id="'+ id +'" align="'+ cls +'" width="'+ w +'"]'+ c +' '+ cap +'[/caption]';
     111                                return '[caption id="' + id + '" align="' + align + '" width="' + w + '" class="' + cls + '"]' + c + ' ' + cap + '[/caption]';
    104112                        });
    105113
    106114                        if ( out.indexOf('[caption') !== 0 ) {
    tinymce.PluginManager.add( 'wpeditimage', function( editor ) { 
    287295                if ( imageData.caption ) {
    288296
    289297                        id = imageData.attachment_id ? 'attachment_' + imageData.attachment_id : null;
    290                         className = 'wp-caption align' + ( imageData.align || 'none' );
     298                        className = 'wp-caption align' + ( imageData.align || 'none' + ' ' + imageData.cls );
    291299
    292300                        if ( ! editor.getParam( 'wpeditimage_html5_captions' ) ) {
    293301                                width = parseInt( width, 10 );