* Cache sidebar for all languages
authorNiklas Laxström <nikerabbit@users.mediawiki.org>
Tue, 3 Jun 2008 20:24:00 +0000 (20:24 +0000)
committerNiklas Laxström <nikerabbit@users.mediawiki.org>
Tue, 3 Jun 2008 20:24:00 +0000 (20:24 +0000)
RELEASE-NOTES
includes/Skin.php

index 108ce30..6a390cb 100644 (file)
@@ -132,6 +132,7 @@ it from source control: http://www.mediawiki.org/wiki/Download_from_SVN
   from other pages in their group.
 * (bug 14263) Show a diff of the revert on rollback notification page.
 * (bug 13434) Show a warning when hash identical files exist
+* Sidebar is now cached for all languages
 
 === Bug fixes in 1.13 ===
 
index e2e9a32..3f8c6b9 100644 (file)
@@ -1650,24 +1650,18 @@ END;
         * Build an array that represents the sidebar(s), the navigation bar among them
         *
         * @return array
-        * @private
         */
        function buildSidebar() {
                global $parserMemc, $wgEnableSidebarCache, $wgSidebarCacheExpiry;
-               global $wgLang, $wgContLang;
-
-               $fname = 'SkinTemplate::buildSidebar';
-
-               wfProfileIn( $fname );
+               global $wgLang;
+               wfProfileIn( __METHOD__ );
 
-               $key = wfMemcKey( 'sidebar' );
-               $cacheSidebar = $wgEnableSidebarCache &&
-                       ($wgLang->getCode() == $wgContLang->getCode());
+               $key = wfMemcKey( 'sidebar', $wgLang->getCode() );
 
-               if ($cacheSidebar) {
+               if ( $wgEnableSidebarCache ) {
                        $cachedsidebar = $parserMemc->get( $key );
-                       if ($cachedsidebar!="") {
-                               wfProfileOut($fname);
+                       if ( $cachedsidebar ) {
+                               wfProfileOut( __METHOD__ );
                                return $cachedsidebar;
                        }
                }
@@ -1683,7 +1677,7 @@ END;
                                $heading = $line;
                        } else {
                                if (strpos($line, '|') !== false) { // sanity check
-                                       $line = explode( '|' , trim($line, '* '), 2 );
+                                       $line = array_map('trim', explode( '|' , trim($line, '* '), 2 ) );
                                        $link = wfMsgForContent( $line[0] );
                                        if ($link == '-')
                                                continue;
@@ -1713,9 +1707,8 @@ END;
                                } else { continue; }
                        }
                }
-               if ($cacheSidebar)
-                       $parserMemc->set( $key, $bar, $wgSidebarCacheExpiry );
-               wfProfileOut( $fname );
+               if ( $wgEnableSidebarCache ) $parserMemc->set( $key, $bar, $wgSidebarCacheExpiry );
+               wfProfileOut( __METHOD__ );
                return $bar;
        }
 }