diff options
Diffstat (limited to 'phpBB/install/database_update.php')
| -rw-r--r-- | phpBB/install/database_update.php | 85 |
1 files changed, 62 insertions, 23 deletions
diff --git a/phpBB/install/database_update.php b/phpBB/install/database_update.php index 211bbec8d1..43d8c06a27 100644 --- a/phpBB/install/database_update.php +++ b/phpBB/install/database_update.php @@ -8,7 +8,7 @@ * */ -$updates_to_version = '3.0.1'; +$updates_to_version = '3.0.2-RC1'; // Return if we "just include it" to find out for which version the database update is responsible for if (defined('IN_PHPBB') && defined('IN_INSTALL')) @@ -33,7 +33,7 @@ error_reporting(E_ALL); // Include essential scripts include($phpbb_root_path . 'config.' . $phpEx); -if (!isset($dbms)) +if (!defined('PHPBB_INSTALLED') || empty($dbms) || empty($acm_type)) { die("Please read: <a href='../docs/INSTALL.html'>INSTALL.html</a> before attempting to update."); } @@ -496,6 +496,12 @@ $database_update_info = array( GROUPS_TABLE => array('group_legend'), ), ), + // No changes from 3.0.1-RC1 to 3.0.1 + '3.0.1-RC1' => array(), + // No changes from 3.0.1 to 3.0.2-RC1 + '3.0.1' => array(), +// uncomment once RC1 out - no changes from 3.0.2-RC1 to 3.0.2 +// '3.0.2-RC1' => array(), ); // Determine mapping database type @@ -581,6 +587,11 @@ while ($row = $db->sql_fetchrow($result)) } $db->sql_freeresult($result); +/*if ($debug_from_version !== false) +{ + $config['version'] = $debug_from_version; +}*/ + echo $lang['PREVIOUS_VERSION'] . ' :: <strong>' . $config['version'] . '</strong><br />'; echo $lang['UPDATED_VERSION'] . ' :: <strong>' . $updates_to_version . '</strong></p>'; @@ -604,7 +615,7 @@ else // Checks/Operations that have to be completed prior to starting the update itself $exit = false; -if (version_compare($current_version, '3.0.RC8', '<=')) +if (version_compare($current_version, '3.0.RC8', '<=')) /* && $debug_from_version === false) */ { // Define missing language entries... if (!isset($lang['CLEANING_USERNAMES'])) @@ -932,7 +943,7 @@ if (version_compare($current_version, '3.0.RC8', '<=')) foreach ($user_ids as $i => $user_id) { $row = $users[$user_id]; - + $rank_title = $rank_img = ''; get_user_rank($row['user_rank'], $row['user_posts'], $rank_title, $rank_img, $rank_img_src); @@ -1092,13 +1103,20 @@ for ($i = 0; $i < sizeof($versions); $i++) $next_version = (isset($versions[$i + 1])) ? $versions[$i + 1] : $updates_to_version; - if (!sizeof($schema_changes)) + // If the installed version to be updated to is < than the current version, and if the current version is >= as the version to be updated to next, we will skip the process + if (version_compare($version, $current_version, '<') && version_compare($current_version, $next_version, '>=')) { continue; } - // If the installed version to be updated to is < than the current version, and if the current version is >= as the version to be updated to next, we will skip the process - if (version_compare($version, $current_version, '<') && version_compare($current_version, $next_version, '>=')) +/* if ($debug_from_version !== false) + { + // Applying update schema for version array with key '$version' + // for version '$version' to '$next_version' + continue; + }*/ + + if (!sizeof($schema_changes)) { continue; } @@ -1209,10 +1227,7 @@ $errored = $no_updates = false; flush(); $no_updates = true; - -$versions = array( - '3.0.RC2', '3.0.RC3', '3.0.RC4', '3.0.RC5', '3.0.0' -); +$versions = array_keys($database_update_info); // some code magic for ($i = 0; $i < sizeof($versions); $i++) @@ -1226,8 +1241,14 @@ for ($i = 0; $i < sizeof($versions); $i++) continue; } - $no_updates = false; - change_database_data($version); +/* if ($debug_from_version !== false) + { + // Applying update schema for version array with key '$version' + // for version '$version' to '$next_version' + continue; + }*/ + + change_database_data($no_updates, $version); } _write_result($no_updates, $errored, $error_ary); @@ -1246,6 +1267,9 @@ $errored = $no_updates = false; flush(); +//if ($debug_from_version === false) +// { + // update the version $sql = "UPDATE " . CONFIG_TABLE . " SET config_value = '$updates_to_version' @@ -1258,6 +1282,8 @@ $sql = 'UPDATE ' . USERS_TABLE . " user_perm_from = 0"; _sql($sql, $errored, $error_ary); +// } + /* Optimize/vacuum analyze the tables where appropriate // this should be done for each version in future along with // the version number update @@ -1324,7 +1350,7 @@ $cache->purge(); </div> </div> </div> - + <div id="page-footer"> Powered by phpBB © 2000, 2002, 2005, 2007 <a href="http://www.phpbb.com/">phpBB Group</a> </div> @@ -1345,7 +1371,7 @@ if (function_exists('exit_handler')) /** * Function where all data changes are executed */ -function change_database_data($version) +function change_database_data(&$no_updates, $version) { global $db, $map_dbms, $errored, $error_ary, $config, $phpbb_root_path; @@ -1364,7 +1390,7 @@ function change_database_data($version) $smileys[$row['smiley_id']] = $row['code']; } $db->sql_freeresult($result); - + foreach ($smileys as $id => $code) { // 2.0 only entitized lt and gt; We need to do something about double quotes. @@ -1392,6 +1418,7 @@ function change_database_data($version) sql_create_index($map_dbms, 'ath_op_id', ACL_ROLES_DATA_TABLE, array('auth_option_id')); } + $no_updates = false; break; case '3.0.RC3': @@ -1481,6 +1508,7 @@ function change_database_data($version) set_config('allow_birthdays', '1'); set_config('cron_lock', '0', true); + $no_updates = false; break; case '3.0.RC4': @@ -1678,6 +1706,7 @@ function change_database_data($version) set_config('ldap_port', ''); set_config('ldap_user_filter', ''); + $no_updates = false; break; case '3.0.RC5': @@ -1699,7 +1728,7 @@ function change_database_data($version) $sql = 'SELECT forum_id, forum_password FROM ' . FORUMS_TABLE; $result = _sql($sql, $errored, $error_ary); - + while ($row = $db->sql_fetchrow($result)) { if (!empty($row['forum_password'])) @@ -1708,9 +1737,10 @@ function change_database_data($version) } } $db->sql_freeresult($result); - + $db->sql_transaction('commit'); + $no_updates = false; break; case '3.0.0': @@ -1719,7 +1749,7 @@ function change_database_data($version) SET topic_last_view_time = topic_last_post_time WHERE topic_last_view_time = 0"; _sql($sql, $errored, $error_ary); - + // Update smiley sizes $smileys = array('icon_e_surprised.gif', 'icon_eek.gif', 'icon_cool.gif', 'icon_lol.gif', 'icon_mad.gif', 'icon_razz.gif', 'icon_redface.gif', 'icon_cry.gif', 'icon_evil.gif', 'icon_twisted.gif', 'icon_rolleyes.gif', 'icon_exclaim.gif', 'icon_question.gif', 'icon_idea.gif', 'icon_arrow.gif', 'icon_neutral.gif', 'icon_mrgreen.gif', 'icon_e_ugeek.gif'); @@ -1728,18 +1758,27 @@ function change_database_data($version) if (file_exists($phpbb_root_path . 'images/smilies/' . $smiley)) { list($width, $height) = getimagesize($phpbb_root_path . 'images/smilies/' . $smiley); - + $sql = 'UPDATE ' . SMILIES_TABLE . ' SET smiley_width = ' . $width . ', smiley_height = ' . $height . " WHERE smiley_url = '" . $db->sql_escape($smiley) . "'"; - + _sql($sql, $errored, $error_ary); } } - - // TODO: remove all form token min times + $no_updates = false; + break; + + case '3.0.1-RC1': + + set_config('referer_validation', '1'); + set_config('check_attachment_content', '1'); + set_config('mime_triggers', 'body|head|html|img|plaintext|a href|pre|script|table|title'); + + $no_updates = false; break; + } } |
