Php 如何为我的MediaWiki扩展列出用户所在的组?
我正在编写一个扩展,它将允许我添加神奇的词语:Php 如何为我的MediaWiki扩展列出用户所在的组?,php,mediawiki,Php,Mediawiki,我正在编写一个扩展,它将允许我添加神奇的词语:CURRENTUSER,CURRENTUSERREALNAME,CURRENTUSERLANGABBR,我想要CURRENTUSERGROUPS。 我的代码的这一部分目前是: function wfGetCustomVariable(&$parser,&$cache,&$index,&$ret) { switch ($index) { case MAG_CURRENTUSER:
CURRENTUSER
,CURRENTUSERREALNAME
,CURRENTUSERLANGABBR
,我想要CURRENTUSERGROUPS
。
我的代码的这一部分目前是:
function wfGetCustomVariable(&$parser,&$cache,&$index,&$ret) {
switch ($index) {
case MAG_CURRENTUSER:
$parser->disableCache(); # Mark this content as uncacheable
$ret = $GLOBALS['wgUser']->mName;
break;
case MAG_CURRENTUSERREALNAME:
$parser->disableCache(); # Mark this content as uncacheable
$ret = $GLOBALS['wgUser']->mRealName;
break;
case MAG_CURRENTUSERLANGABBR
$parser->disableCache(); # Mark this content as uncacheable
$ret = $GLOBALS['wgLang']->getCode();
break;
}
return true;
}
但是,在MediaWiki文档中,我似乎找不到用户所在的组数组的$GLOBAL。我查过、和。在它们中,我看不到任何关于如何获取当前用户组的简单(逗号/分号/etc…)分隔列表的解释。有人能帮我吗?看一下:
…这当然将返回一个数组,而不是分隔符分隔的字符串。请查看:
…当然,它将返回一个数组,而不是分隔符分隔的字符串。在链接中浏览代码后,它也不包括隐式组。。将:
$ret=$GLOBALS['wgUser']->meeffectivegroups代码>工作?不。虽然它可能是一个隐式的公共变量,但千万不要这样使用(我不是PHP MediaWiki开发人员,但我不喜欢他们的风格)。应该总是有一个getter函数-在这里,它位于2318行。是的,当然。例如,它们处理缓存等,所以总是尝试使用getter。我也不确定$wgUser是否应该被$GLOBALS访问,这对我来说很奇怪——再说一次,我不是PHP开发人员。@将数组转换为列表:有。当我探索PHP的时候,我有一个从未超过两次的点击:-)啊,找到了。正确的方法似乎是,例如Outputpage。其余的看起来不错。在你的链接上浏览代码后,它也不包括隐式组。。将:$ret=$GLOBALS['wgUser']->meeffectivegroups代码>工作?不。虽然它可能是一个隐式的公共变量,但千万不要这样使用(我不是PHP MediaWiki开发人员,但我不喜欢他们的风格)。应该总是有一个getter函数-在这里,它位于2318行。是的,当然。例如,它们处理缓存等,所以总是尝试使用getter。我也不确定$wgUser是否应该被$GLOBALS访问,这对我来说很奇怪——再说一次,我不是PHP开发人员。@将数组转换为列表:有。当我探索PHP的时候,我有一个从未超过两次的点击:-)啊,找到了。正确的方法似乎是,例如Outputpage。其余的看起来不错。
$GLOBALS['wgUser']->getGroups()