(bug 19012) Added {{NUMBEROFCONTRIBS}} variable
authorX! <soxred93@users.mediawiki.org>
Sat, 30 May 2009 17:27:16 +0000 (17:27 +0000)
committerX! <soxred93@users.mediawiki.org>
Sat, 30 May 2009 17:27:16 +0000 (17:27 +0000)
RELEASE-NOTES
includes/MagicWord.php
includes/parser/CoreParserFunctions.php
languages/messages/MessagesEn.php

index 8691a6c..13596a5 100644 (file)
@@ -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 ===
 
index b69d57e..d92817e 100644 (file)
@@ -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(
index e9d0981..a07d67f 100644 (file)
@@ -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
index 462c2d5..67b55ab 100644 (file)
@@ -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' ),