diff --git a/phpBB/install/install_install.php b/phpBB/install/install_install.php index ad762daf0f..adf38e4d86 100755 --- a/phpBB/install/install_install.php +++ b/phpBB/install/install_install.php @@ -25,7 +25,7 @@ if (!empty($setmodules)) 'module_filename' => substr(basename(__FILE__), 0, -strlen($phpEx)-1), 'module_order' => 10, 'module_subs' => '', - 'module_stages' => array('INTRO', 'REQUIREMENTS', 'DATABASE', 'ADMINISTRATOR', 'CONFIG_FILE', 'ADVANCED', 'FINAL'), + 'module_stages' => array('INTRO', 'REQUIREMENTS', 'DATABASE', 'ADMINISTRATOR', 'CONFIG_FILE', 'ADVANCED', 'CREATE_TABLE', 'FINAL'), 'module_reqs' => '' ); } @@ -84,8 +84,12 @@ class install_install extends module break; - case 'final' : + case 'create_table': $this->load_schema($mode, $sub); + + break; + + case 'final' : $this->add_modules($mode, $sub); $this->add_language($mode, $sub); $this->add_bots($mode, $sub); @@ -889,7 +893,7 @@ class install_install extends module $submit = $lang['NEXT_STEP']; - $url = $this->p_master->module_url . "?mode=$mode&sub=final"; + $url = $this->p_master->module_url . "?mode=$mode&sub=create_table"; $template->assign_vars(array( 'BODY' => $lang['STAGE_ADVANCED_EXPLAIN'], @@ -1156,7 +1160,22 @@ class install_install extends module $this->p_master->db_error($error['message'], $sql, __LINE__, __FILE__); } } - + + foreach ($this->request_vars as $var) + { + $s_hidden_fields .= ''; + } + + $submit = $lang['NEXT_STEP']; + + $url = $this->p_master->module_url . "?mode=$mode&sub=final"; + + $template->assign_vars(array( + 'BODY' => $lang['STAGE_CREATE_TABLE_EXPLAIN'], + 'L_SUBMIT' => $submit, + 'S_HIDDEN' => $s_hidden_fields, + 'U_ACTION' => $url, + )); } /** @@ -1172,6 +1191,17 @@ class install_install extends module $$var = request_var($var, ''); } + // Load the appropriate database class if not already loaded + include($phpbb_root_path . 'includes/db/' . $dbms . '.' . $phpEx); + + // Instantiate the database + $sql_db = 'dbal_' . $dbms; + $db = new $sql_db(); + $db->sql_connect($dbhost, $dbuser, $dbpasswd, $dbname, $dbport, false); + + // NOTE: trigger_error does not work here. + $db->return_on_error = true; + include_once($phpbb_root_path . 'includes/constants.' . $phpEx); include_once($phpbb_root_path . 'includes/acp/acp_modules.' . $phpEx); diff --git a/phpBB/language/en/install.php b/phpBB/language/en/install.php index d9bf5d9148..2844e7be79 100755 --- a/phpBB/language/en/install.php +++ b/phpBB/language/en/install.php @@ -207,6 +207,8 @@ $lang = array_merge($lang, array( 'STAGE_ADVANCED' => 'Advanced Settings', 'STAGE_ADVANCED_EXPLAIN' => 'The settings on this page are only necessary to set if you know that you require something different from the default. If unsure, just proceed to the next page, this can be altered from the Administration Panel later.', 'STAGE_CONFIG_FILE' => 'Configuration File', + 'STAGE_CREATE_TABLE' => 'Create Database Tables', + 'STAGE_CREATE_TABLE_EXPLAIN' => 'The database tables used by phpBB 3.0 have been created and populated with some initial data. Proceed to the next screen to finish installing phpBB.', 'STAGE_DATABASE' => 'Database Settings', 'STAGE_FINAL' => 'Final Stage', 'STAGE_INTRO' => 'Introduction',