-4

对于任何熟悉 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' ); ?>
4

3 回答 3

2

您可以使用以下代码:

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

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

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

资料来源:

于 2012-12-27T01:17:17.860 回答
0

当前用户

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

获取用户名

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

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

于 2012-12-23T15:37:53.360 回答
0

如果您确实只是希望将用户名插入到皮肤 HTML 中的某个位置,那么应该这样做:

<?php echo htmlspecialchars( $this->username ); ?>
于 2012-12-24T18:36:02.547 回答