From: X! Date: Sat, 30 May 2009 17:27:16 +0000 (+0000) Subject: (bug 19012) Added {{NUMBEROFCONTRIBS}} variable X-Git-Tag: 1.31.0-rc.0~41603 X-Git-Url: http://git.cyclocoop.org/%7B%24www_url%7Dadmin/password.php?a=commitdiff_plain;h=784dc5cc9a8e2c0548692652a6e998f0fc79a2f8;p=lhc%2Fweb%2Fwiklou.git (bug 19012) Added {{NUMBEROFCONTRIBS}} variable --- diff --git a/RELEASE-NOTES b/RELEASE-NOTES index 8691a6c27a..13596a579d 100644 --- a/RELEASE-NOTES +++ b/RELEASE-NOTES @@ -82,6 +82,8 @@ it from source control: http://www.mediawiki.org/wiki/Download_from_SVN * (bug 11484) Added ISO speed rating to default collapsed EXIF metadata view * (bug 18958) Added ability to disable entire variant conversion engine per user preferences +* (bug 19012) Introduce {{NUMBEROFCONTRIBS}} variable to display the number + of contributions a user has. === Bug fixes in 1.16 === diff --git a/includes/MagicWord.php b/includes/MagicWord.php index b69d57e8be..d92817ee0f 100644 --- a/includes/MagicWord.php +++ b/includes/MagicWord.php @@ -107,45 +107,46 @@ class MagicWord { /* Array of caching hints for ParserCache */ static public $mCacheTTLs = array ( - 'currentmonth' => 86400, - 'currentmonth1' => 86400, - 'currentmonthname' => 86400, - 'currentmonthnamegen' => 86400, - 'currentmonthabbrev' => 86400, - 'currentday' => 3600, - 'currentday2' => 3600, - 'currentdayname' => 3600, - 'currentyear' => 86400, - 'currenttime' => 3600, - 'currenthour' => 3600, - 'localmonth' => 86400, - 'localmonth1' => 86400, - 'localmonthname' => 86400, - 'localmonthnamegen' => 86400, - 'localmonthabbrev' => 86400, - 'localday' => 3600, - 'localday2' => 3600, - 'localdayname' => 3600, - 'localyear' => 86400, - 'localtime' => 3600, - 'localhour' => 3600, - 'numberofarticles' => 3600, - 'numberoffiles' => 3600, - 'numberofedits' => 3600, - 'currentweek' => 3600, - 'currentdow' => 3600, - 'localweek' => 3600, - 'localdow' => 3600, - 'numberofusers' => 3600, - 'numberofactiveusers' => 3600, - 'numberofpages' => 3600, - 'currentversion' => 86400, - 'currenttimestamp' => 3600, - 'localtimestamp' => 3600, - 'pagesinnamespace' => 3600, - 'numberofadmins' => 3600, - 'numberofviews' => 3600, - 'numberingroup' => 3600, + 'currentmonth' => 86400, + 'currentmonth1' => 86400, + 'currentmonthname' => 86400, + 'currentmonthnamegen' => 86400, + 'currentmonthabbrev' => 86400, + 'currentday' => 3600, + 'currentday2' => 3600, + 'currentdayname' => 3600, + 'currentyear' => 86400, + 'currenttime' => 3600, + 'currenthour' => 3600, + 'localmonth' => 86400, + 'localmonth1' => 86400, + 'localmonthname' => 86400, + 'localmonthnamegen' => 86400, + 'localmonthabbrev' => 86400, + 'localday' => 3600, + 'localday2' => 3600, + 'localdayname' => 3600, + 'localyear' => 86400, + 'localtime' => 3600, + 'localhour' => 3600, + 'numberofarticles' => 3600, + 'numberoffiles' => 3600, + 'numberofedits' => 3600, + 'currentweek' => 3600, + 'currentdow' => 3600, + 'localweek' => 3600, + 'localdow' => 3600, + 'numberofusers' => 3600, + 'numberofactiveusers' => 3600, + 'numberofpages' => 3600, + 'currentversion' => 86400, + 'currenttimestamp' => 3600, + 'localtimestamp' => 3600, + 'pagesinnamespace' => 3600, + 'numberofadmins' => 3600, + 'numberofviews' => 3600, + 'numberingroup' => 3600, + 'numberofcontribs' => 3600, ); static public $mDoubleUnderscoreIDs = array( diff --git a/includes/parser/CoreParserFunctions.php b/includes/parser/CoreParserFunctions.php index e9d0981dbb..a07d67f735 100644 --- a/includes/parser/CoreParserFunctions.php +++ b/includes/parser/CoreParserFunctions.php @@ -38,6 +38,7 @@ class CoreParserFunctions { $parser->setFunctionHook( 'numberingroup', array( __CLASS__, 'numberingroup' ), SFH_NO_HASH ); $parser->setFunctionHook( 'numberofedits', array( __CLASS__, 'numberofedits' ), SFH_NO_HASH ); $parser->setFunctionHook( 'numberofviews', array( __CLASS__, 'numberofviews' ), SFH_NO_HASH ); + $parser->setFunctionHook( 'numberofcontribs', array( __CLASS__, 'numberofcontribs' ), SFH_NO_HASH ); $parser->setFunctionHook( 'language', array( __CLASS__, 'language' ), SFH_NO_HASH ); $parser->setFunctionHook( 'padleft', array( __CLASS__, 'padleft' ), SFH_NO_HASH ); $parser->setFunctionHook( 'padright', array( __CLASS__, 'padright' ), SFH_NO_HASH ); @@ -571,7 +572,7 @@ class CoreParserFunctions { $rev = Revision::newFromTitle($title); $id = $rev ? $rev->getPage() : 0; $length = $cache[$page] = $rev ? $rev->getSize() : 0; - + // Register dependency in templatelinks $parser->mOutput->addTemplate( $title, $id, $rev ? $rev->getId() : 0 ); } @@ -593,6 +594,19 @@ class CoreParserFunctions { $lang = $wgContLang->getLanguageName( strtolower( $arg ) ); return $lang != '' ? $lang : $arg; } + + /** + * Returns the number of contributions by a certain user + */ + static function numberofcontribs( $parser, $user = null ) { + if ( is_null($user) || !User::isValidUserName( $user ) ) + return ''; + + $u = User::newFromName( $user ); + $u->load(); + + return wfEscapeWikiText( $u->edits( $u->mId ) ); + } /** * Unicode-safe str_pad with the restriction that $length is forced to be <= 500 diff --git a/languages/messages/MessagesEn.php b/languages/messages/MessagesEn.php index 462c2d5741..67b55abc9a 100644 --- a/languages/messages/MessagesEn.php +++ b/languages/messages/MessagesEn.php @@ -340,6 +340,7 @@ $magicWords = array( 'index' => array( 1, '__INDEX__' ), 'noindex' => array( 1, '__NOINDEX__' ), 'numberingroup' => array( 1, 'NUMBERINGROUP', 'NUMINGROUP' ), + 'numberofcontribs' => array( 1, 'NUMBEROFCONTRIBS', 'USERCONTRIBS', 'NUMOFCONTRIBS' ), 'staticredirect' => array( 1, '__STATICREDIRECT__' ), 'protectionlevel' => array( 1, 'PROTECTIONLEVEL' ), 'formatdate' => array( 0, 'formatdate', 'dateformat' ),