Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/248.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 每页自定义侧边栏mediawiki 1.28.0-rc.0_Php_Mediawiki_Sidebar - Fatal编程技术网

Php 每页自定义侧边栏mediawiki 1.28.0-rc.0

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

我正试图为每个页面添加一个自定义侧栏,正如在这个问题中所问的那样:。 根据答案,我创建了两个页面(Sidebar1和Sidebar2),然后在MediaWiki:Sidebar中,我使用了ParserFunction来指定要以这种方式包含的正确页面:

{{#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;
}