Replace Linker::link() & Linker::linkKnown() with LinkRenderer
authorYifei He <eflyjason@gmail.com>
Mon, 5 Dec 2016 06:47:27 +0000 (14:47 +0800)
committerKunal Mehta <legoktm@member.fsf.org>
Wed, 7 Dec 2016 06:16:51 +0000 (22:16 -0800)
Change-Id: I1350819165095d9be79aea8d9189760a4dbddd40

includes/specials/pagers/AllMessagesTablePager.php
includes/specials/pagers/BlockListPager.php
includes/specials/pagers/ContribsPager.php
includes/specials/pagers/DeletedContribsPager.php
includes/specials/pagers/ImageListPager.php

index 5609310..efc51ef 100644 (file)
@@ -25,6 +25,8 @@
  *
  * @ingroup Pager
  */
+use MediaWiki\MediaWikiServices;
+
 class AllMessagesTablePager extends TablePager {
 
        protected $filter, $prefix, $langcode, $displayPrefix;
@@ -297,6 +299,7 @@ class AllMessagesTablePager extends TablePager {
        }
 
        function formatValue( $field, $value ) {
+               $linkRenderer = MediaWikiServices::getInstance()->getLinkRenderer();
                switch ( $field ) {
                        case 'am_title' :
                                $title = Title::makeTitle( NS_MEDIAWIKI, $value . $this->suffix );
@@ -313,25 +316,19 @@ class AllMessagesTablePager extends TablePager {
                                );
 
                                if ( $this->mCurrentRow->am_customised ) {
-                                       $title = Linker::linkKnown( $title, $this->getLanguage()->lcfirst( $value ) );
+                                       $title = $linkRenderer->makeKnownLink( $title, $this->getLanguage()->lcfirst( $value ) );
                                } else {
-                                       $title = Linker::link(
+                                       $title = $linkRenderer->makeBrokenLink(
                                                $title,
-                                               $this->getLanguage()->lcfirst( $value ),
-                                               [],
-                                               [],
-                                               [ 'broken' ]
+                                               $this->getLanguage()->lcfirst( $value )
                                        );
                                }
                                if ( $this->mCurrentRow->am_talk_exists ) {
-                                       $talk = Linker::linkKnown( $talk, $this->talk );
+                                       $talk = $linkRenderer->makeKnownLink( $talk, $this->talk );
                                } else {
-                                       $talk = Linker::link(
+                                       $talk = $linkRenderer->makeBrokenLink(
                                                $talk,
-                                               $this->talk,
-                                               [],
-                                               [],
-                                               [ 'broken' ]
+                                               $this->talk
                                        );
                                }
 
index d822976..a4124db 100644 (file)
@@ -22,6 +22,8 @@
 /**
  * @ingroup Pager
  */
+use MediaWiki\MediaWikiServices;
+
 class BlockListPager extends TablePager {
 
        protected $conds;
@@ -72,7 +74,7 @@ class BlockListPager extends TablePager {
                        ];
 
                        foreach ( $keys as $key ) {
-                               $msg[$key] = $this->msg( $key )->escaped();
+                               $msg[$key] = $this->msg( $key )->text();
                        }
                }
 
@@ -83,6 +85,8 @@ class BlockListPager extends TablePager {
 
                $formatted = '';
 
+               $linkRenderer = MediaWikiServices::getInstance()->getLinkRenderer();
+
                switch ( $name ) {
                        case 'ipb_timestamp':
                                $formatted = htmlspecialchars( $language->userTimeAndDate( $value, $this->getUser() ) );
@@ -117,18 +121,18 @@ class BlockListPager extends TablePager {
                                ) );
                                if ( $this->getUser()->isAllowed( 'block' ) ) {
                                        if ( $row->ipb_auto ) {
-                                               $links[] = Linker::linkKnown(
+                                               $links[] = $linkRenderer->makeKnownLink(
                                                        SpecialPage::getTitleFor( 'Unblock' ),
                                                        $msg['unblocklink'],
                                                        [],
                                                        [ 'wpTarget' => "#{$row->ipb_id}" ]
                                                );
                                        } else {
-                                               $links[] = Linker::linkKnown(
+                                               $links[] = $linkRenderer->makeKnownLink(
                                                        SpecialPage::getTitleFor( 'Unblock', $row->ipb_address ),
                                                        $msg['unblocklink']
                                                );
-                                               $links[] = Linker::linkKnown(
+                                               $links[] = $linkRenderer->makeKnownLink(
                                                        SpecialPage::getTitleFor( 'Block', $row->ipb_address ),
                                                        $msg['change-blocklink']
                                                );
@@ -174,21 +178,21 @@ class BlockListPager extends TablePager {
                        case 'ipb_params':
                                $properties = [];
                                if ( $row->ipb_anon_only ) {
-                                       $properties[] = $msg['anononlyblock'];
+                                       $properties[] = htmlspecialchars( $msg['anononlyblock'] );
                                }
                                if ( $row->ipb_create_account ) {
-                                       $properties[] = $msg['createaccountblock'];
+                                       $properties[] = htmlspecialchars( $msg['createaccountblock'] );
                                }
                                if ( $row->ipb_user && !$row->ipb_enable_autoblock ) {
-                                       $properties[] = $msg['noautoblockblock'];
+                                       $properties[] = htmlspecialchars( $msg['noautoblockblock'] );
                                }
 
                                if ( $row->ipb_block_email ) {
-                                       $properties[] = $msg['emailblock'];
+                                       $properties[] = htmlspecialchars( $msg['emailblock'] );
                                }
 
                                if ( !$row->ipb_allow_usertalk ) {
-                                       $properties[] = $msg['blocklist-nousertalk'];
+                                       $properties[] = htmlspecialchars( $msg['blocklist-nousertalk'] );
                                }
 
                                $formatted = $language->commaList( $properties );
index a145e45..39c55c8 100644 (file)
@@ -23,6 +23,8 @@
  * Pager for Special:Contributions
  * @ingroup Pager
  */
+use MediaWiki\MediaWikiServices;
+
 class ContribsPager extends ReverseChronologicalPager {
 
        public $mDefaultDirection = IndexPager::DIR_DESCENDING;
@@ -347,6 +349,8 @@ class ContribsPager extends ReverseChronologicalPager {
                $ret = '';
                $classes = [];
 
+               $linkRenderer = MediaWikiServices::getInstance()->getLinkRenderer();
+
                /*
                 * There may be more than just revision rows. To make sure that we'll only be processing
                 * revisions here, let's _try_ to build a revision out of our row (without displaying
@@ -367,9 +371,9 @@ class ContribsPager extends ReverseChronologicalPager {
                        $classes = [];
 
                        $page = Title::newFromRow( $row );
-                       $link = Linker::link(
+                       $link = $linkRenderer->makeLink(
                                $page,
-                               htmlspecialchars( $page->getPrefixedText() ),
+                               $page->getPrefixedText(),
                                [ 'class' => 'mw-contributions-title' ],
                                $page->isRedirect() ? [ 'redirect' => 'no' ] : []
                        );
@@ -389,9 +393,9 @@ class ContribsPager extends ReverseChronologicalPager {
                        }
                        # Is there a visible previous revision?
                        if ( $rev->userCan( Revision::DELETED_TEXT, $user ) && $rev->getParentId() !== 0 ) {
-                               $difftext = Linker::linkKnown(
+                               $difftext = $linkRenderer->makeKnownLink(
                                        $page,
-                                       $this->messages['diff'],
+                                       new HtmlArmor( $this->messages['diff'] ),
                                        [],
                                        [
                                                'diff' => 'prev',
@@ -401,9 +405,9 @@ class ContribsPager extends ReverseChronologicalPager {
                        } else {
                                $difftext = $this->messages['diff'];
                        }
-                       $histlink = Linker::linkKnown(
+                       $histlink = $linkRenderer->makeKnownLink(
                                $page,
-                               $this->messages['hist'],
+                               new HtmlArmor( $this->messages['hist'] ),
                                [],
                                [ 'action' => 'history' ]
                        );
@@ -434,9 +438,9 @@ class ContribsPager extends ReverseChronologicalPager {
                        $comment = $lang->getDirMark() . Linker::revComment( $rev, false, true );
                        $date = $lang->userTimeAndDate( $row->rev_timestamp, $user );
                        if ( $rev->userCan( Revision::DELETED_TEXT, $user ) ) {
-                               $d = Linker::linkKnown(
+                               $d = $linkRenderer->makeKnownLink(
                                        $page,
-                                       htmlspecialchars( $date ),
+                                       $date,
                                        [ 'class' => 'mw-changeslist-date' ],
                                        [ 'oldid' => intval( $row->rev_id ) ]
                                );
index 1acbba1..9ffcce9 100644 (file)
@@ -22,6 +22,8 @@
 /**
  * @ingroup Pager
  */
+use MediaWiki\MediaWikiServices;
+
 class DeletedContribsPager extends IndexPager {
 
        public $mDefaultDirection = IndexPager::DIR_DESCENDING;
@@ -39,7 +41,7 @@ class DeletedContribsPager extends IndexPager {
                parent::__construct( $context );
                $msgs = [ 'deletionlog', 'undeleteviewlink', 'diff' ];
                foreach ( $msgs as $msg ) {
-                       $this->messages[$msg] = $this->msg( $msg )->escaped();
+                       $this->messages[$msg] = $this->msg( $msg )->text();
                }
                $this->target = $target;
                $this->namespace = $namespace;
@@ -240,6 +242,8 @@ class DeletedContribsPager extends IndexPager {
        function formatRevisionRow( $row ) {
                $page = Title::makeTitle( $row->ar_namespace, $row->ar_title );
 
+               $linkRenderer = MediaWikiServices::getInstance()->getLinkRenderer();
+
                $rev = new Revision( [
                        'title' => $page,
                        'id' => $row->ar_rev_id,
@@ -254,7 +258,7 @@ class DeletedContribsPager extends IndexPager {
                $undelete = SpecialPage::getTitleFor( 'Undelete' );
 
                $logs = SpecialPage::getTitleFor( 'Log' );
-               $dellog = Linker::linkKnown(
+               $dellog = $linkRenderer->makeKnownLink(
                        $logs,
                        $this->messages['deletionlog'],
                        [],
@@ -264,7 +268,7 @@ class DeletedContribsPager extends IndexPager {
                        ]
                );
 
-               $reviewlink = Linker::linkKnown(
+               $reviewlink = $linkRenderer->makeKnownLink(
                        SpecialPage::getTitleFor( 'Undelete', $page->getPrefixedDBkey() ),
                        $this->messages['undeleteviewlink']
                );
@@ -272,7 +276,7 @@ class DeletedContribsPager extends IndexPager {
                $user = $this->getUser();
 
                if ( $user->isAllowed( 'deletedtext' ) ) {
-                       $last = Linker::linkKnown(
+                       $last = $linkRenderer->makeKnownLink(
                                $undelete,
                                $this->messages['diff'],
                                [],
@@ -283,17 +287,16 @@ class DeletedContribsPager extends IndexPager {
                                ]
                        );
                } else {
-                       $last = $this->messages['diff'];
+                       $last = htmlspecialchars( $this->messages['diff'] );
                }
 
                $comment = Linker::revComment( $rev );
                $date = $this->getLanguage()->userTimeAndDate( $rev->getTimestamp(), $user );
-               $date = htmlspecialchars( $date );
 
                if ( !$user->isAllowed( 'undelete' ) || !$rev->userCan( Revision::DELETED_TEXT, $user ) ) {
-                       $link = $date; // unusable link
+                       $link = htmlspecialchars( $date ); // unusable link
                } else {
-                       $link = Linker::linkKnown(
+                       $link = $linkRenderer->makeKnownLink(
                                $undelete,
                                $date,
                                [ 'class' => 'mw-changeslist-date' ],
@@ -308,7 +311,7 @@ class DeletedContribsPager extends IndexPager {
                        $link = '<span class="history-deleted">' . $link . '</span>';
                }
 
-               $pagelink = Linker::link(
+               $pagelink = $linkRenderer->makeLink(
                        $page,
                        null,
                        [ 'class' => 'mw-changeslist-title' ]
index 7fc4a95..59dea02 100644 (file)
@@ -22,6 +22,8 @@
 /**
  * @ingroup Pager
  */
+use MediaWiki\MediaWikiServices;
+
 class ImageListPager extends TablePager {
 
        protected $mFieldNames = null;
@@ -422,6 +424,7 @@ class ImageListPager extends TablePager {
         * @throws MWException
         */
        function formatValue( $field, $value ) {
+               $linkRenderer = MediaWikiServices::getInstance()->getLinkRenderer();
                switch ( $field ) {
                        case 'thumb':
                                $opt = [ 'time' => wfTimestamp( TS_MW, $this->mCurrentRow->img_timestamp ) ];
@@ -449,9 +452,9 @@ class ImageListPager extends TablePager {
                                // Weird files can maybe exist? Bug 22227
                                $filePage = Title::makeTitleSafe( NS_FILE, $value );
                                if ( $filePage ) {
-                                       $link = Linker::linkKnown(
+                                       $link = $linkRenderer->makeKnownLink(
                                                $filePage,
-                                               htmlspecialchars( $filePage->getText() )
+                                               $filePage->getText()
                                        );
                                        $download = Xml::element( 'a',
                                                [ 'href' => wfLocalFile( $filePage )->getUrl() ],
@@ -462,9 +465,9 @@ class ImageListPager extends TablePager {
                                        // Add delete links if allowed
                                        // From https://github.com/Wikia/app/pull/3859
                                        if ( $filePage->userCan( 'delete', $this->getUser() ) ) {
-                                               $deleteMsg = $this->msg( 'listfiles-delete' )->escaped();
+                                               $deleteMsg = $this->msg( 'listfiles-delete' )->text();
 
-                                               $delete = Linker::linkKnown(
+                                               $delete = $linkRenderer->makeKnownLink(
                                                        $filePage, $deleteMsg, [], [ 'action' => 'delete' ]
                                                );
                                                $delete = $this->msg( 'parentheses' )->rawParams( $delete )->escaped();
@@ -479,9 +482,9 @@ class ImageListPager extends TablePager {
                        case 'img_user_text':
                                if ( $this->mCurrentRow->img_user ) {
                                        $name = User::whoIs( $this->mCurrentRow->img_user );
-                                       $link = Linker::link(
+                                       $link = $linkRenderer->makeLink(
                                                Title::makeTitle( NS_USER, $name ),
-                                               htmlspecialchars( $name )
+                                               $name
                                        );
                                } else {
                                        $link = htmlspecialchars( $value );