| | |
| | | */ |
| | | function _load_config($suffix) |
| | | { |
| | | @include '../config/main.inc' . $suffix; |
| | | @include RCMAIL_CONFIG_DIR . '/main.inc' . $suffix; |
| | | if (is_array($rcmail_config)) { |
| | | $this->config += $rcmail_config; |
| | | } |
| | | |
| | | @include '../config/db.inc'. $suffix; |
| | | @include RCMAIL_CONFIG_DIR . '/db.inc'. $suffix; |
| | | if (is_array($rcmail_config)) { |
| | | $this->config += $rcmail_config; |
| | | } |
| | |
| | | */ |
| | | function getprop($name, $default = '') |
| | | { |
| | | $value = $this->is_post && (isset($_POST["_$name"]) || $this->config_props[$name]) ? $_POST["_$name"] : $this->config[$name]; |
| | | $value = $this->config[$name]; |
| | | |
| | | if ($name == 'des_key' && !$this->configured && !isset($_REQUEST["_$name"])) |
| | | $value = rcube_install::random_key(24); |
| | |
| | | |
| | | if (!$out) |
| | | return '[Warning: could not read the template file]'; |
| | | |
| | | |
| | | foreach ($this->config as $prop => $default) { |
| | | $value = (isset($_POST["_$prop"]) || $this->config_props[$prop]) ? $_POST["_$prop"] : $default; |
| | | |
| | | // convert some form data |
| | | if ($prop == 'debug_level' && is_array($value)) { |
| | | if ($prop == 'debug_level') { |
| | | $val = 0; |
| | | foreach ($value as $i => $dbgval) |
| | | $val += intval($dbgval); |
| | | if (is_array($value)) |
| | | foreach ($value as $dbgval) |
| | | $val += intval($dbgval); |
| | | $value = $val; |
| | | } |
| | | else if ($prop == 'db_dsnw' && !empty($_POST['_dbtype'])) { |
| | | else if ($which == 'db' && $prop == 'db_dsnw' && !empty($_POST['_dbtype'])) { |
| | | if ($_POST['_dbtype'] == 'sqlite') |
| | | $value = sprintf('%s://%s?mode=0646', $_POST['_dbtype'], $_POST['_dbname']{0} == '/' ? '/' . $_POST['_dbname'] : $_POST['_dbname']); |
| | | else |
| | | $value = sprintf('%s://%s:%s@%s/%s', $_POST['_dbtype'], $_POST['_dbuser'], $_POST['_dbpass'], $_POST['_dbhost'], $_POST['_dbname']); |
| | | $value = sprintf('%s://%s:%s@%s/%s', $_POST['_dbtype'], |
| | | rawurlencode($_POST['_dbuser']), rawurlencode($_POST['_dbpass']), $_POST['_dbhost'], $_POST['_dbname']); |
| | | } |
| | | else if ($prop == 'smtp_auth_type' && $value == '0') { |
| | | $value = ''; |
| | |
| | | // skip this property |
| | | if ($value == $default) |
| | | continue; |
| | | |
| | | |
| | | // save change |
| | | $this->config[$prop] = $value; |
| | | |
| | | // replace the matching line in config file |
| | | $out = preg_replace( |
| | | '/(\$rcmail_config\[\''.preg_quote($prop).'\'\])\s+=\s+(.+);/Uie', |
| | | "'\\1 = ' . var_export(\$value, true) . ';'", |
| | | $out); |
| | | } |
| | | |
| | | |
| | | return trim($out); |
| | | } |
| | | |