ContribsPager: Check if target is an IP range outside foreach loop
[lhc/web/wiklou.git] / includes / specials / pagers / ContribsPager.php
index 7d0a9df..979460c 100644 (file)
@@ -371,7 +371,7 @@ class ContribsPager extends RangeChronologicalPager {
         * @return string Name of field
         */
        public function getIndexField() {
-               if ( self::isQueryableRange( $this->target ) ) {
+               if ( $this->isQueryableRange( $this->target ) ) {
                        return 'ipc_rev_timestamp';
                } else {
                        return 'rev_timestamp';
@@ -384,6 +384,7 @@ class ContribsPager extends RangeChronologicalPager {
                $parentRevIds = [];
                $this->mParentLens = [];
                $batch = new LinkBatch();
+               $isIpRange = $this->isQueryableRange( $this->target );
                # Give some pointers to make (last) links
                foreach ( $this->mResult as $row ) {
                        if ( isset( $row->rev_parent_id ) && $row->rev_parent_id ) {
@@ -394,6 +395,9 @@ class ContribsPager extends RangeChronologicalPager {
                                if ( $this->contribs === 'newbie' ) { // multiple users
                                        $batch->add( NS_USER, $row->user_name );
                                        $batch->add( NS_USER_TALK, $row->user_name );
+                               } elseif ( $isIpRange ) {
+                                       // If this is an IP range, batch the IP's talk page
+                                       $batch->add( NS_USER_TALK, $row->rev_user_text );
                                }
                                $batch->add( $row->page_namespace, $row->page_title );
                        }
@@ -546,7 +550,7 @@ class ContribsPager extends RangeChronologicalPager {
                        # When querying for an IP range, we want to always show user and user talk links.
                        $userlink = '';
                        if ( ( $this->contribs == 'newbie' && !$rev->isDeleted( Revision::DELETED_USER ) )
-                               || self::isQueryableRange( $this->target ) ) {
+                               || $this->isQueryableRange( $this->target ) ) {
                                $userlink = ' . . ' . $lang->getDirMark()
                                        . Linker::userLink( $rev->getUser(), $rev->getUserText() );
                                $userlink .= ' ' . $this->msg( 'parentheses' )->rawParams(