Rewrote init-phase stuff:
[mailer.git] / inc / install-functions.php
index c62b260723d295eb70d3e8bee798b8bdda77696f..9b4b42403f9c76b20cc55ca340ddf57abe6c10ad 100644 (file)
@@ -76,6 +76,70 @@ function initInstaller () {
        setConfigEntry('verbose_sql'        , 'N');
 }
 
+// Installer bootstrap
+function doInstallerBootstrap () {
+       // Default output is 'direct' for HTML output
+       setConfigEntry('OUTPUT_MODE', 'direct');
+
+       // This hack prevents a backtrace in CSS output
+       if (isCssOutputMode()) {
+               // Problem with config so set output mode
+               setConfigEntry('OUTPUT_MODE', 'render');
+       } // END - if
+
+       // Debug message
+       /* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'isAjaxOutputMode()=' . intval(isAjaxOutputMode()) . ',isSessionVariableSet(database_extension)=' . intval(isSessionVariableSet('database_extension')));
+
+       // Is it AJAX call and database_extension is set?
+       if ((isAjaxOutputMode()) && (isSessionVariableSet('database_extension'))) {
+               // Then take it from session
+               /* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Setting _DB_TYPE from session;database_extension=' . getSession('database_extension'));
+               setConfigEntry('_DB_TYPE', getSession('database_extension'));
+       } elseif (isPhpExtensionLoaded('mysqli')) {
+               // Debug message
+               /* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Setting _DB_TYPE to MySQLi ...');
+
+               // Set (old) default
+               setConfigEntry('_DB_TYPE', 'mysqli');
+       } elseif (isPhpExtensionLoaded('mysql')) {
+               // Debug message
+               /* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Setting _DB_TYPE to default (mysql) ...');
+
+               // Set (old) default
+               setConfigEntry('_DB_TYPE', 'mysql');
+       } else {
+               // Opps, cannot detect it?
+               reportBug(__FUNCTION__, __LINE__, 'Cannot detect mysql/mysqli. Please fix your setup.');
+       }
+
+       // Set link as down
+       unsetSqlLinkUp(__FUNCTION__, __LINE__);
+
+       // Load database layer here
+       loadIncludeOnce('inc/db/lib.php');
+
+       // Init message system
+       initMessages();
+
+       // Init session
+       initSession();
+
+       // Include more
+       foreach (array('databases', 'install-functions', 'load_config', 'load_cache') as $inc) {
+               // Load include file
+               loadIncludeOnce('inc/' . $inc . '.php');
+       } // END - foreach
+
+       // Init installer
+       initInstaller();
+
+       // Check whether we are in installation routine
+       if ((!isInstalling()) && (!isCssOutputMode()) && (!isRawOutputMode())) {
+               // Redirect to the URL
+               redirectToUrl('install.php');
+       } // END - if
+}
+
 // Write the local config-local.php file from "template"
 function doInstallWriteLocalConfigurationFile ($path, $url, $title, $slogan, $email, $noPassword, $writeFooter, $backLink, $databaseHost, $databaseName, $databaseLogin, $databasePassword, $databasePrefix, $tableType, $databaseExtension, $smtpHost, $smtpUser, $smtpPassword) {
        // Copy the config template and verify it