From c060677d209ad3eef97dd6711ddfd5cc7ff9f2f4 Mon Sep 17 00:00:00 2001
From: svncommit <devs@roundcube.net>
Date: Thu, 12 Jun 2008 03:32:04 -0400
Subject: [PATCH] Enable direct download of (main|db).inc.php from the installer.

---
 installer/config.php |    8 ++++----
 installer/index.php  |   15 ++++++++++++---
 2 files changed, 16 insertions(+), 7 deletions(-)

diff --git a/installer/config.php b/installer/config.php
index c257f81..26262db 100644
--- a/installer/config.php
+++ b/installer/config.php
@@ -22,16 +22,16 @@
 
 if (!empty($_POST['submit'])) {
   
-  echo '<p class="notice">Copy the following configurations and save them in two files (names above the text box)';
-  echo ' within the <tt>config/</tt> directory of your RoundCube installation.<br/>';
+  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 ' 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"));
   
-  echo '<div><em>main.inc.php</em></div>';
+  echo '<div><em>main.inc.php (<a href="index.php?_getfile=main">download</a>)</em></div>';
   echo $textbox->show($RCI->create_config('main'));
   
-  echo '<div style="margin-top:1em"><em>db.inc.php</em></div>';
+  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 '<p class="hint">Of course there are more options to configure.
diff --git a/installer/index.php b/installer/index.php
index 4bd37f3..4d0e6c4 100644
--- a/installer/index.php
+++ b/installer/index.php
@@ -25,6 +25,18 @@
   );
   include_once $filename. '.php';
 }
+
+$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;
+}
+
 ?>
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
 	"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
@@ -51,9 +63,6 @@
 <div id="content">
 
 <?php
-
-  $RCI = rcube_install::get_instance();
-  $RCI->load_config();
 
   // exit if installation is complete
   if ($RCI->configured && !$RCI->getprop('enable_installer') && !$_SESSION['allowinstaller']) {

--
Gitblit v1.9.1