X-Git-Url: http://git.heureux-cyclage.org/?a=blobdiff_plain;f=includes%2FLinker.php;h=864019dcc709164fe5a05425f9e343db61cdb2a3;hb=326d52f9613c5227d75f97361be6ec6ef78b214e;hp=db3e2f5f030d94be13eec04acaa1202fbd426b76;hpb=6cfb2e3d7a2b96d5041312fcec88248bb46573d7;p=lhc%2Fweb%2Fwiklou.git diff --git a/includes/Linker.php b/includes/Linker.php index db3e2f5f03..864019dcc7 100644 --- a/includes/Linker.php +++ b/includes/Linker.php @@ -21,7 +21,7 @@ */ 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 @@ -688,35 +688,38 @@ class Linker { 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 '' . - $encLabel . ''; + 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' ] + ); } /** @@ -888,7 +891,7 @@ class Linker { * 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. */ @@ -978,7 +981,9 @@ class Linker { $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 ); } @@ -1036,7 +1041,7 @@ class Linker { } $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(), @@ -1058,7 +1063,7 @@ class Linker { } $blockPage = SpecialPage::getTitleFor( 'Block', $userText ); - $moreLinkAttribs['class'] = 'mw-usertoollinks-block'; + $moreLinkAttribs = [ 'class' => 'mw-usertoollinks-block' ]; return self::link( $blockPage, wfMessage( 'blocklink' )->escaped(), @@ -1079,7 +1084,7 @@ class Linker { } $emailPage = SpecialPage::getTitleFor( 'Emailuser', $userText ); - $moreLinkAttribs['class'] = 'mw-usertoollinks-mail'; + $moreLinkAttribs = [ 'class' => 'mw-usertoollinks-mail' ]; return self::link( $emailPage, wfMessage( 'emaillink' )->escaped(), $moreLinkAttribs @@ -1320,7 +1325,7 @@ class Linker { $services->getNamespaceInfo()->getCanonicalName( NS_MEDIA ), '/' ); $medians .= '|'; $medians .= preg_quote( - MediaWikiServices::getInstance()->getContentLanguage()->getNsText( NS_MEDIA ), + $services->getContentLanguage()->getNsText( NS_MEDIA ), '/' ) . '):'; @@ -1357,7 +1362,7 @@ class Linker { } if ( $match[1] !== false && $match[1] !== '' ) { if ( preg_match( - MediaWikiServices::getInstance()->getContentLanguage()->linkTrail(), + $services->getContentLanguage()->linkTrail(), $match[3], $submatch ) ) { @@ -1373,7 +1378,7 @@ class Linker { Title::newFromText( $linkTarget ); try { - $target = MediaWikiServices::getInstance()->getTitleParser()-> + $target = $services->getTitleParser()-> parseTitle( $linkTarget ); if ( $target->getText() == '' && !$target->isExternal() @@ -1907,7 +1912,7 @@ class Linker { * @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, @@ -2103,8 +2108,10 @@ class Linker { * @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 ''; }