Hello, my wiki at http://tunearch.org http://tunearch.org/ uses two sidebar (one for anonymous and one for subscribed users) and switches between them using this modified buildSidebar() function:
________________________________________________________ In /home/tunearch/public_html/w/includes/skins/Skin.php function buildSidebar() { global $wgEnableSidebarCache, $wgSidebarCacheExpiry; global $wgUser;
$that = $this; $callback = function () use ( $that ) { $bar = []; global $wgUser; if ($wgUser->isLoggedIn()) { $that->addToSidebar( $bar, 'sidebar' ); } else { $that->addToSidebar( $bar, 'anon_sidebar' ); } Hooks::run( 'SkinBuildSidebar', [ $that, &$bar ] );
return $bar; };
if ( $wgEnableSidebarCache ) { $cache = ObjectCache::getMainWANInstance(); if ($wgUser->isLoggedIn()) { $sidebar = $cache->getWithSetCallback( $cache->makeKey( 'sidebar', $this->getLanguage()->getCode() ), MessageCache::singleton()->isDisabled() ? $cache::TTL_UNCACHEABLE // bug T133069 : $wgSidebarCacheExpiry, $callback, [ 'lockTSE' => 30 ] ); } else { $sidebar = $cache->getWithSetCallback( $cache->makeKey( 'anon_sidebar', $this->getLanguage()->getCode() ), MessageCache::singleton()->isDisabled() ? $cache::TTL_UNCACHEABLE // bug T133069 : $wgSidebarCacheExpiry, $callback, [ 'lockTSE' => 30 ] ); } } else { $sidebar = $callback(); }
// Apply post-processing to the cached value Hooks::run( 'SidebarBeforeOutput', [ $this, &$sidebar ] );
return $sidebar; }
where the anon_sidebar is
http://tunearch.org/wiki/MediaWiki:Anon_sidebar http://tunearch.org/wiki/MediaWiki:Anon_sidebar * Orientation ** Special:UserLogin|Login ** TTA|mainpage-description ** A collection of tunes|What ** help|How ** Acknowledgments|Acknowledgments
* The Index ** Category:Tune|All tunes ** Special:BrowseData/Tune|Drill down ** Special:RunQuery/TuneQuery|Query Interface ** Special:Browse/{{NAMESPACE}}:{{PAGENAME}}|Browse Properties
* Issues ** Tune_History_Articles|Magazines ** Tune_books|Tune Books Valerio Pelliccioni ---- e-mail: vmp@silkwood.it mailto:vmp@silkwood.it mob: +39 3487649160 www: http://tunearch.org http://tunearch.org/
while the ordinary Sidebar is:
http://tunearch.org/wiki/MediaWiki:Sidebar http://tunearch.org/wiki/MediaWiki:Sidebar * Orientation ** TTA|mainpage-description ** A collection of tunes|What ** help|Getting started ** ABCSandbox|ABC SandBox ** Acknowledgments| Acknowledgments ** {{fullurl:{{FULLPAGENAME}}|printable=yes}} | Printable version
* Contribution ** Special:FormEdit/Abc tune|Add tunes ** Special:Upload|Upload ** Special:SpecialPages|Special Pages
* The Index ** Category:Tune|All tunes ** Special:BrowseData/Tune|Drill down ** Special:RunQuery/TuneQuery|Query the Archive ** Special:Browse/{{NAMESPACE}}:{{PAGENAME}}|Browse Properties
* Issues ** Tune_History_Articles|Magazines ** Tune_books|Tune Books
I don’t know if this is the most elegant solution or if it fits your needs, but it works for me.
Regards.
Valerio Valerio Pelliccioni ---- e-mail: vmp@silkwood.it mob: +39 3487649160 www: http://tunearch.org
mediawiki-l@lists.wikimedia.org