From 0e2748f0988a9870c236e8b6be3b4f02b9fec39e Mon Sep 17 00:00:00 2001 From: Domas Mituzas Date: Sat, 14 Jan 2006 22:13:43 +0000 Subject: [PATCH] SIDEBAR CACHE WILL SURVIVE!!!!!!11111oneoneone --- includes/MessageCache.php | 3 ++- includes/Skin.php | 23 +++++++++++++++++++---- 2 files changed, 21 insertions(+), 5 deletions(-) diff --git a/includes/MessageCache.php b/includes/MessageCache.php index de8fd95069..c6c56abd57 100755 --- a/includes/MessageCache.php +++ b/includes/MessageCache.php @@ -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 ); diff --git a/includes/Skin.php b/includes/Skin.php index 532a7bf8aa..f5c2f801d0 100644 --- a/includes/Skin.php +++ b/includes/Skin.php @@ -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; } -- 2.20.1