SIDEBAR CACHE WILL SURVIVE!!!!!!11111oneoneone
authorDomas Mituzas <midom@users.mediawiki.org>
Sat, 14 Jan 2006 22:13:43 +0000 (22:13 +0000)
committerDomas Mituzas <midom@users.mediawiki.org>
Sat, 14 Jan 2006 22:13:43 +0000 (22:13 +0000)
includes/MessageCache.php
includes/Skin.php

index de8fd95..c6c56ab 100755 (executable)
@@ -289,10 +289,11 @@ class MessageCache {
        }
 
        function replace( $title, $text ) {
-               global $wgLocalMessageCache;
+               global $wgLocalMessageCache, $parserMemc, $wgDBname;
 
                $this->lock();
                $this->load();
+               $parserMemc->delete("$wgDBname:sidebar");
                if ( is_array( $this->mCache ) ) {
                        $this->mCache[$title] = $text;
                        $this->mMemc->set( $this->mMemcKey, $this->mCache, $this->mExpiry );
index 532a7bf..f5c2f80 100644 (file)
@@ -1393,12 +1393,26 @@ END;
         * @access private
         */
        function buildSidebar() {
-               global $wgTitle, $action;
+               global $wgTitle, $action, $wgDBname, $parserMemc;
+               global $wgLanguageCode, $wgContLanguageCode;
 
                $fname = 'SkinTemplate::buildSidebar';
-               $pageurl = $wgTitle->getLocalURL();
+
                wfProfileIn( $fname );
 
+               if ($wgLanguageCode == $wgContLanguageCode)
+                       $cacheSidebar = true;
+               else
+                       $cacheSidebar = false;
+               
+               if ($cacheSidebar) {
+                       $cachedsidebar=$parserMemc->get("{$wgDBname}:sidebar");
+                       if ($cachedsidebar!="") {
+                               wfProfileOut($fname);
+                               return $cachedsidebar;
+                       }
+               }
+
                $bar = array();
                $lines = explode( "\n", wfMsgForContent( 'sidebar' ) );
                foreach ($lines as $line) {
@@ -1422,12 +1436,13 @@ END;
                                                'text' => $text,
                                                'href' => $href,
                                                'id' => 'n-' . strtr($line[1], ' ', '-'),
-                                               'active' => $pageurl == $href
+                                               'active' => false
                                        );
                                } else { continue; }
                        }
                }
-
+               if ($cacheSidebar)
+                       $cachednotice=$parserMemc->set("{$wgDBname}:sidebar",$bar,86400);
                wfProfileOut( $fname );
                return $bar;
        }