MediaWiki:在皮肤中显示用户名

时间:2012-12-23 15:32:17

标签: php css mediawiki

对于熟悉MediaWiki的人来说,这应该是相当简单的,但是因为是我而让我感到难过。

我正在处理皮肤,我需要在顶部栏中显示当前登录用户的名字 - 为简单起见,我们假设是通过CSS进行更改。

最初,我打算使用个人工具栏中使用的自动生成的,但由于皮肤中的生成线是

<?php $this->renderNavigation( 'PERSONAL' ); ?>

,它与那里不可分割。我查看了User.php并找到了它的生成线:

public function getUserPage() {
    return Title::makeTitle( NS_USER, $this->getName() );
}

所以,我想我可能会以某种方式使用这个函数,但我对PHP知之甚少,并且不确定如何。

编辑:这似乎是用于个人工具行本身的生成,但同样,我不知道如何适应这一点。

            $personal_urls['userpage'] = array(
            'text' => $this->username,
            'href' => &$this->userpageUrlDetails['href'],
            'class' => $this->userpageUrlDetails['exists'] ? false : 'new',
            'active' => ( $this->userpageUrlDetails['href'] == $pageurl )
        );

我可以将它复制到一个单独的函数中,并制作如下内容吗?

<?php $this->renderNavigation( 'USERNAME' ); ?>

3 个答案:

答案 0 :(得分:2)

您可以使用此代码:

<?php echo htmlspecialchars($this->getSkin()->getUser()->getName()); ?>

或者,因为User类具有__ToString()魔术方法:

<?php echo htmlspecialchars($this->getSkin()->getUser()); ?>

来源:

答案 1 :(得分:0)

CurrentUsers

http://www.mediawiki.org/wiki/Extension:CurrentUsers

GetUserName

http://www.mediawiki.org/wiki/Extension:GetUserName

根据您的需要修改这些扩展程序

答案 2 :(得分:0)

如果您确实只想将用户名插入到皮肤HTML中,那么应该这样做:

<?php echo htmlspecialchars( $this->username ); ?>