WordPress.org

Make WordPress Core

Ticket #24263: 24263.patch

File 24263.patch, 2.5 KB (added by a.hoereth, 2 years ago)

tinyMCE style caption-shortcode in revisions

  • wp-admin/css/wp-admin.css

     
    35723572        text-decoration: none; 
    35733573} 
    35743574 
     3575/* prevents user agent stylesheet from messing up */ 
     3576table.diff .wp-caption-dd { 
     3577        margin: 0; 
     3578} 
     3579 
    35753580#revisions-diff { 
    35763581        position: relative; 
    35773582} 
  • wp-admin/js/revisions.js

     
    641641                                        addHtml = this.template( this.model.at( Diff.rightDiff - 1 ).toJSON() ); 
    642642                                } 
    643643                        } 
    644                         this.$el.html( addHtml ); 
     644                        this.$el.html( this._do_shcode( addHtml ) ); 
    645645 
    646646                        if ( this.model.length < 2 ) { 
    647647                                $( '#diff-slider' ).hide(); // don't allow compare two if fewer than three revisions 
     
    689689 
    690690                restore: function() { 
    691691                        document.location = $( '#restore-revision' ).data( 'restoreLink' ); 
     692                }, 
     693 
     694                // from wp-includes/js/tinymce/plugins/wpeditimage/editor_plugin_src.js:124+ 
     695                _do_shcode: function( html ) { 
     696                        return html.replace(/(?:<p>)?\[(?:wp_)?caption([^\]]+)\]([\s\S]+?)\[\/(?:wp_)?caption\](?:<\/p>)?/g, function(a,b,c){ 
     697                                var id, cls, w, cap, div_cls, img, trim = $.trim; // using jQuery.trim() 
     698 
     699                                id = b.match(/id=['"]([^'"]*)['"] ?/); 
     700                                if ( id ) 
     701                                        b = b.replace(id[0], ''); 
     702 
     703                                cls = b.match(/align=['"]([^'"]*)['"] ?/); 
     704                                if ( cls ) 
     705                                        b = b.replace(cls[0], ''); 
     706 
     707                                w = b.match(/width=['"]([0-9]*)['"] ?/); 
     708                                if ( w ) 
     709                                        b = b.replace(w[0], ''); 
     710 
     711                                c = trim(c); 
     712                                img = c.match(/((?:<a [^>]+>)?<img [^>]+>(?:<\/a>)?)([\s\S]*)/i); 
     713 
     714                                if ( img && img[2] ) { 
     715                                        cap = trim( img[2] ); 
     716                                        img = trim( img[1] ); 
     717                                } else { 
     718                                        // old captions shortcode style 
     719                                        cap = trim(b).replace(/caption=['"]/, '').replace(/['"]$/, ''); 
     720                                        img = c; 
     721                                } 
     722 
     723                                id = ( id && id[1] ) ? id[1] : ''; 
     724                                cls = ( cls && cls[1] ) ? cls[1] : 'alignnone'; 
     725                                w = ( w && w[1] ) ? w[1] : ''; 
     726 
     727                                if ( !w || !cap ) 
     728                                        return c; 
     729 
     730                                div_cls = 'mceTemp'; 
     731                                if ( cls == 'aligncenter' ) 
     732                                        div_cls += ' mceIEcenter'; 
     733 
     734                                // added max-width for revisions view 
     735                                return '<div class="'+div_cls+'"><dl id="'+id+'" class="wp-caption '+cls+'" style="width: '+( 10 + parseInt(w) )+ 
     736                                'px; max-width: 100%;"><dt class="wp-caption-dt">'+img+'</dt><dd class="wp-caption-dd">'+cap+'</dd></dl></div>'; 
     737                        }); 
    692738                } 
    693739        }); 
    694740