*/
use MediaWiki\Linker\LinkTarget;
use MediaWiki\MediaWikiServices;
-use MediaWiki\Storage\RevisionRecord;
+use MediaWiki\Revision\RevisionRecord;
/**
* Some internal bits split of from Skin.php. These functions are used
if ( $label == '' ) {
$label = $title->getPrefixedText();
}
- $encLabel = htmlspecialchars( $label );
+ $repoGroup = MediaWikiServices::getInstance()->getRepoGroup();
$currentExists = $time
- && MediaWikiServices::getInstance()->getRepoGroup()->findFile( $title ) !== false;
+ && $repoGroup->findFile( $title ) !== false;
if ( ( $wgUploadMissingFileUrl || $wgUploadNavigationUrl || $wgEnableUploads )
&& !$currentExists
) {
- $redir = RepoGroup::singleton()->getLocalRepo()->checkRedirect( $title );
-
- if ( $redir ) {
- // We already know it's a redirect, so mark it
- // accordingly
+ if ( $repoGroup->getLocalRepo()->checkRedirect( $title ) ) {
+ // We already know it's a redirect, so mark it accordingly
return self::link(
$title,
- $encLabel,
+ htmlspecialchars( $label ),
[ 'class' => 'mw-redirect' ],
wfCgiToArray( $query ),
[ 'known', 'noclasses' ]
);
}
- $href = self::getUploadUrl( $title, $query );
-
- return '<a href="' . htmlspecialchars( $href ) . '" class="new" title="' .
- htmlspecialchars( $title->getPrefixedText(), ENT_QUOTES ) . '">' .
- $encLabel . '</a>';
+ return Html::element( 'a', [
+ 'href' => self::getUploadUrl( $title, $query ),
+ 'class' => 'new',
+ 'title' => $title->getPrefixedText()
+ ], $label );
}
- return self::link( $title, $encLabel, [], wfCgiToArray( $query ), [ 'known', 'noclasses' ] );
+ return self::link(
+ $title,
+ htmlspecialchars( $label ),
+ [],
+ wfCgiToArray( $query ),
+ [ 'known', 'noclasses' ]
+ );
}
/**
* Make user link (or user contributions for unregistered users)
* @param int $userId User id in database.
* @param string $userName User name in database.
- * @param string $altUserName Text to display instead of the user name (optional)
+ * @param string|false $altUserName Text to display instead of the user name (optional)
* @return string HTML fragment
* @since 1.16.3. $altUserName was added in 1.19.
*/
$items[] = self::link( $contribsPage, wfMessage( 'contribslink' )->escaped(), $attribs );
}
- if ( $blockable && $wgUser->isAllowed( 'block' ) ) {
+ $userCanBlock = MediaWikiServices::getInstance()->getPermissionManager()
+ ->userHasRight( $wgUser, 'block' );
+ if ( $blockable && $userCanBlock ) {
$items[] = self::blockLink( $userId, $userText );
}
}
$userTalkPage = new TitleValue( NS_USER_TALK, strtr( $userText, ' ', '_' ) );
- $moreLinkAttribs['class'] = 'mw-usertoollinks-talk';
+ $moreLinkAttribs = [ 'class' => 'mw-usertoollinks-talk' ];
return self::link( $userTalkPage,
wfMessage( 'talkpagelinktext' )->escaped(),
}
$blockPage = SpecialPage::getTitleFor( 'Block', $userText );
- $moreLinkAttribs['class'] = 'mw-usertoollinks-block';
+ $moreLinkAttribs = [ 'class' => 'mw-usertoollinks-block' ];
return self::link( $blockPage,
wfMessage( 'blocklink' )->escaped(),
}
$emailPage = SpecialPage::getTitleFor( 'Emailuser', $userText );
- $moreLinkAttribs['class'] = 'mw-usertoollinks-mail';
+ $moreLinkAttribs = [ 'class' => 'mw-usertoollinks-mail' ];
return self::link( $emailPage,
wfMessage( 'emaillink' )->escaped(),
$moreLinkAttribs
$services->getNamespaceInfo()->getCanonicalName( NS_MEDIA ), '/' );
$medians .= '|';
$medians .= preg_quote(
- MediaWikiServices::getInstance()->getContentLanguage()->getNsText( NS_MEDIA ),
+ $services->getContentLanguage()->getNsText( NS_MEDIA ),
'/'
) . '):';
}
if ( $match[1] !== false && $match[1] !== '' ) {
if ( preg_match(
- MediaWikiServices::getInstance()->getContentLanguage()->linkTrail(),
+ $services->getContentLanguage()->linkTrail(),
$match[3],
$submatch
) ) {
Title::newFromText( $linkTarget );
try {
- $target = MediaWikiServices::getInstance()->getTitleParser()->
+ $target = $services->getTitleParser()->
parseTitle( $linkTarget );
if ( $target->getText() == '' && !$target->isExternal()
* @since 1.16.3. $context added in 1.20. $editCount added in 1.21
* @param Revision $rev
* @param IContextSource|null $context Context to use or null for the main context.
- * @param int $editCount Number of edits that would be reverted
+ * @param int|false $editCount Number of edits that would be reverted
* @return string HTML fragment
*/
public static function buildRollbackLink( $rev, IContextSource $context = null,
* @return string HTML fragment
*/
public static function getRevDeleteLink( User $user, Revision $rev, LinkTarget $title ) {
- $canHide = $user->isAllowed( 'deleterevision' );
- if ( !$canHide && !( $rev->getVisibility() && $user->isAllowed( 'deletedhistory' ) ) ) {
+ $permissionManager = MediaWikiServices::getInstance()->getPermissionManager();
+ $canHide = $permissionManager->userHasRight( $user, 'deleterevision' );
+ $canHideHistory = $permissionManager->userHasRight( $user, 'deletedhistory' );
+ if ( !$canHide && !( $rev->getVisibility() && $canHideHistory ) ) {
return '';
}