00001 <?php 00002 00003 # This file is used to configure the live Wikimedia wikis. The file that includes 00004 # it contains passwords and other sensitive data, and there's currently no public 00005 # equivalent. 00006 00007 class SiteConfiguration { 00008 var $suffixes, $wikis, $settings; 00009 var $localDatabases; 00010 00011 function get( $setting, $wiki, $suffix, $params = array() ) { 00012 if ( array_key_exists( $wiki, $this->settings[$setting] ) ) { 00013 $retval = $this->settings[$setting][$wiki]; 00014 } elseif ( array_key_exists( $suffix, $this->settings[$setting] ) ) { 00015 $retval = $this->settings[$setting][$suffix]; 00016 } elseif ( array_key_exists( "default", $this->settings[$setting] ) ) { 00017 $retval = $this->settings[$setting]['default']; 00018 } else { 00019 $retval = NULL; 00020 } 00021 if ( !is_null( $retval ) && count( $params ) ) { 00022 foreach ( $params as $key => $value ) { 00023 $retval = str_replace( '$' . $key, $value, $retval ); 00024 } 00025 } 00026 return $retval; 00027 } 00028 00029 function getBool( $setting, $wiki, $suffix ) { 00030 return (bool)($this->get( $setting, $wiki, $suffix )); 00031 } 00032 00033 function &getLocalDatabases() { 00034 return $this->localDatabases(); 00035 } 00036 00037 function initialise() { 00038 foreach ( $this->wikis as $db ) { 00039 $this->localDatabases[$db] = $db; 00040 } 00041 } 00042 00043 function extractVar( $setting, $wiki, $suffix, &$var, $params ) { 00044 $value = $this->get( $setting, $wiki, $suffix, $params ); 00045 if ( !is_null( $value ) ) { 00046 $var = $value; 00047 } 00048 } 00049 00050 function extractGlobal( $setting, $wiki, $suffix, $params ) { 00051 $value = $this->get( $setting, $wiki, $suffix, $params ); 00052 if ( !is_null( $value ) ) { 00053 $GLOBALS[$setting] = $value; 00054 } 00055 } 00056 00057 function extractAllGlobals( $wiki, $suffix, $params ) { 00058 foreach ( $this->settings as $varName => $setting ) { 00059 $this->extractGlobal( $varName, $wiki, $suffix, $params ); 00060 } 00061 } 00062 } 00063 00064 00065 ?>