aboutsummaryrefslogtreecommitdiffstats
path: root/includes/SiteConfiguration.php
diff options
context:
space:
mode:
Diffstat (limited to 'includes/SiteConfiguration.php')
-rw-r--r--includes/SiteConfiguration.php65
1 files changed, 65 insertions, 0 deletions
diff --git a/includes/SiteConfiguration.php b/includes/SiteConfiguration.php
new file mode 100644
index 000000000000..aa0a6b56aa55
--- /dev/null
+++ b/includes/SiteConfiguration.php
@@ -0,0 +1,65 @@
+<?php
+
+# This file is used to configure the live Wikimedia wikis. The file that includes
+# it contains passwords and other sensitive data, and there's currently no public
+# equivalent.
+
+class SiteConfiguration {
+ var $suffixes, $wikis, $settings;
+ var $localDatabases;
+
+ function get( $setting, $wiki, $suffix, $params = array() ) {
+ if ( array_key_exists( $wiki, $this->settings[$setting] ) ) {
+ $retval = $this->settings[$setting][$wiki];
+ } elseif ( array_key_exists( $suffix, $this->settings[$setting] ) ) {
+ $retval = $this->settings[$setting][$suffix];
+ } elseif ( array_key_exists( "default", $this->settings[$setting] ) ) {
+ $retval = $this->settings[$setting]['default'];
+ } else {
+ $retval = NULL;
+ }
+ if ( !is_null( $retval ) && count( $params ) ) {
+ foreach ( $params as $key => $value ) {
+ $retval = str_replace( '$' . $key, $value, $retval );
+ }
+ }
+ return $retval;
+ }
+
+ function getBool( $setting, $wiki, $suffix ) {
+ return (bool)($this->get( $setting, $wiki, $suffix ));
+ }
+
+ function &getLocalDatabases() {
+ return $this->localDatabases();
+ }
+
+ function initialise() {
+ foreach ( $this->wikis as $db ) {
+ $this->localDatabases[$db] = $db;
+ }
+ }
+
+ function extractVar( $setting, $wiki, $suffix, &$var, $params ) {
+ $value = $this->get( $setting, $wiki, $suffix, $params );
+ if ( !is_null( $value ) ) {
+ $var = $value;
+ }
+ }
+
+ function extractGlobal( $setting, $wiki, $suffix, $params ) {
+ $value = $this->get( $setting, $wiki, $suffix, $params );
+ if ( !is_null( $value ) ) {
+ $GLOBALS[$setting] = $value;
+ }
+ }
+
+ function extractAllGlobals( $wiki, $suffix, $params ) {
+ foreach ( $this->settings as $varName => $setting ) {
+ $this->extractGlobal( $varName, $wiki, $suffix, $params );
+ }
+ }
+}
+
+
+?>