Changing comments layout preparing for generated documentation with Phpdocumentor
[lhc/web/wiklou.git] / includes / SiteConfiguration.php
1 <?php
2 /**
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.
6 */
7
8 /**
9 *
10 */
11 class SiteConfiguration {
12 var $suffixes, $wikis, $settings;
13 var $localDatabases;
14
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'];
22 } else {
23 $retval = NULL;
24 }
25 if ( !is_null( $retval ) && count( $params ) ) {
26 foreach ( $params as $key => $value ) {
27 $retval = str_replace( '$' . $key, $value, $retval );
28 }
29 }
30 return $retval;
31 }
32
33 function getBool( $setting, $wiki, $suffix ) {
34 return (bool)($this->get( $setting, $wiki, $suffix ));
35 }
36
37 function &getLocalDatabases() {
38 return $this->localDatabases;
39 }
40
41 function initialise() {
42 foreach ( $this->wikis as $db ) {
43 $this->localDatabases[$db] = $db;
44 }
45 }
46
47 function extractVar( $setting, $wiki, $suffix, &$var, $params ) {
48 $value = $this->get( $setting, $wiki, $suffix, $params );
49 if ( !is_null( $value ) ) {
50 $var = $value;
51 }
52 }
53
54 function extractGlobal( $setting, $wiki, $suffix, $params ) {
55 $value = $this->get( $setting, $wiki, $suffix, $params );
56 if ( !is_null( $value ) ) {
57 $GLOBALS[$setting] = $value;
58 }
59 }
60
61 function extractAllGlobals( $wiki, $suffix, $params ) {
62 foreach ( $this->settings as $varName => $setting ) {
63 $this->extractGlobal( $varName, $wiki, $suffix, $params );
64 }
65 }
66
67 /**
68 * Work out the site and language name from a database name
69 * @param $db
70 */
71 function siteFromDB( $db ) {
72 $site = NULL;
73 $lang = NULL;
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 ) );
78 break;
79 }
80 }
81 return array( $site, $lang );
82 }
83 }
84
85
86 ?>