summaryrefslogtreecommitdiff
path: root/includes/installer/LocalSettingsGenerator.php
diff options
context:
space:
mode:
Diffstat (limited to 'includes/installer/LocalSettingsGenerator.php')
-rw-r--r--includes/installer/LocalSettingsGenerator.php39
1 files changed, 34 insertions, 5 deletions
diff --git a/includes/installer/LocalSettingsGenerator.php b/includes/installer/LocalSettingsGenerator.php
index c0ba300d..162a7897 100644
--- a/includes/installer/LocalSettingsGenerator.php
+++ b/includes/installer/LocalSettingsGenerator.php
@@ -34,6 +34,7 @@ class LocalSettingsGenerator {
protected $groupPermissions = array();
protected $dbSettings = '';
protected $safeMode = false;
+ protected $IP;
/**
* @var Installer
@@ -50,6 +51,7 @@ class LocalSettingsGenerator {
$this->extensions = $installer->getVar( '_Extensions' );
$this->skins = $installer->getVar( '_Skins' );
+ $this->IP = $installer->getVar( 'IP' );
$db = $installer->getDBInstaller( $installer->getVar( 'wgDBtype' ) );
@@ -63,7 +65,7 @@ class LocalSettingsGenerator {
'wgRightsText', 'wgMainCacheType', 'wgEnableUploads',
'wgMainCacheType', '_MemCachedServers', 'wgDBserver', 'wgDBuser',
'wgDBpassword', 'wgUseInstantCommons', 'wgUpgradeKey', 'wgDefaultSkin',
- 'wgMetaNamespace', 'wgResourceLoaderMaxQueryLength', 'wgLogo',
+ 'wgMetaNamespace', 'wgLogo',
),
$db->getGlobalNames()
);
@@ -143,8 +145,7 @@ class LocalSettingsGenerator {
# The following skins were automatically enabled:\n";
foreach ( $this->skins as $skinName ) {
- $encSkinName = self::escapePhpString( $skinName );
- $localSettings .= "require_once \"\$IP/skins/$encSkinName/$encSkinName.php\";\n";
+ $localSettings .= $this->generateExtEnableLine( 'skins', $skinName );
}
$localSettings .= "\n";
@@ -157,8 +158,7 @@ class LocalSettingsGenerator {
# The following extensions were automatically enabled:\n";
foreach ( $this->extensions as $extName ) {
- $encExtName = self::escapePhpString( $extName );
- $localSettings .= "require_once \"\$IP/extensions/$encExtName/$encExtName.php\";\n";
+ $localSettings .= $this->generateExtEnableLine( 'extensions', $extName );
}
$localSettings .= "\n";
@@ -172,6 +172,34 @@ class LocalSettingsGenerator {
}
/**
+ * Generate the appropriate line to enable the given extension or skin
+ *
+ * @param string $dir Either "extensions" or "skins"
+ * @param string $name Name of extension/skin
+ * @throws InvalidArgumentException
+ * @return string
+ */
+ private function generateExtEnableLine( $dir, $name ) {
+ if ( $dir === 'extensions' ) {
+ $jsonFile = 'extension.json';
+ $function = 'wfLoadExtension';
+ } elseif ( $dir === 'skins' ) {
+ $jsonFile = 'skin.json';
+ $function = 'wfLoadSkin';
+ } else {
+ throw new InvalidArgumentException( '$dir was not "extensions" or "skins' );
+ }
+
+ $encName = self::escapePhpString( $name );
+
+ if ( file_exists( "{$this->IP}/$dir/$encName/$jsonFile" ) ) {
+ return "$function( '$encName' );\n";
+ } else {
+ return "require_once \"\$IP/$dir/$encName/$encName.php\";\n";
+ }
+ }
+
+ /**
* Write the generated LocalSettings to a file
*
* @param string $fileName Full path to filename to write to
@@ -307,6 +335,7 @@ if ( !defined( 'MEDIAWIKI' ) ) {
${serverSetting}
## The relative URL path to the skins directory
\$wgStylePath = \"\$wgScriptPath/skins\";
+\$wgResourceBasePath = \$wgScriptPath;
## The relative URL path to the logo. Make sure you change this from the default,
## or else you'll overwrite your logo when you upgrade!