}
return $this->getLanguage()->specialList(
- Linker::link( $title ),
+ $this->getLinkRenderer()->makeLink( $title ),
$this->makeWlhLink( $title, $result )
);
}
*/
private function makeWlhLink( $title, $result ) {
$wlh = SpecialPage::getTitleFor( 'Whatlinkshere', $title->getPrefixedText() );
- $label = $this->msg( 'ntransclusions' )->numParams( $result->value )->escaped();
+ $label = $this->msg( 'ntransclusions' )->numParams( $result->value )->text();
- return Linker::link( $wlh, $label );
+ return $this->getLinkRenderer()->makeLink( $wlh, $label );
}
protected function getGroupName() {
*/
function formatResult( $skin, $result ) {
$title = Title::newFromRow( $result );
- $ret = Linker::link( $title, null, [], [], [ 'known' ] );
+ $ret = $this->getLinkRenderer()->makeKnownLink( $title );
if ( $result->pp_value !== '' ) {
// Do not show very long or binary values on the special page
$valueLength = strlen( $result->pp_value );
) . "\n";
}
- $link = Linker::link( $title );
+ $link = $this->getLinkRenderer()->makeLink( $title );
$description_items = [];
// Messages: restriction-level-sysop, restriction-level-autoconfirmed
$protType = $this->msg( 'restriction-level-' . $row->pt_create_perm )->escaped();
* @return string
*/
private function getPageStats() {
+ $linkRenderer = $this->getLinkRenderer();
+
$specialAllPagesTitle = SpecialPage::getTitleFor( 'Allpages' );
$pageStatsHtml = Xml::openElement( 'tr' ) .
Xml::tags( 'th', [ 'colspan' => '2' ], $this->msg( 'statistics-header-pages' )
->parse() ) .
Xml::closeElement( 'tr' ) .
- $this->formatRow( Linker::linkKnown( $specialAllPagesTitle,
- $this->msg( 'statistics-articles' )->parse(), [], [ 'hideredirects' => 1 ] ),
+ $this->formatRow( $linkRenderer->makeKnownLink( $specialAllPagesTitle,
+ $this->msg( 'statistics-articles' )->text(), [], [ 'hideredirects' => 1 ] ),
$this->getLanguage()->formatNum( $this->good ),
[ 'class' => 'mw-statistics-articles' ],
'statistics-articles-desc' ) .
- $this->formatRow( Linker::linkKnown( $specialAllPagesTitle,
- $this->msg( 'statistics-pages' )->parse() ),
+ $this->formatRow( $linkRenderer->makeKnownLink( $specialAllPagesTitle,
+ $this->msg( 'statistics-pages' )->text() ),
$this->getLanguage()->formatNum( $this->total ),
[ 'class' => 'mw-statistics-pages' ],
'statistics-pages-desc' );
// Show the image row only, when there are files or upload is possible
if ( $this->images !== 0 || $this->getConfig()->get( 'EnableUploads' ) ) {
$pageStatsHtml .= $this->formatRow(
- Linker::linkKnown( SpecialPage::getTitleFor( 'MediaStatistics' ),
- $this->msg( 'statistics-files' )->parse() ),
+ $linkRenderer->makeKnownLink( SpecialPage::getTitleFor( 'MediaStatistics' ),
+ $this->msg( 'statistics-files' )->text() ),
$this->getLanguage()->formatNum( $this->images ),
[ 'class' => 'mw-statistics-files' ] );
}
[ 'class' => 'mw-statistics-users' ]
) .
$this->formatRow( $this->msg( 'statistics-users-active' )->parse() . ' ' .
- Linker::linkKnown(
+ $this->getLinkRenderer()->makeKnownLink(
SpecialPage::getTitleFor( 'Activeusers' ),
- $this->msg( 'listgrouprights-members' )->escaped()
+ $this->msg( 'listgrouprights-members' )->text()
),
$this->getLanguage()->formatNum( $this->activeUsers ),
[ 'class' => 'mw-statistics-users-active' ],
}
private function getGroupStats() {
+ $linkRenderer = $this->getLinkRenderer();
$text = '';
foreach ( $this->getConfig()->get( 'GroupPermissions' ) as $group => $permissions ) {
# Skip generic * and implicit groups
$linkTarget = Title::newFromText( $grouppageLocalized );
if ( $linkTarget ) {
- $grouppage = Linker::link(
+ $grouppage = $linkRenderer->makeLink(
$linkTarget,
- htmlspecialchars( $groupnameLocalized )
+ $groupnameLocalized
);
} else {
$grouppage = htmlspecialchars( $groupnameLocalized );
}
- $grouplink = Linker::linkKnown(
+ $grouplink = $linkRenderer->makeKnownLink(
SpecialPage::getTitleFor( 'Listusers' ),
- $this->msg( 'listgrouprights-members' )->escaped(),
+ $this->msg( 'listgrouprights-members' )->text(),
[],
[ 'group' => $group ]
);
Hooks::run( 'SpecialTrackingCategories::preprocess', [ $this, $trackingCategories ] );
+ $linkRenderer = $this->getLinkRenderer();
+
foreach ( $trackingCategories as $catMsg => $data ) {
$allMsgs = [];
$catDesc = $catMsg . '-desc';
- $catMsgTitleText = Linker::link(
+ $catMsgTitleText = $linkRenderer->makeLink(
$data['msg'],
- htmlspecialchars( $catMsg )
+ $catMsg
);
foreach ( $data['cats'] as $catTitle ) {
- $html = Linker::link(
+ $html = $linkRenderer->makeLink(
$catTitle,
- htmlspecialchars( $catTitle->getText() )
+ $catTitle->getText()
);
Hooks::run( 'SpecialTrackingCategories::generateCatLink',
$fields['Target']['type'] = 'hidden';
switch ( $type ) {
case Block::TYPE_IP:
- $fields['Name']['default'] = Linker::linkKnown(
+ $fields['Name']['default'] = $this->getLinkRenderer()->makeKnownLink(
SpecialPage::getTitleFor( 'Contributions', $target->getName() ),
$target->getName()
);
$fields['Name']['raw'] = true;
break;
case Block::TYPE_USER:
- $fields['Name']['default'] = Linker::link(
+ $fields['Name']['default'] = $this->getLinkRenderer()->makeLink(
$target->getUserPage(),
$target->getName()
);
$out->addWikiMsg( 'undeletepagetext', $this->getLanguage()->formatNum( $result->numRows() ) );
+ $linkRenderer = $this->getLinkRenderer();
$undelete = $this->getPageTitle();
$out->addHTML( "<ul>\n" );
foreach ( $result as $row ) {
$title = Title::makeTitleSafe( $row->ar_namespace, $row->ar_title );
if ( $title !== null ) {
- $item = Linker::linkKnown(
+ $item = $linkRenderer->makeKnownLink(
$undelete,
- htmlspecialchars( $title->getPrefixedText() ),
+ $title->getPrefixedText(),
[],
[ 'target' => $title->getPrefixedText() ]
);
}
}
- $link = Linker::linkKnown(
+ $link = $this->getLinkRenderer()->makeKnownLink(
$this->getPageTitle( $this->mTargetObj->getPrefixedDBkey() ),
- htmlspecialchars( $this->mTargetObj->getPrefixedText() )
+ $this->mTargetObj->getPrefixedText()
);
$lang = $this->getLanguage();
// FIXME This is reimplementing DifferenceEngine#getRevisionHeader
// and partially #showDiffPage, but worse
return '<div id="mw-diff-' . $prefix . 'title1"><strong>' .
- Linker::link(
+ $this->getLinkRenderer()->makeLink(
$targetPage,
$this->msg(
'revisionasof',
$lang->userTimeAndDate( $rev->getTimestamp(), $user ),
$lang->userDate( $rev->getTimestamp(), $user ),
$lang->userTime( $rev->getTimestamp(), $user )
- )->escaped(),
+ )->text(),
[],
$targetQuery
) .
$last = $this->msg( 'diff' )->escaped();
} elseif ( $remaining > 0 || ( $earliestLiveTime && $ts > $earliestLiveTime ) ) {
$pageLink = $this->getPageLink( $rev, $titleObj, $ts );
- $last = Linker::linkKnown(
+ $last = $this->getLinkRenderer()->makeKnownLink(
$titleObj,
- $this->msg( 'diff' )->escaped(),
+ $this->msg( 'diff' )->text(),
[],
[
'target' => $this->mTargetObj->getPrefixedText(),
return '<span class="history-deleted">' . $time . '</span>';
}
- $link = Linker::linkKnown(
+ $link = $this->getLinkRenderer()->makeKnownLink(
$titleObj,
- htmlspecialchars( $time ),
+ $time,
[],
[
'target' => $this->mTargetObj->getPrefixedText(),
return '<span class="history-deleted">' . $time . '</span>';
}
- $link = Linker::linkKnown(
+ $link = $this->getLinkRenderer()->makeKnownLink(
$titleObj,
- htmlspecialchars( $time ),
+ $time,
[],
[
'target' => $this->mTargetObj->getPrefixedText(),
$this->getUser(), $this->mComment ] );
}
- $link = Linker::linkKnown( $this->mTargetObj );
+ $link = $this->getLinkRenderer()->makeKnownLink( $this->mTargetObj );
$out->addHTML( $this->msg( 'undeletedpage' )->rawParams( $link )->parse() );
} else {
$out->setPageTitle( $this->msg( 'undelete-error' ) );
function formatResult( $skin, $result ) {
$title = Title::makeTitle( NS_CATEGORY, $result->title );
- return Linker::link( $title, htmlspecialchars( $title->getText() ) );
+ return $this->getLinkRenderer()->makeLink( $title, $title->getText() );
}
protected function getGroupName() {
if ( isset( $extension['name'] ) ) {
$licenseName = null;
if ( isset( $extension['license-name'] ) ) {
- $licenseName = $out->parseInline( $extension['license-name'] );
+ $licenseName = new HtmlArmor( $out->parseInline( $extension['license-name'] ) );
} elseif ( $this->getExtLicenseFileName( $extensionPath ) ) {
- $licenseName = $this->msg( 'version-ext-license' )->escaped();
+ $licenseName = $this->msg( 'version-ext-license' )->text();
}
if ( $licenseName !== null ) {
- $licenseLink = Linker::link(
+ $licenseLink = $this->getLinkRenderer()->makeLink(
$this->getPageTitle( 'License/' . $extension['name'] ),
$licenseName,
[
*/
public function listAuthors( $authors, $extName, $extDir ) {
$hasOthers = false;
+ $linkRenderer = $this->getLinkRenderer();
$list = [];
foreach ( (array)$authors as $item ) {
$hasOthers = true;
if ( $extName && $this->getExtAuthorsFileName( $extDir ) ) {
- $text = Linker::link(
+ $text = $linkRenderer->makeLink(
$this->getPageTitle( "Credits/$extName" ),
- $this->msg( 'version-poweredby-others' )->escaped()
+ $this->msg( 'version-poweredby-others' )->text()
);
} else {
$text = $this->msg( 'version-poweredby-others' )->escaped();
}
if ( $extName && !$hasOthers && $this->getExtAuthorsFileName( $extDir ) ) {
- $list[] = $text = Linker::link(
+ $list[] = $text = $linkRenderer->makeLink(
$this->getPageTitle( "Credits/$extName" ),
- $this->msg( 'version-poweredby-others' )->escaped()
+ $this->msg( 'version-poweredby-others' )->text()
);
}
global $wgContLang;
$nt = Title::makeTitle( $result->namespace, $result->title );
- $text = htmlspecialchars( $wgContLang->convert( $nt->getText() ) );
+ $text = $wgContLang->convert( $nt->getText() );
if ( !$this->isCached() ) {
// We can assume the freshest data
- $plink = Linker::link(
+ $plink = $this->getLinkRenderer()->makeBrokenLink(
$nt,
- $text,
- [],
- [],
- [ 'broken' ]
+ $text
);
$nlinks = $this->msg( 'nmembers' )->numParams( $result->value )->escaped();
} else {
- $plink = Linker::link( $nt, $text );
+ $plink = $this->getLinkRenderer()->makeLink( $nt, $text );
$currentValue = isset( $this->currentCategoryCounts[$result->title] )
? $this->currentCategoryCounts[$result->title]