*
* @file
*/
+use MediaWiki\Linker\LinkRenderer;
+use MediaWiki\MediaWikiServices;
class ChangesList extends ContextSource {
/**
/** @var BagOStuff */
protected $watchMsgCache;
+ /**
+ * @var LinkRenderer
+ */
+ protected $linkRenderer;
+
/**
* Changeslist constructor
*
}
$this->preCacheMessages();
$this->watchMsgCache = new HashBagOStuff( [ 'maxKeys' => 50 ] );
+ $this->linkRenderer = MediaWikiServices::getInstance()->getLinkRenderer();
}
/**
*/
public function insertLog( &$s, $title, $logtype ) {
$page = new LogPage( $logtype );
- $logname = $page->getName()->setContext( $this->getContext() )->escaped();
- $s .= $this->msg( 'parentheses' )->rawParams( Linker::linkKnown( $title, $logname ) )->escaped();
+ $logname = $page->getName()->setContext( $this->getContext() )->text();
+ $s .= $this->msg( 'parentheses' )->rawParams(
+ $this->linkRenderer->makeKnownLink( $title, $logname )
+ )->escaped();
}
/**
'oldid' => $rc->mAttribs['rc_last_oldid']
];
- $diffLink = Linker::linkKnown(
+ $diffLink = $this->linkRenderer->makeKnownLink(
$rc->getTitle(),
- $this->message['diff'],
+ new HtmlArmor( $this->message['diff'] ),
[],
$query
);
} else {
$diffhist = $diffLink . $this->message['pipe-separator'];
# History link
- $diffhist .= Linker::linkKnown(
+ $diffhist .= $this->linkRenderer->makeKnownLink(
$rc->getTitle(),
- $this->message['hist'],
+ new HtmlArmor( $this->message['hist'] ),
[],
[
'curid' => $rc->mAttribs['rc_cur_id'],
$params = [ 'redirect' => 'no' ];
}
- $articlelink = Linker::link(
+ $articlelink = $this->linkRenderer->makeLink(
$rc->getTitle(),
null,
[ 'class' => 'mw-changeslist-title' ],
// message is set by the parent ChangesList class
$this->cacheEntryFactory = new RCCacheEntryFactory(
$context,
- $this->message
+ $this->message,
+ $this->linkRenderer
);
}
} elseif ( !ChangesList::userCan( $rcObj, Revision::DELETED_TEXT, $this->getUser() ) ) {
$link = '<span class="history-deleted">' . $rcObj->timestamp . '</span> ';
} else {
- $link = Linker::linkKnown(
+ $link = $this->linkRenderer->makeKnownLink(
$rcObj->getTitle(),
- $rcObj->timestamp,
+ new HtmlArmor( $rcObj->timestamp ),
[],
$params
);
) {
$links['total-changes'] = $nchanges[$n];
} else {
- $links['total-changes'] = Linker::link(
+ $links['total-changes'] = $this->linkRenderer->makeKnownLink(
$block0->getTitle(),
- $nchanges[$n],
+ new HtmlArmor( $nchanges[$n] ),
[],
$queryParams + [
'diff' => $currentRevision,
'oldid' => $last->mAttribs['rc_last_oldid'],
- ],
- [ 'known', 'noclasses' ]
+ ]
);
if ( $sinceLast > 0 && $sinceLast < $n ) {
- $links['total-changes-since-last'] = Linker::link(
+ $links['total-changes-since-last'] = $this->linkRenderer->makeKnownLink(
$block0->getTitle(),
- $sinceLastVisitMsg[$sinceLast],
+ new HtmlArmor( $sinceLastVisitMsg[$sinceLast] ),
[],
$queryParams + [
'diff' => $currentRevision,
'oldid' => $unvisitedOldid,
- ],
- [ 'known', 'noclasses' ]
+ ]
);
}
}
$params = $queryParams;
$params['action'] = 'history';
- $links['history'] = Linker::linkKnown(
+ $links['history'] = $this->linkRenderer->makeKnownLink(
$block0->getTitle(),
- $this->message['enhancedrc-history'],
+ new HtmlArmor( $this->message['enhancedrc-history'] ),
[],
$params
);
if ( $logType ) {
$logPage = new LogPage( $logType );
$logTitle = SpecialPage::getTitleFor( 'Log', $logType );
- $logName = $logPage->getName()->escaped();
+ $logName = $logPage->getName()->text();
$data['logLink'] = $this->msg( 'parentheses' )
- ->rawParams( Linker::linkKnown( $logTitle, $logName ) )->escaped();
+ ->rawParams(
+ $this->linkRenderer->makeKnownLink( $logTitle, $logName )
+ )->escaped();
} else {
$data['articleLink'] = $this->getArticleLink( $rcObj, $rcObj->unpatrolled, $rcObj->watched );
}
}
$retVal = ' ' . $this->msg( 'parentheses' )
- ->rawParams( $rc->difflink . $this->message['pipe-separator'] . Linker::linkKnown(
+ ->rawParams( $rc->difflink . $this->message['pipe-separator']
+ . $this->linkRenderer->makeKnownLink(
$pageTitle,
- $this->message['hist'],
+ new HtmlArmor( $this->message['hist'] ),
[],
$query
) )->escaped();
*
* @file
*/
+use MediaWiki\Linker\LinkRenderer;
class RCCacheEntryFactory {
/* @var string[] */
private $messages;
+ /**
+ * @var LinkRenderer
+ */
+ private $linkRenderer;
+
/**
* @param IContextSource $context
* @param string[] $messages
+ * @param LinkRenderer $linkRenderer
*/
- public function __construct( IContextSource $context, $messages ) {
+ public function __construct(
+ IContextSource $context, $messages, LinkRenderer $linkRenderer
+ ) {
$this->context = $context;
$this->messages = $messages;
+ $this->linkRenderer = $linkRenderer;
}
/**
// New unpatrolled pages
if ( $cacheEntry->unpatrolled && $type == RC_NEW ) {
- $clink = Linker::linkKnown( $cacheEntry->getTitle() );
+ $clink = $this->linkRenderer->makeKnownLink( $cacheEntry->getTitle() );
// Log entries
} elseif ( $type == RC_LOG ) {
$logType = $cacheEntry->mAttribs['rc_log_type'];
$clink = $this->getLogLink( $logType );
} else {
wfDebugLog( 'recentchanges', 'Unexpected log entry with no log type in recent changes' );
- $clink = Linker::link( $cacheEntry->getTitle() );
+ $clink = $this->linkRenderer->makeLink( $cacheEntry->getTitle() );
}
// Log entries (old format) and special pages
} elseif ( $cacheEntry->mAttribs['rc_namespace'] == NS_SPECIAL ) {
$clink = '';
// Edits
} else {
- $clink = Linker::linkKnown( $cacheEntry->getTitle() );
+ $clink = $this->linkRenderer->makeKnownLink( $cacheEntry->getTitle() );
}
return $clink;
private function getLogLink( $logType ) {
$logtitle = SpecialPage::getTitleFor( 'Log', $logType );
$logpage = new LogPage( $logType );
- $logname = $logpage->getName()->escaped();
+ $logname = $logpage->getName()->text();
$logLink = $this->context->msg( 'parentheses' )
- ->rawParams( Linker::linkKnown( $logtitle, $logname ) )->escaped();
+ ->rawParams(
+ $this->linkRenderer->makeKnownLink( $logtitle, $logname )
+ )->escaped();
return $logLink;
}
if ( !$showDiffLinks || !$lastOldid || in_array( $type, $logTypes ) ) {
$lastLink = $lastMessage;
} else {
- $lastLink = Linker::linkKnown(
+ $lastLink = $this->linkRenderer->makeKnownLink(
$cacheEntry->getTitle(),
- $lastMessage,
+ new HtmlArmor( $lastMessage ),
[],
$this->buildDiffQueryParams( $cacheEntry )
);
<?php
+use MediaWiki\Linker\LinkRenderer;
+use MediaWiki\MediaWikiServices;
+
/**
* @covers RCCacheEntryFactory
*
*/
private $testRecentChangesHelper;
+ /**
+ * @var LinkRenderer;
+ */
+ private $linkRenderer;
+
public function __construct( $name = null, array $data = [], $dataName = '' ) {
parent::__construct( $name, $data, $dataName );
$this->setMwGlobals( [
'wgArticlePath' => '/wiki/$1'
] );
+
+ $this->linkRenderer = new LinkRenderer(
+ MediaWikiServices::getInstance()->getTitleFormatter()
+ );
}
public function testNewFromRecentChange() {
0, // counter
0 // number of watching users
);
- $cacheEntryFactory = new RCCacheEntryFactory( $this->getContext(), $this->getMessages() );
+ $cacheEntryFactory = new RCCacheEntryFactory(
+ $this->getContext(),
+ $this->getMessages(),
+ $this->linkRenderer
+ );
$cacheEntry = $cacheEntryFactory->newFromRecentChange( $recentChange, false );
$this->assertInstanceOf( 'RCCacheEntry', $cacheEntry );
0, // counter
0 // number of watching users
);
- $cacheEntryFactory = new RCCacheEntryFactory( $this->getContext(), $this->getMessages() );
+ $cacheEntryFactory = new RCCacheEntryFactory(
+ $this->getContext(),
+ $this->getMessages(),
+ $this->linkRenderer
+ );
$cacheEntry = $cacheEntryFactory->newFromRecentChange( $recentChange, false );
$this->assertInstanceOf( 'RCCacheEntry', $cacheEntry );
0, // counter
0 // number of watching users
);
- $cacheEntryFactory = new RCCacheEntryFactory( $this->getContext(), $this->getMessages() );
+ $cacheEntryFactory = new RCCacheEntryFactory(
+ $this->getContext(),
+ $this->getMessages(),
+ $this->linkRenderer
+ );
$cacheEntry = $cacheEntryFactory->newFromRecentChange( $recentChange, false );
$this->assertInstanceOf( 'RCCacheEntry', $cacheEntry );
<?php
+use MediaWiki\Linker\LinkRenderer;
+use MediaWiki\MediaWikiServices;
/**
* Helper for generating test recent changes entries.
public function getCacheEntry( $recentChange ) {
$rcCacheFactory = new RCCacheEntryFactory(
new RequestContext(),
- [ 'diff' => 'diff', 'cur' => 'cur', 'last' => 'last' ]
+ [ 'diff' => 'diff', 'cur' => 'cur', 'last' => 'last' ],
+ new LinkRenderer(
+ MediaWikiServices::getInstance()->getTitleFormatter()
+ )
);
return $rcCacheFactory->newFromRecentChange( $recentChange, false );
}