From 784dc5cc9a8e2c0548692652a6e998f0fc79a2f8 Mon Sep 17 00:00:00 2001 From: X! Date: Sat, 30 May 2009 17:27:16 +0000 Subject: [PATCH] (bug 19012) Added {{NUMBEROFCONTRIBS}} variable --- RELEASE-NOTES | 2 + includes/MagicWord.php | 79 +++++++++++++------------ includes/parser/CoreParserFunctions.php | 16 ++++- languages/messages/MessagesEn.php | 1 + 4 files changed, 58 insertions(+), 40 deletions(-) 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' ), -- 2.20.1