(bug 29485) For rss feed of the RC, it groups consecutive edits by same user, but...
authorBrian Wolff <bawolff@users.mediawiki.org>
Sun, 19 Jun 2011 05:45:40 +0000 (05:45 +0000)
committerBrian Wolff <bawolff@users.mediawiki.org>
Sun, 19 Jun 2011 05:45:40 +0000 (05:45 +0000)
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
includes/ChangesFeed.php

index 805fd13..7e640d7 100644 (file)
@@ -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.
index 49ee33c..c4c4a8a 100644 (file)
@@ -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