Allow override of extension directory
authorEd Sanders <esanders@wikimedia.org>
Wed, 6 May 2015 12:48:07 +0000 (13:48 +0100)
committerEd Sanders <esanders@wikimedia.org>
Wed, 6 May 2015 18:22:55 +0000 (19:22 +0100)
Also sets default paths immediately (not in Setup.php) so
they are available before extensions register.

Bug: T98319
Change-Id: I41a8aec7a3e9c576ec7344abf51f8106248ade4b

RELEASE-NOTES-1.25
includes/DefaultSettings.php
includes/GlobalFunctions.php
includes/Setup.php

index d844be2..e91a02e 100644 (file)
@@ -47,6 +47,8 @@ production.
   be installed and running for any such queues to work.
 * $wgAutopromoteOnce no longer supports the 'view' event. For keeping some
   compatibility, any 'view' event triggers will still trigger on 'edit'.
+* $wgExtensionDirectory was added for when your extensions directory is somewhere
+  other than $IP/extensions (as $wgStyleDirectory does with the skins directory).
 
 === New features in 1.25 ===
 * (T64861) Updated plural rules to CLDR 26. Includes incompatible changes
index 51e807c..2b3bce5 100644 (file)
@@ -220,12 +220,19 @@ $wgLocalStylePath = false;
  */
 $wgExtensionAssetsPath = false;
 
+/**
+ * Filesystem extensions directory.
+ * Defaults to "{$IP}/extensions".
+ * @since 1.25
+ */
+$wgExtensionDirectory = "{$IP}/extensions";
+
 /**
  * Filesystem stylesheets directory.
  * Defaults to "{$IP}/skins".
  * @since 1.3
  */
-$wgStyleDirectory = false;
+$wgStyleDirectory = "{$IP}/skins";
 
 /**
  * The URL path for primary article page views. This path should contain $1,
index 23a8bbb..6eaeb25 100644 (file)
@@ -170,13 +170,13 @@ if ( !function_exists( 'hash_equals' ) ) {
  * This queues an extension to be loaded through
  * the ExtensionRegistry system.
  *
- * @param string $name Name of the extension to load
+ * @param string $ext Name of the extension to load
  * @param string|null $path Absolute path of where to find the extension.json file
  */
-function wfLoadExtension( $name, $path = null ) {
+function wfLoadExtension( $ext, $path = null ) {
        if ( !$path ) {
-               global $IP;
-               $path = "$IP/extensions/$name/extension.json";
+               global $wgExtensionDirectory;
+               $path = "$wgExtensionDirectory/$ext/extension.json";
        }
        ExtensionRegistry::getInstance()->queue( $path );
 }
@@ -194,10 +194,10 @@ function wfLoadExtension( $name, $path = null ) {
  * @param string[] $exts Array of extension names to load
  */
 function wfLoadExtensions( array $exts ) {
-       global $IP;
+       global $wgExtensionDirectory;
        $registry = ExtensionRegistry::getInstance();
        foreach ( $exts as $ext ) {
-               $registry->queue( "$IP/extensions/$ext/extension.json" );
+               $registry->queue( "$wgExtensionDirectory/$ext/extension.json" );
        }
 }
 
@@ -205,13 +205,13 @@ function wfLoadExtensions( array $exts ) {
  * Load a skin
  *
  * @see wfLoadExtension
- * @param string $name Name of the extension to load
+ * @param string $skin Name of the extension to load
  * @param string|null $path Absolute path of where to find the skin.json file
  */
-function wfLoadSkin( $name, $path = null ) {
+function wfLoadSkin( $skin, $path = null ) {
        if ( !$path ) {
-               global $IP;
-               $path = "$IP/skins/$name/skin.json";
+               global $wgStyleDirectory;
+               $path = "$wgStyleDirectory/$skin/skin.json";
        }
        ExtensionRegistry::getInstance()->queue( $path );
 }
@@ -223,10 +223,10 @@ function wfLoadSkin( $name, $path = null ) {
  * @param string[] $skins Array of extension names to load
  */
 function wfLoadSkins( array $skins ) {
-       global $IP;
+       global $wgStyleDirectory;
        $registry = ExtensionRegistry::getInstance();
        foreach ( $skins as $skin ) {
-               $registry->queue( "$IP/skins/$skin/skin.json" );
+               $registry->queue( "$wgStyleDirectory/$skin/skin.json" );
        }
 }
 
index 9a91156..7a33328 100644 (file)
@@ -74,9 +74,6 @@ if ( $wgStylePath === false ) {
 if ( $wgLocalStylePath === false ) {
        $wgLocalStylePath = "$wgScriptPath/skins";
 }
-if ( $wgStyleDirectory === false ) {
-       $wgStyleDirectory = "$IP/skins";
-}
 if ( $wgExtensionAssetsPath === false ) {
        $wgExtensionAssetsPath = "$wgScriptPath/extensions";
 }