From bba657e64ff3334ba2f64e88e977a6dc107d682d Mon Sep 17 00:00:00 2001
From: thomascube <thomas@roundcube.net>
Date: Fri, 19 Sep 2008 14:26:34 -0400
Subject: [PATCH] Made config files location configurable (#1485215)

---
 CHANGELOG                        |    4 ++++
 installer/rcube_install.php      |    4 ++--
 installer/config.php             |    2 +-
 program/include/rcmail.php       |    2 +-
 installer/test.php               |    4 ++--
 program/include/iniset.php       |    2 ++
 program/include/rcube_config.php |    8 ++++----
 installer/index.php              |    4 +++-
 8 files changed, 19 insertions(+), 11 deletions(-)

diff --git a/CHANGELOG b/CHANGELOG
index 35bda97..9137398 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -1,6 +1,10 @@
 CHANGELOG RoundCube Webmail
 ---------------------------
 
+2008/09/19 (thomasb)
+----------
+- Made config files location configurable (#1485215)
+
 2008/09/16 (alec)
 ----------
 - Reduced memory footprint when forwarding attachments (#1485345)
diff --git a/installer/config.php b/installer/config.php
index 12af1c6..53a4655 100644
--- a/installer/config.php
+++ b/installer/config.php
@@ -24,7 +24,7 @@
 if (!empty($_POST['submit'])) {
   
   echo '<p class="notice">Copy or download the following configurations and save them in two files';
-  echo ' (names above the text box) within the <tt>config/</tt> directory of your RoundCube installation.<br/>';
+  echo ' (names above the text box) within the <tt>'.RCMAIL_CONFIG_DIR.'</tt> directory of your RoundCube installation.<br/>';
   echo ' Make sure that there are no characters outside the <tt>&lt;?php ?&gt;</tt> brackets when saving the files.</p>';
   
   $textbox = new html_textarea(array('rows' => 16, 'cols' => 60, 'class' => "configfile"));
diff --git a/installer/index.php b/installer/index.php
index 4d0e6c4..ff31667 100644
--- a/installer/index.php
+++ b/installer/index.php
@@ -3,6 +3,8 @@
 ini_set('display_errors', 1);
 
 define('INSTALL_PATH', realpath(dirname(__FILE__) . '/../').'/');
+define('RCMAIL_CONFIG_DIR', INSTALL_PATH . 'config');
+
 $include_path  = INSTALL_PATH . 'program/lib' . PATH_SEPARATOR;
 $include_path .= INSTALL_PATH . 'program' . PATH_SEPARATOR;
 $include_path .= INSTALL_PATH . 'program/include' . PATH_SEPARATOR;
@@ -68,7 +70,7 @@
   if ($RCI->configured && !$RCI->getprop('enable_installer') && !$_SESSION['allowinstaller']) {
     // header("HTTP/1.0 404 Not Found");
     echo '<h2 class="error">The installer is disabled!</h2>';
-    echo '<p>To enable it again, set <tt>$rcmail_config[\'enable_installer\'] = true;</tt> in config/main.inc.php</p>';
+    echo '<p>To enable it again, set <tt>$rcmail_config[\'enable_installer\'] = true;</tt> in '.RCMAIL_CONFIG_DIR.'/main.inc.php</p>';
     echo '</div></body></html>';
     exit;
   }
diff --git a/installer/rcube_install.php b/installer/rcube_install.php
index 0c4544f..e528cfc 100644
--- a/installer/rcube_install.php
+++ b/installer/rcube_install.php
@@ -79,12 +79,12 @@
    */
   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;
     }
diff --git a/installer/test.php b/installer/test.php
index 0edfcc9..ca7c7ad 100644
--- a/installer/test.php
+++ b/installer/test.php
@@ -3,8 +3,8 @@
 <h3>Check config files</h3>
 <?php
 
-$read_main = is_readable(INSTALL_PATH.'config/main.inc.php');
-$read_db = is_readable(INSTALL_PATH.'config/db.inc.php');
+$read_main = is_readable(RCMAIL_CONFIG_DIR.'/main.inc.php');
+$read_db = is_readable(RCMAIL_CONFIG_DIR.'/db.inc.php');
 
 if ($read_main && !empty($RCI->config)) {
   $RCI->pass('main.inc.php');
diff --git a/program/include/iniset.php b/program/include/iniset.php
index 5dacf85..20fe279 100755
--- a/program/include/iniset.php
+++ b/program/include/iniset.php
@@ -30,6 +30,8 @@
   define('INSTALL_PATH', dirname($_SERVER['SCRIPT_FILENAME']).'/');
 }
 
+define('RCMAIL_CONFIG_DIR', INSTALL_PATH . 'config');
+
 // make sure path_separator is defined
 if (!defined('PATH_SEPARATOR')) {
   define('PATH_SEPARATOR', (eregi('win', PHP_OS) ? ';' : ':'));
diff --git a/program/include/rcmail.php b/program/include/rcmail.php
index ac328eb..12270f0 100644
--- a/program/include/rcmail.php
+++ b/program/include/rcmail.php
@@ -460,7 +460,7 @@
       raise_error(array(
         'code' => 600,
         'type' => 'php',
-        'file' => "config/main.inc.php",
+        'file' => RCMAIL_CONFIG_DIR."/main.inc.php",
         'message' => "Acces denied for new user $username. 'auto_create_user' is disabled"
         ), true, false);
     }
diff --git a/program/include/rcube_config.php b/program/include/rcube_config.php
index 98e688d..c3b0c18 100644
--- a/program/include/rcube_config.php
+++ b/program/include/rcube_config.php
@@ -51,13 +51,13 @@
     ob_start();
     
     // load main config file
-    if (include(INSTALL_PATH . 'config/main.inc.php'))
+    if (include(RCMAIL_CONFIG_DIR . '/main.inc.php'))
       $this->prop = (array)$rcmail_config;
     else
       $this->errors[] = 'main.inc.php was not found.';
 
     // load database config
-    if (include(INSTALL_PATH . 'config/db.inc.php'))
+    if (include(RCMAIL_CONFIG_DIR . '/db.inc.php'))
       $this->prop += (array)$rcmail_config;
     else
       $this->errors[] = 'db.inc.php was not found.';
@@ -119,8 +119,8 @@
       $fname = preg_replace('/[^a-z0-9\.\-_]/i', '', $_SERVER['HTTP_HOST']) . '.inc.php';
     }
 
-    if ($fname && is_file(INSTALL_PATH . 'config/' . $fname)) {
-      include(INSTALL_PATH . 'config/' . $fname);
+    if ($fname && is_file(RCMAIL_CONFIG_DIR . '/' . $fname)) {
+      include(RCMAIL_CONFIG_DIR . '/' . $fname);
       $this->prop = array_merge($this->prop, (array)$rcmail_config);
     }
   }

--
Gitblit v1.9.1