CURRENTUSER
、、、、、という魔法の言葉を追加できる拡張機能を作成しCURRENTUSERREALNAME
ています。CURRENTUSERLANGABBR
CURRENTUSERGROUPS
CURRENTUSEREDITCOUNT
CURRENTUSEREDITCOUNTALL
私のコードのそのセクションは現在:
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 が見つからないようです。さまざまな理由でさまざまな編集カウントを使用する他の拡張機能に基づいていくつかの調査を行ったところ、次のことがわかりました。
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 のクラスに申し込んでいますが、2012 年秋まで開始しません。私は正しい場所を探していますか、それともユーザーの編集回数を見つけるためのより簡単な場所はありますか? /trunk/phase3/includes/User.phpの一部としてどこかにあるのでしょうか? これは、MW 1.17.1 を実行している wiki で実行する必要があることを言及しておく必要があります。そのため、classUserは動作しません。