From 9a0ceb9fad69a02cd15f89cc2b0ee3237c00ddcd Mon Sep 17 00:00:00 2001 From: Brian Wolff Date: Sun, 19 Jun 2011 05:45:40 +0000 Subject: [PATCH] (bug 29485) For rss feed of the RC, it groups consecutive edits by same user, but then links to the diff of only one edit, instead of all of the grouped edits (but displays the combined diff directly in feed) Also well I'm here, make it not group new page creation with subsequent edit, because that doesn't really work right. --- RELEASE-NOTES-1.19 | 4 ++++ includes/ChangesFeed.php | 14 +++++++++++++- 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/RELEASE-NOTES-1.19 b/RELEASE-NOTES-1.19 index 805fd13c33..7e640d7e90 100644 --- a/RELEASE-NOTES-1.19 +++ b/RELEASE-NOTES-1.19 @@ -101,6 +101,10 @@ production. without reloading the page * (bug 29325) Setting $wgStrictFileExtensions to false gives incorrect warning * (bug 29437) Multiple apostrophes in deleted article title cause odd rendering +* (bug 29485) RSS feed of Special:RecentChange grouped together multiple + consecutive edits by same user in included diff, but then linked to + a single ungrouped diff. +* Do not try to group together a page creation and edit in the RSS feed of RC. === API changes in 1.19 === * BREAKING CHANGE: action=watch now requires POST and token. diff --git a/includes/ChangesFeed.php b/includes/ChangesFeed.php index 49ee33ce03..c4c4a8a1be 100644 --- a/includes/ChangesFeed.php +++ b/includes/ChangesFeed.php @@ -149,6 +149,7 @@ class ChangesFeed { $n = 0; foreach( $rows as $obj ) { if( $n > 0 && + $obj->rc_type == RC_EDIT && $obj->rc_namespace >= 0 && $obj->rc_cur_id == $sorted[$n-1]->rc_cur_id && $obj->rc_user_text == $sorted[$n-1]->rc_user_text ) { @@ -164,10 +165,21 @@ class ChangesFeed { $talkpage = MWNamespace::canTalk( $obj->rc_namespace ) ? $title->getTalkPage()->getFullUrl() : ''; // Skip items with deleted content (avoids partially complete/inconsistent output) if( $obj->rc_deleted ) continue; + + if ( $obj->rc_this_oldid ) { + $url = $title->getFullURL( + 'diff=' . $obj->rc_this_oldid . + '&oldid=' . $obj->rc_last_oldid + ); + } else { + // log entry or something like that. + $url = $title->getFullURL(); + } + $item = new FeedItem( $title->getPrefixedText(), FeedUtils::formatDiff( $obj ), - $obj->rc_this_oldid ? $title->getFullURL( 'diff=' . $obj->rc_this_oldid . '&oldid=prev' ) : $title->getFullURL(), + $url, $obj->rc_timestamp, ($obj->rc_deleted & Revision::DELETED_USER) ? wfMsgHtml('rev-deleted-user') : $obj->rc_user_text, $talkpage -- 2.20.1