From: Rohan Date: Tue, 29 Jul 2014 13:42:58 +0000 (+0530) Subject: Special:Newpages feed now shows first revision instead of latest revision X-Git-Tag: 1.31.0-rc.0~2392^2 X-Git-Url: https://git.heureux-cyclage.org/?p=lhc%2Fweb%2Fwiklou.git;a=commitdiff_plain;h=4475e1c8cb4828d1e560afd87dcd715585397de3 Special:Newpages feed now shows first revision instead of latest revision Bug: T69026 Change-Id: I1f794f314319127848a4e9981c7d4f549fb4fd0f --- diff --git a/includes/specials/SpecialNewpages.php b/includes/specials/SpecialNewpages.php index be8ad8fb40..2c39331967 100644 --- a/includes/specials/SpecialNewpages.php +++ b/includes/specials/SpecialNewpages.php @@ -293,6 +293,19 @@ class SpecialNewpages extends IncludableSpecialPage { ); } + /** + * @param stdClass $row Result row from recent changes + * @return Revision|bool + */ + protected function revisionFromRcResult( stdClass $result ) { + return new Revision( [ + 'comment' => $result->rc_comment, + 'deleted' => $result->rc_deleted, + 'user_text' => $result->rc_user_text, + 'user' => $result->rc_user, + ] ); + } + /** * Format a row, providing the timestamp, links to the page/history, * size, user links, and a comment @@ -303,14 +316,9 @@ class SpecialNewpages extends IncludableSpecialPage { public function formatRow( $result ) { $title = Title::newFromRow( $result ); - # Revision deletion works on revisions, so we should cast one - $row = [ - 'comment' => $result->rc_comment, - 'deleted' => $result->rc_deleted, - 'user_text' => $result->rc_user_text, - 'user' => $result->rc_user, - ]; - $rev = new Revision( $row ); + // Revision deletion works on revisions, + // so cast our recent change row to a revision row. + $rev = $this->revisionFromRcResult( $result ); $rev->setTitle( $title ); $classes = []; @@ -477,7 +485,7 @@ class SpecialNewpages extends IncludableSpecialPage { } protected function feedItemDesc( $row ) { - $revision = Revision::newFromId( $row->rev_id ); + $revision = $this->revisionFromRcResult( $row ); if ( $revision ) { // XXX: include content model/type in feed item? return '

' . htmlspecialchars( $revision->getUserText() ) .