X-Git-Url: http://git.cyclocoop.org/?a=blobdiff_plain;f=includes%2Finstaller%2FLocalSettingsGenerator.php;h=94c84e329de26965738cc9633cbf2aaa670990f1;hb=253d3b7d6a5c5ea7ab74b69490b48674d828c5e9;hp=5cc0e3c270fbe514933c29394df760d29c62ecde;hpb=31eae6a575c1dea8767ad91181c21db542ab1ced;p=lhc%2Fweb%2Fwiklou.git diff --git a/includes/installer/LocalSettingsGenerator.php b/includes/installer/LocalSettingsGenerator.php index 5cc0e3c270..94c84e329d 100644 --- a/includes/installer/LocalSettingsGenerator.php +++ b/includes/installer/LocalSettingsGenerator.php @@ -13,12 +13,12 @@ * @since 1.17 */ class LocalSettingsGenerator { - + private $extensions = array(); private $values = array(); private $dbSettings = ''; private $safeMode = false; - + /** * @var Installer */ @@ -26,7 +26,7 @@ class LocalSettingsGenerator { /** * Constructor. - * + * * @param $installer Installer subclass */ public function __construct( Installer $installer ) { @@ -46,30 +46,31 @@ class LocalSettingsGenerator { 'wgRightsText', 'wgRightsCode', 'wgMainCacheType', 'wgEnableUploads', 'wgMainCacheType', '_MemCachedServers', 'wgDBserver', 'wgDBuser', 'wgDBpassword', 'wgUseInstantCommons', 'wgUpgradeKey', 'wgDefaultSkin', + 'wgMetaNamespace', 'wgResourceLoaderMaxQueryLength' ), $db->getGlobalNames() ); - + $unescaped = array( 'wgRightsIcon' ); - $boolItems = array( + $boolItems = array( 'wgEnableEmail', 'wgEnableUserEmail', 'wgEnotifUserTalk', 'wgEnotifWatchlist', 'wgEmailAuthentication', 'wgEnableUploads', 'wgUseInstantCommons' ); - + foreach( $confItems as $c ) { $val = $installer->getVar( $c ); - + if( in_array( $c, $boolItems ) ) { $val = wfBoolToStr( $val ); } - + if ( !in_array( $c, $unescaped ) ) { $val = self::escapePhpString( $val ); } - + $this->values[$c] = $val; } - + $this->dbSettings = $db->getLocalSettings(); $this->safeMode = $installer->getVar( '_SafeMode' ); $this->values['wgEmergencyContact'] = $this->values['wgPasswordSender']; @@ -77,16 +78,16 @@ class LocalSettingsGenerator { /** * Returns the escaped version of a string of php code. - * + * * @param $string String - * + * * @return String */ public static function escapePhpString( $string ) { if ( is_array( $string ) || is_object( $string ) ) { return false; } - + return strtr( $string, array( @@ -103,21 +104,27 @@ class LocalSettingsGenerator { /** * Return the full text of the generated LocalSettings.php file, * including the extensions - * + * * @return String */ public function getText() { $localSettings = $this->getDefaultText(); - + if( count( $this->extensions ) ) { - $localSettings .= "\n# The following extensions were automatically enabled:\n"; - + $localSettings .= " +# Enabled Extensions. Most extensions are enabled by including the base extension file here +# but check specific extension documentation for more details +# The following extensions were automatically enabled:\n"; + foreach( $this->extensions as $extName ) { $encExtName = self::escapePhpString( $extName ); $localSettings .= "require( \"extensions/$encExtName/$encExtName.php\" );\n"; } } + $localSettings .= "\n\n# End of automatically generated settings. +# Add more configuration options below.\n\n"; + return $localSettings; } @@ -135,25 +142,25 @@ class LocalSettingsGenerator { */ private function buildMemcachedServerList() { $servers = $this->values['_MemCachedServers']; - + if( !$servers ) { return 'array()'; } else { $ret = 'array( '; $servers = explode( ',', $servers ); - + foreach( $servers as $srv ) { $srv = trim( $srv ); $ret .= "'$srv', "; } - + return rtrim( $ret, ', ' ) . ' )'; } } /** * @return String - */ + */ private function getDefaultText() { if( !$this->values['wgImageMagickConvertCommand'] ) { $this->values['wgImageMagickConvertCommand'] = '/usr/bin/convert'; @@ -161,17 +168,21 @@ class LocalSettingsGenerator { } else { $magic = ''; } - + if( !$this->values['wgShellLocale'] ) { $this->values['wgShellLocale'] = 'en_US.UTF-8'; $locale = '#'; } else { $locale = ''; } - + $rights = $this->values['wgRightsUrl'] ? '' : '#'; $hashedUploads = $this->safeMode ? '' : '#'; - + $metaNamespace = ''; + if( $this->values['wgMetaNamespace'] !== $this->values['wgSitename'] ) { + $metaNamespace = "\$wgMetaNamespace = \"{$this->values['wgMetaNamespace']}\";\n"; + } + switch( $this->values['wgMainCacheType'] ) { case 'anything': case 'db': @@ -183,7 +194,7 @@ class LocalSettingsGenerator { default: $cacheType = 'CACHE_NONE'; } - + $mcservers = $this->buildMemcachedServerList(); return "values['wgSitename']}\"; - +\$wgSitename = \"{$this->values['wgSitename']}\"; +{$metaNamespace} ## The URL base path to the directory containing the wiki; ## defaults for all runtime URL paths are based off of this. ## For more information on customizing the URLs please see: @@ -266,10 +277,6 @@ if ( !defined( 'MEDIAWIKI' ) ) { ## this, if it's not already uncommented: {$hashedUploads}\$wgHashedUploadDirectory = false; -## If you have the appropriate support software installed -## you can enable inline LaTeX equations: -\$wgUseTeX = false; - ## Set \$wgCacheDirectory to a writable directory on the web server ## to make your wiki go slightly faster. The directory should not ## be publically accessible from the web. @@ -301,9 +308,12 @@ if ( !defined( 'MEDIAWIKI' ) ) { # Path to the GNU diff3 utility. Used for conflict resolution. \$wgDiff3 = \"{$this->values['wgDiff3']}\"; -# Enabled Extensions. Most extensions are enabled by including the base extension file here -# but check specific extension documentation for more details +# Query string length limit for ResourceLoader. You should only set this if +# your web server has a query string length limit (then set it to that limit), +# or if you have suhosin.get.max_value_length set in php.ini (then set it to +# that value) +\$wgResourceLoaderMaxQueryLength = {$this->values['wgResourceLoaderMaxQueryLength']}; "; } - + }