Merge "Skin: Make skins aware of their registered skin name"
authorjenkins-bot <jenkins-bot@gerrit.wikimedia.org>
Thu, 12 Oct 2017 21:55:35 +0000 (21:55 +0000)
committerGerrit Code Review <gerrit@wikimedia.org>
Thu, 12 Oct 2017 21:55:35 +0000 (21:55 +0000)
1  2 
includes/skins/Skin.php

diff --combined includes/skins/Skin.php
@@@ -34,7 -34,11 +34,11 @@@ use MediaWiki\MediaWikiServices
   * @ingroup Skins
   */
  abstract class Skin extends ContextSource {
+       /**
+        * @var string|null
+        */
        protected $skinname = null;
        protected $mRelevantTitle = null;
        protected $mRelevantUser = null;
  
        }
  
        /**
-        * @return string Skin name
+        * @since 1.31
+        * @param string|null $skinname
+        */
+       public function __construct( $skinname = null ) {
+               if ( is_string( $skinname ) ) {
+                       $this->skinname = $skinname;
+               }
+       }
+       /**
+        * @return string|null Skin name
         */
        public function getSkinName() {
                return $this->skinname;
                        $targetUser = User::newFromId( $id );
                }
  
 -              # The sending user must have a confirmed email address and the target
 -              # user must have a confirmed email address and allow emails from users.
 -              return $this->getUser()->canSendEmail() &&
 -                      $targetUser->canReceiveEmail();
 +              # The sending user must have a confirmed email address and the receiving
 +              # user must accept emails from the sender.
 +              return $this->getUser()->canSendEmail()
 +                      && SpecialEmailUser::validateTarget( $targetUser, $this->getUser() ) === '';
        }
  
        /**
                $title = Title::newMainPage();
                self::checkTitle( $title, '' );
  
 -              return $title->getLocalURL( $urlaction );
 +              return $title->getLinkURL( $urlaction );
        }
  
        /**
        function buildSidebar() {
                global $wgEnableSidebarCache, $wgSidebarCacheExpiry;
  
 -              $that = $this;
 -              $callback = function () use ( $that ) {
 +              $callback = function () {
                        $bar = [];
 -                      $that->addToSidebar( $bar, 'sidebar' );
 -                      Hooks::run( 'SkinBuildSidebar', [ $that, &$bar ] );
 +                      $this->addToSidebar( $bar, 'sidebar' );
 +                      Hooks::run( 'SkinBuildSidebar', [ $this, &$bar ] );
  
                        return $bar;
                };
  
                $attribs = [];
                if ( !is_null( $tooltip ) ) {
 -                      # T27462: undo double-escaping.
 -                      $tooltip = Sanitizer::decodeCharReferences( $tooltip );
                        $attribs['title'] = wfMessage( 'editsectionhint' )->rawParams( $tooltip )
                                ->inLanguage( $lang )->text();
                }
  
                $result .= implode(
                        '<span class="mw-editsection-divider">'
 -                              . wfMessage( 'pipe-separator' )->inLanguage( $lang )->text()
 +                              . wfMessage( 'pipe-separator' )->inLanguage( $lang )->escaped()
                                . '</span>',
                        $linksHtml
                );