aboutsummaryrefslogtreecommitdiffstats
path: root/phpBB/install/update_script.php
diff options
context:
space:
mode:
Diffstat (limited to 'phpBB/install/update_script.php')
-rw-r--r--phpBB/install/update_script.php1193
1 files changed, 0 insertions, 1193 deletions
diff --git a/phpBB/install/update_script.php b/phpBB/install/update_script.php
deleted file mode 100644
index 6899e8b968..0000000000
--- a/phpBB/install/update_script.php
+++ /dev/null
@@ -1,1193 +0,0 @@
-<?php
-
-@set_time_limit(2400);
-ob_end_clean();
-//
-//
-//
-$db = $dbhost = $dbuser = $dbpasswd = $dbport = $dbname = '';
-
-define('IN_PHPBB', 1);
-$phpbb_root_path='./../';
-
-include($phpbb_root_path . 'extension.inc');
-include($phpbb_root_path . 'config.'.$phpEx);
-include($phpbb_root_path . 'includes/functions.'.$phpEx);
-include($phpbb_root_path . 'db/' . $dbms . '.'.$phpEx);
-
-$db = new sql_db($dbhost, $dbuser, $dbpasswd, $dbname, $dbport, false);
-
-//
-// Updates to this version ...
-//
-$version = '2.1.1 [20030221]';
-
-// ----------------
-// BEGIN VARS DEFNS
-//
-define('ACL_DENY', 2);
-define('ACL_ALLOW', 4);
-define('ACL_PERMIT', 8);
-
-define('AUTH_ALL', 0);
-define('AUTH_REG', 1);
-define('AUTH_ACL', 2);
-define('AUTH_MOD', 3);
-define('AUTH_ADMIN', 5);
-
-define('ANONYMOUS', 1);
-
-$auth_map = array(
- 'auth_view' => 'forum_list',
- 'auth_read' => 'forum_read',
- 'auth_post' => 'forum_post',
- 'auth_reply' => 'forum_reply',
- 'auth_edit' => 'forum_edit',
- 'auth_delete' => 'forum_delete',
- 'auth_pollcreate' => 'forum_poll',
- 'auth_vote' => 'forum_vote',
- 'auth_announce' => 'forum_announce',
- 'auth_sticky' => 'forum_sticky',
- 'auth_attachments' => 'forum_attach',
- 'auth_download' => 'forum_download',
-);
-
-$auth_options = array(
- 'forum_list',
- 'forum_read',
- 'forum_post',
- 'forum_reply',
- 'forum_edit',
- 'forum_delete',
- 'forum_poll',
- 'forum_vote',
- 'forum_announce',
- 'forum_sticky',
- 'forum_attach',
- 'forum_download',
- 'forum_html',
- 'forum_bbcode',
- 'forum_smilies',
- 'forum_img',
- 'forum_flash',
- 'forum_sigs',
- 'forum_search',
- 'forum_email',
- 'forum_rate',
- 'forum_print',
- 'forum_ignoreflood',
- 'forum_ignorequeue'
-);
-
-$auth_mod_options = array(
- 'mod_edit',
- 'mod_delete',
- 'mod_move',
- 'mod_lock',
- 'mod_split',
- 'mod_merge',
- 'mod_approve',
- 'mod_unrate',
- 'mod_auth'
-);
-
-$auth_admin_options = array(
- 'admin_general',
- 'admin_user',
- 'admin_group',
- 'admin_forum',
- 'admin_post',
- 'admin_ban',
- 'admin_auth',
- 'admin_email',
- 'admin_styles',
- 'admin_backup',
- 'admin_clearlogs'
-);
-
-$new_groups = array(
- 'guest_id' => "INSERT INTO " . $table_prefix . "groups (group_name, group_type) VALUES ('GUESTS', 0)",
- 'reg_inactive_id' => "INSERT INTO " . $table_prefix . "groups (group_name, group_type) VALUES ('REGISTERED_INACTIVE', 0)",
- 'reg_id' => "INSERT INTO " . $table_prefix . "groups (group_name, group_type) VALUES ('REGISTERED', 0)",
- 'super_mod_id' => "INSERT INTO " . $table_prefix . "groups (group_name, group_type) VALUES ('SUPER_MODERATORS', 0)",
- 'admin_id' => "INSERT INTO " . $table_prefix . "groups (group_name, group_type) VALUES ('ADMINISTRATORS', 0)"
-);
-//
-// END VAR DEFNS
-// -------------
-
-$sql = "SELECT config_value
- FROM " . $table_prefix . "config
- WHERE config_name = 'version'";
-$result = $db->sql_query($sql);
-
-$row = $db->sql_fetchrow($result);
-$this_version = $row['config_value'];
-
-//
-// Output page header
-//
-page_header();
-
-?>
-
-<h1>Pre-schema update data changes</h1>
-
-<?php
-
-switch ($this_version)
-{
- case '.0.0':
- case '.0.1':
- case '.0.2':
- case '.1.0 [20020402]':
- case '.1.0 [20020420]':
- case '.1.0 [20020421]':
- case '.1.0 [20020430]':
- case '2.1.0 [20020430]':
- gen_str_init('* Updating from <b><= [20020430]</b>');
-
- $anon_id_tbl = array(
- 'banlist' => array(
- 'ban_userid'
- ),
- 'posts' => array(
- 'poster_id'
- ),
- 'topics' => array(
- 'topic_poster'
- ),
- 'user_group' => array(
- 'user_id'
- )
- );
-
- $sql = '';
- foreach ($anon_id_tbl as $table => $field_ary)
- {
- foreach ($field_ary as $field)
- {
- $sql = "UPDATE " . $table_prefix . "$table
- SET $field = " . ANONYMOUS . "
- WHERE $field = -1";
- $db->sql_query($sql);
- }
- }
-
- unset($sql);
-
- gen_str_ok();
- break;
-
- default;
- print "<span class=\"updtext\">* No updates needed</span><br />\n";
-}
-
-?>
-
-<h1>Updating current schema</h1>
-
-<?php
-/*
-//
-// Get schema
-//
-$schema = get_schema();
-
-$table_def = $schema['table_def'];
-$field_def = $schema['field_def'];
-$key_def = $schema['key_def'];
-$create_def = $schema['create_def'];
-
-//
-// Create array with tables in 'old' database
-//
-$result = $db->sql_query('SHOW TABLES');
-
-$currenttables = array();
-while($table = $db->sql_fetchrow($result))
-{
- $currenttables[] = $table[0];
-}
-
-//
-// Check what tables we need to CREATE
-//
-foreach($table_def as $table => $definition)
-{
- if (!in_array($table, $currenttables))
- {
- gen_str_init("* Creating <b>$table</b>");
-
- $db->sql_query($definition);
-
- gen_str_ok();
- }
-}
-
-//
-// Loop tables in schema
-//
-foreach ($field_def as $table => $table_def)
-{
- // Loop fields in table
- gen_str_init("* Updating table <b>$table</b>");
-
- $sql = "SHOW FIELDS
- FROM $table";
- $result = $db->sql_query($sql);
-
- $current_fields = array();
- while ($row = $db->sql_fetchrow($result))
- {
- $current_fields[] = $row['Field'];
- }
-
- $alter_sql = "ALTER TABLE $table ";
- if (is_array($table_def))
- {
- foreach ($table_def as $field => $definition)
- {
- if ($field == '')
- {
- //
- // Skip empty fields if any (shouldn't be needed)
- //
- continue;
- }
-
- $type = $definition['type'];
- $size = $definition['size'];
-
- $default = isset($definition['default']) ? "DEFAULT " . $definition['default'] : '';
-
- $notnull = $definition['notnull'] == 1 ? 'NOT NULL' : '';
-
- $auto_increment = $definition['auto_increment'] == 1 ? 'auto_increment' : '';
-
- $oldfield = isset($rename[$table][$field]) ? $rename[$table][$field] : $field;
-
- //
- // If the current is not a key of $current_def and it is not a field that is
- // to be renamed then the field doesn't currently exist.
- //
- $changes[] = (!in_array($field, $current_fields) && $oldfield == $field) ? " ADD $field " . $create_def[$table][$field] : " CHANGE $oldfield $field " . $create_def[$table][$field];
- }
- }
-
- $alter_sql .= join(',', $changes);
-
- unset($changes);
- unset($current_fields);
-
- $sql = "SHOW INDEX
- FROM $table";
- $result = $db->sql_query($sql);
-
- $indices = array();
- while($row = $db->sql_fetchrow($result))
- {
- $indices[] = $row['Key_name'];
- }
-
- if (is_array($key_def[$table]))
- {
- foreach ($key_def[$table] as $key_name => $key_field)
- {
- if (!in_array($key_name, $indices))
- {
- $alter_sql .= ($key_name == 'PRIMARY') ? ", ADD PRIMARY KEY ($key_field)" : ", ADD INDEX $key_name ($key_field)";
- }
- }
- }
-
- $db->sql_query($alter_sql);
- $alter_sql = '';
-
- gen_str_ok();
-
-}
-*/
-?>
-
-<h1>Updating table data</h1>
-
-<?php
-
-
-switch ($this_version)
-{
- case '.0.0':
- case '.0.1':
- case '.0.2':
- case '.1.0 [20020402]':
- gen_str_init('* Inserting <b>config</b> data');
-
- $sql_ary = array();
- $sql_ary[] = "INSERT INTO " . $table_prefix . "config (config_name, config_value)
- VALUES ('session_gc', '3600')";
- $sql_ary[] = "INSERT INTO " . $table_prefix . "config (config_name, config_value)
- VALUES ('session_last_gc', '0')";
-
- $db->sql_return_on_error(true);
- for($i = 0; $i < count($sql_ary); $i++)
- {
- $db->sql_query($sql_ary[$i]);
- }
- $db->sql_return_on_error(false);
-
- gen_str_ok();
-
- case '.1.0 [20020420]':
- case '.1.0 [20020421]':
- gen_str_init('* Inserting <b>config</b> data');
-
- $sql = "SELECT COUNT(user_id) AS total_users, MAX(user_id) AS newest_user_id
- FROM " . $table_prefix . "users
- WHERE user_id <> " . ANONYMOUS;
- $result = $db->sql_query($sql);
-
- $row = $db->sql_fetchrow($result);
- $db->sql_freeresult($result);
-
- $user_count = $row['total_users'];
- $newest_user_id = $row['newest_user_id'];
-
- $sql = "SELECT username
- FROM " . $table_prefix . "users
- WHERE user_id = $newest_user_id";
- $result = $db->sql_query($sql);
-
- $row = $db->sql_fetchrow($result);
- $db->sql_freeresult($result);
-
- $newest_username = $row['username'];
-
- $sql_ary = array();
- $sql_ary[] = "INSERT INTO " . $table_prefix . "config (config_name, config_value)
- VALUES ('newest_user_id', $newest_user_id)";
- $sql_ary[] = "INSERT INTO " . $table_prefix . "config (config_name, config_value)
- VALUES ('newest_username', '$newest_username')";
- $sql_ary[] = "INSERT INTO " . $table_prefix . "config (config_name, config_value)
- VALUES ('num_users', $user_count)";
-
- $db->sql_return_on_error(true);
- for($i = 0; $i < count($sql_ary); $i++)
- {
- $db->sql_query($sql_ary[$i]);
- }
- $db->sql_return_on_error(false);
-
- gen_str_ok();
-
- case '.1.0 [20020430]':
- case '2.1.0 [20020430]':
-
- gen_str_init('* Decoding <b>banlist.ban_ip</b>');
-
- $sql = "SELECT ban_id, ban_ip
- FROM " . $table_prefix . "banlist
- WHERE ban_ip NOT LIKE '%.%'";
- $result = $db->sql_query($sql);
-
- $sql_ary = array();
- if ($row = $db->sql_fetchrow($result))
- {
- do
- {
- $sql = "UPDATE " . $table_prefix . "banlist
- SET ban_ip = '" . str_replace('255', '*', decode_ip($row['ban_ip'])) . "'
- WHERE ban_id = " . $row['ban_id'];
- $db->sql_query($sql);
- }
- while ($row = $db->sql_fetchrow($result));
- }
- $db->sql_freeresult($result);
-
- gen_str_ok();
-
- $upd_ip_sql = array(
- 'privmsgs' => array(
- 'privmsgs_ip'
- ),
- 'vote_voters' => array(
- 'vote_user_ip'
- ),
- );
-// 'posts' => array(
-// 'poster_ip',
-// ),
-
- $batchsize = 1000;
- foreach ($upd_ip_sql as $table => $field_ary)
- {
- foreach ($field_ary as $field)
- {
- gen_str_init("* Decoding <b>$table.$field</b>");
-
- $db->sql_return_on_error(true);
- $sql = "SELECT MAX($field) AS max_id
- FROM " . $table_prefix . "$table";
- if ($result = $db->sql_query($sql))
- {
- $db->sql_return_on_error(false);
-
- $row = $db->sql_fetchrow($result);
- $db->sql_freeresult($result);
-
- $maxid = $row['max_id'];
-
- for($i = 0; $i <= $maxid; $i += $batchsize)
- {
- $batchstart = $i;
- $batchend = $i + $batchsize;
-
- $sql = "SELECT DISTINCT $field
- FROM " . $table_prefix . "$table
- WHERE $field NOT LIKE '%.%'
- BETWEEN $batchstart
- AND $batchend";
- $result = $db->sql_query($sql);
-
- if ($row = $db->sql_fetchrow($result))
- {
- do
- {
- $sql = "UPDATE " . $table_prefix . "$table
- SET $field = '" . decode_ip($row[$field]) . "'
- WHERE $field LIKE '" . $row[$field] . "'";
- $db->sql_query($sql);
- }
- while ($row = $db->sql_fetchrow($result));
- }
- $db->sql_freeresult($result);
- }
-
- gen_str_ok();
- }
- else
- {
- gen_str_skip();
- }
- $db->sql_return_on_error(false);
- }
- }
-
- gen_str_init('* Inserting <b>config</b> data');
-
- $sql_ary = array(
- "INSERT INTO " . $table_prefix . "config (config_name, config_value) VALUES ('ldap_server', '')",
- "INSERT INTO " . $table_prefix . "config (config_name, config_value) VALUES ('ldap_base_dn', '')",
- "INSERT INTO " . $table_prefix . "config (config_name, config_value) VALUES ('ldap_uid', '')",
- "INSERT INTO " . $table_prefix . "config (config_name, config_value) VALUES ('limit_load', '2.0')",
- "INSERT INTO " . $table_prefix . "config (config_name, config_value) VALUES ('active_sessions', '0')",
- "INSERT INTO " . $table_prefix . "config (config_name, config_value) VALUES ('search_interval','0')",
- "INSERT INTO " . $table_prefix . "config (config_name, config_value) VALUES ('min_search_chars','3')",
- "INSERT INTO " . $table_prefix . "config (config_name, config_value) VALUES ('max_search_chars','20')",
- "INSERT INTO " . $table_prefix . "config (config_name, config_value) VALUES ('pm_max_boxes','4')",
- "INSERT INTO " . $table_prefix . "config (config_name, config_value) VALUES ('pm_max_msgs','50')",
- "INSERT INTO " . $table_prefix . "config (config_name, config_value) VALUES ('max_post_chars', '0')",
- "INSERT INTO " . $table_prefix . "config (config_name, config_value) VALUES ('max_post_smilies', '0')",
- "INSERT INTO " . $table_prefix . "config (config_name, config_value) VALUES ('board_disable_msg','')",
- "INSERT INTO " . $table_prefix . "config (config_name, config_value) VALUES ('email_enable','1')",
- "INSERT INTO " . $table_prefix . "config (config_name, config_value) VALUES ('auth_method','db')",
- "INSERT INTO " . $table_prefix . "config (config_name, config_value) VALUES ('icons_path','images/icons')",
- );
-
- $db->sql_return_on_error(true);
- for($i = 0; $i < count($sql_ary); $i++)
- {
- $db->sql_query($sql_ary[$i]);
- }
-
- gen_str_ok();
- gen_str_init('* Inserting <b>style</b> data');
-
- $sql_ary = array(
- "INSERT INTO " . $table_prefix . "styles (style_id, template_id, theme_id, imageset_id, style_name) VALUES (1, 1, 1, 1, 'subSilver')",
-
- "INSERT INTO " . $table_prefix . "styles_imageset (imageset_id, imageset_name, imageset_path, post_new, post_locked, post_pm, reply_new, reply_pm, reply_locked, icon_quote, icon_edit, icon_search, icon_profile, icon_pm, icon_email, icon_www, icon_icq, icon_aim, icon_yim, icon_msnm, icon_no_email, icon_no_www, icon_no_icq, icon_no_aim, icon_no_yim, icon_no_msnm, icon_delete, icon_ip, goto_post, goto_post_new, goto_post_latest, goto_post_newest, forum, forum_new, forum_locked, folder, folder_new, folder_hot, folder_hot_new, folder_locked, folder_locked_new, folder_sticky, folder_sticky_new, folder_announce, folder_announce_new, topic_watch, topic_unwatch, poll_left, poll_center, poll_right, rating) VALUES (1, 'subSilver &copy; phpBB Group', 'subSilver', '\"imagesets/subSilver/{LANG}/post.gif\" width=\"82\" height=\"25\" border=\"0\"', '\"imagesets/subSilver/{LANG}/reply-locked.gif\" width=\"82\" height=\"25\" border=\"0\"', '\"imagesets/subSilver/{LANG}/post.gif\" width=\"82\" height=\"25\" border=\"0\"', '\"imagesets/subSilver/{LANG}/reply.gif\" width=\"88\" height=\"27\" border=\"0\"', '\"imagesets/subSilver/{LANG}/reply.gif\" width=\"88\" height=\"27\" border=\"0\"', '\"imagesets/subSilver/{LANG}/reply-locked.gif\" width=\"82\" height=\"25\" border=\"0\"', '\"imagesets/subSilver/{LANG}/icon_quote.gif\" width=\"59\" height=\"18\" border=\"0\"', '\"imagesets/subSilver/{LANG}/icon_edit.gif\" width=\"59\" height=\"18\" border=\"0\"', '\"imagesets/subSilver/{LANG}/icon_search.gif\" width=\"59\" height=\"18\" border=\"0\"', '\"imagesets/subSilver/{LANG}/icon_profile.gif\" width=\"59\" height=\"18\" border=\"0\"', '\"imagesets/subSilver/{LANG}/icon_pm.gif\" width=\"59\" height=\"18\" border=\"0\"', '\"imagesets/subSilver/{LANG}/icon_email.gif\" width=\"59\" height=\"18\" border=\"0\"', '\"imagesets/subSilver/{LANG}/icon_www.gif\" width=\"59\" height=\"18\" border=\"0\"', '\"imagesets/subSilver/{LANG}/icon_icq_add.gif\" width=\"59\" height=\"18\" border=\"0\"', '\"imagesets/subSilver/{LANG}/icon_aim.gif\" width=\"59\" height=\"18\" border=\"0\"', '\"imagesets/subSilver/{LANG}/icon_yim.gif\" width=\"59\" height=\"18\" border=\"0\"', '\"imagesets/subSilver/{LANG}/icon_msnm.gif\" width=\"59\" height=\"18\" border=\"0\"', '', '', '', '', '', '', '\"imagesets/subSilver/icon_delete.gif\" width=\"16\" height=\"18\" border=\"0\"', '\"imagesets/subSilver/{LANG}/icon_ip.gif\" width=\"16\" height=\"18\" border=\"0\"', '\"imagesets/subSilver/icon_minipost.gif\" width=\"12\" height=\"9\" border=\"0\"', '\"imagesets/subSilver/icon_minipost_new.gif\" width=\"12\" height=\"9\" border=\"0\"', '\"imagesets/subSilver/icon_latest_reply.gif\" width=\"18\" height=\"9\" border=\"0\"', '\"imagesets/subSilver/icon_newest_reply.gif\" width=\"18\" height=\"9\" border=\"0\"', '\"imagesets/subSilver/folder_big.gif\" width=\"46\" height=\"25\" border=\"0\"', '\"imagesets/subSilver/folder_new_big.gif\" width=\"46\" height=\"25\" border=\"0\"', '\"imagesets/subSilver/folder_locked_big.gif\" width=\"46\" height=\"25\" border=\"0\"', '\"imagesets/subSilver/folder.gif\" width=\"19\" height=\"18\" border=\"0\"', '\"imagesets/subSilver/folder_new.gif\" width=\"19\" height=\"18\" border=\"0\"', '\"imagesets/subSilver/folder_hot.gif\" width=\"19\" height=\"18\" border=\"0\"', '\"imagesets/subSilver/folder_new_hot.gif\" width=\"19\" height=\"18\" border=\"0\"', '\"imagesets/subSilver/folder_lock.gif\" width=\"19\" height=\"18\" border=\"0\"', '\"imagesets/subSilver/folder_lock_new.gif\" width=\"19\" height=\"18\" border=\"0\"', '\"imagesets/subSilver/folder_sticky.gif\" width=\"19\" height=\"18\" border=\"0\"', '\"imagesets/subSilver/folder_sticky_new.gif\" width=\"19\" height=\"18\" border=\"0\"', '\"imagesets/subSilver/folder_announce.gif\" width=\"19\" height=\"18\" border=\"0\"', '\"imagesets/subSilver/folder_announce_new.gif\" width=\"19\" height=\"18\" border=\"0\"', '', '', '\"imagesets/subSilver/voting_lcap.gif\" width=\"4\" height=\"12\" border=\"0\"', '\"imagesets/subSilver/voting_rcap.gif\" height=\"12\" border=\"0\"', '\"imagesets/subSilver/voting_bar
-
-.gif\" width=\"4\" height=\"12\" border=\"0\"', '\"imagesets/subSilver/ratings/{RATE}.gif\" width=\"45\" height=\"17\" border=\"0\"')",
-
- "INSERT INTO " . $table_prefix . "styles_template (template_id, template_name, template_path, poll_length, pm_box_length, compile_crc) VALUES (1, 'subSilver &copy; phpBB Group', 'subSilver', 205, 175, '')",
-
- "INSERT INTO " . $table_prefix . "styles_theme (theme_id, css_data, css_external) VALUES (1, 'th { background-image: url(templates/subSilver/images/cellpic3.gif) }\r\ntd.cat { background-image: url(templates/subSilver/images/cellpic1.gif) }\r\ntd.rowpic { background-image: url(templates/subSilver/images/cellpic2.jpg); background-repeat: repeat-y }\r\ntd.icqback { background-image: url(templates/subSilver/images/icon_icq_add.gif); background-repeat: no-repeat }\r\ntd.catHead,td.catSides,td.catLeft,td.catRight,td.catBottom { background-image: url(templates/subSilver/images/cellpic1.gif) }\r\nth.thTop { background-image: url(templates/subSilver/images/cellpic3.gif) }', 'subSilver/subSilver.css')",
-
- "INSERT INTO " . $table_prefix . "icons (icons_id, icons_url, icons_width, icons_height) VALUES (1, '', 0, 0)",
- );
-
- for($i = 0; $i < count($sql_ary); $i++)
- {
- $db->sql_query($sql_ary[$i]);
- }
-
- gen_str_ok();
- gen_str_init('* Updating <b>style</b> defaults');
-
- $sql_ary = array(
- "UPDATE " . $table_prefix . "users SET user_style = 1",
- "UPDATE " . $table_prefix . "config SET config_value = '1' WHERE config_name = 'default_style'",
- );
-
- if (SQL_LAYER == 'mysql' || SQL_LAYER == 'mysql4')
- {
- $sql_ary[] = "ALTER TABLE " . $table_prefix . "users AUTO_INCREMENT = 1";
- }
-
- $sql_ary[] = "UPDATE " . $table_prefix . "users SET user_id = 0 WHERE username = 'Anonymous'";
-
- for($i = 0; $i < count($sql_ary); $i++)
- {
- $db->sql_query($sql_ary[$i]);
- }
- $db->sql_return_on_error(false);
-
- gen_str_ok();
- gen_str_init('* Updating <b>permissions</b>');
-
- // Grab user id of first user with user_level of ADMIN
- $sql = "SELECT user_id
- FROM " . $table_prefix . "users
- WHERE user_level = 1
- ORDER BY user_id ASC";
- $result = $db->sql_query($sql);
-
- $row = $db->sql_fetchrow($result);
- $db->sql_freeresult($result);
-
- $founder_id = $row['user_id'];
-
- //
- // Grab forum auth information
- //
- $sql = "SELECT *
- FROM " . $table_prefix . "forums";
- $result = $db->sql_query($sql);
-
- $forum_access = array();
- while ($row = $db->sql_fetchrow($result))
- {
- $forum_access[] = $row;
- }
- $db->sql_freeresult($result);
-
- //
- // Grab user auth information
- //
- $sql = "SELECT ug.user_id, aa.*
- FROM " . $table_prefix . "auth_access aa, " . $table_prefix . "user_group ug, " . $table_prefix . "groups g
- WHERE g.group_id = aa.group_id
- AND g.group_single_user = 1
- AND ug.group_id = g.group_id";
- $result = $db->sql_query($sql);
-
- $user_access = array();
- while ($row = $db->sql_fetchrow($result))
- {
- $user_access[$row['forum_id']] = $row;
- }
- $db->sql_freeresult($result);
-
- //
- // Grab group auth information
- //
- $sql = "SELECT g.group_id, aa.*
- FROM " . $table_prefix . "auth_access aa, " . $table_prefix . "groups g
- WHERE g.group_id = aa.group_id
- AND g.group_single_user <> 1";
- $result = $db->sql_query($sql);
-
- $group_access = array();
- while ($row = $db->sql_fetchrow($result))
- {
- $group_access[$row['forum_id']] = $row;
- }
- $db->sql_freeresult($result);
-
- //
- // Now delete 'single user groups' since they are no
- // longer needed. Need to clear both user_group and groups
- //
- $sql = "SELECT group_id
- FROM " . $table_prefix . "groups
- WHERE group_single_user <> 1";
- $result = $db->sql_query($sql);
-
- $delete_ug_sql = '';
- if ($row = $db->sql_fetchrow($result))
- {
- do
- {
- $delete_ug_sql .= (($delete_ug_sql != '') ? ', ' : '') . $row['group_id'];
- }
- while ($row = $db->sql_fetchrow($result));
- }
- $db->sql_freeresult($result);
-
- //
- // Clean up user_group and groups
- //
- if ($delete_ug_sql)
- {
- $sql = "DELETE FROM " . $table_prefix . "user_group
- WHERE group_id NOT IN ($delete_ug_sql)";
- $db->sql_query($sql);
- }
-
- $sql = "DELETE FROM " . $table_prefix . "groups
- WHERE group_single_user = 1";
- $db->sql_query($sql);
-
- unset($delete_ug_sql);
-
- //
- // Set a founder admin ... we'll assume it's the first user with admin level access
- //
- $sql = "UPDATE " . $table_prefix . "users
- SET user_founder = 1
- WHERE user_id = $founder_id";
- $db->sql_query($sql);
-
- //
- // Add all auth options to auth_options table
- //
- $all_options = array_merge($auth_options, array_merge($auth_mod_options, $auth_admin_options));
- $option_ids = array();
-
- foreach ($all_options as $value)
- {
- $sql = "INSERT INTO " . $table_prefix . "auth_options (auth_value)
- VALUES ('$value')";
- $db->sql_query($sql);
-
- $option_ids[$value] = $db->sql_nextid();
- }
-
- foreach ($new_groups as $k => $sql)
- {
- $db->sql_query($sql);
- $$k = $db->sql_nextid();
- }
-
- //
- // Update user_group table
- //
- $sql = "INSERT INTO " . $table_prefix . "user_group (user_id, group_id)
- SELECT user_id, $guest_id
- FROM " . $table_prefix . "users
- WHERE user_id = " . ANONYMOUS;
- $db->sql_query($sql);
-
- $sql = "INSERT INTO " . $table_prefix . "user_group (user_id, group_id)
- SELECT user_id, $reg_inactive_id
- FROM " . $table_prefix . "users
- WHERE user_id <> " . ANONYMOUS . "
- AND user_active <> 1";
- $db->sql_query($sql);
-
- $sql = "INSERT INTO " . $table_prefix . "user_group (user_id, group_id)
- SELECT user_id, $reg_id
- FROM " . $table_prefix . "users
- WHERE user_id <> " . ANONYMOUS . "
- AND user_active = 1";
- $db->sql_query($sql);
-
- $sql = "INSERT INTO " . $table_prefix . "user_group (user_id, group_id)
- SELECT user_id, $admin_id
- FROM " . $table_prefix . "users
- WHERE user_level = 1";
- $db->sql_query($sql);
-
- //
- // Construct equivalence entries
- //
- $group_acl = array();
- $user_acl = array();
-
- foreach ($forum_access as $forum)
- {
- foreach($auth_map as $k => $v)
- {
- switch ($forum[$k])
- {
- case AUTH_ALL:
- $group_acl[$guest_id][$forum['forum_id']][$v] = ACL_ALLOW;
- $group_acl[$reg_inactive_id][$forum['forum_id']][$v] = ACL_ALLOW;
- $group_acl[$reg_id][$forum['forum_id']][$v] = ACL_ALLOW;
- break;
-
- case AUTH_REG:
- $group_acl[$reg_id][$forum['forum_id']][$v] = ACL_ALLOW;
- break;
-
- case AUTH_ACL:
- foreach($group_access as $forum_id => $access)
- {
- if ($forum_id == $forum['forum_id'])
- {
- if (!empty($access[$k]))
- {
- $group_acl[$access['group_id']][$forum['forum_id']][$v] = ACL_ALLOW;
- }
- }
- }
-
- foreach($user_access as $forum_id => $access)
- {
- if ($forum_id == $forum['forum_id'])
- {
- if (!empty($access[$k]))
- {
- $user_acl[$access['user_id']][$forum['forum_id']][$v] = ACL_ALLOW;
- }
- }
- }
- break;
-
- case AUTH_MOD:
- $group_acl[$super_mod_id][$forum['forum_id']][$v] = ACL_ALLOW;
-
- foreach($group_access as $forum_id => $access)
- {
- if ($forum_id == $forum['forum_id'])
- {
- if (!empty($access[$k]))
- {
- $group_acl[$access['group_id']][$forum['forum_id']][$v] = ACL_ALLOW;
- }
- }
- }
-
- foreach($user_access as $forum_id => $access)
- {
- if ($forum_id == $forum['forum_id'])
- {
- if (!empty($access[$k]))
- {
- $user_acl[$access['user_id']][$forum['forum_id']][$v] = ACL_ALLOW;
- }
- }
- }
- break;
- }
- }
- }
-
- //
- // First add admin access, phpBB 2.0.x stored admin info in the user_level
- // field. We'll pull all user_id's with ADMIN user_level and add them to the
- // auth_user table. By default all admin options (bar clear logs) are enabled
- //
- $sql_ary = array();
- $sql_ary[] = "INSERT INTO " . $table_prefix . "auth_groups (group_id, forum_id, auth_option_id, auth_allow_deny)
- SELECT $admin_id, 0, auth_option_id, " . ACL_ALLOW . "
- FROM " . $table_prefix . "auth_options
- WHERE auth_value LIKE 'admin_%'
- AND auth_value NOT LIKE 'admin_clearlogs'";
-
- $sql_ary[] = "INSERT INTO " . $table_prefix . "auth_groups (group_id, forum_id, auth_option_id, auth_allow_deny)
- SELECT $admin_id, 0, auth_option_id, " . ACL_PERMIT . "
- FROM " . $table_prefix . "auth_options
- WHERE auth_value LIKE 'forum_%'";
-
- $sql_ary[] = "INSERT INTO " . $table_prefix . "auth_groups (group_id, forum_id, auth_option_id, auth_allow_deny)
- SELECT $admin_id, 0, auth_option_id, " . ACL_PERMIT . "
- FROM " . $table_prefix . "auth_options
- WHERE auth_value LIKE 'mod_%'";
-
- //
- // Do Moderators
- //
- foreach($user_access as $forum_id => $access)
- {
- if (!empty($access['auth_mod']))
- {
- $sql_ary[] = "INSERT INTO " . $table_prefix . "auth_users (user_id, forum_id, auth_option_id, auth_allow_deny)
- SELECT " . $access['user_id'] . ", $forum_id, auth_option_id, " . ACL_ALLOW . "
- FROM " . $table_prefix . "auth_options
- WHERE auth_value LIKE 'mod_%'
- AND auth_value NOT LIKE 'mod_auth'";
- $sql_ary[] = "INSERT INTO " . $table_prefix . "auth_users (user_id, forum_id, auth_option_id, auth_allow_deny)
- SELECT " . $access['user_id'] . ", $forum_id, auth_option_id, " . ACL_PERMIT . "
- FROM " . $table_prefix . "auth_options
- WHERE auth_value LIKE 'forum_%'";
- }
- }
-
- foreach($group_access as $forum_id => $access)
- {
- if (!empty($access['auth_mod']))
- {
- $sql_ary[] = "INSERT INTO " . $table_prefix . "auth_groups (group_id, forum_id, auth_option_id, auth_allow_deny)
- SELECT " . $access['group_id'] . ", $forum_id, auth_option_id, " . ACL_ALLOW . "
- FROM " . $table_prefix . "auth_options
- WHERE auth_value LIKE 'mod_%'
- AND auth_value NOT LIKE 'mod_auth'";
- $sql_ary[] = "INSERT INTO " . $table_prefix . "auth_groups (group_id, forum_id, auth_option_id, auth_allow_deny)
- SELECT " . $access['group_id'] . ", $forum_id, auth_option_id, " . ACL_PERMIT . "
- FROM " . $table_prefix . "auth_options
- WHERE auth_value LIKE 'forum_%'";
- }
- }
-
- //
- // Rest of access list
- //
- foreach ($user_acl as $user_id => $user_acl_ary)
- {
- foreach ($user_acl_ary as $forum_id => $auth)
- {
- foreach ($auth as $auth_value => $allow)
- {
- $auth_option_id = $option_ids[$auth_value];
- $sql_ary[] = "INSERT INTO " . $table_prefix . "auth_users (user_id, forum_id, auth_option_id, auth_allow_deny) VALUES ($user_id, $forum_id, $auth_option_id, $allow)";
- }
- }
- }
-
- foreach ($group_acl as $group_id => $group_acl_ary)
- {
- foreach ($group_acl_ary as $forum_id => $auth)
- {
- foreach ($auth as $auth_value => $allow)
- {
- $auth_option_id = $option_ids[$auth_value];
- $sql_ary[] = "INSERT INTO " . $table_prefix . "auth_groups (group_id, forum_id, auth_option_id, auth_allow_deny) VALUES ($group_id, $forum_id, $auth_option_id, $allow)";
- }
- }
- }
-
- foreach ($sql_ary as $sql)
- {
- $db->sql_query($sql);
- }
-
- gen_str_ok();
-
- case '2.1.1 [20030221]':
-
- $sql_ary = array();
-
- gen_str_init('* Updating <b>post checksums</b>');
-
- $sql_ary[] = "UPDATE " . $table_prefix . "posts_text
- SET post_checksum = MD5(post_text)";
-
- foreach ($sql_ary as $sql)
- {
- $db->sql_query($sql);
- }
-
- gen_str_ok();
- gen_str_init('* Updating <b>forum post info</b>');
-
- $sql = "SELECT topic_id, MIN(post_id) AS first_post_id, MAX(post_id) AS last_post_id, COUNT(post_id) AS total_posts
- FROM {$table_prefix}posts
- GROUP BY topic_id";
- $result = $db->sql_query($sql);
-
- while ($row = $db->sql_fetchrow($result))
- {
- $sql = "UPDATE {$table_prefix}topics
- SET topic_first_post_id = " . $row['first_post_id'] . ", topic_last_post_id = " . $row['last_post_id'] . ", topic_replies = " . ($row['total_posts'] - 1) . "
- WHERE topic_id = " . $row['topic_id'];
- $db->sql_query($sql);
- }
- $db->sql_freeresult($result);
-
- switch (SQL_LAYER)
- {
- case 'oracle':
- $sql = "SELECT f.*, p.post_time, p.post_username, u.username, u.user_id
- FROM " . $table_prefix . "forums f, " . $table_prefix . "posts p, " . $table_prefix . "users u
- WHERE p.post_id = f.forum_last_post_id(+)
- AND u.user_id = p.poster_id(+)";
- break;
-
- default:
- $sql = "SELECT f.forum_id, p.post_time, p.post_username, u.username, u.user_id
- FROM ((" . $table_prefix . "forums f
- LEFT JOIN " . $table_prefix . "posts p ON p.post_id = f.forum_last_post_id)
- LEFT JOIN " . $table_prefix . "users u ON u.user_id = p.poster_id)";
- break;
- }
- $result = $db->sql_query($sql);
-
- $sql_ary = array();
- while ($row = $db->sql_fetchrow($result))
- {
- $forum_id = $row['forum_id'];
-
- $sql_ary[] = "UPDATE " . $table_prefix . "forums
- SET forum_last_poster_id = " . (($row['user_id'] != ANONYMOUS) ? $row['user_id'] : ANONYMOUS) . ", forum_last_poster_name = '" . (($row['user_id'] != ANONYMOUS) ? addslashes($row['username']) : addslashes($row['post_username'])) . "', forum_last_post_time = " . $row['post_time'] . "
- WHERE forum_id = $forum_id";
-
- $sql = "SELECT t.*, u.username, u.user_id, u2.username as user2, u2.user_id as id2, p.post_username, p2.post_username AS post_username2, p2.post_time
- FROM " . $table_prefix . "topics t, " . $table_prefix . "users u, " . $table_prefix . "posts p, " . $table_prefix . "posts p2, " . $table_prefix . "users u2
- WHERE t.forum_id = $forum_id
- AND u.user_id = t.topic_poster
- AND p.post_id = t.topic_first_post_id
- AND p2.post_id = t.topic_last_post_id
- AND u2.user_id = p2.poster_id";
- $result2 = $db->sql_query($sql);
-
- while ($row2 = $db->sql_fetchrow($result2))
- {
- $sql_ary[] = "UPDATE " . $table_prefix . "topics
- SET topic_poster = " . $row['user_id'] . ", topic_first_poster_name = '" . (($row2['user_id'] != ANONYMOUS && $row2['user_id']) ? addslashes($row2['username']) : addslashes($row2['post_username'])) . "', topic_last_poster_id = " . (($row2['id2'] != ANONYMOUS && $row2['id2']) ? $row2['id2'] : ANONYMOUS) . ", topic_last_post_time = " . $row2['post_time'] . ", topic_last_poster_name = '" . (($row2['id2'] != ANONYMOUS && $row2['id2']) ? addslashes($row2['user2']) : addslashes($row2['post_username2'])) . "'
- WHERE topic_id = " . $row2['topic_id'];
- }
- $db->sql_freeresult($result2);
-
- unset($row2);
- }
- $db->sql_freeresult($result);
-
- foreach ($sql_ary as $sql)
- {
- echo $sql . "<br />";
- $db->sql_query($sql);
- }
-
- gen_str_ok();
-
- case '2.1.0 [20020817]':
-
-// $sql = "INSERT INTO phpbb_config (config_name, config_value)
-// VALUES ('ip_check', '4')";
-// $db->sql_query($sql);
- break;
-
- default;
- print "<span class=\"updtext\">* No updates needed</span><br />\n";
-}
-
-$sql = "UPDATE " . $table_prefix . "config
- SET config_value = '$version'
- WHERE config_name = 'version'";
-$result = $db->sql_query($sql);
-
-?>
-
-<br clear="all" />
-
-<span class="updtext">* Update completed to version <?php echo $version; ?></span>
-
-<br clear="all" /><br />
-
-<?php
-
-page_footer();
-exit;
-
-//
-// END MAIN PROG
-//
-
-// ---------------
-// Begin functions
-//
-
-//
-// Decode encoded IPs
-//
-function decode_ip($int_ip)
-{
- $hexipbang = explode('.', chunk_split($int_ip, 2, '.'));
- return hexdec($hexipbang[0]). '.' . hexdec($hexipbang[1]) . '.' . hexdec($hexipbang[2]) . '.' . hexdec($hexipbang[3]);
-}
-
-//
-// Common page header
-//
-function page_header()
-{
-
-?>
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-15">
-<meta http-equiv="Content-Style-Type" content="text/css">
-<link rel="stylesheet" href="../adm/subSilver.css" type="text/css">
-<style type="text/css">
-<!--
-th { background-image: url('../adm/images/cellpic3.gif') }
-td.cat { background-image: url('../adm/images/cellpic1.gif') }
-
-h1 { margin-left:15px }
-
-.ok { font-family: 'Courier New',courier; color:green; font-size:10pt }
-.skip { font-family: 'Courier New',courier; color:blue; font-size:10pt }
-.updtext { font-family: 'Courier New', courier; font-size:10pt;margin-left:25px}
-
-//-->
-</style>
-<title>Update Script</title>
-</head>
-<body>
-
-<a name="top"></a>
-
-<table width="100%" cellspacing="0" cellpadding="0" border="0">
- <tr>
- <td><img src="../adm/images/header_left.jpg" width="200" height="60" alt="phpBB Logo" title="phpBB Logo" border="0"/></td>
- <td width="100%" background="../adm/images/header_bg.jpg" height="60" align="right" nowrap="nowrap"><span class="maintitle">Update Script</span> &nbsp; &nbsp; &nbsp;</td>
- </tr>
-</table>
-
-<br clear="all" /><br />
-
-<?
- return;
-}
-
-//
-// Common page footer
-//
-function page_footer()
-{
-?>
-
-<div align="center"><span class="copyright">Powered by phpBB &copy; 2002 <a href="http://www.phpbb.com/" target="_phpbb" class="copyright">phpBB Group</a></span></div>
-
-<br clear="all" />
-
-</body>
-</html>
-<?
- return;
-}
-
-function gen_str_init($str)
-{
- print '<span class="updtext">' . str_pad($str . ' ', 60, '.') . ' </span>';
- flush();
-}
-
-function gen_str_ok()
-{
- print "<span class=\"ok\"><b>OK</b></span><br />\n";
- flush();
-}
-
-function gen_str_skip()
-{
- print "<span class=\"skip\"><b>SKIPPED</b></span><br />\n";
- flush();
-}
-
-//
-//
-//
-function get_schema()
-{
- global $table_prefix, $dbms;
-
- $schemafile = file('schemas/mysql_schema.sql');
- $tabledata = 0;
-
- for($i=0; $i < count($schemafile); $i++)
- {
- $line = $schemafile[$i];
-
- if (preg_match('/^CREATE TABLE (\w+)/i', $line, $matches))
- {
- // Start of a new table definition, set some variables and go to the next line.
- $tabledata = 1;
- // Replace the 'phpbb_' prefix by the user defined prefix.
- $table = str_replace('phpbb_', $table_prefix, $matches[1]);
- $table_def[$table] = "CREATE TABLE $table (\n";
- continue;
- }
-
- if (preg_match('/^\);/', $line))
- {
- // End of the table definition
- // After this we will skip everything until the next 'CREATE' line
- $tabledata = 0;
- $table_def[$table] .= ')'; // We don't need the closing semicolon
- }
-
- if ($tabledata == 1)
- {
- // We are inside a table definition, parse this line.
- // Add the current line to the complete table definition:
- $table_def[$table] .= $line;
- if (preg_match('/^\s*(\w+)\s+(\w+)\(([\d,]+)\)(.*)$/', $line, $matches))
- {
- // This is a column definition
- $field = $matches[1];
- $type = $matches[2];
- $size = $matches[3];
-
- preg_match('/DEFAULT (NULL|\'.*?\')[,\s](.*)$/i', $matches[4], $match);
- $default = $match[1];
-
- $notnull = (preg_match('/NOT NULL/i', $matches[4])) ? 1 : 0;
- $auto_increment = (preg_match('/auto_increment/i', $matches[4])) ? 1 : 0;
-
- $field_def[$table][$field] = array(
- 'type' => $type,
- 'size' => $size,
- 'default' => $default,
- 'notnull' => $notnull,
- 'auto_increment' => $auto_increment
- );
- }
-
- if (preg_match('/\s*PRIMARY\s+KEY\s*\((.*)\).*/', $line, $matches))
- {
- // Primary key
- $key_def[$table]['PRIMARY'] = $matches[1];
- }
- else if (preg_match('/\s*KEY\s+(\w+)\s*\((.*)\)/', $line, $matches))
- {
- // Normal key
- $key_def[$table][$matches[1]] = $matches[2];
- }
- else if (preg_match('/^\s*(\w+)\s*(.*?),?\s*$/', $line, $matches))
- {
- // Column definition
- $create_def[$table][$matches[1]] = $matches[2];
- }
- else
- {
- // It's a bird! It's a plane! It's something we didn't expect ;(
- }
- }
- }
-
- $schema['field_def'] = $field_def;
- $schema['table_def'] = $table_def;
- $schema['create_def'] = $create_def;
- $schema['key_def'] = $key_def;
-
- return $schema;
-}
-
-//
-//
-//
-function get_inserts()
-{
- global $table_prefix, $dbms;
-
- $insertfile = file('schemas/mysql_basic.sql');
-
- for($i = 0; $i < count($insertfile); $i++)
- {
- if (preg_match('/(INSERT INTO (\w+)\s.*);/i', str_replace('phpbb_', $table_prefix, $insertfile[$i]), $matches))
- {
- $returnvalue[$matches[2]][] = $matches[1];
- }
- }
-
- return $returnvalue;
-}
-//
-// End functions
-// -------------
-
-?> \ No newline at end of file