responsiveMode ) { $out = $this->getOutput(); $out->addMeta( 'viewport', 'width=device-width, initial-scale=1' ); $out->addModuleStyles( 'skins.vector.styles.responsive' ); $this->responsiveMode = true; } } /** * Initializes output page and sets up skin-specific parameters * @param OutputPage $out Object to initialize */ public function initPage( OutputPage $out ) { parent::initPage( $out ); if ( $this->getConfig()->get( 'VectorResponsive' ) ) { $this->enableResponsiveMode(); } } /** * Called by OutputPage::headElement when it is creating the * `` tag. Overrides method in Skin class. * @param OutputPage $out * @param array &$bodyAttrs */ public function addToBodyAttributes( $out, &$bodyAttrs ) { if ( $this->isLegacy() ) { $bodyAttrs['class'] .= ' skin-vector-legacy'; } } /** * @inheritDoc * @return array */ public function getDefaultModules() { $modules = parent::getDefaultModules(); if ( $this->isLegacy() ) { $modules['styles']['skin'][] = 'skins.vector.styles.legacy'; $modules[Constants::SKIN_NAME] = 'skins.vector.legacy.js'; } else { $modules['styles'] = array_merge( $modules['styles'], [ 'skins.vector.styles', 'mediawiki.ui.icon', 'skins.vector.icons' ] ); $modules[Constants::SKIN_NAME][] = 'skins.vector.js'; } return $modules; } /** * Set up the VectorTemplate. Overrides the default behaviour of SkinTemplate allowing * the safe calling of constructor with additional arguments. If dropping this method * please ensure that VectorTemplate constructor arguments match those in SkinTemplate. * * @internal * @param string $classname * @return VectorTemplate */ protected function setupTemplate( $classname ) { $tp = new TemplateParser( __DIR__ . '/templates' ); return new VectorTemplate( $this->getConfig(), $tp, $this->isLegacy() ); } /** * Whether the logo should be preloaded with an HTTP link header or not * @since 1.29 * @return bool */ public function shouldPreloadLogo() { return true; } /** * Whether or not the legacy version of the skin is being used. * * @return bool */ private function isLegacy() : bool { $isLatestSkinFeatureEnabled = MediaWikiServices::getInstance() ->getService( Constants::SERVICE_FEATURE_MANAGER ) ->isFeatureEnabled( Constants::FEATURE_LATEST_SKIN ); return !$isLatestSkinFeatureEnabled; } }