| | |
| | | var $step; |
| | | var $failures = 0; |
| | | var $config = array(); |
| | | var $configured = false; |
| | | var $last_error = null; |
| | | var $email_pattern = '([a-z0-9][a-z0-9\-\.\+\_]*@[a-z0-9]([a-z0-9\-][.]?)*[a-z0-9])'; |
| | | |
| | | /** |
| | | * Constructor |
| | |
| | | /** |
| | | * Read the default config files and store properties |
| | | */ |
| | | function get_defaults() |
| | | function load_defaults() |
| | | { |
| | | $this->_load_config('.php.dist'); |
| | | } |
| | |
| | | */ |
| | | function load_config() |
| | | { |
| | | $this->config = array(); |
| | | $this->_load_config('.php'); |
| | | $this->configured = !empty($this->config); |
| | | } |
| | | |
| | | /** |
| | |
| | | { |
| | | include '../config/main.inc' . $suffix; |
| | | if (is_array($rcmail_config)) { |
| | | $this->config = $rcmail_config; |
| | | $this->config += $rcmail_config; |
| | | } |
| | | |
| | | @include '../config/db.inc'. $suffix; |
| | |
| | | * Getter for a certain config property |
| | | * |
| | | * @param string Property name |
| | | * @param string Default value |
| | | * @return string The property value |
| | | */ |
| | | function getprop($name) |
| | | function getprop($name, $default = '') |
| | | { |
| | | $value = isset($_REQUEST["_$name"]) ? $_REQUEST["_$name"] : $this->config[$name]; |
| | | |
| | | if ($name == 'des_key' && !isset($_REQUEST["_$name"])) |
| | | $value = self::random_key(24); |
| | | |
| | | return $value; |
| | | return $value !== null && $value !== '' ? $value : $default; |
| | | } |
| | | |
| | | |
| | |
| | | return $out; |
| | | } |
| | | |
| | | |
| | | /** |
| | | * Initialize the database with the according schema |
| | | * |
| | | * @param object rcube_db Database connection |
| | | * @return boolen True on success, False on error |
| | | */ |
| | | function init_db($DB) |
| | | { |
| | | $db_map = array('pgsql' => 'postgres', 'mysqli' => 'mysql'); |
| | | $engine = isset($db_map[$DB->db_provider]) ? $db_map[$DB->db_provider] : $DB->db_provider; |
| | | |
| | | // find out db version |
| | | if ($engine == 'mysql') { |
| | | $DB->query('SELECT VERSION() AS version'); |
| | | $sql_arr = $DB->fetch_assoc(); |
| | | $version = floatval($sql_arr['version']); |
| | | |
| | | if ($version >= 4.1) |
| | | $engine = 'mysql5'; |
| | | } |
| | | |
| | | // read schema file from /SQL/* |
| | | $fname = "../SQL/$engine.initial.sql"; |
| | | if ($lines = @file($fname, FILE_SKIP_EMPTY_LINES)) { |
| | | $buff = ''; |
| | | foreach ($lines as $i => $line) { |
| | | if (eregi('^--', $line)) |
| | | continue; |
| | | |
| | | $buff .= $line . "\n"; |
| | | if (eregi(';$', trim($line))) { |
| | | $DB->query($buff); |
| | | $buff = ''; |
| | | } |
| | | } |
| | | } |
| | | else { |
| | | $this->fail('DB Schema', "Cannot read the schema file: $fname"); |
| | | return false; |
| | | } |
| | | |
| | | if ($err = $this->get_error()) { |
| | | $this->fail('DB Schema', "Error creating database schema: $err"); |
| | | return false; |
| | | } |
| | | |
| | | return true; |
| | | } |
| | | |
| | | /** |
| | | * Handler for RoundCube errors |
| | | */ |