88b1a6e50cb6d7ba5930133734f4569485316ba9
3 *This file is used to configure the live Wikimedia wikis. The file that
4 * includes it contains passwords and other sensitive data, and there's
5 * currently no public equivalent.
11 class SiteConfiguration
{
12 var $suffixes, $wikis, $settings;
15 function get( $setting, $wiki, $suffix, $params = array() ) {
16 if ( array_key_exists( $wiki, $this->settings
[$setting] ) ) {
17 $retval = $this->settings
[$setting][$wiki];
18 } elseif ( array_key_exists( $suffix, $this->settings
[$setting] ) ) {
19 $retval = $this->settings
[$setting][$suffix];
20 } elseif ( array_key_exists( 'default', $this->settings
[$setting] ) ) {
21 $retval = $this->settings
[$setting]['default'];
25 if ( !is_null( $retval ) && count( $params ) ) {
26 foreach ( $params as $key => $value ) {
27 $retval = str_replace( '$' . $key, $value, $retval );
33 function getBool( $setting, $wiki, $suffix ) {
34 return (bool)($this->get( $setting, $wiki, $suffix ));
37 function &getLocalDatabases() {
38 return $this->localDatabases
;
41 function initialise() {
42 foreach ( $this->wikis
as $db ) {
43 $this->localDatabases
[$db] = $db;
47 function extractVar( $setting, $wiki, $suffix, &$var, $params ) {
48 $value = $this->get( $setting, $wiki, $suffix, $params );
49 if ( !is_null( $value ) ) {
54 function extractGlobal( $setting, $wiki, $suffix, $params ) {
55 $value = $this->get( $setting, $wiki, $suffix, $params );
56 if ( !is_null( $value ) ) {
57 $GLOBALS[$setting] = $value;
61 function extractAllGlobals( $wiki, $suffix, $params ) {
62 foreach ( $this->settings
as $varName => $setting ) {
63 $this->extractGlobal( $varName, $wiki, $suffix, $params );
68 * Work out the site and language name from a database name
71 function siteFromDB( $db ) {
74 foreach ( $this->suffixes
as $suffix ) {
75 if ( substr( $db, -strlen( $suffix ) ) == $suffix ) {
76 $site = $suffix == 'wiki' ?
'wikipedia' : $suffix;
77 $lang = substr( $db, 0, strlen( $db ) - strlen( $suffix ) );
81 return array( $site, $lang );