Made User::edits() use user_editcounts. If it has not been initialized, do so.
authorLeon Weber <leon@users.mediawiki.org>
Sun, 14 Jan 2007 01:31:08 +0000 (01:31 +0000)
committerLeon Weber <leon@users.mediawiki.org>
Sun, 14 Jan 2007 01:31:08 +0000 (01:31 +0000)
includes/Linker.php
includes/User.php

index a332b83..0764254 100644 (file)
@@ -770,7 +770,7 @@ class Linker {
                }
                if( $userId ) {
                        // check if the user has an edit
-                       if( $wgUser->edits( $userId ) == 0 ) {
+                       if( User::edits( $userId ) == 0 ) {
                                $style = "class='new'";
                        } else {
                                $style = '';
index e8bc7bd..28460de 100644 (file)
@@ -548,11 +548,31 @@ class User {
         */
        static function edits( $uid ) {
                $dbr =& wfGetDB( DB_SLAVE );
-               return $dbr->selectField(
-                       'revision', 'count(*)',
-                       array( 'rev_user' => $uid ),
+
+               // check if the user_editcount field has been initialized
+               $field = $dbr->selectField(
+                       'user', 'user_editcount',
+                       array( 'user_id' => $uid ),
                        __METHOD__
                );
+
+               if( $field === null ) { // it has not been initialized. do so.
+                       $dbw =& wfGetDb( DB_MASTER );
+                       $count = $dbr->selectField(
+                               'revision', 'count(*)',
+                               array( 'rev_user' => $uid ),
+                               __METHOD__
+                       );
+                       $dbw->update(
+                               'user',
+                               array( 'user_editcount' => $count ),
+                               array( 'user_id' => $uid ),
+                               __METHOD__
+                       );
+                       return $count;
+               } else {
+                       return $field;
+               }
        }
 
        /**