From 32c223e2a137eaf57e779796f507542cacdc51a3 Mon Sep 17 00:00:00 2001 From: Zheng Zhu Date: Sat, 25 Sep 2004 02:23:04 +0000 Subject: [PATCH] removed caching of UI messages; it does not make sense, after all. --- includes/GlobalFunctions.php | 15 ++++++++++----- includes/MessageCache.php | 19 +++++++++---------- includes/Setup.php | 20 +++++++------------- 3 files changed, 26 insertions(+), 28 deletions(-) diff --git a/includes/GlobalFunctions.php b/includes/GlobalFunctions.php index d633d246f9..af18dfcd83 100644 --- a/includes/GlobalFunctions.php +++ b/includes/GlobalFunctions.php @@ -414,19 +414,21 @@ function wfMsgNoDBForContent( $key ) { return wfMsgReal( $key, $args, false, true ); } + /** * Really get a message */ function wfMsgReal( $key, $args, $useDB, $forContent=false ) { - global $wgReplacementKeys; + global $wgReplacementKeys, $wgParser, $wgMsgParserOptions; + if($forContent) { - global $wgContMessageCache, $wgContLang; - $cache = &$wgContMessageCache; + global $wgMessageCache, $wgContLang; + $cache = &$wgMessageCache; $lang = &$wgContLang; } else { - global $wgMessageCache, $wgLang; - $cache = &$wgMessageCache; + global $wgLang; + $cache = false; $lang = &$wgLang; } @@ -436,6 +438,9 @@ function wfMsgReal( $key, $args, $useDB, $forContent=false ) { $message = $cache->get( $key, $useDB ); } elseif (is_object($lang)) { $message = $lang->getMessage( $key ); + if(strstr($message, '{{' ) !== false) { + $message = $wgParser->transformMsg($message, $wgMsgParserOptions); + } } else { wfDebug( "No language object when getting $key\n" ); $message = "<$key>"; diff --git a/includes/MessageCache.php b/includes/MessageCache.php index db06d95524..fd002f3fd6 100755 --- a/includes/MessageCache.php +++ b/includes/MessageCache.php @@ -23,12 +23,11 @@ class MessageCache var $mMemcKey, $mKeys, $mParserOptions, $mParser; var $mExtensionMessages; var $mInitialised = false; - var $mLang, $mLangCode; - function initialise( &$memCached, $useDB, $expiry, $memcPrefix, $langobj, $langcode) { + + function initialise( &$memCached, $useDB, $expiry, $memcPrefix) { $fname = 'MessageCache::initialise'; wfProfileIn( $fname ); - $this->mLang = $langobj; - $this->mLangCode = $langcode; + $this->mUseCache = !is_null( $memCached ); $this->mMemc = &$memCached; $this->mDisable = !$useDB; @@ -141,11 +140,11 @@ class MessageCache * Not really needed anymore */ function getKeys() { - global $wgAllMessagesEn; + global $wgAllMessagesEn, $wgContLang; if ( !$this->mKeys ) { $this->mKeys = array(); foreach ( $wgAllMessagesEn as $key => $value ) { - array_push( $this->mKeys, $this->mLang->ucfirst( $key ) ); + array_push( $this->mKeys, $wgContLang->ucfirst( $key ) ); } } return $this->mKeys; @@ -200,7 +199,7 @@ class MessageCache } function get( $key, $useDB ) { - + global $wgContLang, $wgContLanguageCode; # If uninitialised, someone is trying to call this halfway through Setup.php if ( !$this->mInitialised ) { return "<$key>"; @@ -208,7 +207,7 @@ class MessageCache $message = false; if ( !$this->mDisable && $useDB ) { - $title = $this->mLang->ucfirst( $key ); + $title = $wgContLang->ucfirst( $key ); # Try the cache @@ -235,12 +234,12 @@ class MessageCache # Try the array in the language object if ( !$message ) { wfSuppressWarnings(); - $message = $this->mLang->getMessage( $key ); + $message = $wgContLang->getMessage( $key ); wfRestoreWarnings(); } # Try the English array - if ( !$message && $this->mLangCode != 'en' ) { + if ( !$message && $wgContLanguageCode != 'en' ) { wfSuppressWarnings(); $message = Language::getMessage( $key ); wfRestoreWarnings(); diff --git a/includes/Setup.php b/includes/Setup.php index c9a8f500b8..60b7f9e44f 100644 --- a/includes/Setup.php +++ b/includes/Setup.php @@ -80,9 +80,9 @@ wfProfileIn( $fname.'-misc1' ); global $wgUser, $wgLang, $wgContLang, $wgOut, $wgTitle; global $wgArticle, $wgDeferredUpdateList, $wgLinkCache; global $wgMemc, $wgMagicWords, $wgMwRedir, $wgDebugLogFile; -global $wgMessageCache, $wgUseMemCached, $wgUseDatabaseMessages, $wgContMessageCach; +global $wgMessageCache, $wgUseMemCached, $wgUseDatabaseMessages; global $wgMsgCacheExpiry, $wgCommandLineMode; -global $wgBlockCache, $wgParserCache, $wgParser, $wgDBConnections; +global $wgBlockCache, $wgParserCache, $wgParser, $wgDBConnections, $wgMsgParserOptions; global $wgLoadBalancer, $wgDBservers, $wgDebugDumpSql; global $wgDBserver, $wgDBuser, $wgDBpassword, $wgDBname, $wgDBtype; global $wgUseOldExistenceCheck, $wgEnablePersistentLC; @@ -261,7 +261,8 @@ if(!$wgUser->mDataLoaded) { $wgUser->loadDefaultFromLanguage(); } $wgLanguageCode = $wgUser->getOption('language'); $wgLangClass = 'Language'. str_replace( '-', '_', ucfirst( $wgLanguageCode ) ); -if($wgLangClass == $wgContLangClass) { + +if($wgLangClass == $wgContLangClass ) { $wgLang = &$wgContLang; } else { @@ -273,15 +274,8 @@ else { wfProfileOut( $fname.'-language' ); wfProfileIn( $fname.'-MessageCache' ); -$wgContMessageCache = new MessageCache; -$wgContMessageCache->initialise( $messageMemc, $wgUseDatabaseMessages, $wgMsgCacheExpiry, $wgDBname, $wgContLang, $wgContLanguageCode ); -if($wgLangClass == $wgContLangClass) { - $wgMessageCache = &$wgContMessageCache; -} -else { - $wgMessageCache = new MessageCache; - $wgMessageCache->initialise( $messageMemc,false , $wgMsgCacheExpiry, $wgDBname.":$wgLangClass", $wgLang, $wgLanguageCode); -} +$wgMessageCache = new MessageCache; +$wgMessageCache->initialise( $messageMemc, $wgUseDatabaseMessages, $wgMsgCacheExpiry, $wgDBname); wfProfileOut( $fname.'-MessageCache' ); @@ -298,7 +292,6 @@ wfProfileOut( $fname.'-MessageCache' ); # $wgLangClass = $wgContLangClass; # $wgLanguageCode = $wgContLanguageCode; # $wgLang = $wgContLang; -# $wgMessageCache = $wgContMessageCache; # # TODO: Need to change reference to $wgLang to $wgContLang at proper # places, including namespaces, dates in signatures, magic words, @@ -338,6 +331,7 @@ $wgParserCache = new ParserCache(); $wgParser = new Parser(); $wgOut->setParserOptions( ParserOptions::newFromUser( $wgUser ) ); $wgDBConnections = array(); +$wgMsgParserOptions = ParserOptions::newFromUser($wgUser); wfSeedRandom(); # Placeholders in case of DB error -- 2.20.1