Zeile 47 | Zeile 47 |
---|
// Include the files necessary for installation require_once MYBB_ROOT."inc/class_timers.php";
|
// Include the files necessary for installation require_once MYBB_ROOT."inc/class_timers.php";
|
require_once MYBB_ROOT."inc/class_xml.php";
| |
require_once MYBB_ROOT.'inc/class_language.php';
$lang = new MyLanguage();
|
require_once MYBB_ROOT.'inc/class_language.php';
$lang = new MyLanguage();
|
$lang->set_path(MYBB_ROOT.'install/resources/');
| $lang->set_path(INSTALL_ROOT.'resources/');
|
$lang->load('language');
// If we're upgrading from an SQLite installation, make sure we still work.
| $lang->load('language');
// If we're upgrading from an SQLite installation, make sure we still work.
|
Zeile 62 | Zeile 61 |
---|
// Load DB interface require_once MYBB_ROOT."inc/db_base.php";
|
// Load DB interface require_once MYBB_ROOT."inc/db_base.php";
|
| require_once MYBB_ROOT . 'inc/AbstractPdoDbDriver.php';
|
require_once MYBB_ROOT."inc/db_{$config['database']['type']}.php"; switch($config['database']['type'])
| require_once MYBB_ROOT."inc/db_{$config['database']['type']}.php"; switch($config['database']['type'])
|
Zeile 71 | Zeile 71 |
---|
break; case "pgsql": $db = new DB_PgSQL;
|
break; case "pgsql": $db = new DB_PgSQL;
|
| break; case "pgsql_pdo": $db = new PostgresPdoDbDriver();
|
break; case "mysqli": $db = new DB_MySQLi;
|
break; case "mysqli": $db = new DB_MySQLi;
|
| break; case "mysql_pdo": $db = new MysqlPdoDbDriver();
|
break; default: $db = new DB_MySQL;
| break; default: $db = new DB_MySQL;
|
Zeile 194 | Zeile 200 |
---|
); $user = get_user_by_username($mybb->get_input('username'), $options);
|
); $user = get_user_by_username($mybb->get_input('username'), $options);
|
if(!$user['uid'])
| if(!$user)
|
{ $output->print_error("The username you have entered appears to be invalid."); } else { $user = validate_password_from_uid($user['uid'], $mybb->get_input('password'), $user);
|
{ $output->print_error("The username you have entered appears to be invalid."); } else { $user = validate_password_from_uid($user['uid'], $mybb->get_input('password'), $user);
|
if(!$user['uid'])
| if(!$user)
|
{ $output->print_error("The password you entered is incorrect. If you have forgotten your password, click <a href=\"../member.php?action=lostpw\">here</a>. Otherwise, go back and try again."); } }
|
{ $output->print_error("The password you entered is incorrect. If you have forgotten your password, click <a href=\"../member.php?action=lostpw\">here</a>. Otherwise, go back and try again."); } }
|
my_setcookie("mybbuser", $user['uid']."_".$user['loginkey'], null, true);
| my_setcookie("mybbuser", $user['uid']."_".$user['loginkey'], null, true, "lax");
|
header("Location: ./upgrade.php"); }
| header("Location: ./upgrade.php"); }
|
Zeile 261 | Zeile 267 |
---|
{ $db->drop_table("upgrade_data"); }
|
{ $db->drop_table("upgrade_data"); }
|
| $collation = $db->build_create_table_collation(); $engine = ''; if($db->type == "mysql" || $db->type == "mysqli") { $engine = 'ENGINE=MyISAM'; }
|
$db->write_query("CREATE TABLE ".TABLE_PREFIX."upgrade_data ( title varchar(30) NOT NULL, contents text NOT NULL, UNIQUE (title)
|
$db->write_query("CREATE TABLE ".TABLE_PREFIX."upgrade_data ( title varchar(30) NOT NULL, contents text NOT NULL, UNIQUE (title)
|
);");
| ) {$engine}{$collation};");
|
$dh = opendir(INSTALL_ROOT."resources");
$upgradescripts = array(); while(($file = readdir($dh)) !== false) {
|
$dh = opendir(INSTALL_ROOT."resources");
$upgradescripts = array(); while(($file = readdir($dh)) !== false) {
|
if(preg_match("#upgrade([0-9]+).php$#i", $file, $match))
| if(preg_match("#upgrade(\d+(p\d+)*).php$#i", $file, $match))
|
{ $upgradescripts[$match[1]] = $file; $key_order[] = $match[1];
| { $upgradescripts[$match[1]] = $file; $key_order[] = $match[1];
|
Zeile 288 | Zeile 303 |
---|
// If array is empty then we must be upgrading to 1.6 since that's when this feature was added if(empty($version_history)) {
|
// If array is empty then we must be upgrading to 1.6 since that's when this feature was added if(empty($version_history)) {
|
$next_update_version = 17; // 16+1 }
| $candidates = array( 17, // 16+1 ); }
|
else {
|
else {
|
$next_update_version = (int)(end($version_history)+1);
| $latest_installed = end($version_history);
// Check for standard migrations and old branch patches (1 < 1p1 < 1p2 < 2) $parts = explode('p', $latest_installed);
$candidates = array( (string)((int)$parts[0] + 1), );
if(isset($parts[1])) { $candidates[] = $parts[0].'p'.((int)$parts[1] + 1); } else { $candidates[] = $parts[0].'p1'; }
|
}
|
}
|
|
|
$vers = ''; foreach($key_order as $k => $key)
| $vers = ''; foreach($key_order as $k => $key)
|
Zeile 301 | Zeile 335 |
---|
$file = $upgradescripts[$key]; $upgradescript = file_get_contents(INSTALL_ROOT."resources/$file"); preg_match("#Upgrade Script:(.*)#i", $upgradescript, $verinfo);
|
$file = $upgradescripts[$key]; $upgradescript = file_get_contents(INSTALL_ROOT."resources/$file"); preg_match("#Upgrade Script:(.*)#i", $upgradescript, $verinfo);
|
preg_match("#upgrade([0-9]+).php$#i", $file, $keynum);
| preg_match("#upgrade(\d+(p\d+)*).php$#i", $file, $keynum);
|
if(trim($verinfo[1])) {
|
if(trim($verinfo[1])) {
|
if($keynum[1] == $next_update_version)
| if(in_array($keynum[1], $candidates))
|
{ $vers .= "<option value=\"$keynum[1]\" selected=\"selected\">$verinfo[1]</option>\n";
|
{ $vers .= "<option value=\"$keynum[1]\" selected=\"selected\">$verinfo[1]</option>\n";
|
| $candidates = array();
|
} else {
| } else {
|
Zeile 317 | Zeile 353 |
---|
unset($upgradescripts); unset($upgradescript);
|
unset($upgradescripts); unset($upgradescript);
|
$output->print_contents($lang->sprintf($lang->upgrade_welcome, $mybb->version)."<p><select name=\"from\">$vers</select>".$lang->upgrade_send_stats); $output->print_footer("doupgrade");
| if(end($version_history) == reset($key_order) && empty($mybb->input['force'])) { $output->print_contents($lang->upgrade_not_needed); $output->print_footer("finished"); } else { $output->print_contents($lang->sprintf($lang->upgrade_welcome, $mybb->version)."<p><select name=\"from\">$vers</select>".$lang->upgrade_send_stats); $output->print_footer("doupgrade"); }
|
} elseif($mybb->input['action'] == "doupgrade") {
|
} elseif($mybb->input['action'] == "doupgrade") {
|
| if(ctype_alnum($mybb->get_input('from'))) { $from = $mybb->get_input('from'); } else{ $from = 0; }
|
add_upgrade_store("allow_anonymous_info", $mybb->get_input('allow_anonymous_info', MyBB::INPUT_INT));
|
add_upgrade_store("allow_anonymous_info", $mybb->get_input('allow_anonymous_info', MyBB::INPUT_INT));
|
require_once INSTALL_ROOT."resources/upgrade".$mybb->get_input('from', MyBB::INPUT_INT).".php"; if($db->table_exists("datacache") && $upgrade_detail['requires_deactivated_plugins'] == 1 && $mybb->get_input('donewarning') != "true")
| require_once INSTALL_ROOT."resources/upgrade".$from.".php"; if($db->table_exists("datacache") && !empty($upgrade_detail['requires_deactivated_plugins']) && $mybb->get_input('donewarning') != "true")
|
{ $plugins = $cache->read('plugins', true); if(!empty($plugins['active'])) { $output->print_header();
|
{ $plugins = $cache->read('plugins', true); if(!empty($plugins['active'])) { $output->print_header();
|
$lang->plugin_warning = "<input type=\"hidden\" name=\"from\" value=\"".$mybb->get_input('from', MyBB::INPUT_INT)."\" />\n<input type=\"hidden\" name=\"donewarning\" value=\"true\" />\n<div class=\"error\"><strong><span style=\"color: red\">Warning:</span></strong> <p>There are still ".count($plugins['active'])." plugin(s) active. Active plugins can sometimes cause problems during an upgrade procedure or may break your forum afterward. It is <strong>strongly</strong> reccommended that you deactivate your plugins before continuing.</p></div> <br />";
| $lang->plugin_warning = "<input type=\"hidden\" name=\"from\" value=\"".$from."\" />\n<input type=\"hidden\" name=\"donewarning\" value=\"true\" />\n<div class=\"error\"><strong><span style=\"color: red\">Warning:</span></strong> <p>There are still ".count($plugins['active'])." plugin(s) active. Active plugins can sometimes cause problems during an upgrade procedure or may break your forum afterward. It is <strong>strongly</strong> reccommended that you deactivate your plugins before continuing.</p></div> <br />";
|
$output->print_contents($lang->sprintf($lang->plugin_warning, $mybb->version)); $output->print_footer("doupgrade"); }
|
$output->print_contents($lang->sprintf($lang->plugin_warning, $mybb->version)); $output->print_footer("doupgrade"); }
|
else { add_upgrade_store("startscript", $mybb->get_input('from', MyBB::INPUT_INT)); $runfunction = next_function($mybb->get_input('from', MyBB::INPUT_INT)); }
| else { add_upgrade_store("startscript", $from); $runfunction = next_function($from); }
|
} else {
|
} else {
|
add_upgrade_store("startscript", $mybb->get_input('from', MyBB::INPUT_INT)); $runfunction = next_function($mybb->get_input('from', MyBB::INPUT_INT));
| add_upgrade_store("startscript", $from); $runfunction = next_function($from);
|
} } $currentscript = get_upgrade_store("currentscript");
| } } $currentscript = get_upgrade_store("currentscript");
|
Zeile 354 | Zeile 406 |
---|
$runfunction = "upgradethemes"; } elseif($mybb->input['action'] == "rebuildsettings")
|
$runfunction = "upgradethemes"; } elseif($mybb->input['action'] == "rebuildsettings")
|
{
| {
|
$runfunction = "buildsettings"; } elseif($mybb->input['action'] == "buildcaches")
|
$runfunction = "buildsettings"; } elseif($mybb->input['action'] == "buildcaches")
|
{
| {
|
$runfunction = "buildcaches"; } elseif($mybb->input['action'] == "finished")
| $runfunction = "buildcaches"; } elseif($mybb->input['action'] == "finished")
|
Zeile 368 | Zeile 420 |
---|
else // Busy running modules, come back later { $bits = explode("_", $mybb->input['action'], 2);
|
else // Busy running modules, come back later { $bits = explode("_", $mybb->input['action'], 2);
|
if($bits[1]) // We're still running a module
| if(!empty($bits[1])) // We're still running a module
|
{
|
{
|
$from = $bits[0]; $runfunction = next_function($bits[0], $bits[1]);
| if(ctype_alnum($bits[0])) { $from = $bits[0]; } else { $from = 0; }
$runfunction = next_function($from, $bits[1]);
|
} }
| } }
|
Zeile 491 | Zeile 551 |
---|
// Now deal with the master templates $contents = @file_get_contents(INSTALL_ROOT.'resources/mybb_theme.xml');
|
// Now deal with the master templates $contents = @file_get_contents(INSTALL_ROOT.'resources/mybb_theme.xml');
|
$parser = new XMLParser($contents);
| $parser = create_xml_parser($contents);
|
$tree = $parser->get_tree();
$theme = $tree['theme'];
| $tree = $parser->get_tree();
$theme = $tree['theme'];
|
Zeile 507 | Zeile 567 |
---|
$time = TIME_NOW; $query = $db->simple_select("templates", "tid", "sid='-2' AND title='".$db->escape_string($templatename)."'"); $oldtemp = $db->fetch_array($query);
|
$time = TIME_NOW; $query = $db->simple_select("templates", "tid", "sid='-2' AND title='".$db->escape_string($templatename)."'"); $oldtemp = $db->fetch_array($query);
|
if($oldtemp['tid'])
| if($oldtemp)
|
{ $update_array = array(
|
{ $update_array = array(
|
'template' => $templatevalue,
| 'template' => $templatevalue,
|
'version' => $templateversion, 'dateline' => $time );
| 'version' => $templateversion, 'dateline' => $time );
|
Zeile 566 | Zeile 626 |
---|
$output->print_header($lang->upgrade_datacache_building);
|
$output->print_header($lang->upgrade_datacache_building);
|
$contents .= $lang->upgrade_building_datacache;
| $contents = $lang->upgrade_building_datacache;
|
$cache->update_version(); $cache->update_attachtypes();
| $cache->update_version(); $cache->update_attachtypes();
|
Zeile 588 | Zeile 648 |
---|
$cache->update_tasks(); $cache->update_spiders(); $cache->update_bannedips();
|
$cache->update_tasks(); $cache->update_spiders(); $cache->update_bannedips();
|
$cache->update_banned();
| |
$cache->update_birthdays(); $cache->update_most_replied_threads(); $cache->update_most_viewed_threads();
| $cache->update_birthdays(); $cache->update_most_replied_threads(); $cache->update_most_viewed_threads();
|
Zeile 611 | Zeile 670 |
---|
global $db, $output, $mybb, $lang, $config, $plugins;
ob_start();
|
global $db, $output, $mybb, $lang, $config, $plugins;
ob_start();
|
$output->print_header($lang>upgrade_complete);
| $output->print_header($lang->upgrade_complete);
|
$allow_anonymous_info = get_upgrade_store("allow_anonymous_info"); if($allow_anonymous_info == 1)
| $allow_anonymous_info = get_upgrade_store("allow_anonymous_info"); if($allow_anonymous_info == 1)
|
Zeile 649 | Zeile 708 |
---|
$lock_note = $lang->sprintf($lang->upgrade_locked, $config['admin_dir']); } }
|
$lock_note = $lang->sprintf($lang->upgrade_locked, $config['admin_dir']); } }
|
if(!$written)
| if(empty($written))
|
{ $lock_note = "<p><b><span style=\"color: red;\">".$lang->upgrade_removedir."</span></b></p>"; }
| { $lock_note = "<p><b><span style=\"color: red;\">".$lang->upgrade_removedir."</span></b></p>"; }
|
Zeile 680 | Zeile 739 |
---|
/** * Show the finish page
|
/** * Show the finish page
|
*/
| */
|
function whatsnext() { global $output, $db, $system_upgrade_detail, $lang;
| function whatsnext() { global $output, $db, $system_upgrade_detail, $lang;
|
Zeile 690 | Zeile 749 |
---|
$output->print_header($lang->upgrade_template_reversion); $output->print_contents($lang->upgrade_template_reversion_success); $output->print_footer("templates");
|
$output->print_header($lang->upgrade_template_reversion); $output->print_contents($lang->upgrade_template_reversion_success); $output->print_footer("templates");
|
} else
| } else
|
{ upgradethemes(); }
| { upgradethemes(); }
|
Zeile 699 | Zeile 758 |
---|
/** * Determine the next function we need to call
|
/** * Determine the next function we need to call
|
* * @param int $from * @param string $func *
| * * @param string $from * @param string $func *
|
* @return string */ function next_function($from, $func="dbchanges") { global $oldvers, $system_upgrade_detail, $currentscript, $cache;
|
* @return string */ function next_function($from, $func="dbchanges") { global $oldvers, $system_upgrade_detail, $currentscript, $cache;
|
| if(!ctype_alnum($from)) { $from = 0; }
|
load_module("upgrade".$from.".php"); if(function_exists("upgrade".$from."_".$func)) { $function = "upgrade".$from."_".$func;
|
load_module("upgrade".$from.".php"); if(function_exists("upgrade".$from."_".$func)) { $function = "upgrade".$from."_".$func;
|
}
| }
|
else { // We're done with our last upgrade script, so add it to the upgrade scripts we've already completed.
|
else { // We're done with our last upgrade script, so add it to the upgrade scripts we've already completed.
|
| if (ctype_digit($from)) { $from = (int)$from; }
|
$version_history = $cache->read("version_history"); $version_history[$from] = $from; $cache->update("version_history", $version_history);
|
$version_history = $cache->read("version_history"); $version_history[$from] = $from; $cache->update("version_history", $version_history);
|
$from = $from+1; if(file_exists(INSTALL_ROOT."resources/upgrade".$from.".php")) { $function = next_function($from); } }
if(!$function)
| // Check for standard migrations and old branch patches (1 < 1p1 < 1p2 < 2) $parts = explode('p', $from);
$candidates = array( (string)((int)$parts[0] + 1), );
if(isset($parts[1])) { $candidates[] = $parts[0].'p'.((int)$parts[1] + 1); } else { $candidates[] = $parts[0].'p1'; }
foreach($candidates as $candidate) { if(file_exists(INSTALL_ROOT."resources/upgrade".$candidate.".php")) { $function = next_function($candidate); break; } } }
if(empty($function))
|
{ $function = "whatsnext"; }
| { $function = "whatsnext"; }
|
Zeile 737 | Zeile 824 |
---|
/** * @param string $module
|
/** * @param string $module
|
*/
| */
|
function load_module($module) { global $system_upgrade_detail, $currentscript, $upgrade_detail;
| function load_module($module) { global $system_upgrade_detail, $currentscript, $upgrade_detail;
|
Zeile 747 | Zeile 834 |
---|
{ foreach($upgrade_detail as $key => $val) {
|
{ foreach($upgrade_detail as $key => $val) {
|
if(!$system_upgrade_detail[$key] || $val > $system_upgrade_detail[$key])
| if(empty($system_upgrade_detail[$key]) || $val > $system_upgrade_detail[$key])
|
{ $system_upgrade_detail[$key] = $val; }
| { $system_upgrade_detail[$key] = $val; }
|
Zeile 759 | Zeile 846 |
---|
/** * Get a value from our upgrade data cache
|
/** * Get a value from our upgrade data cache
|
*
| *
|
* @param string $title * * @return mixed
| * @param string $title * * @return mixed
|
Zeile 767 | Zeile 854 |
---|
function get_upgrade_store($title) { global $db;
|
function get_upgrade_store($title) { global $db;
|
|
|
$query = $db->simple_select("upgrade_data", "*", "title='".$db->escape_string($title)."'"); $data = $db->fetch_array($query);
|
$query = $db->simple_select("upgrade_data", "*", "title='".$db->escape_string($title)."'"); $data = $db->fetch_array($query);
|
| if(!isset($data['contents'])) { return null; }
|
return my_unserialize($data['contents']); }
| return my_unserialize($data['contents']); }
|
Zeile 911 | Zeile 1004 |
---|
} } $settings_xml = file_get_contents(INSTALL_ROOT."resources/settings.xml");
|
} } $settings_xml = file_get_contents(INSTALL_ROOT."resources/settings.xml");
|
$parser = new XMLParser($settings_xml);
| $parser = create_xml_parser($settings_xml);
|
$parser->collapse_dups = 0; $tree = $parser->get_tree(); $settinggroupnames = array();
| $parser->collapse_dups = 0; $tree = $parser->get_tree(); $settinggroupnames = array();
|
Zeile 980 | Zeile 1073 |
---|
} } unset($settings);
|
} } unset($settings);
|
| $settings = '';
|
$query = $db->simple_select("settings", "*", "", array('order_by' => 'title')); while($setting = $db->fetch_array($query)) {
|
$query = $db->simple_select("settings", "*", "", array('order_by' => 'title')); while($setting = $db->fetch_array($query)) {
|
$setting['value'] = str_replace("\"", "\\\"", $setting['value']);
| $setting['name'] = addcslashes($setting['name'], "\\'"); $setting['value'] = addcslashes($setting['value'], '\\"$');
|
$settings .= "\$settings['{$setting['name']}'] = \"".$setting['value']."\";\n"; } $settings = "<?php\n/*********************************\ \n DO NOT EDIT THIS FILE, PLEASE USE\n THE SETTINGS EDITOR\n\*********************************/\n\n$settings\n";
| $settings .= "\$settings['{$setting['name']}'] = \"".$setting['value']."\";\n"; } $settings = "<?php\n/*********************************\ \n DO NOT EDIT THIS FILE, PLEASE USE\n THE SETTINGS EDITOR\n\*********************************/\n\n$settings\n";
|
Zeile 1078 | Zeile 1173 |
---|
require_once MYBB_ROOT."inc/functions_task.php"; $task_file = file_get_contents(INSTALL_ROOT.'resources/tasks.xml');
|
require_once MYBB_ROOT."inc/functions_task.php"; $task_file = file_get_contents(INSTALL_ROOT.'resources/tasks.xml');
|
$parser = new XMLParser($task_file);
| $parser = create_xml_parser($task_file);
|
$parser->collapse_dups = 0; $tree = $parser->get_tree();
| $parser->collapse_dups = 0; $tree = $parser->get_tree();
|
Zeile 1129 | Zeile 1224 |
---|
$query = $db->simple_select("settings", "*", "", array('order_by' => 'title')); while($setting = $db->fetch_array($query)) {
|
$query = $db->simple_select("settings", "*", "", array('order_by' => 'title')); while($setting = $db->fetch_array($query)) {
|
$setting['value'] = $db->escape_string($setting['value']);
| $setting['name'] = addcslashes($setting['name'], "\\'"); $setting['value'] = addcslashes($setting['value'], '\\"$');
|
$settings .= "\$settings['{$setting['name']}'] = \"{$setting['value']}\";\n"; } if(!empty($settings))
| $settings .= "\$settings['{$setting['name']}'] = \"{$setting['value']}\";\n"; } if(!empty($settings))
|