Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/264.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何为我的MediaWiki扩展列出用户所在的组?_Php_Mediawiki - Fatal编程技术网

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()