【问题标题】:MediaWiki: Show user name in skinMediaWiki:在皮肤中显示用户名
【发布时间】:2012-12-10 08:05:15
【问题描述】:

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

【问题讨论】:

  • 这里不欢迎这个问题......
  • MediaWiki 有很多皮肤可以显示用户名。你看过默认皮肤吗?到目前为止,您还尝试过什么?
  • 您的问题听起来很像要求代码(这里不太接受)。写问题时最好小心,展示你到目前为止所做的事情,到目前为止你尝试过的事情,以及为什么现有的解决方案不适合你。
  • 啊,抱歉,不知道如何措辞。我不一定要代码,但我不知道该怎么说。我将修改原始描述以更好地显示这一点。

标签: php css mediawiki


【解决方案1】:

当前用户

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

获取用户名

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

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

【讨论】:

  • 我对这些问题的看法是它适用于 wikitext。 (据我所知)无法在 PHP 文件中使用 Wikitext。
【解决方案2】:

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

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

【讨论】:

    【解决方案3】:

    您可以使用此代码:

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

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

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

    来源:

    【讨论】:

    • 这会起作用,尽管我相信我的回答应该做同样的事情,只是更简单。此外,即使由于MediaWiki's user name restrictions,即使没有htmlspecialchars(),这个应该也是安全的,但我仍然会觉得使用它更舒服。不过,+1。
    • 根据the SkinTemplate class documentation,此对象不直接提供用户名属性。使用 htmlspecialchars 函数似乎一点也不坏:允许使用一些转义字符,例如 '.
    • 嗯,你说得对,它没有被记录(因为它实际上并没有被声明——property declarations are optional in PHP),但它在 SkinTemplate::outputPage() 中设置的。我想它应该被认为是私有的,所以你的版本确实会更好。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-08
    • 2019-07-03
    相关资源
    最近更新 更多