Merge "Fix linking Special:ChangeContentModel from action=info"
authorjenkins-bot <jenkins-bot@gerrit.wikimedia.org>
Thu, 15 Dec 2016 07:46:34 +0000 (07:46 +0000)
committerGerrit Code Review <gerrit@wikimedia.org>
Thu, 15 Dec 2016 07:46:34 +0000 (07:46 +0000)
1  2 
includes/actions/InfoAction.php

@@@ -230,11 -230,11 +230,11 @@@ class InfoAction extends FormlessActio
                if ( $title->isRedirect() ) {
                        $pageInfo['header-basic'][] = [
                                $this->msg( 'pageinfo-redirectsto' ),
 -                              Linker::link( $this->page->getRedirectTarget() ) .
 +                              $linkRenderer->makeLink( $this->page->getRedirectTarget() ) .
                                $this->msg( 'word-separator' )->escaped() .
 -                              $this->msg( 'parentheses' )->rawParams( Linker::link(
 +                              $this->msg( 'parentheses' )->rawParams( $linkRenderer->makeLink(
                                        $this->page->getRedirectTarget(),
 -                                      $this->msg( 'pageinfo-redirectsto-info' )->escaped(),
 +                                      $this->msg( 'pageinfo-redirectsto-info' )->text(),
                                        [],
                                        [ 'action' => 'info' ]
                                ) )->escaped()
                $pageLang = $title->getPageLanguage()->getCode();
  
                if ( $config->get( 'PageLanguageUseDB' )
-                       && $this->getTitle()->userCan( 'pagelang', $this->getUser() )
+                       && $title->userCan( 'pagelang', $user )
                ) {
                        // Link to Special:PageLanguage with pre-filled page title if user has permissions
                        $titleObj = SpecialPage::getTitleFor( 'PageLanguage', $title->getPrefixedText() );
 -                      $langDisp = Linker::link(
 +                      $langDisp = $linkRenderer->makeLink(
                                $titleObj,
 -                              $this->msg( 'pageinfo-language' )->escaped()
 +                              $this->msg( 'pageinfo-language' )->text()
                        );
                } else {
                        // Display just the message
                // Content model of the page
                $modelHtml = htmlspecialchars( ContentHandler::getLocalizedName( $title->getContentModel() ) );
                // If the user can change it, add a link to Special:ChangeContentModel
-               if ( $title->quickUserCan( 'editcontentmodel' ) ) {
+               if ( $config->get( 'ContentHandlerUseDB' )
+                       && $title->userCan( 'editcontentmodel', $user )
+               ) {
                        $modelHtml .= ' ' . $this->msg( 'parentheses' )->rawParams( $linkRenderer->makeLink(
                                SpecialPage::getTitleValueFor( 'ChangeContentModel', $title->getPrefixedText() ),
                                $this->msg( 'pageinfo-content-model-change' )->text()
                // Redirects to this page
                $whatLinksHere = SpecialPage::getTitleFor( 'Whatlinkshere', $title->getPrefixedText() );
                $pageInfo['header-basic'][] = [
 -                      Linker::link(
 +                      $linkRenderer->makeLink(
                                $whatLinksHere,
 -                              $this->msg( 'pageinfo-redirects-name' )->escaped(),
 +                              $this->msg( 'pageinfo-redirects-name' )->text(),
                                [],
                                [
                                        'hidelinks' => 1,
  
                        foreach ( $sources as $sourceTitle ) {
                                $cascadingFrom .= Html::rawElement(
 -                                      'li', [], Linker::linkKnown( $sourceTitle ) );
 +                                      'li', [], $linkRenderer->makeKnownLink( $sourceTitle ) );
                        }
  
                        $cascadingFrom = Html::rawElement( 'ul', [], $cascadingFrom );
                        }
                        $expiry = $title->getRestrictionExpiry( $restrictionType );
                        $formattedexpiry = $this->msg( 'parentheses',
-                               $this->getLanguage()->formatExpiry( $expiry ) )->escaped();
+                               $lang->formatExpiry( $expiry ) )->escaped();
                        $message .= $this->msg( 'word-separator' )->escaped() . $formattedexpiry;
  
                        // Messages: restriction-edit, restriction-move, restriction-create,
                        // Date of page creation
                        $pageInfo['header-edits'][] = [
                                $this->msg( 'pageinfo-firsttime' ),
 -                              Linker::linkKnown(
 +                              $linkRenderer->makeKnownLink(
                                        $title,
 -                                      htmlspecialchars( $lang->userTimeAndDate( $firstRev->getTimestamp(), $user ) ),
 +                                      $lang->userTimeAndDate( $firstRev->getTimestamp(), $user ),
                                        [],
                                        [ 'oldid' => $firstRev->getId() ]
                                )
                        // Date of latest edit
                        $pageInfo['header-edits'][] = [
                                $this->msg( 'pageinfo-lasttime' ),
 -                              Linker::linkKnown(
 +                              $linkRenderer->makeKnownLink(
                                        $title,
 -                                      htmlspecialchars(
 -                                              $lang->userTimeAndDate( $this->page->getTimestamp(), $user )
 -                                      ),
 +                                      $lang->userTimeAndDate( $this->page->getTimestamp(), $user ),
                                        [],
                                        [ 'oldid' => $this->page->getLatest() ]
                                )
  
                        if ( !$config->get( 'MiserMode' ) && $pageCounts['transclusion']['to'] > 0 ) {
                                if ( $pageCounts['transclusion']['to'] > count( $transcludedTargets ) ) {
 -                                      $more = Linker::link(
 +                                      $more = $linkRenderer->makeLink(
                                                $whatLinksHere,
 -                                              $this->msg( 'moredotdotdot' )->escaped(),
 +                                              $this->msg( 'moredotdotdot' )->text(),
                                                [],
                                                [ 'hidelinks' => 1, 'hideredirs' => 1 ]
                                        );
                $real_names = [];
                $user_names = [];
                $anon_ips = [];
 +              $linkRenderer = MediaWikiServices::getLinkRenderer();
  
                # Sift for real versus user names
                /** @var $user User */
  
                        $hiddenPrefs = $this->context->getConfig()->get( 'HiddenPrefs' );
                        if ( $user->getId() == 0 ) {
 -                              $anon_ips[] = Linker::link( $page, htmlspecialchars( $user->getName() ) );
 +                              $anon_ips[] = $linkRenderer->makeLink( $page, $user->getName() );
                        } elseif ( !in_array( 'realname', $hiddenPrefs ) && $user->getRealName() ) {
 -                              $real_names[] = Linker::link( $page, htmlspecialchars( $user->getRealName() ) );
 +                              $real_names[] = $linkRenderer->makeLink( $page, $user->getRealName() );
                        } else {
 -                              $user_names[] = Linker::link( $page, htmlspecialchars( $user->getName() ) );
 +                              $user_names[] = $linkRenderer->makeLink( $page, $user->getName() );
                        }
                }