From 2ffeb5238ebafabf80385f301686e3a91c64ecfd Mon Sep 17 00:00:00 2001 From: Derick Alangi Date: Tue, 29 Jan 2019 18:40:58 +0100 Subject: [PATCH] specials: Avoid the use of global variables in Special:Version We're moving away from globals to Config this patch attempts to clean off some globals whose values can be nicely gotten via the use of Config. Bug: T72638 Change-Id: I25516873c215b74cdd425d023e877e5cdc3d6149 --- includes/specials/SpecialVersion.php | 41 ++++++++++++++++------------ 1 file changed, 23 insertions(+), 18 deletions(-) diff --git a/includes/specials/SpecialVersion.php b/includes/specials/SpecialVersion.php index c4dd6e3108..0c4959a48e 100644 --- a/includes/specials/SpecialVersion.php +++ b/includes/specials/SpecialVersion.php @@ -49,7 +49,9 @@ class SpecialVersion extends SpecialPage { * @param string|null $par */ public function execute( $par ) { - global $IP, $wgExtensionCredits; + global $IP; + $config = $this->getConfig(); + $extensionCredits = $config->get( 'ExtensionCredits' ); $this->setHeaders(); $this->outputHeader(); @@ -62,7 +64,7 @@ class SpecialVersion extends SpecialPage { if ( isset( $parts[1] ) ) { $extName = str_replace( '_', ' ', $parts[1] ); // Find it! - foreach ( $wgExtensionCredits as $group => $extensions ) { + foreach ( $extensionCredits as $group => $extensions ) { foreach ( $extensions as $ext ) { if ( isset( $ext['name'] ) && ( $ext['name'] === $extName ) ) { $extNode = &$ext; @@ -408,12 +410,13 @@ class SpecialVersion extends SpecialPage { * @return string Wikitext */ public function getExtensionCredits() { - global $wgExtensionCredits; + $config = $this->getConfig(); + $extensionCredits = $config->get( 'ExtensionCredits' ); if ( - count( $wgExtensionCredits ) === 0 || + count( $extensionCredits ) === 0 || // Skins are displayed separately, see getSkinCredits() - ( count( $wgExtensionCredits ) === 1 && isset( $wgExtensionCredits['skin'] ) ) + ( count( $extensionCredits ) === 1 && isset( $extensionCredits['skin'] ) ) ) { return ''; } @@ -428,14 +431,14 @@ class SpecialVersion extends SpecialPage { Xml::openElement( 'table', [ 'class' => 'wikitable plainlinks', 'id' => 'sv-ext' ] ); // Make sure the 'other' type is set to an array. - if ( !array_key_exists( 'other', $wgExtensionCredits ) ) { - $wgExtensionCredits['other'] = []; + if ( !array_key_exists( 'other', $extensionCredits ) ) { + $extensionCredits['other'] = []; } // Find all extensions that do not have a valid type and give them the type 'other'. - foreach ( $wgExtensionCredits as $type => $extensions ) { + foreach ( $extensionCredits as $type => $extensions ) { if ( !array_key_exists( $type, $extensionTypes ) ) { - $wgExtensionCredits['other'] = array_merge( $wgExtensionCredits['other'], $extensions ); + $extensionCredits['other'] = array_merge( $extensionCredits['other'], $extensions ); } } @@ -633,16 +636,17 @@ class SpecialVersion extends SpecialPage { * @return string */ protected function getExtensionCategory( $type, $message ) { - global $wgExtensionCredits; + $config = $this->getConfig(); + $extensionCredits = $config->get( 'ExtensionCredits' ); $out = ''; - if ( array_key_exists( $type, $wgExtensionCredits ) && count( $wgExtensionCredits[$type] ) > 0 ) { + if ( array_key_exists( $type, $extensionCredits ) && count( $extensionCredits[$type] ) > 0 ) { $out .= $this->openExtType( $message, 'credits-' . $type ); - usort( $wgExtensionCredits[$type], [ $this, 'compare' ] ); + usort( $extensionCredits[$type], [ $this, 'compare' ] ); - foreach ( $wgExtensionCredits[$type] as $extension ) { + foreach ( $extensionCredits[$type] as $extension ) { $out .= $this->getCreditsForExtension( $type, $extension ); } } @@ -882,9 +886,9 @@ class SpecialVersion extends SpecialPage { $ret[] = Html::closeElement( 'table' ); return implode( "\n", $ret ); - } else { - return ''; } + + return ''; } private function openExtType( $text = null, $name = null ) { @@ -1132,10 +1136,11 @@ class SpecialVersion extends SpecialPage { * @return string Wikitext */ public function getEntryPointInfo() { - global $wgArticlePath, $wgScriptPath; - $scriptPath = $wgScriptPath ?: "/"; + $config = $this->getConfig(); + $scriptPath = $config->get( 'ScriptPath' ) ?: '/'; + $entryPoints = [ - 'version-entrypoints-articlepath' => $wgArticlePath, + 'version-entrypoints-articlepath' => $config->get( 'ArticlePath' ), 'version-entrypoints-scriptpath' => $scriptPath, 'version-entrypoints-index-php' => wfScript( 'index' ), 'version-entrypoints-api-php' => wfScript( 'api' ), -- 2.20.1