diff options
Diffstat (limited to 'includes/Setup.php')
-rw-r--r-- | includes/Setup.php | 100 |
1 files changed, 80 insertions, 20 deletions
diff --git a/includes/Setup.php b/includes/Setup.php index d450dfdb..cd9146ab 100644 --- a/includes/Setup.php +++ b/includes/Setup.php @@ -8,7 +8,6 @@ * MEDIAWIKI is defined */ if( !defined( 'MEDIAWIKI' ) ) { - echo "This file is part of MediaWiki, it is not a valid entry point.\n"; exit( 1 ); } @@ -41,6 +40,7 @@ if( $wgArticlePath === false ) { if( $wgStylePath === false ) $wgStylePath = "$wgScriptPath/skins"; if( $wgStyleDirectory === false) $wgStyleDirectory = "$IP/skins"; +if( $wgExtensionAssetsPath === false ) $wgExtensionAssetsPath = "$wgScriptPath/extensions"; if( $wgLogo === false ) $wgLogo = "$wgStylePath/common/images/wiki.png"; @@ -59,10 +59,10 @@ if ( empty( $wgFileStore['deleted']['directory'] ) ) { } /** - * Unconditional protection for NS_MEDIAWIKI since otherwise it's too easy for a - * sysadmin to set $wgNamespaceProtection incorrectly and leave the wiki insecure. + * 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 + * Note that this is the definition of editinterface and it can be granted to * all users if desired. */ $wgNamespaceProtection[NS_MEDIAWIKI] = 'editinterface'; @@ -87,7 +87,6 @@ if ( !$wgLocalFileRepo ) { 'hashLevels' => $wgHashedUploadDirectory ? 2 : 0, 'thumbScriptUrl' => $wgThumbnailScriptPath, 'transformVia404' => !$wgGenerateThumbnailOnParse, - 'initialCapital' => $wgCapitalLinks, 'deletedDir' => $wgFileStore['deleted']['directory'], 'deletedHashLevels' => $wgFileStore['deleted']['hash'] ); @@ -130,6 +129,18 @@ if ( $wgUseSharedUploads ) { ); } } +if( $wgUseInstantCommons ) { + $wgForeignFileRepos[] = array( + 'class' => 'ForeignAPIRepo', + 'name' => 'wikimediacommons', + 'apibase' => 'http://commons.wikimedia.org/w/api.php', + 'hashLevels' => 2, + 'fetchDescription' => true, + 'descriptionCacheExpiry' => 43200, + 'apiThumbCacheExpiry' => 86400, + ); +} + if ( !class_exists( 'AutoLoader' ) ) { require_once( "$IP/includes/AutoLoader.php" ); } @@ -150,6 +161,17 @@ 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 @@ -158,16 +180,28 @@ $wgRequest = new WebRequest; # Useful debug output if ( $wgCommandLineMode ) { wfDebug( "\n\nStart command line script $self\n" ); -} elseif ( function_exists( 'getallheaders' ) ) { - wfDebug( "\n\nStart request\n" ); +} else { + wfDebug( "Start request\n\n" ); wfDebug( $_SERVER['REQUEST_METHOD'] . ' ' . $_SERVER['REQUEST_URI'] . "\n" ); - $headers = getallheaders(); - foreach ($headers as $name => $value) { - wfDebug( "$name: $value\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" ); } - wfDebug( "\n" ); -} elseif( isset( $_SERVER['REQUEST_URI'] ) ) { - wfDebug( $_SERVER['REQUEST_METHOD'] . ' ' . $_SERVER['REQUEST_URI'] . "\n" ); } if( $wgRCFilterByAge ) { @@ -201,6 +235,23 @@ $wgContLanguageCode = $wgLanguageCode; # 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'; +} + +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'; +} + + wfProfileOut( $fname.'-misc1' ); wfProfileIn( $fname.'-memcached' ); @@ -208,9 +259,9 @@ $wgMemc =& wfGetMainCache(); $messageMemc =& wfGetMessageCacheStorage(); $parserMemc =& wfGetParserCacheStorage(); -wfDebug( 'Main cache: ' . get_class( $wgMemc ) . - "\nMessage cache: " . get_class( $messageMemc ) . - "\nParser cache: " . get_class( $parserMemc ) . "\n" ); +wfDebug( 'CACHES: ' . get_class( $wgMemc ) . '[main] ' . + get_class( $messageMemc ) . '[message] ' . + get_class( $parserMemc ) . "[parser]\n" ); wfProfileOut( $fname.'-memcached' ); @@ -289,9 +340,7 @@ $wgDeferredUpdateList = array(); $wgPostCommitUpdateList = array(); if ( $wgAjaxWatch ) $wgAjaxExportList[] = 'wfAjaxWatch'; -if ( $wgAjaxUploadDestCheck ) $wgAjaxExportList[] = 'UploadForm::ajaxGetExistsWarning'; -if( $wgAjaxLicensePreview ) - $wgAjaxExportList[] = 'UploadForm::ajaxGetLicensePreview'; +if ( $wgAjaxUploadDestCheck ) $wgAjaxExportList[] = 'SpecialUpload::ajaxGetExistsWarning'; # Placeholders in case of DB error $wgTitle = null; @@ -305,7 +354,18 @@ wfProfileIn( $fname.'-extensions' ); # 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 ); |