00001 <?PHP 00027 class Configuration 00028 { 00034 private $_xmlArr; 00035 00041 private $_databaseInfo; 00042 private $_themeInfo; 00043 00047 public function __construct () 00048 { 00049 $xmlFile = BizSystem::GetXmlFileWithPath("application"); 00050 $this->_xmlArr = &BizSystem::getXmlArray($xmlFile); 00051 } 00052 00065 public function getDatabaseInfo($dbName = null) 00066 { 00067 if ($dbName && $this->_databaseInfo[$dbName]) 00068 return $this->_databaseInfo[$dbName]; 00069 if (! $this->_xmlArr["APPLICATION"]["DATASOURCE"]) 00070 { 00071 $errMsg = BizSystem::getMessage("SYS_ERROR_NODBINFO"); 00072 trigger_error($errMsg, E_USER_ERROR); 00073 } 00074 $breakFlag = false; 00075 foreach ($this->_xmlArr["APPLICATION"]["DATASOURCE"]["DATABASE"] as $db) 00076 { 00077 if (array_key_exists('ATTRIBUTES', $this->_xmlArr["APPLICATION"]["DATASOURCE"]["DATABASE"])) 00078 { 00079 $db = $this->_xmlArr["APPLICATION"]["DATASOURCE"]["DATABASE"]; 00080 $breakFlag = true; 00081 } 00082 $tmp["Name"] = $db["ATTRIBUTES"]["NAME"]; 00083 $tmp["Driver"] = $db["ATTRIBUTES"]["DRIVER"]; 00084 $tmp["Server"] = $db["ATTRIBUTES"]["SERVER"]; 00085 $tmp["DBName"] = $db["ATTRIBUTES"]["DBNAME"]; 00086 $tmp["User"] = $db["ATTRIBUTES"]["USER"]; 00087 $tmp["Password"] = $db["ATTRIBUTES"]["PASSWORD"]; 00088 $tmp["Port"] = isset($db["ATTRIBUTES"]["PORT"]) ? $db["ATTRIBUTES"]["PORT"] : null; 00089 $tmp["Charset"] = isset($db["ATTRIBUTES"]["CHARSET"]) ? $db["ATTRIBUTES"]["CHARSET"] : null; 00090 $tmp["Options"] = isset($db["ATTRIBUTES"]["OPTIONS"]) ? $db["ATTRIBUTES"]["OPTIONS"] : null; 00091 $this->_databaseInfo[$tmp["Name"]] = $tmp; 00092 if ($breakFlag) 00093 break; 00094 } 00095 00096 if ($dbName && $this->_databaseInfo[$dbName]) 00097 return $this->_databaseInfo[$dbName]; 00098 if ($dbName && ! isset($this->_databaseInfo[$dbName])) 00099 { 00100 $errMsg = BizSystem::getMessage("DATA_INVALID_DBNAME", array($dbName,$dbName)); 00101 trigger_error($errMsg, E_USER_ERROR); 00102 } 00103 if (! $dbName) 00104 return $this->_databaseInfo; 00105 } 00106 00107 }