mailer project continued:
[mailer.git] / inc / install-inc.php
index 0f4244cbf64d80d830f5327c294d6bd23d1e415d..28db1db9a3087b9639cc8186125a1ca15c562fd0 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * MA  02110-1301  USA                                                  *
  ************************************************************************/
 
-/************************************************************************
- *      YOU MAY ALSO WANT TO REMOVE THIS FILE AFTER INSTALLTION!        *
- ************************************************************************/
-
 // Some security stuff...
-if (!defined('__SECURITY')) {
+if ((!defined('__SECURITY')) || (!isInstallationPhase())) {
        die();
 } // END - if
 
@@ -55,43 +51,43 @@ FILTER_INIT_TIMEZONE(array());
 
 // Init variables
 $GLOBALS['install_mysql'] = array();
-if ((isPostRequestElementSet('mysql')) && (is_array(postRequestElement('mysql')))) {
+if ((isPostRequestElementSet('mysql')) && (ifPostContainsSelections('mysql'))) {
        // Transfer 'mysql' array
        $GLOBALS['install_mysql'] = postRequestElement('mysql');
 } // END - if
 
 // Check if both passwords from SMTP are matching
-if ((isGetRequestElementSet('page') && (getRequestElement('page') == 5))) {
+if ((isGetRequestElementSet('install_page') && (getRequestElement('install_page') == 5))) {
        // Okay, we have to check it
        if (isPostRequestElementSet('smtp_user') && (!isPostRequestElementSet('smtp_host'))) {
                // Hostname not set
-               addToInstallContent('<div class="para">{--INSTALL_SMTP_HOSTNAME_EMPTY--}</div>');
-               setGetRequestElement('page', 3);
+               addToInstallContent('<div class="para">{--INSTALLER_SMTP_HOSTNAME_EMPTY--}</div>');
+               setGetRequestElement('install_page', 3);
        } // END - if
 
        if ((!isPostRequestElementSet('smtp_pass1')) && (isPostRequestElementSet('smtp_pass2'))) {
                // Password is empty
-               addToInstallContent('<div class="para">{--INSTALL_SMTP_PASSWORD1_EMPTY--}</div>');
-               setGetRequestElement('page', 3);
+               addToInstallContent('<div class="para">{--INSTALLER_SMTP_PASSWORD1_EMPTY--}</div>');
+               setGetRequestElement('install_page', 3);
        } // END - if
 
        if ((isPostRequestElementSet('smtp_pass1')) && (!isPostRequestElementSet('smtp_pass2'))) {
                // Password repeat is empty
-               addToInstallContent('<div class="para">{--INSTALL_SMTP_PASSWORD2_EMPTY--}</div>');
-               setGetRequestElement('page', 3);
+               addToInstallContent('<div class="para">{--INSTALLER_SMTP_PASSWORD2_EMPTY--}</div>');
+               setGetRequestElement('install_page', 3);
        } // END - if
 
        if (postRequestElement('smtp_pass1') != postRequestElement('smtp_pass1')) {
                // Passwords are not matching
-               addToInstallContent('<div class="para">{--INSTALL_SMTP_PASS_MISMATCH--}</div>');
-               setGetRequestElement('page', 3);
+               addToInstallContent('<div class="para">{--INSTALLER_SMTP_PASS_MISMATCH--}</div>');
+               setGetRequestElement('install_page', 3);
        } // END - if
 } // END - if
 
 // Is the mailer installed or no admin registered so far?
 if ((!isInstalled()) || (!isAdminRegistered())) {
        // Output page for entered value
-       switch (getRequestElement('page')) {
+       switch (getRequestElement('install_page')) {
                case 'welcome': // Welcome to the installation!
                        addTemplateToInstallContent('install_welcome');
                        break;
@@ -217,15 +213,16 @@ if ((!isInstalled()) || (!isAdminRegistered())) {
                                                // Check for dumps
                                                if ((!isFileReadable(postRequestElement('spath') . 'install/tables.sql')) || (!isFileReadable(postRequestElement('spath') . 'install/menu-'.getLanguage().'.sql'))) {
                                                        // Installation area not found
-                                                       debug_report_bug(__FILE__, __LINE__, 'SQL dumps not found. Please extract ALL files from the archive or checkout all files out from SVN.');
+                                                       reportBug(__FILE__, __LINE__, 'SQL dumps not found. Please extract ALL files from the archive or checkout all files out from SVN.');
                                                        return;
                                                } // END - if
 
                                                // Any errors detected?
                                                if (!ifFatalErrorsDetected()) {
-                                                       // Set type and prefix from POST data
+                                                       // Set type, prefix from POST data and database name for later queries
                                                        setConfigEntry('_TABLE_TYPE'  , postRequestElement('mysql', 'type'));
                                                        setConfigEntry('_MYSQL_PREFIX', postRequestElement('mysql', 'prefix'));
+                                                       setConfigEntry('__DB_NAME'    , $GLOBALS['install_mysql']['dbase']);
 
                                                        // Both exists so import them
                                                        foreach (array('tables', 'menu-'.getLanguage()) as $dump) {
@@ -241,7 +238,7 @@ if ((!isInstalled()) || (!isAdminRegistered())) {
                                                                        mergeSqls(explode(";\n", $fileContent), 'install');
                                                                } else {
                                                                        // Not readable!
-                                                                       debug_report_bug(__FILE__, __LINE__, sprintf("SQL dump %s is not readable!", $dump));
+                                                                       reportBug(__FILE__, __LINE__, sprintf("SQL dump %s is not readable.", $dump));
                                                                }
                                                        } // END - foreach
                                                        //* DEBUG: */ die(__FUNCTION__.'['.__LINE__.']:'<pre>'.print_r(getSqls(), true).'</pre>');
@@ -249,19 +246,20 @@ if ((!isInstalled()) || (!isAdminRegistered())) {
                                                        // Are some SQLs found?
                                                        if (countSqls() == 0) {
                                                                // Abort here
-                                                               addFatalMessage(__FILE__, __LINE__, '{--INSTALL_SQL_IMPORT_FAILED--}');
+                                                               addFatalMessage(__FILE__, __LINE__, '{--INSTALLER_SQL_IMPORT_FAILED--}');
                                                                return;
                                                        } // END - if
 
-                                                       // Now run all queries through and try to keep out empty or comment queries
+                                                       // Now run all queries through
                                                        runFilterChain('run_sqls');
 
                                                        // Copy the config template and verify it
-                                                       doInstallWriteLocalConfig();
+                                                       doInstallWriteLocalConfigurationFile(postRequestElement('spath'));
                                                } // END - if
                                        } // END - if
                                } // END - if
 
+                               // Are some fatal errors there?
                                if (ifFatalErrorsDetected()) {
                                        $OUT = '';
                                        foreach (getFatalArray() as $value) {
@@ -286,12 +284,18 @@ if ((!isInstalled()) || (!isAdminRegistered())) {
                                        // We have handled all fatal errors here
                                        initFatalMessages();
                                } else {
-                                       // Installation is done!
-                                       redirectToUrl('install.php?page=finished');
+                                       // Register ext-sql_patches
+                                       if ((registerExtension('sql_patches', NULL)) && (registerExtension('task', NULL))) {
+                                               // Installation is done!
+                                               redirectToUrl('install.php?install_page=finished');
+                                       } else {
+                                               // Something goes wrong on registration of ext-sql_patches
+                                               addFatalMessage(__FILE__, __LINE__, '{--INSTALLER_FINALIZER_CANNOT_REGISTER_SQL_PATCHES--}');
+                                       }
                                }
                        } else {
                                // Something goes wrong during installation! :-(
-                               addFatalMessage(__FILE__, __LINE__, '{--INSTALL_FINALIZER_FAILED--}');
+                               addFatalMessage(__FILE__, __LINE__, '{--INSTALLER_FINALIZER_FAILED--}');
                        }
                        break;
 
@@ -306,7 +310,7 @@ if ((!isInstalled()) || (!isAdminRegistered())) {
                        break;
 
                default:
-                       logDebugMessage(__FILE__, __LINE__, sprintf("Wrong page %s detected", getRequestElement('page')));
+                       logDebugMessage(__FILE__, __LINE__, sprintf("Wrong install_page=%s detected", getRequestElement('install_page')));
                        addTemplateToInstallContent('admin_settings_unsaved', '{--WRONG_PAGE--}');
                        break;
        } // END - switch