From 7d7f67dde1ef87826bde757bce36bb448aae14e0 Mon Sep 17 00:00:00 2001
From: thomascube <thomas@roundcube.net>
Date: Sun, 21 Sep 2008 08:50:15 -0400
Subject: [PATCH] Apply changes of installer script to trunk

---
 installer/rcube_install.php |    9 ++++-----
 installer/config.php        |    4 ++--
 installer/index.php         |   18 ++++++++++++------
 3 files changed, 18 insertions(+), 13 deletions(-)

diff --git a/installer/config.php b/installer/config.php
index 53a4655..d5e10e8 100644
--- a/installer/config.php
+++ b/installer/config.php
@@ -30,10 +30,10 @@
   $textbox = new html_textarea(array('rows' => 16, 'cols' => 60, 'class' => "configfile"));
   
   echo '<div><em>main.inc.php (<a href="index.php?_getfile=main">download</a>)</em></div>';
-  echo $textbox->show($RCI->create_config('main'));
+  echo $textbox->show(($_SESSION['main.inc.php'] = $RCI->create_config('main')));
   
   echo '<div style="margin-top:1em"><em>db.inc.php (<a href="index.php?_getfile=db">download</a>)</em></div>';
-  echo $textbox->show($RCI->create_config('db'));
+  echo $textbox->show($_SESSION['db.inc.php'] = $RCI->create_config('db'));
 
   echo '<p class="hint">Of course there are more options to configure.
     Have a look at the config files or visit <a href="http://trac.roundcube.net/wiki/Howto_Config">Howto_Config</a> to find out.</p>';
diff --git a/installer/index.php b/installer/index.php
index ff31667..d14e6ff 100644
--- a/installer/index.php
+++ b/installer/index.php
@@ -31,12 +31,18 @@
 $RCI = rcube_install::get_instance();
 $RCI->load_config();
 
-if (isset($_GET['_getfile']) && in_array($_GET['_getfile'], array('main', 'db')))
-{
-  header('Content-type: text/plain');
-  header('Content-Disposition: attachment; filename="'.$_GET['_getfile'].'.inc.php"');
-  echo $RCI->create_config($_GET['_getfile']);
-  exit;
+if (isset($_GET['_getfile']) && in_array($_GET['_getfile'], array('main', 'db'))) {
+  $filename = $_GET['_getfile'] . '.inc.php';
+  if (!empty($_SESSION[$filename])) {
+    header('Content-type: text/plain');
+    header('Content-Disposition: attachment; filename="'.$filename.'"');
+    echo $_SESSION[$filename];
+    exit;
+  }
+  else {
+    header('HTTP/1.0 404 Not found');
+    die("The requested configuration was not found. Please run the installer from the beginning.");
+  }
 }
 
 ?>
diff --git a/installer/rcube_install.php b/installer/rcube_install.php
index e528cfc..37645ad 100644
--- a/installer/rcube_install.php
+++ b/installer/rcube_install.php
@@ -129,18 +129,17 @@
       // convert some form data
       if ($prop == 'debug_level') {
         $val = 0;
-        if (isset($value))
-	  foreach ($value as $dbgval)
+        if (is_array($value))
+          foreach ($value as $dbgval)
             $val += intval($dbgval);
-	$value = $val;
+        $value = $val;
       }
       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'], 
-		    rawurlencode($_POST['_dbuser']), rawurlencode($_POST['_dbpass']),
-		    $_POST['_dbhost'], $_POST['_dbname']);
+            rawurlencode($_POST['_dbuser']), rawurlencode($_POST['_dbpass']), $_POST['_dbhost'], $_POST['_dbname']);
       }
       else if ($prop == 'smtp_auth_type' && $value == '0') {
         $value = '';

--
Gitblit v1.9.1