r30628 MediaWiki - Code Review archive

Repository:MediaWiki
Revision:r30627‎ | r30628 | r30629 >
Date:15:56, 6 February 2008
Author:tstarling
Status:old
Tags:
Comment:
Allow a list of tags for settings fallback, in addition to wiki name, suffix and default. Committing for test on server.
Modified paths:
  • /trunk/phase3/includes/SiteConfiguration.php (modified) (history)

Diff [purge]

Index: trunk/phase3/includes/SiteConfiguration.php
@@ -19,17 +19,30 @@
2020 var $localVHosts = array();
2121
2222 /** */
23 - function get( $setting, $wiki, $suffix, $params = array() ) {
24 - if ( array_key_exists( $setting, $this->settings ) ) {
25 - if ( array_key_exists( $wiki, $this->settings[$setting] ) ) {
26 - $retval = $this->settings[$setting][$wiki];
27 - } elseif ( array_key_exists( $suffix, $this->settings[$setting] ) ) {
28 - $retval = $this->settings[$setting][$suffix];
29 - } elseif ( array_key_exists( 'default', $this->settings[$setting] ) ) {
30 - $retval = $this->settings[$setting]['default'];
31 - } else {
32 - $retval = NULL;
33 - }
 23+ function get( $settingName, $wiki, $suffix, $params = array(), $wikiTags = array() ) {
 24+ if ( array_key_exists( $settingName, $this->settings ) ) {
 25+ $thisSetting =& $this->settings[$settingName];
 26+ do {
 27+ if ( array_key_exists( $wiki, $thisSetting ) ) {
 28+ $retval = $thisSetting[$wiki];
 29+ break;
 30+ }
 31+ foreach ( $wikiTags as $tag ) {
 32+ if ( array_key_exists( $tag, $thisSetting ) ) {
 33+ $retval = $thisSetting[$tag];
 34+ break 2;
 35+ }
 36+ }
 37+ if ( array_key_exists( $suffix, $thisSetting ) ) {
 38+ $retval = $thisSetting[$suffix];
 39+ break;
 40+ }
 41+ if ( array_key_exists( 'default', $thisSetting ) ) {
 42+ $retval = $thisSetting['default'];
 43+ break;
 44+ }
 45+ $retval = null;
 46+ } while ( false );
3447 } else {
3548 $retval = NULL;
3649 }
@@ -57,10 +70,10 @@
5871 }
5972
6073 /** */
61 - function getAll( $wiki, $suffix, $params ) {
 74+ function getAll( $wiki, $suffix, $params, $wikiTags = array() ) {
6275 $localSettings = array();
6376 foreach ( $this->settings as $varname => $stuff ) {
64 - $value = $this->get( $varname, $wiki, $suffix, $params );
 77+ $value = $this->get( $varname, $wiki, $suffix, $params, $wikiTags );
6578 if ( !is_null( $value ) ) {
6679 $localSettings[$varname] = $value;
6780 }
@@ -69,8 +82,8 @@
7083 }
7184
7285 /** */
73 - function getBool( $setting, $wiki, $suffix ) {
74 - return (bool)($this->get( $setting, $wiki, $suffix ));
 86+ function getBool( $setting, $wiki, $suffix, $wikiTags = array() ) {
 87+ return (bool)($this->get( $setting, $wiki, $suffix, $wikiTags ) );
7588 }
7689
7790 /** */
@@ -83,25 +96,25 @@
8497 }
8598
8699 /** */
87 - function extractVar( $setting, $wiki, $suffix, &$var, $params ) {
88 - $value = $this->get( $setting, $wiki, $suffix, $params );
 100+ function extractVar( $setting, $wiki, $suffix, &$var, $params, $wikiTags = array() ) {
 101+ $value = $this->get( $setting, $wiki, $suffix, $params, $wikiTags );
89102 if ( !is_null( $value ) ) {
90103 $var = $value;
91104 }
92105 }
93106
94107 /** */
95 - function extractGlobal( $setting, $wiki, $suffix, $params ) {
96 - $value = $this->get( $setting, $wiki, $suffix, $params );
 108+ function extractGlobal( $setting, $wiki, $suffix, $params, $wikiTags = array() ) {
 109+ $value = $this->get( $setting, $wiki, $suffix, $params, $wikiTags );
97110 if ( !is_null( $value ) ) {
98111 $GLOBALS[$setting] = $value;
99112 }
100113 }
101114
102115 /** */
103 - function extractAllGlobals( $wiki, $suffix, $params ) {
 116+ function extractAllGlobals( $wiki, $suffix, $params, $wikiTags = array() ) {
104117 foreach ( $this->settings as $varName => $setting ) {
105 - $this->extractGlobal( $varName, $wiki, $suffix, $params );
 118+ $this->extractGlobal( $varName, $wiki, $suffix, $params, $wikiTags );
106119 }
107120 }
108121

Status & tagging log