如何找出用户对MediaWiki扩展程序进行了多少次编辑?

时间:2012-04-18 22:51:48

标签: php mediawiki

我正在编写一个扩展程序,允许我添加神奇的单词:CURRENTUSERCURRENTUSERREALNAMECURRENTUSERLANGABBRCURRENTUSERGROUPS,现在我想添加{ {1}}和CURRENTUSEREDITCOUNT

我的代码的这一部分目前是:

CURRENTUSEREDITCOUNTALL

但是,我似乎无法找到编辑计数的$ GLOBAL。我做了一些基于其他扩展的研究,这些扩展由于不同的原因使用不同的编辑计数,并且发现:

CURRENTUSEREDITCOUNT

function wfGetCustomVariable(&$parser,&$cache,&$index,&$ret) {
switch ($index) {
    case MAG_CURRENTUSER:
        $parser->disableCache(); # Mark this content as uncacheable
        $ret = $GLOBALS['wgUser']->getName();
        break; 
    case MAG_CURRENTUSERREALNAME:
        $parser->disableCache(); # Mark this content as uncacheable
        $ret = $GLOBALS['wgUser']->getRealName();
        break;
    case MAG_CURRENTUSERLANGABBR
        $parser->disableCache(); # Mark this content as uncacheable
        $ret = $GLOBALS['wgLang']->getCode();
        break;
    case MAG_CURRENTUSERGROUPS
        $parser->disableCache(); # Mark this content as uncacheable
        $array = $GLOBALS['wgUser']->getEffectiveGroups();
        $ret = implode(",", $array);
        break;
}
return true;
}

CURRENTUSEREDITCOUNTALL

function wfContributionseditcount( $uid ) {
if ( $uid != 0 ) {
        global $wgOut, $wgLang;
        $wgOut->addWikiText( wfMsgExt( 'contributionseditcount', array( 'parsemag' ),
        $wgLang->formatNum( User::edits( $uid ) ),
        User::whoIs( $uid ) ) );
    }
    return true;
}

我过去曾尝试过自己学习PHP,并且一直在努力学习。我在当地社区大学报名参加了PHP课程,但直到12月12日才开始。我在正确的地方寻找,还是有更简单的地方找到用户的编辑计数?也许是某个地方的/trunk/phase3/includes/User.php的一部分?我应该提一下这个需要在运行MW 1.17.1的wiki上运行,因此classUser无法在哪里运行 - 因为它是MW 1.18 +。

1 个答案:

答案 0 :(得分:0)

如果您想要更改编辑计数的定义,也许您应该直接更改删除页面后减少用户编辑量的代码。