From: Victor Vasiliev Date: Sat, 1 Dec 2007 20:10:49 +0000 (+0000) Subject: * (bug 943) RSS feed for Recentchangeslinked X-Git-Tag: 1.31.0-rc.0~50626 X-Git-Url: https://git.cyclocoop.org//%22?a=commitdiff_plain;h=ffbb82c379caf0ddf28cdb9428d1ae8cfc4c6cb6;p=lhc%2Fweb%2Fwiklou.git * (bug 943) RSS feed for Recentchangeslinked --- diff --git a/RELEASE-NOTES b/RELEASE-NOTES index 2975a278be..3018e5a640 100644 --- a/RELEASE-NOTES +++ b/RELEASE-NOTES @@ -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 === diff --git a/includes/SpecialRecentchangeslinked.php b/includes/SpecialRecentchangeslinked.php index 2a8ac32d1a..d4136679e4 100644 --- a/includes/SpecialRecentchangeslinked.php +++ b/includes/SpecialRecentchangeslinked.php @@ -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(); + } } diff --git a/languages/messages/MessagesEn.php b/languages/messages/MessagesEn.php index 7e1f7b22c3..d02a84ee37 100644 --- a/languages/messages/MessagesEn.php +++ b/languages/messages/MessagesEn.php @@ -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', diff --git a/maintenance/language/messages.inc b/maintenance/language/messages.inc index d9a16a7231..e8c3ebec38 100644 --- a/maintenance/language/messages.inc +++ b/maintenance/language/messages.inc @@ -805,6 +805,8 @@ $wgMessageStructure = array( 'recentchangeslinked-title', 'recentchangeslinked-noresult', 'recentchangeslinked-summary', + 'recentchangeslinked-feed-entry', + 'recentchangeslinked-feed-entry-comment', ), 'upload' => array( 'upload',