Fail log was not written when root directory was read only.
[fa-stable.git] / install / index.php
index f5f7aa7377166bdeadd205b2acc1841d6dfc5ebd..fc27f03038097a200e43db1cb57bf2ddf46d6ae2 100644 (file)
@@ -23,7 +23,8 @@ include($path_to_root . "/includes/ui.inc");
 include($path_to_root . "/includes/system_tests.inc");
 include($path_to_root . "/admin/db/maintenance_db.inc");
 include($path_to_root . "/includes/packages.inc");
-@include($path_to_root . "/installed_extensions.php");
+if (file_exists($path_to_root . "/installed_extensions.php"))
+       include($path_to_root . "/installed_extensions.php");
 //-------------------------------------------------------------------------------------------------
 
 function subpage_title($txt) 
@@ -117,45 +118,23 @@ function install_connect_db() {
        global $db;
 
        $conn = $_SESSION['inst_set'];
-       
-       $db = mysql_connect($conn["host"] , $conn["dbuser"], $conn["dbpassword"]);
-       if(!$db) {
-               display_error('Cannot connect to database server. Host name, username and/or password incorrect.');
-               return false;
-       }
-       if (!defined('TB_PREF'))
-               define('TB_PREF', $conn["tbpref"]);
 
-       if (!mysql_select_db($conn["dbname"], $db)) {
-               $sql = "CREATE DATABASE " . $conn["dbname"];
-               if (!mysql_query($sql)) {
-                       display_error('Cannot create database. Check your permissions to database creation or selct already created database.');
-                       return false;
-               }
-               return mysql_select_db($conn["dbname"], $db);
+       $db = db_create_db($conn);
+       if (!$db) {
+               display_error(_("Cannot connect to database. User or password is invalid or you have no permittions to create database."));
        }
-       return true;
+       return $db;
 }
 
 function do_install() {
 
-       global $path_to_root, $db_connections, $def_coy, $installed_extensions, 
+       global $path_to_root, $db_connections, $def_coy, $installed_extensions, $tb_pref_counter,
                $dflt_lang, $installed_languages;
 
        $coa = $_SESSION['inst_set']['coa'];
        if (install_connect_db() && db_import($path_to_root.'/sql/'.$coa, $_SESSION['inst_set'])) {
                $con = $_SESSION['inst_set'];
                $table_prefix = $con['tbpref'];
-               update_company_prefs(array('coy_name'=>$con['name']));
-               $admin = get_user_by_login('admin');
-//             update_admin_password($con, md5($con['pass']));
-               update_user_prefs($admin['id'], array('language' => $_POST['lang'], 
-                       'password' => md5($con['pass'])));
-
-               if (!copy($path_to_root. "/config.default.php", $path_to_root. "/config.php")) {
-                       display_error(_("Cannot save system configuration file 'config.php'."));
-                       return false;
-               }
 
                $def_coy = 0;
                $tb_pref_counter = 0;
@@ -167,6 +146,21 @@ function do_install() {
                 'dbname' => $con['dbname'],
                 'tbpref' => $table_prefix
                ));
+
+               $_SESSION['wa_current_user']->cur_con = 0;
+               
+               update_company_prefs(array('coy_name'=>$con['name']));
+               $admin = get_user_by_login('admin');
+               update_user_prefs($admin['id'], array(
+                       'language' => $con['lang'], 
+                       'password' => md5($con['pass']),
+                       'user_id' => $con['admin']));
+
+               if (!copy($path_to_root. "/config.default.php", $path_to_root. "/config.php")) {
+                       display_error(_("Cannot save system configuration file 'config.php'."));
+                       return false;
+               }
+
                $err = write_config_db($table_prefix != "");
 
                if ($err == -1) {
@@ -180,10 +174,10 @@ function do_install() {
                        return false;
                }
                // update default language
-               include_once($path_to_root . "/lang/installed_languages.inc");
+               if (file_exists($path_to_root . "/lang/installed_languages.inc"))
+                       include_once($path_to_root . "/lang/installed_languages.inc");
                $dflt_lang = $_POST['lang'];
                write_lang();
-
                return true;
        }
        return false;
@@ -261,17 +255,18 @@ elseif(get_post('install_langs'))
 elseif(get_post('install_coas')) 
 {
        $ret = true;
-
+       $next_extension_id = 0;
+       
        if (isset($_POST['coas']))
                foreach($_POST['coas'] as $package => $ok) {
                        $ret &= install_extension($package);
                }
        if ($ret) {
-               include($path_to_root.'/installed_extensions.php');
+               if (file_exists($path_to_root . '/installed_extensions.php'))
+                       include($path_to_root.'/installed_extensions.php');
                $_POST['Page'] = 5;
        }
-}
-elseif (isset($_POST['set_admin'])) {
+} elseif (isset($_POST['set_admin'])) {
        // check company settings
        if (get_post('name')=='') {
                display_error(_('Company name cannot be empty.'));
@@ -342,7 +337,7 @@ start_form();
                        }
                        subpage_title(_('Database Server Settings'));
                        start_table(TABLESTYLE);
-                       text_row_ex(_("Server Host:"), 'host', 30);
+                       text_row_ex(_("Server Host:"), 'host', 30, 60);
                        text_row_ex(_("Database User:"), 'dbuser', 30);
                        text_row_ex(_("Database Password:"), 'dbpassword', 30);
                        text_row_ex(_("Database Name:"), 'dbname', 30);
@@ -376,6 +371,11 @@ start_form();
                                        $_POST[$name] = $val;
                                set_focus('name');
                        }
+                       if (!isset($installed_extensions)) {
+                               $installed_extensions = array();
+                               update_extensions($installed_extensions);
+                       }
+
                        subpage_title(_('Company Settings'));
                        start_table(TABLESTYLE);
                        text_row_ex(_("Company Name:"), 'name', 30);
@@ -392,7 +392,8 @@ start_form();
                case '6': // final screen
                        subpage_title(_('FrontAccounting ERP has been installed successsfully.'));
                        display_note(_('Please do not forget to remove install wizard folder.'));
-                       $install_done = true;
+                       session_unset();
+                       session_destroy();
                        hyperlink_no_params($path_to_root.'/index.php', _('Click here to start.'));
                        break;