From 29d8097da2f06fa8323d63db456cd87c2270a204 Mon Sep 17 00:00:00 2001 From: Leon Weber Date: Sun, 14 Jan 2007 01:31:08 +0000 Subject: [PATCH] Made User::edits() use user_editcounts. If it has not been initialized, do so. --- includes/Linker.php | 2 +- includes/User.php | 26 +++++++++++++++++++++++--- 2 files changed, 24 insertions(+), 4 deletions(-) diff --git a/includes/Linker.php b/includes/Linker.php index a332b83784..076425428c 100644 --- a/includes/Linker.php +++ b/includes/Linker.php @@ -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 = ''; diff --git a/includes/User.php b/includes/User.php index e8bc7bdebf..28460def99 100644 --- a/includes/User.php +++ b/includes/User.php @@ -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; + } } /** -- 2.20.1