Merge "Make Special:NewPages show "originally created as" correctly"
authorjenkins-bot <jenkins-bot@gerrit.wikimedia.org>
Mon, 14 Aug 2017 17:40:09 +0000 (17:40 +0000)
committerGerrit Code Review <gerrit@wikimedia.org>
Mon, 14 Aug 2017 17:40:09 +0000 (17:40 +0000)
1  2 
includes/specials/SpecialNewpages.php

@@@ -293,19 -293,6 +293,19 @@@ class SpecialNewpages extends Includabl
                );
        }
  
 +      /**
 +       * @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
        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 = [];
                # Display the old title if the namespace/title has been changed
                $oldTitleText = '';
                $oldTitle = Title::makeTitle( $result->rc_namespace, $result->rc_title );
-               $ret = "{$time} {$dm}{$plink} {$hist} {$dm}{$length} {$dm}{$ulink} {$comment} "
-                       . "{$tagDisplay} {$oldTitleText}";
-               // Let extensions add data
-               Hooks::run( 'NewPagesLineEnding', [ $this, &$ret, $result, &$classes, &$attribs ] );
-               $attribs = wfArrayFilterByKey( $attribs, [ Sanitizer::class, 'isReservedDataAttribute' ] );
  
                if ( count( $classes ) ) {
                        $attribs['class'] = implode( ' ', $classes );
                        );
                }
  
+               $ret = "{$time} {$dm}{$plink} {$hist} {$dm}{$length} {$dm}{$ulink} {$comment} "
+                       . "{$tagDisplay} {$oldTitleText}";
+               // Let extensions add data
+               Hooks::run( 'NewPagesLineEnding', [ $this, &$ret, $result, &$classes, &$attribs ] );
+               $attribs = wfArrayFilterByKey( $attribs, [ Sanitizer::class, 'isReservedDataAttribute' ] );
                return Html::rawElement( 'li', $attribs, $ret ) . "\n";
        }
  
        }
  
        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 '<p>' . htmlspecialchars( $revision->getUserText() ) .