* (bug 943) RSS feed for Recentchangeslinked
authorVictor Vasiliev <vasilievvv@users.mediawiki.org>
Sat, 1 Dec 2007 20:10:49 +0000 (20:10 +0000)
committerVictor Vasiliev <vasilievvv@users.mediawiki.org>
Sat, 1 Dec 2007 20:10:49 +0000 (20:10 +0000)
RELEASE-NOTES
includes/SpecialRecentchangeslinked.php
languages/messages/MessagesEn.php
maintenance/language/messages.inc

index 2975a27..3018e5a 100644 (file)
@@ -86,6 +86,7 @@ it from source control: http://www.mediawiki.org/wiki/Download_from_SVN
 * Show a warning message when creating/editing a user (talk) page but the user
   does not exists
 * (bug 8396) Ignore out-of-date serialised message caches
+* (bug 943) RSS feed for Recentchangeslinked
 
 === Bug fixes in 1.12 ===
 
index 2a8ac32..d413667 100644 (file)
@@ -152,6 +152,7 @@ $GROUPBY
        $s = $list->beginRecentChangesList();
        $count = $dbr->numRows( $res );
 
+       $rchanges = array();
        if ( $count ) {
                $counter = 1;
                while ( $limit ) {
@@ -162,6 +163,7 @@ $GROUPBY
                        $rc->counter = $counter++;
                        $s .= $list->recentChangesLine( $rc , !empty( $obj->wl_user) );
                        --$limit;
+                       $rchanges[] = $rc;
                }
        } else {
                $wgOut->addWikiText( wfMsg('recentchangeslinked-noresult') );
@@ -170,6 +172,35 @@ $GROUPBY
 
        $dbr->freeResult( $res );
        $wgOut->addHTML( $s );
+
+       global $wgSitename, $wgFeedClasses, $wgTitle, $wgContLanguageCode;
+       $feedFormat = $wgRequest->getVal( 'feed' );
+       if( $feedFormat && isset( $wgFeedClasses[$feedFormat] ) ) {
+               $feedTitle = $wgSitename . ' - ' . wfMsgForContent( 'recentchangeslinked-title', $nt->getPrefixedText() ) . ' [' . $wgContLanguageCode . ']';
+               $feed = new $wgFeedClasses[$feedFormat]( $feedTitle,
+                       htmlspecialchars( wfMsgForContent('recentchangeslinked') ), $wgTitle->getFullUrl() );
+               
+               $feedItems = array();
+               foreach( $rchanges as $rc ) {
+                       $title = $rc->getTitle();
+                       $titleStr = $title->getFullText();
+                       $titleUrl = $title->getFullUrl();
+                       $timestamp = $rc->getAttribute('rc_timestamp');
+                       $user = $rc->getAttribute('rc_user_text');
+                       $comment = $rc->getAttribute('rc_comment');
+                       $message = ( $comment ? 'recentchangeslinked-feed-entry-comment' : 'recentchangeslinked-feed-entry' );
+                       $content = wfMsgHtml( $message, $user, $titleStr, $comment );
+                       
+                       $feedItems[] = new FeedItem( $titleStr, $content, $titleUrl, $timestamp, $user );
+               }
+               
+               $wgOut->disable();
+               $feed->outHeader();
+               foreach( $feedItems as &$item ) {
+                       $feed->outItem( $item );
+               }
+               $feed->outFooter();
+       }
 }
 
 
index 7e1f7b2..d02a84e 100644 (file)
@@ -1393,6 +1393,8 @@ Unselected groups will not be changed. You can deselect a group with CTRL + Left
 'recentchangeslinked-title' => 'Changes related to $1',
 'recentchangeslinked-noresult' => 'No changes on linked pages during the given period.',
 'recentchangeslinked-summary'  => "This special page lists the last changes on pages who are linked. Pages on your watchlist are '''bold'''.",
+'recentchangeslinked-feed-entry' => 'User $1 edited $2',
+'recentchangeslinked-feed-entry-comment' => 'User $1 edited $2 ($3)',
 
 # Upload
 'upload'                      => 'Upload file',
index d9a16a7..e8c3ebe 100644 (file)
@@ -805,6 +805,8 @@ $wgMessageStructure = array(
                'recentchangeslinked-title',
                'recentchangeslinked-noresult',
                'recentchangeslinked-summary',
+               'recentchangeslinked-feed-entry',
+               'recentchangeslinked-feed-entry-comment',
        ),
        'upload' => array(
                'upload',