*
* @file
*/
+use MediaWiki\Linker\LinkRenderer;
+use MediaWiki\Storage\RevisionRecord;
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;
}
/**
// Make user links
$cacheEntry->userlink = $this->getUserLink( $cacheEntry );
- if ( !ChangesList::isDeleted( $cacheEntry, Revision::DELETED_USER ) ) {
+ if ( !ChangesList::isDeleted( $cacheEntry, RevisionRecord::DELETED_USER ) ) {
$cacheEntry->usertalklink = Linker::userToolLinks(
$cacheEntry->mAttribs['rc_user'],
- $cacheEntry->mAttribs['rc_user_text']
+ $cacheEntry->mAttribs['rc_user_text'],
+ // Should the contributions link be red if the user has no edits (using default)
+ false,
+ // Customisation flags (using default 0)
+ 0,
+ // User edit count (using default )
+ null,
+ // do not wrap the message in parentheses
+ false
);
}
* @return bool
*/
private function showDiffLinks( RecentChange $cacheEntry, User $user ) {
- return ChangesList::userCan( $cacheEntry, Revision::DELETED_TEXT, $user );
+ return ChangesList::userCan( $cacheEntry, RevisionRecord::DELETED_TEXT, $user );
}
/**
// 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;
}
$curLink = $curMessage;
} else {
$curUrl = htmlspecialchars( $cacheEntry->getTitle()->getLinkURL( $queryParams ) );
- $curLink = "<a href=\"$curUrl\">$curMessage</a>";
+ $curLink = "<a class=\"mw-changeslist-diff-cur\" href=\"$curUrl\">$curMessage</a>";
}
return $curLink;
return $diffMessage;
}
$diffUrl = htmlspecialchars( $pageTitle->getLinkURL( $queryParams ) );
- $diffLink = "<a href=\"$diffUrl\">$diffMessage</a>";
+ $diffLink = "<a class=\"mw-changeslist-diff\" href=\"$diffUrl\">$diffMessage</a>";
} else {
$diffUrl = htmlspecialchars( $cacheEntry->getTitle()->getLinkURL( $queryParams ) );
- $diffLink = "<a href=\"$diffUrl\">$diffMessage</a>";
+ $diffLink = "<a class=\"mw-changeslist-diff\" href=\"$diffUrl\">$diffMessage</a>";
}
return $diffLink;
}
/**
+ * Builds the link to the previous version
+ *
* @param RecentChange $cacheEntry
* @param bool $showDiffLinks
*
if ( !$showDiffLinks || !$lastOldid || in_array( $type, $logTypes ) ) {
$lastLink = $lastMessage;
} else {
- $lastLink = Linker::linkKnown(
+ $lastLink = $this->linkRenderer->makeKnownLink(
$cacheEntry->getTitle(),
- $lastMessage,
- [],
+ new HtmlArmor( $lastMessage ),
+ [ 'class' => 'mw-changeslist-diff' ],
$this->buildDiffQueryParams( $cacheEntry )
);
}
* @return string
*/
private function getUserLink( RecentChange $cacheEntry ) {
- if ( ChangesList::isDeleted( $cacheEntry, Revision::DELETED_USER ) ) {
+ if ( ChangesList::isDeleted( $cacheEntry, RevisionRecord::DELETED_USER ) ) {
$userLink = ' <span class="history-deleted">' .
$this->context->msg( 'rev-deleted-user' )->escaped() . '</span>';
} else {
$userLink = Linker::userLink(
$cacheEntry->mAttribs['rc_user'],
- $cacheEntry->mAttribs['rc_user_text']
+ $cacheEntry->mAttribs['rc_user_text'],
+ ExternalUserNames::getLocal( $cacheEntry->mAttribs['rc_user_text'] )
);
}