X-Git-Url: https://git.heureux-cyclage.org/?a=blobdiff_plain;f=includes%2FSetup.php;h=d57cba19df62a9496c140c7435bf81c013cddc47;hb=154ac6816775059fcb1d784b0f59c8f4e2692a02;hp=53e0b9496338a767e28a87368e4d86ba07c21b6d;hpb=b6dba5bcfd3ee6cc2cee7d3a991a668b68669b47;p=lhc%2Fweb%2Fwiklou.git diff --git a/includes/Setup.php b/includes/Setup.php index 53e0b94963..d57cba19df 100644 --- a/includes/Setup.php +++ b/includes/Setup.php @@ -10,7 +10,7 @@ if( !defined( 'MEDIAWIKI' ) ) { echo "This file is part of MediaWiki, it is not a valid entry point.\n"; exit( 1 ); -} +} # The main wiki script and things like database # conversion and maintenance scripts all share a @@ -58,12 +58,28 @@ if ( empty( $wgFileStore['deleted']['directory'] ) ) { $wgFileStore['deleted']['directory'] = "{$wgUploadDirectory}/deleted"; } +/** + * Unconditional protection for NS_MEDIAWIKI since otherwise it's too easy for a + * sysadmin to set $wgNamespaceProtection incorrectly and leave the wiki insecure. + * + * Note that this is the definition of editinterface and it can be granted to + * all users if desired. + */ +$wgNamespaceProtection[NS_MEDIAWIKI] = 'editinterface'; + +/** + * The canonical names of namespaces 6 and 7 are, as of v1.14, "File" + * and "File_talk". The old names "Image" and "Image_talk" are + * retained as aliases for backwards compatibility. + */ +$wgNamespaceAliases['Image'] = NS_FILE; +$wgNamespaceAliases['Image_talk'] = NS_FILE_TALK; /** * Initialise $wgLocalFileRepo from backwards-compatible settings */ if ( !$wgLocalFileRepo ) { - $wgLocalFileRepo = array( + $wgLocalFileRepo = array( 'class' => 'LocalRepo', 'name' => 'local', 'directory' => $wgUploadDirectory, @@ -101,7 +117,7 @@ if ( $wgUseSharedUploads ) { 'fetchDescription' => $wgFetchCommonsDescriptions, ); } else { - $wgForeignFileRepos[] = array( + $wgForeignFileRepos[] = array( 'class' => 'FSRepo', 'name' => 'shared', 'directory' => $wgSharedUploadDirectory, @@ -114,8 +130,9 @@ if ( $wgUseSharedUploads ) { ); } } - -require_once( "$IP/includes/AutoLoader.php" ); +if ( !class_exists( 'AutoLoader' ) ) { + require_once( "$IP/includes/AutoLoader.php" ); +} wfProfileIn( $fname.'-exception' ); require_once( "$IP/includes/Exception.php" ); @@ -132,17 +149,12 @@ 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(); $wgIP = false; # Load on demand # Can't stub this one, it sets up $_GET and $_REQUEST in its constructor $wgRequest = new WebRequest; -if ( function_exists( 'posix_uname' ) ) { - $wguname = posix_uname(); - $wgNodeName = $wguname['nodename']; -} else { - $wgNodeName = ''; -} # Useful debug output if ( $wgCommandLineMode ) { @@ -159,6 +171,19 @@ if ( $wgCommandLineMode ) { wfDebug( $_SERVER['REQUEST_METHOD'] . ' ' . $_SERVER['REQUEST_URI'] . "\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 ); + break; + } + } +} + if ( $wgSkipSkin ) { $wgSkipSkins[] = $wgSkipSkin; } @@ -173,6 +198,20 @@ if($wgMetaNamespace === FALSE) { # 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; + +# $wgAllowRealName and $wgAllowUserSkin were removed in 1.16 +# in favor of $wgHiddenPrefs, handle b/c here +if( !$wgAllowRealName ) { + $wgHiddenPrefs[] = 'realname'; +} + +if( !$wgAllowUserSkin ) { + $wgHiddenPrefs[] = 'skin'; +} + wfProfileOut( $fname.'-misc1' ); wfProfileIn( $fname.'-memcached' ); @@ -181,18 +220,29 @@ $messageMemc =& wfGetMessageCacheStorage(); $parserMemc =& wfGetParserCacheStorage(); wfDebug( 'Main cache: ' . get_class( $wgMemc ) . - "\nMessage cache: " . get_class( $messageMemc ) . - "\nParser cache: " . get_class( $parserMemc ) . "\n" ); + "\nMessage cache: " . get_class( $messageMemc ) . + "\nParser cache: " . get_class( $parserMemc ) . "\n" ); wfProfileOut( $fname.'-memcached' ); + +## Most of the config is out, some might want to run hooks here. +wfRunHooks( 'SetupAfterCache' ); + wfProfileIn( $fname.'-SetupSession' ); -if ( $wgDBprefix ) { - $wgCookiePrefix = $wgDBname . '_' . $wgDBprefix; -} elseif ( $wgSharedDB ) { - $wgCookiePrefix = $wgSharedDB; -} else { - $wgCookiePrefix = $wgDBname; +# 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, "=,; +.\"'\\[", "__________"); @@ -213,20 +263,6 @@ if( !$wgCommandLineMode && ( $wgRequest->checkSessionCookie() || isset( $_COOKIE wfProfileOut( $fname.'-SetupSession' ); wfProfileIn( $fname.'-globals' ); -if ( !$wgDBservers ) { - $wgDBservers = array(array( - 'host' => $wgDBserver, - 'user' => $wgDBuser, - 'password' => $wgDBpassword, - 'dbname' => $wgDBname, - 'type' => $wgDBtype, - 'load' => 1, - 'flags' => ($wgDebugDumpSql ? DBO_DEBUG : 0) | DBO_DEFAULT - )); -} - -$wgLoadBalancer = new StubObject( 'wgLoadBalancer', 'LoadBalancer', - array( $wgDBservers, false, $wgMasterWaitTimeout, true ) ); $wgContLang = new StubContLang; // Now that variant lists may be available... @@ -234,11 +270,12 @@ $wgRequest->interpolateTitle(); $wgUser = new StubUser; $wgLang = new StubUserLang; +$wgVariant = new StubUserVariant; $wgOut = new StubObject( 'wgOut', 'OutputPage' ); $wgParser = new StubObject( 'wgParser', $wgParserConf['class'], array( $wgParserConf ) ); -$wgMessageCache = new StubObject( 'wgMessageCache', 'MessageCache', - array( $parserMemc, $wgUseDatabaseMessages, $wgMsgCacheExpiry, wfWikiID() ) ); +$wgMessageCache = new StubObject( 'wgMessageCache', 'MessageCache', + array( $messageMemc, $wgUseDatabaseMessages, $wgMsgCacheExpiry, wfWikiID() ) ); wfProfileOut( $fname.'-globals' ); wfProfileIn( $fname.'-User' ); @@ -246,7 +283,7 @@ wfProfileIn( $fname.'-User' ); # 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 ); } @@ -263,14 +300,11 @@ wfProfileIn( $fname.'-misc2' ); $wgDeferredUpdateList = array(); $wgPostCommitUpdateList = array(); -if ( $wgAjaxSearch ) $wgAjaxExportList[] = 'wfSajaxSearch'; if ( $wgAjaxWatch ) $wgAjaxExportList[] = 'wfAjaxWatch'; if ( $wgAjaxUploadDestCheck ) $wgAjaxExportList[] = 'UploadForm::ajaxGetExistsWarning'; if( $wgAjaxLicensePreview ) $wgAjaxExportList[] = 'UploadForm::ajaxGetLicensePreview'; -wfSeedRandom(); - # Placeholders in case of DB error $wgTitle = null; $wgArticle = null; @@ -278,12 +312,30 @@ $wgArticle = null; wfProfileOut( $fname.'-misc2' ); wfProfileIn( $fname.'-extensions' ); +/* + * load the $wgExtensionMessagesFiles for the script loader + * this can't be done in a normal extension type way + * since the script-loader is an entry point + */ +$wgExtensionMessagesFiles['mwEmbed'] = "{$IP}/js2/mwEmbed/php/languages/mwEmbed.i18n.php"; + # Extension setup functions for extensions other than skins # Entries should be added to this variable during the inclusion # of the extension file. This allows the extension to perform # any necessary initialisation in the fully initialised environment foreach ( $wgExtensionFunctions as $func ) { - $profName = $fname.'-extensions-'.strval( $func ); + # Allow closures in PHP 5.3+ + if ( is_object( $func ) && $func instanceof Closure ) { + $profName = $fname.'-extensions-closure'; + } elseif( is_array( $func ) ) { + if ( is_object( $func[0] ) ) + $profName = $fname.'-extensions-'.get_class( $func[0] ).'::'.$func[1]; + else + $profName = $fname.'-extensions-'.implode( '::', $func ); + } else { + $profName = $fname.'-extensions-'.strval( $func ); + } + wfProfileIn( $profName ); call_user_func( $func ); wfProfileOut( $profName ); @@ -295,10 +347,18 @@ 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 ); - -