Tell regexp parser to use extra analysis on external link regexp;
[lhc/web/wiklou.git] / includes / Setup.php
index 60b7f9e..46bd30b 100644 (file)
@@ -16,7 +16,7 @@ if( defined( 'MEDIAWIKI' ) ) {
 # setting up a few globals.
 #
 
-global $wgProfiling, $wgProfileSampleRate, $wgIP, $wgUseSquid;
+global $wgProfiling, $wgProfileSampleRate, $wgIP, $wgUseSquid, $IP;
 
 if( !isset( $wgProfiling ) )
        $wgProfiling = false;
@@ -47,6 +47,10 @@ if( $wgUseSquid && isset( $_SERVER['HTTP_X_FORWARDED_FOR'] ) ) {
        $wgIP = '127.0.0.1';
 }
 
+if ( $wgUseData ) {
+       $wgExtraNamespaces[20] = 'Data' ;
+       $wgExtraNamespaces[21] = 'Data_talk' ;
+}
 
 $fname = 'Setup.php';
 wfProfileIn( $fname );
@@ -67,9 +71,11 @@ require_once( 'Block.php' );
 require_once( 'MessageCache.php' );
 require_once( 'BlockCache.php' );
 require_once( 'Parser.php' );
+require_once( 'ParserXML.php' );
 require_once( 'ParserCache.php' );
 require_once( 'WebRequest.php' );
 require_once( 'LoadBalancer.php' );
+require_once( 'HistoryBlob.php' );
 
 $wgRequest = new WebRequest();
 
@@ -78,11 +84,12 @@ $wgRequest = new WebRequest();
 wfProfileOut( $fname.'-includes' );
 wfProfileIn( $fname.'-misc1' );
 global $wgUser, $wgLang, $wgContLang, $wgOut, $wgTitle;
+global $wgLangClass, $wgContLangClass;
 global $wgArticle, $wgDeferredUpdateList, $wgLinkCache;
 global $wgMemc, $wgMagicWords, $wgMwRedir, $wgDebugLogFile;
 global $wgMessageCache, $wgUseMemCached, $wgUseDatabaseMessages;
 global $wgMsgCacheExpiry, $wgCommandLineMode;
-global $wgBlockCache, $wgParserCache, $wgParser, $wgDBConnections, $wgMsgParserOptions;
+global $wgBlockCache, $wgParserCache, $wgParser, $wgMsgParserOptions;
 global $wgLoadBalancer, $wgDBservers, $wgDebugDumpSql;
 global $wgDBserver, $wgDBuser, $wgDBpassword, $wgDBname, $wgDBtype;
 global $wgUseOldExistenceCheck, $wgEnablePersistentLC;
@@ -176,7 +183,7 @@ if( $wgUseMemCached ) {
 wfProfileOut( $fname.'-memcached' );
 wfProfileIn( $fname.'-SetupSession' );
 
-if( !$wgCommandLineMode && ( isset( $_COOKIE[ini_get('session.name')] ) || isset( $_COOKIE[$wgDBname.'Password'] ) ) ) {
+if( !$wgCommandLineMode && ( isset( $_COOKIE[ini_get('session.name')] ) || isset( $_COOKIE[$wgDBname.'Token'] ) ) ) {
        User::SetupSession();
        $wgSessionStarted = true;
 } else {
@@ -203,14 +210,18 @@ $wgLoadBalancer->loadMasterPos();
 wfProfileOut( $fname.'-database' );
 wfProfileIn( $fname.'-User' );
 
-# Extension setup functions
-# 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
+# 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 ) {
        $func();
 }
 
+if( !is_object( $wgAuth ) ) {
+       require_once( 'AuthPlugin.php' );
+       $wgAuth = new AuthPlugin();
+}
+
 if( $wgCommandLineMode ) {
        # Used for some maintenance scripts; user session cookies can screw things up
        # when the database is in an in-between state.
@@ -223,12 +234,12 @@ wfProfileOut( $fname.'-User' );
 wfProfileIn( $fname.'-language' );
 
 function setupLangObj(&$langclass, $langcode) {
-       global $wgUseLatin1;
+       global $wgUseLatin1, $IP;
 
 
-       if( ! class_exists( $langclass ) || ($langcode == 'en' && !$wgUseLatin1) ) {
-# Default to English/UTF-8
-               require_once( 'languages/LanguageUtf8.php' );
+       if( ! class_exists( $langclass ) ) {
+               # Default to English/UTF-8
+               require_once( "$IP/languages/LanguageUtf8.php" );
                $langclass = 'LanguageUtf8';
        }
 
@@ -237,9 +248,9 @@ function setupLangObj(&$langclass, $langcode) {
                print "No language class ($wgLang)\N";
        }
 
-       if( $wgUseLatin1 && $langcode != 'en' ) {
-# For non-UTF-8 non-English.
-               require_once( 'languages/LanguageLatin1.php' );
+       if( $wgUseLatin1 ) {
+               # For non-UTF-8 latin-1 downconversion
+               require_once( "$IP/languages/LanguageLatin1.php" );
                $xxx = new LanguageLatin1( $lang );
                unset( $lang );
                $lang = $xxx;
@@ -247,27 +258,32 @@ function setupLangObj(&$langclass, $langcode) {
        return $lang;
 }
 
-require_once( 'languages/Language.php' );
+require_once( "$IP/languages/Language.php" );
 
+# $wgLanguageCode may be changed later to fit with user preference.
+# The content language will remain fixed as per the configuration,
+# so let's keep it.
+$wgContLanguageCode = $wgLanguageCode;
 $wgContLangClass = 'Language' . str_replace( '-', '_', ucfirst( $wgContLanguageCode ) );
 
-$wgContLang = setupLangObj($wgContLangClass, $wgContLangClass);
- $n = get_class($wgContLang);
+$wgContLang = setupLangObj( $wgContLangClass, $wgContLangClass );
+$n = get_class($wgContLang);
 
 // set default user option from content language
-if(!$wgUser->mDataLoaded) { $wgUser->loadDefaultFromLanguage(); }
+if( !$wgUser->mDataLoaded ) {
+       $wgUser->loadDefaultFromLanguage();
+}
 
 // wgLanguageCode now specifically means the UI language
 $wgLanguageCode = $wgUser->getOption('language');
 
 $wgLangClass = 'Language'. str_replace( '-', '_', ucfirst( $wgLanguageCode ) );
 
-if($wgLangClass == $wgContLangClass ) {
+if( $wgLangClass == $wgContLangClass ) {
        $wgLang = &$wgContLang;
-}
-else {
-       include_once("languages/$wgLangClass.php");
-       $wgLang = setupLangObj($wgLangClass, $wgLanguageCode);
+} else {
+       require_once("$IP/languages/$wgLangClass.php");
+       $wgLang = setupLangObj( $wgLangClass, $wgLanguageCode );
 }
 
 
@@ -327,10 +343,11 @@ $wgDeferredUpdateList = array();
 $wgLinkCache = new LinkCache();
 $wgMagicWords = array();
 $wgMwRedir =& MagicWord::get( MAG_REDIRECT );
-$wgParserCache = new ParserCache();
-$wgParser = new Parser();
+$wgParserCache = new ParserCache( $messageMemc );
+
+if ( $wgUseXMLparser ) $wgParser = new ParserXML();
+else $wgParser = new Parser();
 $wgOut->setParserOptions( ParserOptions::newFromUser( $wgUser ) );
-$wgDBConnections = array();
 $wgMsgParserOptions = ParserOptions::newFromUser($wgUser);
 wfSeedRandom();
 
@@ -341,7 +358,7 @@ $wgArticle = new Article($wgTitle);
 wfProfileOut( $fname.'-misc2' );
 wfProfileIn( $fname.'-extensions' );
 
-# Extension setup functions
+# 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