From: Niklas Laxström Date: Fri, 31 Jul 2009 07:12:25 +0000 (+0000) Subject: * Fix sidebar purging code (still unknown to me what causes it to cache bad version) X-Git-Tag: 1.31.0-rc.0~40611 X-Git-Url: http://git.cyclocoop.org/%24self?a=commitdiff_plain;h=16bd8f0406062e35ed3996fb877eddb271173684;p=lhc%2Fweb%2Fwiklou.git * Fix sidebar purging code (still unknown to me what causes it to cache bad version) * Add language code to the load method --- diff --git a/includes/MessageCache.php b/includes/MessageCache.php index 351c65d7cb..e7679b1b9e 100644 --- a/includes/MessageCache.php +++ b/includes/MessageCache.php @@ -346,7 +346,7 @@ class MessageCache { $res = $dbr->select( array( 'page', 'revision', 'text' ), array( 'page_title', 'old_text', 'old_flags' ), - $smallConds, __METHOD__ ); + $smallConds, __METHOD__. "($code)" ); for ( $row = $dbr->fetchObject( $res ); $row; $row = $dbr->fetchObject( $res ) ) { $cache[$row->page_title] = ' ' . Revision::getRevisionText( $row ); @@ -400,8 +400,17 @@ class MessageCache { // Also delete cached sidebar... just in case it is affected global $parserMemc; - $sidebarKey = wfMemcKey( 'sidebar', $code ); - $parserMemc->delete( $sidebarKey ); + $codes = array( $code ); + if ( $code === 'en' ) { + // Delete all sidebars, like for example on action=purge on the + // sidebar messages + $codes = array_keys( Language::getLanguageNames() ); + } + + foreach ( $codes as $code ) { + $sidebarKey = wfMemcKey( 'sidebar', $code ); + $parserMemc->delete( $sidebarKey ); + } wfRunHooks( "MessageCacheReplace", array( $title, $text ) );