X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=installer%2Findex.php;h=7ed52240ba9a631d3c6e061f09d3a085f232d752;hb=f340e39c052e828327e6171654630b63128f3f07;hp=4bd37f3ca2979409839aa395d67c20380e51b62c;hpb=5b5ddde1194997b1012f19da396f2861db3396a2;p=roundcube.git diff --git a/installer/index.php b/installer/index.php index 4bd37f3..7ed5224 100644 --- a/installer/index.php +++ b/installer/index.php @@ -1,8 +1,39 @@ | + +-------------------------------------------------------------------------+ + + $Id$ + +*/ + ini_set('error_reporting', E_ALL&~E_NOTICE); 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; @@ -10,28 +41,54 @@ $include_path .= ini_get('include_path'); set_include_path($include_path); +require_once 'utils.php'; +require_once 'main.inc'; + session_start(); -/** - * Use PHP5 autoload for dynamic class loading - * (copy from program/incllude/iniset.php) - */ -function __autoload($classname) -{ - $filename = preg_replace( - array('/MDB2_(.+)/', '/Mail_(.+)/', '/^html_.+/', '/^utf8$/'), - array('MDB2/\\1', 'Mail/\\1', 'html', 'utf8.class'), - $classname - ); - include_once $filename. '.php'; +$RCI = rcube_install::get_instance(); +$RCI->load_config(); + +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."); + } } + +if ($RCI->configured && ($RCI->getprop('enable_installer') || $_SESSION['allowinstaller']) && + isset($_GET['_mergeconfig']) && in_array($_GET['_mergeconfig'], array('main', 'db'))) { + $filename = $_GET['_mergeconfig'] . '.inc.php'; + + header('Content-type: text/plain'); + header('Content-Disposition: attachment; filename="'.$filename.'"'); + + $RCI->merge_config(); + echo $RCI->create_config($_GET['_mergeconfig'], true); + exit; +} + +// go to 'check env' step if we have a local configuration +if ($RCI->configured && empty($_REQUEST['_step'])) { + header("Location: ./?_step=1"); + exit; +} + ?> -RoundCube Webmail Installer - +Roundcube Webmail Installer + + @@ -39,34 +96,30 @@ function __autoload($classname) + + + + +
+ How-to Wiki +
load_config(); - // exit if installation is complete if ($RCI->configured && !$RCI->getprop('enable_installer') && !$_SESSION['allowinstaller']) { // header("HTTP/1.0 404 Not Found"); echo '

The installer is disabled!

'; - echo '

To enable it again, set $rcmail_config[\'enable_installer\'] = true; in config/main.inc.php

'; + echo '

To enable it again, set $rcmail_config[\'enable_installer\'] = true; in RCMAIL_CONFIG_DIR/main.inc.php

'; echo '
'; exit; } ?> -

RoundCube Webmail Installer

+

Roundcube Webmail Installer

    step]) { include $include_steps[$RCI->step]; @@ -94,7 +147,7 @@ else {