From cb156832e9bafb56de6be57e653072fb8f263cda Mon Sep 17 00:00:00 2001 From: Yifei He Date: Mon, 5 Dec 2016 14:47:27 +0800 Subject: [PATCH] Replace Linker::link() & Linker::linkKnown() with LinkRenderer Change-Id: I1350819165095d9be79aea8d9189760a4dbddd40 --- .../specials/pagers/AllMessagesTablePager.php | 21 ++++++++---------- includes/specials/pagers/BlockListPager.php | 22 +++++++++++-------- includes/specials/pagers/ContribsPager.php | 20 ++++++++++------- .../specials/pagers/DeletedContribsPager.php | 21 ++++++++++-------- includes/specials/pagers/ImageListPager.php | 15 ++++++++----- 5 files changed, 55 insertions(+), 44 deletions(-) diff --git a/includes/specials/pagers/AllMessagesTablePager.php b/includes/specials/pagers/AllMessagesTablePager.php index 5609310173..efc51ef3ff 100644 --- a/includes/specials/pagers/AllMessagesTablePager.php +++ b/includes/specials/pagers/AllMessagesTablePager.php @@ -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 ); } diff --git a/includes/specials/pagers/BlockListPager.php b/includes/specials/pagers/BlockListPager.php index d8229761b7..a4124db5f4 100644 --- a/includes/specials/pagers/BlockListPager.php +++ b/includes/specials/pagers/BlockListPager.php @@ -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 ); diff --git a/includes/specials/pagers/ContribsPager.php b/includes/specials/pagers/ContribsPager.php index a145e458d0..39c55c8a0c 100644 --- a/includes/specials/pagers/ContribsPager.php +++ b/includes/specials/pagers/ContribsPager.php @@ -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 ) ] ); diff --git a/includes/specials/pagers/DeletedContribsPager.php b/includes/specials/pagers/DeletedContribsPager.php index 1acbba1070..9ffcce9ef8 100644 --- a/includes/specials/pagers/DeletedContribsPager.php +++ b/includes/specials/pagers/DeletedContribsPager.php @@ -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 = '' . $link . ''; } - $pagelink = Linker::link( + $pagelink = $linkRenderer->makeLink( $page, null, [ 'class' => 'mw-changeslist-title' ] diff --git a/includes/specials/pagers/ImageListPager.php b/includes/specials/pagers/ImageListPager.php index 7fc4a9595d..59dea025a6 100644 --- a/includes/specials/pagers/ImageListPager.php +++ b/includes/specials/pagers/ImageListPager.php @@ -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 ); -- 2.20.1