removed caching of UI messages; it does not make sense, after all.
authorZheng Zhu <zhengzhu@users.mediawiki.org>
Sat, 25 Sep 2004 02:23:04 +0000 (02:23 +0000)
committerZheng Zhu <zhengzhu@users.mediawiki.org>
Sat, 25 Sep 2004 02:23:04 +0000 (02:23 +0000)
includes/GlobalFunctions.php
includes/MessageCache.php
includes/Setup.php

index d633d24..af18dfc 100644 (file)
@@ -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 = "&lt;$key&gt;";
index db06d95..fd002f3 100755 (executable)
@@ -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 "&lt;$key&gt;";
@@ -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();
index c9a8f50..60b7f9e 100644 (file)
@@ -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