2012-04-18 9 views
-1

私は、​​3210、CURRENTUSERLANGABBRCURRENTUSERGROUPSという魔法の言葉を追加できる拡張機能を書いています。今ではCURRENTUSEREDITCOUNTCURRENTUSEREDITCOUNTALLを追加したいと思います。私のコードのセクションは、現在していることをユーザがMediaWiki拡張機能の編集数を確認するにはどうすればよいですか?

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; 
} 

しかし、私は編集のカウントのための$ GLOBALを見つけるように見えることはできません。 CURRENTUSEREDITCOUNTについて

:私は別の理由で別の編集・カウントを使用して発見した他の拡張子に基づいていくつかの研究を行ってきた

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; 
} 

CURRENTUSEREDITCOUNTALL用:

public function execute($params) { 
    global $wgOut, $wgUser; 
    $skin = $wgUser->getSkin(); 
    $this->setHeaders(); 
    $this->loadRequest($params); 
    $wgOut->addHTML($this->makeForm()); 
    if($this->target) { 
     if(User::isIP($this->target)) { 
      $this->showResults($this->countEditsReal(0, $this->target)); 
     } else { 
      $id = User::idFromName($this->target); 
      if($id) { 
       $this->showResults($this->countEditsReal($id, false), $id); 
      } else { 
       $wgOut->addHTML('<p>' . wfMsgHtml('countedits-nosuchuser', htmlspecialchars($this->target)) . '</p>'); 
      } 
     } 
    } 
    $this->showTopTen($wgOut); 
    return true; 
} 

私が試してみました過去に私自身でPHPを学び、それに苦労しました。ローカルコミュニティカレッジでPHPクラスに登録していますが、Fall`12までは開始しません。適切な場所を探しているのですか、ユーザーの編集回数を簡単に見つけることができますか?おそらく/trunk/phase3/includes/User.phpの一部としては? MW 1.17.1を実行しているwikiで実行する必要があることを言及する必要があります。classUserはMW 1.18+のように動作しません。

+1

User.phpでCtrl + Fを押してから、「editcount」を挿入してください。 – Bergi

+0

さて、 '$ GLOBALS ['wgUser'] - > getEditCount()' [getEditCount()](http://svn.wikimedia.org/viewvc/mediawiki/trunk/phase3/includes/User.php?view =マークアップ#12389)、私の 'CURRENTUSEREDITCOUNT'のために、' CURRENTUSEREDITCOUNTALL'のための削除された記事を含む編集数はどうでしょうか? – ShoeMaker

+0

AFAIKこのようなカウンタはありません。つまり、データベースにクエリを行い(そして最終的にUser.phpを拡張する)必要があります。 [mediawiki.org](http://www.mediawiki.org/wiki/Project:Support_desk)の[asking](http://www.mediawiki.org/wiki/Communication)を試しましたか? – Bergi

答えて

0

編集回数の定義を変更したい場合は、ページを削除した後にユーザーの編集数を減らすコードを直接変更する必要があります。

関連する問題