Php 每页自定义侧边栏mediawiki 1.28.0-rc.0
我正试图为每个页面添加一个自定义侧栏,正如在这个问题中所问的那样:。 根据答案,我创建了两个页面(Sidebar1和Sidebar2),然后在MediaWiki:Sidebar中,我使用了ParserFunction来指定要以这种方式包含的正确页面:Php 每页自定义侧边栏mediawiki 1.28.0-rc.0,php,mediawiki,sidebar,Php,Mediawiki,Sidebar,我正试图为每个页面添加一个自定义侧栏,正如在这个问题中所问的那样:。 根据答案,我创建了两个页面(Sidebar1和Sidebar2),然后在MediaWiki:Sidebar中,我使用了ParserFunction来指定要以这种方式包含的正确页面: {{#ifeq: {{PAGENAME}} | Main_Page | {{:Sidebar1}} | {{#ifeq: {{PAGENAME}} | Other_page | {{:Sidebar2}} | {{:Sidebar_gen
{{#ifeq: {{PAGENAME}} | Main_Page | {{:Sidebar1}} |
{{#ifeq: {{PAGENAME}} | Other_page | {{:Sidebar2}} | {{:Sidebar_generic}} }}
}}
function testSidebar( $skin, &$bar ) {
global $wgTitle;
if (strcmp($wgTitle,"TestPage1") == 0 ) {
$bar = array();
$skin->addToSidebar($bar,'MySidebar');
}
return true;
}
然而,这个解决方案似乎不起作用
我也尝试过加入扩展,但没有成功
有人能告诉我正确的方法吗
我将mediawiki 1.28.0-rc.0与以下皮肤一起使用:。我通过在SkinBuildSidebar中插入一个钩子,按照插件“hideSideBar”的代码设法做到了这一点:
$wgHooks['SkinBuildSidebar'][] = 'testSidebar';
function testSidebar( $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' => wfMessage( 'MySidebar' )->inContentLanguage()->plain(),
)
)
);
}
return true;
我已经创建了MediaWiki:MySidebar页面,对于匿名用户,该页面中的内容正确显示为侧栏,但没有格式化。示例:在Mediawiki:MySidebar中,我有:
* Entry1
** Entry2
但通过这种方式,我在侧边栏中看到了一个带有原始文本*Entry1**Entry2的条目,而不是当前使用的皮肤通常使用的格式正确的侧边栏
如何解决此问题?最后,我通过以下方式解决了此问题:
{{#ifeq: {{PAGENAME}} | Main_Page | {{:Sidebar1}} |
{{#ifeq: {{PAGENAME}} | Other_page | {{:Sidebar2}} | {{:Sidebar_generic}} }}
}}
function testSidebar( $skin, &$bar ) {
global $wgTitle;
if (strcmp($wgTitle,"TestPage1") == 0 ) {
$bar = array();
$skin->addToSidebar($bar,'MySidebar');
}
return true;
}