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: v...@silkwood.it <mailto:v...@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: v...@silkwood.it
mob: +39 3487649160
www: http://tunearch.org




_______________________________________________
MediaWiki-l mailing list
To unsubscribe, go to:
https://lists.wikimedia.org/mailman/listinfo/mediawiki-l

Reply via email to