$output->board_list(); } elseif (isset($mybb->input['action']) && $mybb->input['action'] == 'completed') { $debug->log->event("Show the merge competion page"); $import_session['finished_convert'] = 1; $import_session['agreement'] = 0; $import_session['first_page'] = 0; $output->finish_conversion(); } elseif (isset($mybb->input['action']) && $mybb->input['action'] == 'finish') { $debug->log->event("Show the merge cleanup page"); define("BACK_BUTTON", false); $output->print_header("MyBB Merge System - Final Step: Cleanup"); // Delete import fields and update our cache's $output->construct_progress_bar(); echo "<br />\nPerforming final cleanup and maintenance (This may take a while)... \n"; flush(); delete_import_fields(); $cache->update_stats(); $output->update_progress_bar(30); $cache->update_usergroups(); $output->update_progress_bar(60); $cache->update_forums(); $output->update_progress_bar(90); $cache->update_forumpermissions(); $output->update_progress_bar(120); $cache->update_moderators(); $output->update_progress_bar(150); $cache->update_usertitles(); $output->update_progress_bar(180); // Update import session cache $import_session['end_date'] = time(); // Get the converter up.
/** * Create the temporary importing data fields we use to keep track of, for example, vB's imported user id, etc. * * @param boolean Show text progress */ function create_import_fields($text = true) { global $db, $output; if ($text == true) { $output->construct_progress_bar(); echo "<br />Creating fields for tracking data during the Merge process (This may take a while)..."; flush(); } // First clear all. delete_import_fields(false); if ($text == true) { $output->update_progress_bar(0, "Creating " . TABLE_PREFIX . "trackers table."); } $db->write_query("CREATE TABLE " . TABLE_PREFIX . "trackers (\n\t type varchar(20) NOT NULL default '',\n\t count int NOT NULL default '0',\n\t PRIMARY KEY (type),\n\t KEY count (count)\n\t) ENGINE=MyISAM;"); if ($text == true) { $output->update_progress_bar(0, "Creating " . TABLE_PREFIX . "post_trackers table."); } $db->write_query("CREATE TABLE " . TABLE_PREFIX . "post_trackers (\n\t pid int NOT NULL default '0',\n\t import_pid int NOT NULL default '0',\n\t import_uid int NOT NULL default '0',\n\t PRIMARY KEY (pid),\n\t KEY import_pid (import_pid),\n\t KEY import_uid (import_uid)\n\t) ENGINE=MyISAM;"); if ($text == true) { $output->update_progress_bar(0, "Creating " . TABLE_PREFIX . "privatemessage_trackers table."); } $db->write_query("CREATE TABLE " . TABLE_PREFIX . "privatemessage_trackers (\n\t pmid int NOT NULL default '0',\n\t import_pmid int NOT NULL default '0',\n\t PRIMARY KEY (pmid),\n\t KEY import_pmid (import_pmid)\n\t) ENGINE=MyISAM;"); $add_list = array("int" => array("users" => array('import_uid', 'import_usergroup', 'import_displaygroup'), "forums" => array('import_fid', 'import_pid'), "threads" => array('import_tid', 'import_uid', 'import_poll', 'import_firstpost'), "polls" => array('import_pid', 'import_tid'), "usergroups" => array('import_gid'), "events" => array('import_eid'), "attachments" => array('import_aid')), "text" => array("users" => array('passwordconvert', 'passwordconverttype', 'passwordconvertsalt', 'import_additionalgroups'))); foreach ($add_list as $array) { $increment += count($array, COUNT_RECURSIVE) - count($array); } $increment = 200 / $increment; $progress = 0; foreach ($add_list['int'] as $table => $columns) { $columns_list = implode(', ', $columns); $comma = ""; $columns_sql = ""; foreach ($columns as $column) { if (!$db->field_exists($column, $table)) { $columns_sql .= "{$comma} ADD " . $column . " int NOT NULL default '0'"; $comma = ","; } } if ($text == true) { $output->update_progress_bar($progress, "Adding int columns " . $columns_list . " to table " . TABLE_PREFIX . $table); $progress += $increment; } $db->write_query("ALTER TABLE " . TABLE_PREFIX . $table . "{$columns_sql}"); if ($db->type == "mysql" || $db->type == "mysqli") { foreach ($columns as $column) { $db->write_query("ALTER TABLE " . TABLE_PREFIX . $table . " ADD INDEX ( `{$column}` )"); } } } foreach ($add_list['text'] as $table => $columns) { $columns_list = implode(', ', $columns); $comma = ""; $columns_sql = ""; foreach ($columns as $column) { if (!$db->field_exists($column, $table)) { $columns_sql .= "{$comma} ADD " . $column . " text"; $comma = ","; } } $db->write_query("ALTER TABLE " . TABLE_PREFIX . $table . "{$columns_sql}"); if ($text == true) { $output->update_progress_bar($progress, "Adding text columns " . $columns_list . " to table " . TABLE_PREFIX . $table); $progress += $increment; } } if ($text == true) { $output->update_progress_bar(200, "Please wait..."); echo " done.<br />\n"; flush(); } }