X-Git-Url: http://git.heureux-cyclage.org/?a=blobdiff_plain;f=includes%2FSetup.php;h=63bfa546072f9119975f3cc000b28e1a5370bde3;hb=2730c42dd8c6ad5c786ea2275ff2c69470f4b953;hp=2eb961198482d5f58db558278eb2bc91d1335197;hpb=57f473ad838f6ac0a9feb7f2513091e4f430bc2d;p=lhc%2Fweb%2Fwiklou.git diff --git a/includes/Setup.php b/includes/Setup.php index 2eb9611984..63bfa54607 100644 --- a/includes/Setup.php +++ b/includes/Setup.php @@ -1,13 +1,15 @@ $wgRightsUrl, + 'src' => $wgRightsIcon, + 'alt' => $wgRightsText, + ); + } else { + unset( $wgFooterIcons['copyright']['copyright'] ); + } +} + +if ( isset( $wgFooterIcons['poweredby'] ) && + isset( $wgFooterIcons['poweredby']['mediawiki'] ) && + $wgFooterIcons['poweredby']['mediawiki']['src'] === null ) +{ + $wgFooterIcons['poweredby']['mediawiki']['src'] = "$wgStylePath/common/images/poweredby_mediawiki_88x31.png"; +} + /** * Unconditional protection for NS_MEDIAWIKI since otherwise it's too easy for a * sysadmin to set $wgNamespaceProtection incorrectly and leave the wiki insecure. @@ -81,7 +107,7 @@ $wgNamespaceAliases['Image_talk'] = NS_FILE_TALK; * Initialise $wgLocalFileRepo from backwards-compatible settings */ if ( !$wgLocalFileRepo ) { - if( isset( $wgFileStore['deleted']['hash'] ) ) { + if ( isset( $wgFileStore['deleted']['hash'] ) ) { $deletedHashLevel = $wgFileStore['deleted']['hash']; } else { $deletedHashLevel = $wgHashedUploadDirectory ? 3 : 0; @@ -118,7 +144,7 @@ if ( $wgUseSharedUploads ) { 'dbUser' => $wgDBuser, 'dbPassword' => $wgDBpassword, 'dbName' => $wgSharedUploadDBname, - 'dbFlags' => ($wgDebugDumpSql ? DBO_DEBUG : 0) | DBO_DEFAULT, + 'dbFlags' => ( $wgDebugDumpSql ? DBO_DEBUG : 0 ) | DBO_DEFAULT, 'tablePrefix' => $wgSharedUploadDBprefix, 'hasSharedCache' => $wgCacheSharedUploads, 'descBaseUrl' => $wgRepositoryBaseUrl, @@ -138,7 +164,7 @@ if ( $wgUseSharedUploads ) { ); } } -if( $wgUseInstantCommons ) { +if ( $wgUseInstantCommons ) { $wgForeignFileRepos[] = array( 'class' => 'ForeignAPIRepo', 'name' => 'wikimediacommons', @@ -150,82 +176,14 @@ if( $wgUseInstantCommons ) { ); } -if ( !class_exists( 'AutoLoader' ) ) { - require_once( "$IP/includes/AutoLoader.php" ); -} - -wfProfileIn( $fname.'-exception' ); -require_once( "$IP/includes/Exception.php" ); -wfInstallExceptionHandler(); -wfProfileOut( $fname.'-exception' ); - -wfProfileIn( $fname.'-includes' ); -require_once( "$IP/includes/GlobalFunctions.php" ); -require_once( "$IP/includes/Hooks.php" ); -require_once( "$IP/includes/Namespace.php" ); -require_once( "$IP/includes/ProxyTools.php" ); -require_once( "$IP/includes/ObjectCache.php" ); -require_once( "$IP/includes/ImageFunctions.php" ); -require_once( "$IP/includes/StubObject.php" ); -wfProfileOut( $fname.'-includes' ); -wfProfileIn( $fname.'-misc1' ); - -# Raise the memory limit if it's too low -wfMemoryLimit(); - -/** - * Set up the timezone, suppressing the pseudo-security warning in PHP 5.1+ - * that happens whenever you use a date function without the timezone being - * explicitly set. Inspired by phpMyAdmin's treatment of the problem. - */ -wfSuppressWarnings(); -date_default_timezone_set( date_default_timezone_get() ); -wfRestoreWarnings(); - -$wgIP = false; # Load on demand -# Can't stub this one, it sets up $_GET and $_REQUEST in its constructor -$wgRequest = new WebRequest; - -# Useful debug output -if ( $wgCommandLineMode ) { - wfDebug( "\n\nStart command line script $self\n" ); -} else { - wfDebug( "Start request\n\n" ); - # Output the REQUEST_URI. This is not supported by IIS in rewrite mode, - # so use an alternative - $requestUri = isset( $_SERVER['REQUEST_URI'] ) ? $_SERVER['REQUEST_URI'] : - ( isset( $_SERVER['HTTP_X_ORIGINAL_URL'] ) ? $_SERVER['HTTP_X_ORIGINAL_URL'] : - $_SERVER['PHP_SELF'] ); - wfDebug( "{$_SERVER['REQUEST_METHOD']} {$requestUri}\n" ); - - if ( $wgDebugPrintHttpHeaders ) { - $headerOut = "HTTP HEADERS:\n"; - - if ( function_exists( 'getallheaders' ) ) { - $headers = getallheaders(); - foreach ( $headers as $name => $value ) { - $headerOut .= "$name: $value\n"; - } - } else { - $headers = $_SERVER; - foreach ( $headers as $name => $value ) { - if ( substr( $name, 0, 5 ) !== 'HTTP_' ) continue; - $name = substr( $name, 5 ); - $headerOut .= "$name: $value\n"; - } - } - wfDebug( "$headerOut\n" ); - } -} - -if( $wgRCFilterByAge ) { - ## Trim down $wgRCLinkDays so that it only lists links which are valid - ## as determined by $wgRCMaxAge. - ## Note that we allow 1 link higher than the max for things like 56 days but a 60 day link. - sort($wgRCLinkDays); - for( $i = 0; $i < count($wgRCLinkDays); $i++ ) { - if( $wgRCLinkDays[$i] >= $wgRCMaxAge / ( 3600 * 24 ) ) { - $wgRCLinkDays = array_slice( $wgRCLinkDays, 0, $i+1, false ); +if ( $wgRCFilterByAge ) { + # # Trim down $wgRCLinkDays so that it only lists links which are valid + # # as determined by $wgRCMaxAge. + # # Note that we allow 1 link higher than the max for things like 56 days but a 60 day link. + sort( $wgRCLinkDays ); + for ( $i = 0; $i < count( $wgRCLinkDays ); $i++ ) { + if ( $wgRCLinkDays[$i] >= $wgRCMaxAge / ( 3600 * 24 ) ) { + $wgRCLinkDays = array_slice( $wgRCLinkDays, 0, $i + 1, false ); break; } } @@ -235,78 +193,195 @@ if ( $wgSkipSkin ) { $wgSkipSkins[] = $wgSkipSkin; } +# Set default shared prefix +if ( $wgSharedPrefix === false ) { + $wgSharedPrefix = $wgDBprefix; +} + +if ( !$wgCookiePrefix ) { + if ( $wgSharedDB && $wgSharedPrefix && in_array( 'user', $wgSharedTables ) ) { + $wgCookiePrefix = $wgSharedDB . '_' . $wgSharedPrefix; + } elseif ( $wgSharedDB && in_array( 'user', $wgSharedTables ) ) { + $wgCookiePrefix = $wgSharedDB; + } elseif ( $wgDBprefix ) { + $wgCookiePrefix = $wgDBname . '_' . $wgDBprefix; + } else { + $wgCookiePrefix = $wgDBname; + } +} +$wgCookiePrefix = strtr( $wgCookiePrefix, '=,; +."\'\\[', '__________' ); + $wgUseEnotif = $wgEnotifUserTalk || $wgEnotifWatchlist; -if($wgMetaNamespace === FALSE) { +if ( $wgMetaNamespace === false ) { $wgMetaNamespace = str_replace( ' ', '_', $wgSitename ); } +/** + * Definitions of the NS_ constants are in Defines.php + * @private + */ +$wgCanonicalNamespaceNames = array( + NS_MEDIA => 'Media', + NS_SPECIAL => 'Special', + NS_TALK => 'Talk', + NS_USER => 'User', + NS_USER_TALK => 'User_talk', + NS_PROJECT => 'Project', + NS_PROJECT_TALK => 'Project_talk', + NS_FILE => 'File', + NS_FILE_TALK => 'File_talk', + NS_MEDIAWIKI => 'MediaWiki', + NS_MEDIAWIKI_TALK => 'MediaWiki_talk', + NS_TEMPLATE => 'Template', + NS_TEMPLATE_TALK => 'Template_talk', + NS_HELP => 'Help', + NS_HELP_TALK => 'Help_talk', + NS_CATEGORY => 'Category', + NS_CATEGORY_TALK => 'Category_talk', +); + +/// @todo UGLY UGLY +if( is_array( $wgExtraNamespaces ) ) { + $wgCanonicalNamespaceNames = $wgCanonicalNamespaceNames + $wgExtraNamespaces; +} + # These are now the same, always # To determine the user language, use $wgLang->getCode() $wgContLanguageCode = $wgLanguageCode; # Easy to forget to falsify $wgShowIPinHeader for static caches. # If file cache or squid cache is on, just disable this (DWIMD). -if( $wgUseFileCache || $wgUseSquid ) $wgShowIPinHeader = false; +if ( $wgUseFileCache || $wgUseSquid ) { + $wgShowIPinHeader = false; +} # $wgAllowRealName and $wgAllowUserSkin were removed in 1.16 # in favor of $wgHiddenPrefs, handle b/c here -if( !$wgAllowRealName ) { +if ( !$wgAllowRealName ) { $wgHiddenPrefs[] = 'realname'; } -if( !$wgAllowUserSkin ) { - $wgHiddenPrefs[] = 'skin'; +# Doesn't make sense to have if disabled. +if ( !$wgEnotifMinorEdits ) { + $wgHiddenPrefs[] = 'enotifminoredits'; +} + +# $wgDisabledActions is deprecated as of 1.18 +foreach( $wgDisabledActions as $action ){ + $wgActions[$action] = false; +} +if( !$wgAllowPageInfo ){ + $wgActions['info'] = false; } if ( !$wgHtml5Version && $wgHtml5 && $wgAllowRdfaAttributes ) { # see http://www.w3.org/TR/rdfa-in-html/#document-conformance - if ( $wgMimeType == 'application/xhtml+xml' ) $wgHtml5Version = 'XHTML+RDFa 1.0'; - else $wgHtml5Version = 'HTML+RDFa 1.0'; + if ( $wgMimeType == 'application/xhtml+xml' ) { + $wgHtml5Version = 'XHTML+RDFa 1.0'; + } else { + $wgHtml5Version = 'HTML+RDFa 1.0'; + } } +# Blacklisted file extensions shouldn't appear on the "allowed" list +$wgFileExtensions = array_diff ( $wgFileExtensions, $wgFileBlacklist ); -wfProfileOut( $fname.'-misc1' ); -wfProfileIn( $fname.'-memcached' ); +if ( $wgInvalidateCacheOnLocalSettingsChange ) { + $wgCacheEpoch = max( $wgCacheEpoch, gmdate( 'YmdHis', @filemtime( "$IP/LocalSettings.php" ) ) ); +} -$wgMemc =& wfGetMainCache(); -$messageMemc =& wfGetMessageCacheStorage(); -$parserMemc =& wfGetParserCacheStorage(); +if ( $wgAjaxUploadDestCheck ) { + $wgAjaxExportList[] = 'SpecialUpload::ajaxGetExistsWarning'; +} -wfDebug( 'CACHES: ' . get_class( $wgMemc ) . '[main] ' . - get_class( $messageMemc ) . '[message] ' . - get_class( $parserMemc ) . "[parser]\n" ); +if ( $wgNewUserLog ) { + # Add a new log type + $wgLogTypes[] = 'newusers'; + $wgLogNames['newusers'] = 'newuserlogpage'; + $wgLogHeaders['newusers'] = 'newuserlogpagetext'; + $wgLogActions['newusers/newusers'] = 'newuserlogentry'; // For compatibility with older log entries + $wgLogActions['newusers/create'] = 'newuserlog-create-entry'; + $wgLogActions['newusers/create2'] = 'newuserlog-create2-entry'; + $wgLogActions['newusers/autocreate'] = 'newuserlog-autocreate-entry'; +} -wfProfileOut( $fname.'-memcached' ); +if ( !defined( 'MW_COMPILED' ) ) { + if ( !MWInit::classExists( 'AutoLoader' ) ) { + require_once( "$IP/includes/AutoLoader.php" ); + } -## Most of the config is out, some might want to run hooks here. -wfRunHooks( 'SetupAfterCache' ); + wfProfileIn( $fname . '-exception' ); + require_once( "$IP/includes/Exception.php" ); + wfInstallExceptionHandler(); + wfProfileOut( $fname . '-exception' ); + + wfProfileIn( $fname . '-includes' ); + require_once( "$IP/includes/GlobalFunctions.php" ); + require_once( "$IP/includes/Hooks.php" ); + require_once( "$IP/includes/ProxyTools.php" ); + require_once( "$IP/includes/ImageFunctions.php" ); + wfProfileOut( $fname . '-includes' ); +} +wfProfileIn( $fname . '-misc1' ); -wfProfileIn( $fname.'-SetupSession' ); +# Raise the memory limit if it's too low +wfMemoryLimit(); -# Set default shared prefix -if( $wgSharedPrefix === false ) $wgSharedPrefix = $wgDBprefix; +/** + * Set up the timezone, suppressing the pseudo-security warning in PHP 5.1+ + * that happens whenever you use a date function without the timezone being + * explicitly set. Inspired by phpMyAdmin's treatment of the problem. + */ +wfSuppressWarnings(); +date_default_timezone_set( date_default_timezone_get() ); +wfRestoreWarnings(); -if( !$wgCookiePrefix ) { - if ( $wgSharedDB && $wgSharedPrefix && in_array('user',$wgSharedTables) ) { - $wgCookiePrefix = $wgSharedDB . '_' . $wgSharedPrefix; - } elseif ( $wgSharedDB && in_array('user',$wgSharedTables) ) { - $wgCookiePrefix = $wgSharedDB; - } elseif ( $wgDBprefix ) { - $wgCookiePrefix = $wgDBname . '_' . $wgDBprefix; - } else { - $wgCookiePrefix = $wgDBname; +# Can't stub this one, it sets up $_GET and $_REQUEST in its constructor +$wgRequest = new WebRequest; + +# Useful debug output +global $wgCommandLineMode; +if ( $wgCommandLineMode ) { + wfDebug( "\n\nStart command line script $self\n" ); +} else { + $debug = "Start request\n\n{$_SERVER['REQUEST_METHOD']} {$wgRequest->getRequestURL()}"; + + if ( $wgDebugPrintHttpHeaders ) { + $debug .= "\nHTTP HEADERS:\n"; + + foreach ( $wgRequest->getAllHeaders() as $name => $value ) { + $debug .= "$name: $value\n"; + } } + wfDebug( "$debug\n" ); } -$wgCookiePrefix = strtr($wgCookiePrefix, "=,; +.\"'\\[", "__________"); + +wfProfileOut( $fname . '-misc1' ); +wfProfileIn( $fname . '-memcached' ); + +$wgMemc = wfGetMainCache(); +$messageMemc = wfGetMessageCacheStorage(); +$parserMemc = wfGetParserCacheStorage(); + +wfDebug( 'CACHES: ' . get_class( $wgMemc ) . '[main] ' . + get_class( $messageMemc ) . '[message] ' . + get_class( $parserMemc ) . "[parser]\n" ); + +wfProfileOut( $fname . '-memcached' ); + +# # Most of the config is out, some might want to run hooks here. +wfRunHooks( 'SetupAfterCache' ); + +wfProfileIn( $fname . '-session' ); # If session.auto_start is there, we can't touch session name -# -if( !wfIniGetBool( 'session.auto_start' ) ) +if ( !wfIniGetBool( 'session.auto_start' ) ) { session_name( $wgSessionName ? $wgSessionName : $wgCookiePrefix . '_session' ); +} -if( !defined( 'MW_NO_SESSION' ) ) { - if( !$wgCommandLineMode && ( $wgRequest->checkSessionCookie() || isset( $_COOKIE[$wgCookiePrefix.'Token'] ) ) ) { +if ( !defined( 'MW_NO_SESSION' ) && !$wgCommandLineMode ) { + if ( $wgRequest->checkSessionCookie() || isset( $_COOKIE[$wgCookiePrefix . 'Token'] ) ) { wfIncrStats( 'request_with_session' ); wfSetupSession(); $wgSessionStarted = true; @@ -316,53 +391,45 @@ if( !defined( 'MW_NO_SESSION' ) ) { } } -wfProfileOut( $fname.'-SetupSession' ); -wfProfileIn( $fname.'-globals' ); +wfProfileOut( $fname . '-session' ); +wfProfileIn( $fname . '-globals' ); -$wgContLang = new StubContLang; +$wgContLang = Language::factory( $wgLanguageCode ); +$wgContLang->initEncoding(); +$wgContLang->initContLang(); // Now that variant lists may be available... $wgRequest->interpolateTitle(); +$wgUser = RequestContext::getMain()->getUser(); # BackCompat -$wgUser = new StubUser; +/** + * @var Language + */ $wgLang = new StubUserLang; -$wgOut = new StubObject( 'wgOut', 'OutputPage' ); -$wgParser = new StubObject( 'wgParser', $wgParserConf['class'], array( $wgParserConf ) ); -$wgMessageCache = new StubObject( 'wgMessageCache', 'MessageCache', - array( $messageMemc, $wgUseDatabaseMessages, $wgMsgCacheExpiry, wfWikiID() ) ); - -wfProfileOut( $fname.'-globals' ); -wfProfileIn( $fname.'-User' ); +/** + * @var OutputPage + */ +$wgOut = RequestContext::getMain()->getOutput(); # BackCompat -# Skin setup functions -# Entries can be added to this variable during the inclusion -# of the extension file. Skins can then perform any necessary initialisation. -# -foreach ( $wgSkinExtensionFunctions as $func ) { - call_user_func( $func ); -} +/** + * @var Parser + */ +$wgParser = new StubObject( 'wgParser', $wgParserConf['class'], array( $wgParserConf ) ); -if( !is_object( $wgAuth ) ) { +if ( !is_object( $wgAuth ) ) { $wgAuth = new StubObject( 'wgAuth', 'AuthPlugin' ); wfRunHooks( 'AuthPluginSetup', array( &$wgAuth ) ); } -wfProfileOut( $fname.'-User' ); - -wfProfileIn( $fname.'-misc2' ); - -$wgDeferredUpdateList = array(); -$wgPostCommitUpdateList = array(); - -if ( $wgAjaxUploadDestCheck ) $wgAjaxExportList[] = 'SpecialUpload::ajaxGetExistsWarning'; - # Placeholders in case of DB error $wgTitle = null; $wgArticle = null; -wfProfileOut( $fname.'-misc2' ); -wfProfileIn( $fname.'-extensions' ); +$wgDeferredUpdateList = array(); + +wfProfileOut( $fname . '-globals' ); +wfProfileIn( $fname . '-extensions' ); # Extension setup functions for extensions other than skins # Entries should be added to this variable during the inclusion @@ -371,14 +438,14 @@ wfProfileIn( $fname.'-extensions' ); foreach ( $wgExtensionFunctions as $func ) { # Allow closures in PHP 5.3+ if ( is_object( $func ) && $func instanceof Closure ) { - $profName = $fname.'-extensions-closure'; - } elseif( is_array( $func ) ) { + $profName = $fname . '-extensions-closure'; + } elseif ( is_array( $func ) ) { if ( is_object( $func[0] ) ) - $profName = $fname.'-extensions-'.get_class( $func[0] ).'::'.$func[1]; + $profName = $fname . '-extensions-' . get_class( $func[0] ) . '::' . $func[1]; else - $profName = $fname.'-extensions-'.implode( '::', $func ); + $profName = $fname . '-extensions-' . implode( '::', $func ); } else { - $profName = $fname.'-extensions-'.strval( $func ); + $profName = $fname . '-extensions-' . strval( $func ); } wfProfileIn( $profName ); @@ -386,24 +453,10 @@ foreach ( $wgExtensionFunctions as $func ) { wfProfileOut( $profName ); } -// For compatibility -wfRunHooks( 'LogPageValidTypes', array( &$wgLogTypes ) ); -wfRunHooks( 'LogPageLogName', array( &$wgLogNames ) ); -wfRunHooks( 'LogPageLogHeader', array( &$wgLogHeaders ) ); -wfRunHooks( 'LogPageActionText', array( &$wgLogActions ) ); - -if( !empty($wgNewUserLog) ) { - # Add a new log type - $wgLogTypes[] = 'newusers'; - $wgLogNames['newusers'] = 'newuserlogpage'; - $wgLogHeaders['newusers'] = 'newuserlogpagetext'; - $wgLogActions['newusers/newusers'] = 'newuserlogentry'; // For compatibility with older log entries - $wgLogActions['newusers/create'] = 'newuserlog-create-entry'; - $wgLogActions['newusers/create2'] = 'newuserlog-create2-entry'; - $wgLogActions['newusers/autocreate'] = 'newuserlog-autocreate-entry'; -} - wfDebug( "Fully initialised\n" ); $wgFullyInitialised = true; -wfProfileOut( $fname.'-extensions' ); +wfProfileOut( $fname . '-extensions' ); + +require_once( MWInit::compiledPath( 'includes/normal/UtfNormalDefines.php' ) ); + wfProfileOut( $fname );