From b77d0dd6c5574d9841cd5d040dfcc351a58ccb82 Mon Sep 17 00:00:00 2001 From: alecpl Date: Wed, 27 Aug 2008 10:58:33 +0000 Subject: - added options to use syslog instead of log file (#1484850) - added Logging & Debugging section in Installer - fixed config from $_POST for next installer steps saving - fixed and re-enabled debug_level setting in installer --- installer/check.php | 3 -- installer/config.php | 116 ++++++++++++++++++++++++++++++++------------ installer/rcube_install.php | 16 +++--- installer/test.php | 7 ++- 4 files changed, 102 insertions(+), 40 deletions(-) (limited to 'installer') diff --git a/installer/check.php b/installer/check.php index 4ede85c95..a314ff72d 100644 --- a/installer/check.php +++ b/installer/check.php @@ -116,9 +116,6 @@ foreach ($required_libs as $classname => $file) { if (class_exists($classname)) { $RCI->pass($classname); } - else if ($classname == 'DB' || ($classname == 'MDB2' && class_exists('DB'))) { - $RCI->na($classname, 'Use ' . ($classname == 'DB' ? 'MDB2' : 'DB') . ' instead'); - } else { $RCI->fail($classname, "Failed to load $file", $source_urls[$classname]); } diff --git a/installer/config.php b/installer/config.php index f6916406e..194c82600 100644 --- a/installer/config.php +++ b/installer/config.php @@ -15,6 +15,7 @@ $RCI->config_props = array( 'prefer_html' => 1, 'preview_pane' => 1, 'htmleditor' => 1, + 'debug_level' => 1, ); // allow the current user to get to the next step @@ -47,25 +48,6 @@ if (!empty($_POST['submit'])) {
General configuration
-
product_name
@@ -89,16 +71,6 @@ echo $input_tempdir->show($RCI->getprop('temp_dir'));
Use this folder to store temp files (must be writebale for webserver)
-
log_dir
-
- '_log_dir', 'size' => 30, 'id' => "cfglogdir")); -echo $input_logdir->show($RCI->getprop('log_dir')); - -?> -
Use this folder to store log files (must be writebale for webserver)
-
ip_check
@@ -153,6 +125,90 @@ echo $check_caching->show(intval($RCI->getprop('enable_spellcheck')), array('val
+
+Logging & Debugging +
+ +
debug_level
+
+getprop('debug_level'); +$check_debug = new html_checkbox(array('name' => '_debug_level[]')); +echo $check_debug->show(($value & 1) ? 1 : 0 , array('value' => 1, 'id' => 'cfgdebug1')); +echo '
'; + +echo $check_debug->show(($value & 4) ? 4 : 0, array('value' => 4, 'id' => 'cfgdebug4')); +echo '
'; + +echo $check_debug->show(($value & 8) ? 8 : 0, array('value' => 8, 'id' => 'cfgdebug8')); +echo '
'; + +?> +
+ +
log_driver
+
+ '_log_driver', 'id' => "cfglogdriver")); +$select_log_driver->add(array('file', 'syslog'), array('file', 'syslog')); +echo $select_log_driver->show($RCI->getprop('log_driver', 'file')); + +?> +
How to do logging? 'file' - write to files in the log directory, 'syslog' - use the syslog facility.
+
+ +
log_dir
+
+ '_log_dir', 'size' => 30, 'id' => "cfglogdir")); +echo $input_logdir->show($RCI->getprop('log_dir')); + +?> +
Use this folder to store log files (must be writebale for webserver). Note that this only applies if you are using the 'file' log_driver.
+
+ +
syslog_id
+
+ '_syslog_id', 'size' => 30, 'id' => "cfgsyslogid")); +echo $input_syslogid->show($RCI->getprop('syslog_id', 'roundcube')); + +?> +
What ID to use when logging with syslog. Note that this only applies if you are using the 'syslog' log_driver.
+
+ +
syslog_facility
+
+ '_syslog_facility', 'id' => "cfgsyslogfacility")); +$input_syslogfacility->add('user-level messages', LOG_USER); +$input_syslogfacility->add('mail subsystem', LOG_MAIL); +$input_syslogfacility->add('local level 0', LOG_LOCAL0); +$input_syslogfacility->add('local level 1', LOG_LOCAL1); +$input_syslogfacility->add('local level 2', LOG_LOCAL2); +$input_syslogfacility->add('local level 3', LOG_LOCAL3); +$input_syslogfacility->add('local level 4', LOG_LOCAL4); +$input_syslogfacility->add('local level 5', LOG_LOCAL5); +$input_syslogfacility->add('local level 6', LOG_LOCAL6); +$input_syslogfacility->add('local level 7', LOG_LOCAL7); +echo $input_syslogfacility->show($RCI->getprop('syslog_facility'), LOG_USER); + +?> +
What ID to use when logging with syslog. Note that this only applies if you are using the 'syslog' log_driver.
+
+ + + + +
+
+ +
Database setup
@@ -378,7 +434,7 @@ $check_smtplog = new html_checkbox(array('name' => '_smtp_log', 'id' => "cfgsmtp echo $check_smtplog->show(intval($RCI->getprop('smtp_log')), array('value' => 1)); ?> -
+
diff --git a/installer/rcube_install.php b/installer/rcube_install.php index 024046755..e3382537e 100644 --- a/installer/rcube_install.php +++ b/installer/rcube_install.php @@ -100,7 +100,7 @@ class rcube_install */ 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); @@ -127,11 +127,12 @@ class rcube_install $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); - $value = $val; + if (isset($value)) + foreach ($value as $dbgval) + $val += intval($dbgval); + $value = $val; } else if ($prop == 'db_dsnw' && !empty($_POST['_dbtype'])) { if ($_POST['_dbtype'] == 'sqlite') @@ -168,7 +169,10 @@ class rcube_install // 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', diff --git a/installer/test.php b/installer/test.php index 0f38da059..0edfcc904 100644 --- a/installer/test.php +++ b/installer/test.php @@ -35,7 +35,12 @@ else if (!$read_db) { if ($RCI->configured) { $pass = false; - foreach (array($RCI->config['temp_dir'],$RCI->config['log_dir']) as $dir) { + + $dirs[] = $RCI->config['temp_dir']; + if($RCI->config['log_driver'] != 'syslog') + $dirs[] = $RCI->config['log_dir']; + + foreach ($dirs as $dir) { $dirpath = $dir{0} == '/' ? $dir : INSTALL_PATH . $dir; if (is_writable(realpath($dirpath))) { $RCI->pass($dir); -- cgit v1.2.3