Introduce {{NUMBEROFADMINS}} magic word
authorRob Church <robchurch@users.mediawiki.org>
Fri, 16 Jun 2006 13:58:42 +0000 (13:58 +0000)
committerRob Church <robchurch@users.mediawiki.org>
Fri, 16 Jun 2006 13:58:42 +0000 (13:58 +0000)
RELEASE-NOTES
includes/MagicWord.php
includes/Parser.php
languages/Language.php

index 15944c6..77d8ac9 100644 (file)
@@ -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 ==
 
index b5a58c2..121d130 100644 (file)
@@ -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 ) );
index ed808d9..3ec1cd1 100644 (file)
@@ -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
  *
index 9d8c159..52631f5 100644 (file)
@@ -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) {