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