我正在使用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创建类似内容?