How to Integrate Trac and WordPress (as done on the WP Development blog)?

Back in May, I recall seeing a post on the WordPress Development blog by Alex M (Viper007bond.com) where he added functionality for Automatic Ticket/Revision/Diff Linking which allows for linking to Trac tickets, Trac revisions, and Trac diff comparisons.

I am wanting to do the same thing with an internal WordPress blog and Trac that I have for my business. I haven’t seen where this was released as a WordPress plugin so I was hoping that people could point me in the right direction on how to do this in how to do this integration between Trac and WordPress. Thanks.

Related posts

Leave a Reply

2 comments

  1. Here’s the source of the functionality. It’s just a content filter and some basic regex that one of my coworkers at Automattic wrote.

    add_filter( 'the_content', 'markup_wporg_links' );
    add_filter( 'comment_text', 'markup_wporg_links' );
    
    function markup_wporg_links( $content ) {
        $find = array(
            '/( |^)#(d{3,6})(b|$)/i', // core trac ticket #1234-core in http://core.trac.wordpress.org/ticket/
            '/( |^)r(d{3,6})(b|$)/i', // core changeset r1234-core in http://core.trac.wordpress.org/changeset/1234
            '/( |^)diff:@(d{3,6}):(d{3,6})(b|$)/i', // core diff diff-core:@20:30 https://core.trac.wordpress.org/changeset?new=30&old=20
        );
    
        $replace = array(
            '<a href="http://core.trac.wordpress.org/ticket/$2">$0</a>', // core trac ticket
            '<a href="http://core.trac.wordpress.org/changeset/$2">$0</a>', // core trac changeset
            '<a href="http://core.trac.wordpress.org/changeset?new=$3&old=$2">$0</a>', // core diff
        );
    
        preg_match_all( '#[^>]+(?=<[^/]*[^a])|[^>]+$#', $content, $matches, PREG_SET_ORDER );
    
        foreach ( $matches as $val )
            $content = str_replace( $val[0], preg_replace( $find, $replace, $val[0] ), $content );
    
        return $content;
    }
    

    Modify it to suit your needs.

  2. Also take a look at RTC (free for 10 users on jazz.net) it is the next big thing.

    It automatically combines changing your stuff with the work items attached / diffs / with even your planning. It’s the followup of Eclipse (which provided an open source framework).

    IMHO the best thing out there currently