From: Rob Church Date: Fri, 16 Jun 2006 13:58:42 +0000 (+0000) Subject: Introduce {{NUMBEROFADMINS}} magic word X-Git-Tag: 1.31.0-rc.0~56768 X-Git-Url: http://git.cyclocoop.org//%27%40script%40/%27?a=commitdiff_plain;h=907125da5c970185facb6f83e42cf778778927ca;p=lhc%2Fweb%2Fwiklou.git Introduce {{NUMBEROFADMINS}} magic word --- diff --git a/RELEASE-NOTES b/RELEASE-NOTES index 15944c6ef6..77d8ac9ec6 100644 --- a/RELEASE-NOTES +++ b/RELEASE-NOTES @@ -511,7 +511,7 @@ Some default configuration options have changed: Set $wgSaveDeletedFiles on and an appropriate directory path in $wgFileStore['deleted']['directory'] * (bug 6324) Fix regression in enhanced RC alignment - +* Introduce {{NUMBEROFADMINS}} magic word == Compatibility == diff --git a/includes/MagicWord.php b/includes/MagicWord.php index b5a58c2eda..121d1304d6 100644 --- a/includes/MagicWord.php +++ b/includes/MagicWord.php @@ -95,6 +95,7 @@ $magicWords = array( 'MAG_CONTENTLANGUAGE', 'MAG_PAGESINNAMESPACE', 'MAG_NOGALLERY', + 'MAG_NUMBEROFADMINS', ); if ( ! defined( 'MEDIAWIKI_INSTALL' ) ) wfRunHooks( 'MagicWordMagicWords', array( &$magicWords ) ); @@ -151,6 +152,7 @@ $wgVariableIDs = array( MAG_LANGUAGE, MAG_CONTENTLANGUAGE, MAG_PAGESINNAMESPACE, + MAG_NUMBEROFADMINS, ); if ( ! defined( 'MEDIAWIKI_INSTALL' ) ) wfRunHooks( 'MagicWordwgVariableIDs', array( &$wgVariableIDs ) ); diff --git a/includes/Parser.php b/includes/Parser.php index ed808d96fa..3ec1cd1bc2 100644 --- a/includes/Parser.php +++ b/includes/Parser.php @@ -2243,6 +2243,8 @@ class Parser return $varCache[$index] = $wgContLang->formatNum( wfNumberOfUsers() ); case MAG_NUMBEROFPAGES: return $varCache[$index] = $wgContLang->formatNum( wfNumberOfPages() ); + case MAG_NUMBEROFADMINS: + return $varCache[$index] = $wgContLang->formatNum( wfNumberOfAdmins() ); case MAG_CURRENTTIMESTAMP: return $varCache[$index] = wfTimestampNow(); case MAG_CURRENTVERSION: @@ -2788,12 +2790,13 @@ class Parser $mwWordsToCheck = array( MAG_NUMBEROFPAGES => 'wfNumberOfPages', MAG_NUMBEROFUSERS => 'wfNumberOfUsers', MAG_NUMBEROFARTICLES => 'wfNumberOfArticles', - MAG_NUMBEROFFILES => 'wfNumberOfFiles' ); + MAG_NUMBEROFFILES => 'wfNumberOfFiles', + MAG_NUMBEROFADMINS => 'wfNumberOfAdmins' ); foreach( $mwWordsToCheck as $word => $func ) { $mwCurrentWord =& MagicWord::get( $word ); if( $mwCurrentWord->matchStartAndRemove( $part1 ) ) { $mwRawSuffix =& MagicWord::get( MAG_RAWSUFFIX ); - if( $mwRawSuffix->match( $args[0] ) ) { + if( isset( $args[0] ) && $mwRawSuffix->match( $args[0] ) ) { # Raw and unformatted $text = $linestart . call_user_func( $func ); } else { @@ -4677,6 +4680,22 @@ function wfNumberOfPages() { return (int)$count; } +/** + * Return the total number of admins + * + * @return integer + */ +function wfNumberOfAdmins() { + static $admins = -1; + wfProfileIn( 'wfNumberOfAdmins' ); + if( $admins == -1 ) { + $dbr =& wfGetDB( DB_SLAVE ); + $admins = $dbr->selectField( 'site_stats', 'ss_admins', array( 'ss_row_id' => 1 ), 'wfNumberOfAdmins' ); + } + wfProfileOut( 'wfNumberOfAdmins' ); + return (int)$admins; +} + /** * Count the number of pages in a particular namespace * diff --git a/languages/Language.php b/languages/Language.php index 9d8c159d94..52631f5d2f 100644 --- a/languages/Language.php +++ b/languages/Language.php @@ -293,6 +293,7 @@ $wgLanguageNamesEn =& $wgLanguageNames; MAG_LANGUAGE => array( 0, '#LANGUAGE:' ), MAG_CONTENTLANGUAGE => array( 1, 'CONTENTLANGUAGE', 'CONTENTLANG' ), MAG_PAGESINNAMESPACE => array( 1, 'PAGESINNAMESPACE:', 'PAGESINNS:' ), + MAG_NUMBEROFADMINS => array( 1, 'NUMBEROFADMINS' ), ); if (!$wgCachedMessageArrays) {