禁用匿名用户的CategoryTree边栏

时间:2014-12-11 16:16:00

标签: php mediawiki

我正在使用MediaWiki的CategoryTree扩展。我想隐藏边栏,以防访问者匿名。

wgUseAjax = true;
require_once( "$IP/extensions/CategoryTree/CategoryTree.php" );
$wgCategoryTreeSidebarRoot = "SomeCategory";
$wgCategoryTreeSidebarOptions = array();
$wgCategoryTreeSidebarOptions['mode'] = CT_MODE_ALL;

(扩展名:http://www.mediawiki.org/wiki/Extension:CategoryTree))

我找到了一个名为HideSidebar的扩展程序。

代码看起来像这样

function efHideSidebar($skin, &$bar) {
        global $wgUser;
        // Hide sidebar for anonymous users
        if (!$wgUser->isLoggedIn()) {
                $url = Title::makeTitle(NS_SPECIAL, 'UserLogin')->getLocalUrl();
                $bar = array(
                        'navigation' => array(
                                array('text'   => 'Login',
                                      'href'   => $url,
                                      'id'     => 'n-login',
                                      'active' => '')
                        )
                );
        }
        return true;
}

但是这段代码只会隐藏导航和工具箱,而不会隐藏类别树侧边栏。

当访问者匿名时,是否有一种简单的方法可以使用另一个钩子以某种方式停用CategoryTree Extension?

此代码适用于侧边栏而不适用于类别窗口小部件。实际上函数是用一个钩子注入的:$ wgHooks [' SkinBuildSidebar'] [] =' efHideSidebar&#39 ;; 你会在这里找到完整的代码。 https://www.mediawiki.org/wiki/Extension:HideSidebar

如何为CategoryTreeSidebar创建类似内容?

0 个答案:

没有答案
相关问题