From 14a80040bf756b5e3d85e7a91e71ca25adbfc427 Mon Sep 17 00:00:00 2001 From: Chad Horohoe Date: Mon, 28 Jul 2008 15:49:44 +0000 Subject: [PATCH] Deprecate SiteStats::admins() in favor of SiteStats::numberingroup('sysop'). Should make bug 13471 easy. --- includes/SiteStats.php | 21 ++++++++++++++++++--- includes/api/ApiQuerySiteinfo.php | 2 +- includes/parser/CoreParserFunctions.php | 2 +- includes/parser/Parser.php | 2 +- includes/parser/Parser_OldPP.php | 2 +- includes/specials/SpecialStatistics.php | 2 +- 6 files changed, 23 insertions(+), 8 deletions(-) diff --git a/includes/SiteStats.php b/includes/SiteStats.php index 3b10f4a0c2..48df848710 100644 --- a/includes/SiteStats.php +++ b/includes/SiteStats.php @@ -7,6 +7,7 @@ class SiteStats { static $row, $loaded = false; static $admins, $jobs; static $pageCount = array(); + static $groupMemberCounts = array(); static function recache() { self::load( true ); @@ -98,12 +99,26 @@ class SiteStats { return self::$row->ss_images; } + /** + * @deprecated Use self::numberingroup('sysop') instead + */ static function admins() { - if ( !isset( self::$admins ) ) { + wfDeprecated(__METHOD__); + return self::numberingroup('sysop'); + } + + /** + * Find the number of users in a given user group. + * @param string $group Name of group + * @return int + */ + static function numberingroup($group) { + if ( !isset( self::$groupMemberCounts[$group] ) ) { $dbr = wfGetDB( DB_SLAVE ); - self::$admins = $dbr->selectField( 'user_groups', 'COUNT(*)', array( 'ug_group' => 'sysop' ), __METHOD__ ); + self::$groupMemberCounts[$group] = $dbr->selectField( 'user_groups', 'COUNT(*)', + array( 'ug_group' => $group ), __METHOD__ ); } - return self::$admins; + return self::$groupMemberCounts[$group]; } static function jobs() { diff --git a/includes/api/ApiQuerySiteinfo.php b/includes/api/ApiQuerySiteinfo.php index 5acc8791de..c0f3eec157 100644 --- a/includes/api/ApiQuerySiteinfo.php +++ b/includes/api/ApiQuerySiteinfo.php @@ -239,7 +239,7 @@ class ApiQuerySiteinfo extends ApiQueryBase { $data['edits'] = intval( SiteStats::edits() ); $data['images'] = intval( SiteStats::images() ); $data['users'] = intval( SiteStats::users() ); - $data['admins'] = intval( SiteStats::admins() ); + $data['admins'] = intval( SiteStats::numberingroup('sysop') ); $data['jobs'] = intval( SiteStats::jobs() ); $this->getResult()->addValue( 'query', $property, $data ); } diff --git a/includes/parser/CoreParserFunctions.php b/includes/parser/CoreParserFunctions.php index d9072e9310..cce00ab32c 100644 --- a/includes/parser/CoreParserFunctions.php +++ b/includes/parser/CoreParserFunctions.php @@ -207,7 +207,7 @@ class CoreParserFunctions { return self::formatRaw( SiteStats::images(), $raw ); } static function numberofadmins( $parser, $raw = null ) { - return self::formatRaw( SiteStats::admins(), $raw ); + return self::formatRaw( SiteStats::numberingroup('sysop'), $raw ); } static function numberofedits( $parser, $raw = null ) { return self::formatRaw( SiteStats::edits(), $raw ); diff --git a/includes/parser/Parser.php b/includes/parser/Parser.php index 9d8ef4cec8..7f00824d77 100644 --- a/includes/parser/Parser.php +++ b/includes/parser/Parser.php @@ -2548,7 +2548,7 @@ class Parser case 'numberofpages': return $this->mVarCache[$index] = $wgContLang->formatNum( SiteStats::pages() ); case 'numberofadmins': - return $this->mVarCache[$index] = $wgContLang->formatNum( SiteStats::admins() ); + return $this->mVarCache[$index] = $wgContLang->formatNum( SiteStats::numberingroup('sysop') ); case 'numberofedits': return $this->mVarCache[$index] = $wgContLang->formatNum( SiteStats::edits() ); case 'currenttimestamp': diff --git a/includes/parser/Parser_OldPP.php b/includes/parser/Parser_OldPP.php index 487d3ffdfd..f7baae87dc 100644 --- a/includes/parser/Parser_OldPP.php +++ b/includes/parser/Parser_OldPP.php @@ -2544,7 +2544,7 @@ class Parser_OldPP case 'numberofpages': return $varCache[$index] = $wgContLang->formatNum( SiteStats::pages() ); case 'numberofadmins': - return $varCache[$index] = $wgContLang->formatNum( SiteStats::admins() ); + return $varCache[$index] = $wgContLang->formatNum( SiteStats::numberingroup('sysop') ); case 'numberofedits': return $varCache[$index] = $wgContLang->formatNum( SiteStats::edits() ); case 'currenttimestamp': diff --git a/includes/specials/SpecialStatistics.php b/includes/specials/SpecialStatistics.php index 570a21c602..cb1ca88d9a 100644 --- a/includes/specials/SpecialStatistics.php +++ b/includes/specials/SpecialStatistics.php @@ -23,7 +23,7 @@ function wfSpecialStatistics( $par = '' ) { $images = SiteStats::images(); $total = SiteStats::pages(); $users = SiteStats::users(); - $admins = SiteStats::admins(); + $admins = SiteStats::numberingroup('sysop'); $numJobs = SiteStats::jobs(); if( $wgRequest->getVal( 'action' ) == 'raw' ) { -- 2.20.1