phpBB
Statistics
| Revision:

root / tags / release_2_0_2 / phpBB / update_to_202.php

History | View | Annotate | Download (28.8 kB)

1 2796 dougk_ff7
<?php
2 2796 dougk_ff7
/***************************************************************************
3 2796 dougk_ff7
 *                             update_to_xxx.php
4 2796 dougk_ff7
 *                            -------------------
5 2796 dougk_ff7
 *   begin                : Wednesday, May 16, 2002
6 2796 dougk_ff7
 *   copyright            : (C) 2001 The phpBB Group
7 2796 dougk_ff7
 *   email                : support@phpbb.com
8 2796 dougk_ff7
 *
9 2796 dougk_ff7
 *   $Id$
10 2796 dougk_ff7
 *
11 2796 dougk_ff7
 ***************************************************************************/
12 2796 dougk_ff7
13 2796 dougk_ff7
/***************************************************************************
14 2796 dougk_ff7
 *
15 2796 dougk_ff7
 *   This program is free software; you can redistribute it and/or modify
16 2796 dougk_ff7
 *   it under the terms of the GNU General Public License as published by
17 2796 dougk_ff7
 *   the Free Software Foundation; either version 2 of the License, or
18 2796 dougk_ff7
 *   (at your option) any later version.
19 2796 dougk_ff7
 *
20 2796 dougk_ff7
 ***************************************************************************/
21 2796 dougk_ff7
22 2796 dougk_ff7
function _sql($sql, &$errored, &$error_ary, $echo_dot = true)
23 2796 dougk_ff7
{
24 2796 dougk_ff7
        global $db;
25 2796 dougk_ff7
26 2796 dougk_ff7
        if( !($result = $db->sql_query($sql)) )
27 2796 dougk_ff7
        {
28 2796 dougk_ff7
                $errored = true;
29 2796 dougk_ff7
                $error_ary['sql'][] = ( is_array($sql) ) ? $sql[$i] : $sql;
30 2796 dougk_ff7
                $error_ary['error_code'][] = $db->sql_error();
31 2796 dougk_ff7
        }
32 2796 dougk_ff7
33 2796 dougk_ff7
        if ( $echo_dot )
34 2796 dougk_ff7
        {
35 2796 dougk_ff7
                echo ".";
36 2796 dougk_ff7
                flush();
37 2796 dougk_ff7
        }
38 2796 dougk_ff7
39 2796 dougk_ff7
        return $result;
40 2796 dougk_ff7
}
41 2796 dougk_ff7
42 2796 dougk_ff7
define('IN_PHPBB', 1);
43 2796 dougk_ff7
$phpbb_root_path = './';
44 2796 dougk_ff7
include($phpbb_root_path . 'extension.inc');
45 2796 dougk_ff7
include($phpbb_root_path . 'config.'.$phpEx);
46 2796 dougk_ff7
include($phpbb_root_path . 'includes/constants.'.$phpEx);
47 2796 dougk_ff7
include($phpbb_root_path . 'includes/functions.'.$phpEx);
48 2796 dougk_ff7
include($phpbb_root_path . 'includes/functions_admin.'.$phpEx);
49 2796 dougk_ff7
include($phpbb_root_path . 'includes/db.'.$phpEx);
50 2796 dougk_ff7
51 2796 dougk_ff7
//
52 2796 dougk_ff7
//
53 2796 dougk_ff7
//
54 2796 dougk_ff7
$updates_to_version = ".0.2";
55 2796 dougk_ff7
//
56 2796 dougk_ff7
//
57 2796 dougk_ff7
//
58 2796 dougk_ff7
59 2796 dougk_ff7
?>
60 2796 dougk_ff7
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
61 2796 dougk_ff7
<html>
62 2796 dougk_ff7
<head>
63 2796 dougk_ff7
<meta http-equiv="Content-Type" content="text/html;">
64 2796 dougk_ff7
<meta http-equiv="Content-Style-Type" content="text/css">
65 2796 dougk_ff7
<style type="text/css">
66 2796 dougk_ff7
<!--
67 2796 dougk_ff7
68 2796 dougk_ff7
font,th,td,p,body { font-family: "Courier New", courier; font-size: 11pt }
69 2796 dougk_ff7
70 2796 dougk_ff7
a:link,a:active,a:visited { color : #006699; }
71 2796 dougk_ff7
a:hover                { text-decoration: underline; color : #DD6900;}
72 2796 dougk_ff7
73 2796 dougk_ff7
hr        { height: 0px; border: solid #D1D7DC 0px; border-top-width: 1px;}
74 2796 dougk_ff7
75 2796 dougk_ff7
.maintitle,h1,h2        {font-weight: bold; font-size: 22px; font-family: "Trebuchet MS",Verdana, Arial, Helvetica, sans-serif; text-decoration: none; line-height : 120%; color : #000000;}
76 2796 dougk_ff7
77 2796 dougk_ff7
.ok {color:green}
78 2796 dougk_ff7
79 2796 dougk_ff7
/* Import the fancy styles for IE only (NS4.x doesn't use the @import function) */
80 2796 dougk_ff7
@import url("templates/subSilver/formIE.css");
81 2796 dougk_ff7
-->
82 2796 dougk_ff7
</style>
83 2796 dougk_ff7
</head>
84 2796 dougk_ff7
<body bgcolor="#FFFFFF" text="#000000" link="#006699" vlink="#5584AA">
85 2796 dougk_ff7
86 2796 dougk_ff7
<table width="100%" border="0" cellspacing="0" cellpadding="10" align="center">
87 2796 dougk_ff7
        <tr>
88 2796 dougk_ff7
                <td><table width="100%" border="0" cellspacing="0" cellpadding="0">
89 2796 dougk_ff7
                        <tr>
90 2796 dougk_ff7
                                <td><img src="templates/subSilver/images/logo_phpBB.gif" border="0" alt="Forum Home" vspace="1" /></td>
91 2796 dougk_ff7
                                <td align="center" width="100%" valign="middle"><span class="maintitle">Updating to latest stable  release</span></td>
92 2796 dougk_ff7
                        </tr>
93 2796 dougk_ff7
                </table></td>
94 2796 dougk_ff7
        </tr>
95 2796 dougk_ff7
</table>
96 2796 dougk_ff7
97 2796 dougk_ff7
<br clear="all" />
98 2796 dougk_ff7
99 2796 dougk_ff7
<h2>Information</h2>
100 2796 dougk_ff7
101 2796 dougk_ff7
<?php
102 2796 dougk_ff7
103 2796 dougk_ff7
echo '<p>Database type &nbsp; &nbsp;:: <b>' . SQL_LAYER . '</b><br />';
104 2796 dougk_ff7
105 2796 dougk_ff7
$sql = "SELECT config_value
106 2796 dougk_ff7
        FROM " . CONFIG_TABLE . "
107 2796 dougk_ff7
        WHERE config_name = 'version'";
108 2796 dougk_ff7
if ( !($result = $db->sql_query($sql)) )
109 2796 dougk_ff7
{
110 2796 dougk_ff7
        die("Couldn't obtain version info");
111 2796 dougk_ff7
}
112 2796 dougk_ff7
113 2796 dougk_ff7
$row = $db->sql_fetchrow($result);
114 2796 dougk_ff7
115 2796 dougk_ff7
$sql = array();
116 2796 dougk_ff7
117 2796 dougk_ff7
switch ( $row['config_value'] )
118 2796 dougk_ff7
{
119 2796 dougk_ff7
        case '':
120 2796 dougk_ff7
                echo 'Previous version :: <b>&lt; RC-3</b></p><br />';
121 2796 dougk_ff7
                break;
122 2796 dougk_ff7
        case 'RC-3':
123 2796 dougk_ff7
                echo 'Previous version :: <b>RC-3</b></p><br />';
124 2796 dougk_ff7
                break;
125 2796 dougk_ff7
        case 'RC-4':
126 2796 dougk_ff7
                echo 'Previous version :: <b>RC-4</b></p><br />';
127 2796 dougk_ff7
                break;
128 2796 dougk_ff7
        default:
129 2796 dougk_ff7
                echo 'Previous version :: <b>2' . $row['config_value'] . '</b><br />';
130 2796 dougk_ff7
                break;
131 2796 dougk_ff7
}
132 2796 dougk_ff7
133 2796 dougk_ff7
echo 'Updated version &nbsp;:: <b>2' . $updates_to_version . '</b></p>' ."\n";
134 2796 dougk_ff7
135 2796 dougk_ff7
switch ( $row['config_value'] )
136 2796 dougk_ff7
{
137 2796 dougk_ff7
        case '':
138 2796 dougk_ff7
                switch ( SQL_LAYER )
139 2796 dougk_ff7
                {
140 2796 dougk_ff7
                        case 'mysql':
141 2796 dougk_ff7
                        case 'mysql4':
142 2796 dougk_ff7
                                $sql[] = "ALTER TABLE " . USERS_TABLE . " DROP
143 2796 dougk_ff7
                                        COLUMN user_autologin_key";
144 2796 dougk_ff7
145 2796 dougk_ff7
                                $sql[] = "ALTER TABLE " . RANKS_TABLE . " DROP
146 2796 dougk_ff7
                                        COLUMN rank_max";
147 2796 dougk_ff7
148 2796 dougk_ff7
                                $sql[] = "ALTER TABLE " . USERS_TABLE . "
149 2796 dougk_ff7
                                        ADD COLUMN user_session_time int(11) DEFAULT '0' NOT NULL,
150 2796 dougk_ff7
                                        ADD COLUMN user_session_page smallint(5) DEFAULT '0' NOT NULL,
151 2796 dougk_ff7
                                        ADD INDEX (user_session_time)";
152 2796 dougk_ff7
                                $sql[] = "ALTER TABLE " . SEARCH_TABLE . "
153 2796 dougk_ff7
                                        MODIFY search_id int(11) NOT NULL";
154 2796 dougk_ff7
155 2796 dougk_ff7
                                $sql[] = "ALTER TABLE " . TOPICS_TABLE . "
156 2796 dougk_ff7
                                        MODIFY topic_moved_id mediumint(8) UNSIGNED DEFAULT '0' NOT NULL,
157 2796 dougk_ff7
                                        ADD COLUMN topic_first_post_id mediumint(8) UNSIGNED DEFAULT '0' NOT NULL,
158 2796 dougk_ff7
                                        ADD INDEX (topic_first_post_id)";
159 2796 dougk_ff7
160 2796 dougk_ff7
                                $sql[] = "ALTER TABLE " . THEMES_NAME_TABLE . "
161 2796 dougk_ff7
                                        ADD COLUMN tr_class1_name varchar(50) NULL,
162 2796 dougk_ff7
                                        ADD COLUMN tr_class2_name varchar(50) NULL,
163 2796 dougk_ff7
                                        ADD COLUMN tr_class3_name varchar(50) NULL,
164 2796 dougk_ff7
                                        ADD COLUMN th_class1_name varchar(50) NULL,
165 2796 dougk_ff7
                                        ADD COLUMN th_class2_name varchar(50) NULL,
166 2796 dougk_ff7
                                        ADD COLUMN th_class3_name varchar(50) NULL,
167 2796 dougk_ff7
                                        ADD COLUMN td_class1_name varchar(50) NULL,
168 2796 dougk_ff7
                                        ADD COLUMN td_class2_name varchar(50) NULL,
169 2796 dougk_ff7
                                        ADD COLUMN td_class3_name varchar(50) NULL,
170 2796 dougk_ff7
                                        ADD COLUMN span_class1_name varchar(50) NULL,
171 2796 dougk_ff7
                                        ADD COLUMN span_class2_name varchar(50) NULL,
172 2796 dougk_ff7
                                        ADD COLUMN span_class3_name varchar(50) NULL";
173 2796 dougk_ff7
                                break;
174 2796 dougk_ff7
                        case 'postgresql':
175 2796 dougk_ff7
                                $sql[] = "ALTER TABLE " . USERS_TABLE . "
176 2796 dougk_ff7
                                        ADD COLUMN user_session_time int4";
177 2796 dougk_ff7
                                $sql[] = "ALTER TABLE " . USERS_TABLE . "
178 2796 dougk_ff7
                                        ADD COLUMN user_session_page int2";
179 2796 dougk_ff7
                                $sql[] = "ALTER TABLE " . USERS_TABLE . "
180 2796 dougk_ff7
                                        ALTER COLUMN user_session_time SET DEFAULT '0'";
181 2796 dougk_ff7
                                $sql[] = "ALTER TABLE " . USERS_TABLE . "
182 2796 dougk_ff7
                                        ALTER COLUMN user_session_page SET DEFAULT '0'";
183 2796 dougk_ff7
                                $sql[] = "CREATE INDEX user_session_time_" . $table_prefix . "users_index
184 2796 dougk_ff7
                                        ON " . USERS_TABLE . " (user_session_time)";
185 2796 dougk_ff7
186 2796 dougk_ff7
                                $sql[] = "ALTER TABLE " . TOPICS_TABLE . "
187 2796 dougk_ff7
                                        ADD COLUMN topic_first_post_id int4";
188 2796 dougk_ff7
                                $sql[] = "CREATE INDEX topic_first_post_id_" . $table_prefix . "topics_index
189 2796 dougk_ff7
                                        ON " . TOPICS_TABLE . " (topic_first_post_id)";
190 2796 dougk_ff7
191 2796 dougk_ff7
                                $sql[] = "ALTER TABLE " . THEMES_NAME_TABLE . "
192 2796 dougk_ff7
                                        ADD COLUMN tr_class1_name varchar(50) NULL";
193 2796 dougk_ff7
                                $sql[] = "ALTER TABLE " . THEMES_NAME_TABLE . "
194 2796 dougk_ff7
                                        ADD COLUMN tr_class2_name varchar(50) NULL";
195 2796 dougk_ff7
                                $sql[] = "ALTER TABLE " . THEMES_NAME_TABLE . "
196 2796 dougk_ff7
                                        ADD COLUMN tr_class3_name varchar(50) NULL";
197 2796 dougk_ff7
                                $sql[] = "ALTER TABLE " . THEMES_NAME_TABLE . "
198 2796 dougk_ff7
                                        ADD COLUMN th_class1_name varchar(50) NULL";
199 2796 dougk_ff7
                                $sql[] = "ALTER TABLE " . THEMES_NAME_TABLE . "
200 2796 dougk_ff7
                                        ADD COLUMN th_class2_name varchar(50) NULL";
201 2796 dougk_ff7
                                $sql[] = "ALTER TABLE " . THEMES_NAME_TABLE . "
202 2796 dougk_ff7
                                        ADD COLUMN th_class3_name varchar(50) NULL";
203 2796 dougk_ff7
                                $sql[] = "ALTER TABLE " . THEMES_NAME_TABLE . "
204 2796 dougk_ff7
                                        ADD COLUMN td_class1_name varchar(50) NULL";
205 2796 dougk_ff7
                                $sql[] = "ALTER TABLE " . THEMES_NAME_TABLE . "
206 2796 dougk_ff7
                                        ADD COLUMN td_class2_name varchar(50) NULL";
207 2796 dougk_ff7
                                $sql[] = "ALTER TABLE " . THEMES_NAME_TABLE . "
208 2796 dougk_ff7
                                        ADD COLUMN td_class3_name varchar(50) NULL";
209 2796 dougk_ff7
                                $sql[] = "ALTER TABLE " . THEMES_NAME_TABLE . "
210 2796 dougk_ff7
                                        ADD COLUMN span_class1_name varchar(50) NULL";
211 2796 dougk_ff7
                                $sql[] = "ALTER TABLE " . THEMES_NAME_TABLE . "
212 2796 dougk_ff7
                                        ADD COLUMN span_class2_name varchar(50) NULL";
213 2796 dougk_ff7
                                $sql[] = "ALTER TABLE " . THEMES_NAME_TABLE . "
214 2796 dougk_ff7
                                        ADD COLUMN span_class3_name varchar(50) NULL";
215 2796 dougk_ff7
                                break;
216 2796 dougk_ff7
217 2796 dougk_ff7
                        case 'mssql-odbc':
218 2796 dougk_ff7
                        case 'mssql':
219 2796 dougk_ff7
                                $sql[] = "ALTER TABLE " . USERS_TABLE . " DROP
220 2796 dougk_ff7
                                        COLUMN user_autologin_key";
221 2796 dougk_ff7
222 2796 dougk_ff7
                                $sql[] = "ALTER TABLE " . USERS_TABLE . " ADD
223 2796 dougk_ff7
                                        user_session_time int NOT NULL,
224 2796 dougk_ff7
                                        user_session_page smallint NOT NULL,
225 2796 dougk_ff7
                                        CONSTRAINT [DF_" . $table_prefix . "users_user_session_time] DEFAULT (0) FOR [user_session_time],
226 2796 dougk_ff7
                                        CONSTRAINT [DF_" . $table_prefix . "users_user_session_page] DEFAULT (0) FOR [user_session_page]";
227 2796 dougk_ff7
                                $sql[] = "CREATE INDEX [IX_" . $table_prefix . "users]
228 2796 dougk_ff7
                                        ON [" . USERS_TABLE . "]([user_session_time]) ON [PRIMARY]";
229 2796 dougk_ff7
230 2796 dougk_ff7
                                /* ---------------------------------------------------------------------
231 2796 dougk_ff7
                                        DROP FORUM TABLE -- if this may cause you problems you can safely
232 2796 dougk_ff7
                                        comment it out, remember to manually remove the IDENTITY setting on
233 2796 dougk_ff7
                                        the forum_id column
234 2796 dougk_ff7
                                   --------------------------------------------------------------------- */
235 2796 dougk_ff7
                                $sql [] = "ALTER TABLE " . FORUMS_TABLE . " DROP
236 2796 dougk_ff7
                                        CONSTRAINT [DF_" . $table_prefix . "forums_forum_posts],
237 2796 dougk_ff7
                                        CONSTRAINT [DF_" . $table_prefix . "forums_forum_topics],
238 2796 dougk_ff7
                                        CONSTRAINT [DF_" . $table_prefix . "forums_forum_last_post_id],
239 2796 dougk_ff7
                                        CONSTRAINT [DF_" . $table_prefix . "forums_prune_enable],
240 2796 dougk_ff7
                                        CONSTRAINT [DF_" . $table_prefix . "forums_auth_view],
241 2796 dougk_ff7
                                        CONSTRAINT [DF_" . $table_prefix . "forums_auth_read],
242 2796 dougk_ff7
                                        CONSTRAINT [DF_" . $table_prefix . "forums_auth_post],
243 2796 dougk_ff7
                                        CONSTRAINT [DF_" . $table_prefix . "forums_auth_reply],
244 2796 dougk_ff7
                                        CONSTRAINT [DF_" . $table_prefix . "forums_auth_edit],
245 2796 dougk_ff7
                                        CONSTRAINT [DF_" . $table_prefix . "forums_auth_delete],
246 2796 dougk_ff7
                                        CONSTRAINT [DF_" . $table_prefix . "forums_auth_sticky],
247 2796 dougk_ff7
                                        CONSTRAINT [DF_" . $table_prefix . "forums_auth_announce],
248 2796 dougk_ff7
                                        CONSTRAINT [DF_" . $table_prefix . "forums_auth_vote],
249 2796 dougk_ff7
                                        CONSTRAINT [DF_" . $table_prefix . "forums_auth_pollcreate],
250 2796 dougk_ff7
                                        CONSTRAINT [DF_" . $table_prefix . "forums_auth_attachments]";
251 2796 dougk_ff7
                                $sql[] = "CREATE TABLE Tmp_" . FORUMS_TABLE . "
252 2796 dougk_ff7
                                        (forum_id int NOT NULL, cat_id int NOT NULL, forum_name varchar(100) NOT NULL, forum_desc varchar(255) NULL, forum_status smallint NOT NULL, forum_order int NOT NULL, forum_posts int NOT NULL, forum_topics smallint NOT NULL, forum_last_post_id int NOT NULL, prune_next int NULL, prune_enable smallint NOT NULL, auth_view smallint NOT NULL, auth_read smallint NOT NULL, auth_post smallint NOT NULL, auth_reply smallint NOT NULL, auth_edit smallint NOT NULL, auth_delete smallint NOT NULL,        auth_sticky smallint NOT NULL, auth_announce smallint NOT NULL, auth_vote smallint NOT NULL, auth_pollcreate smallint NOT NULL, auth_attachments smallint NOT NULL) ON [PRIMARY]";
253 2796 dougk_ff7
                                $sql[] = "ALTER TABLE [Tmp_" . FORUMS_TABLE . "] WITH NOCHECK ADD
254 2796 dougk_ff7
                                        CONSTRAINT [DF_" . $table_prefix . "forums_forum_posts] DEFAULT (0) FOR [forum_posts],
255 2796 dougk_ff7
                                        CONSTRAINT [DF_" . $table_prefix . "forums_forum_topics] DEFAULT (0) FOR [forum_topics],
256 2796 dougk_ff7
                                        CONSTRAINT [DF_" . $table_prefix . "forums_forum_last_post_id] DEFAULT (0) FOR [forum_last_post_id],
257 2796 dougk_ff7
                                        CONSTRAINT [DF_" . $table_prefix . "forums_prune_enable] DEFAULT (0) FOR [prune_enable],
258 2796 dougk_ff7
                                        CONSTRAINT [DF_" . $table_prefix . "forums_auth_view] DEFAULT (0) FOR [auth_view],
259 2796 dougk_ff7
                                        CONSTRAINT [DF_" . $table_prefix . "forums_auth_read] DEFAULT (0) FOR [auth_read],
260 2796 dougk_ff7
                                        CONSTRAINT [DF_" . $table_prefix . "forums_auth_post] DEFAULT (0) FOR [auth_post],
261 2796 dougk_ff7
                                        CONSTRAINT [DF_" . $table_prefix . "forums_auth_reply] DEFAULT (0) FOR [auth_reply],
262 2796 dougk_ff7
                                        CONSTRAINT [DF_" . $table_prefix . "forums_auth_edit] DEFAULT (0) FOR [auth_edit],
263 2796 dougk_ff7
                                        CONSTRAINT [DF_" . $table_prefix . "forums_auth_delete] DEFAULT (0) FOR [auth_delete],
264 2796 dougk_ff7
                                        CONSTRAINT [DF_" . $table_prefix . "forums_auth_sticky] DEFAULT (0) FOR [auth_sticky],
265 2796 dougk_ff7
                                        CONSTRAINT [DF_" . $table_prefix . "forums_auth_announce] DEFAULT (0) FOR [auth_announce],
266 2796 dougk_ff7
                                        CONSTRAINT [DF_" . $table_prefix . "forums_auth_vote] DEFAULT (0) FOR [auth_vote],
267 2796 dougk_ff7
                                        CONSTRAINT [DF_" . $table_prefix . "forums_auth_pollcreate] DEFAULT (0) FOR [auth_pollcreate],
268 2796 dougk_ff7
                                        CONSTRAINT [DF_" . $table_prefix . "forums_auth_attachments] DEFAULT (0) FOR [auth_attachments]";
269 2796 dougk_ff7
                                $sql[] = "INSERT INTO Tmp_" . FORUMS_TABLE . " (forum_id, cat_id, forum_name, forum_desc, forum_status, forum_order, forum_posts, forum_topics, forum_last_post_id, prune_next, prune_enable, auth_view, auth_read, auth_post, auth_reply, auth_edit, auth_delete, auth_sticky, auth_announce, auth_vote, auth_pollcreate, auth_attachments)
270 2796 dougk_ff7
                                                SELECT forum_id, cat_id, forum_name, forum_desc, forum_status, forum_order, forum_posts, forum_topics, forum_last_post_id, prune_next, prune_enable, auth_view, auth_read, auth_post, auth_reply, auth_edit, auth_delete, auth_sticky, auth_announce, auth_vote, auth_pollcreate, auth_attachments FROM " . FORUMS_TABLE . " TABLOCKX";
271 2796 dougk_ff7
                                $sql[] = "DROP TABLE " . FORUMS_TABLE;
272 2796 dougk_ff7
                                $sql[] = "EXECUTE sp_rename N'Tmp_" . FORUMS_TABLE . "', N'" . FORUMS_TABLE . "', 'OBJECT'";
273 2796 dougk_ff7
                                $sql[] = "ALTER TABLE " . FORUMS_TABLE . " ADD
274 2796 dougk_ff7
                                        CONSTRAINT [PK_" . $table_prefix . "forums] PRIMARY KEY CLUSTERED (forum_id) ON [PRIMARY]";
275 2796 dougk_ff7
                                $sql[] = "CREATE NONCLUSTERED INDEX [IX_" . $table_prefix . "forums]
276 2796 dougk_ff7
                                        ON " . FORUMS_TABLE . " (cat_id, forum_order, forum_last_post_id) ON [PRIMARY]";
277 2796 dougk_ff7
                                /* --------------------------------------------------------------
278 2796 dougk_ff7
                                        END OF DROP FORUM -- don't remove anything after this point!
279 2796 dougk_ff7
                                   -------------------------------------------------------------- */
280 2796 dougk_ff7
281 2796 dougk_ff7
                                /* ---------------------------------------------------------------------
282 2796 dougk_ff7
                                        DROP GROUP TABLE -- if this may cause you problems you can safely
283 2796 dougk_ff7
                                        comment it out, remember to manually add the IDENTITY setting on
284 2796 dougk_ff7
                                        the group_id column
285 2796 dougk_ff7
                                   --------------------------------------------------------------------- */
286 2796 dougk_ff7
                                $sql[] = "CREATE TABLE Tmp_" . GROUPS_TABLE . "
287 2796 dougk_ff7
                                        (group_id int IDENTITY (1, 1) NOT NULL, group_type smallint NULL, group_name varchar(50) NOT NULL, group_description varchar(255) NOT NULL, group_moderator int NULL, group_single_user smallint NOT NULL) ON [PRIMARY]";
288 2796 dougk_ff7
                                $sql[] = "INSERT INTO Tmp_" . GROPUS_TABLE . " (group_id, group_type, group_name, group_description, group_moderator, group_single_user)
289 2796 dougk_ff7
                                                SELECT group_id, group_type, group_name, group_description, group_moderator, group_signle_user FROM " . GROUPS_TABLE . " TABLOCKX";
290 2796 dougk_ff7
                                $sql[] = "DROP TABLE " . GROUPS_TABLE;
291 2796 dougk_ff7
                                $sql[] = "EXECUTE sp_rename N'Tmp_" . GROUPS_TABLE . "', N'" . GROUPS_TABLE . "', 'OBJECT'";
292 2796 dougk_ff7
                                $sql[] = "ALTER TABLE " . GROUPS_TABLE . " ADD
293 2796 dougk_ff7
                                        CONSTRAINT [PK_" . $table_prefix . "groups] PRIMARY KEY CLUSTERED (group_id) ON [PRIMARY]";
294 2796 dougk_ff7
                                $sql[] = "CREATE INDEX [IX_" . $table_prefix . "groups]
295 2796 dougk_ff7
                                        ON " . GROUPS_TABLE . " (group_single_user) ON [PRIMARY]";
296 2796 dougk_ff7
                                /* --------------------------------------------------------------
297 2796 dougk_ff7
                                        END OF DROP GROUP -- don't remove anything after this point!
298 2796 dougk_ff7
                                   -------------------------------------------------------------- */
299 2796 dougk_ff7
300 2796 dougk_ff7
                                $sql[] = "DROP INDEX " . RANKS_TABLE . ".IX_" . $table_prefix . "ranks";
301 2796 dougk_ff7
                                $sql[] = "ALTER TABLE " . RANKS_TABLE . " DROP
302 2796 dougk_ff7
                                        COLUMN rank_max";
303 2796 dougk_ff7
                                $sql[] = "CREATE  INDEX [IX_" . $table_prefix . "ranks]
304 2796 dougk_ff7
                                        ON [" . RANKS_TABLE . "]([rank_min], [rank_special]) ON [PRIMARY]";
305 2796 dougk_ff7
306 2796 dougk_ff7
                                $sql[] = "DROP INDEX " . TOPICS_TABLE . ".IX_" . $table_prefix . "topics";
307 2796 dougk_ff7
                                $sql[] = "ALTER TABLE " . TOPICS_TABLE . " ADD
308 2796 dougk_ff7
                                        topic_first_post_id int NULL,
309 2796 dougk_ff7
                                        CONSTRAINT [DF_" . $table_prefix . "topics_topic_first_post_id] FOR [topic_first_post_id]";
310 2796 dougk_ff7
                                $sql[] = "CREATE  INDEX [IX_" . $table_prefix . "topics]
311 2796 dougk_ff7
                                        ON [" . TOPICS_TABLE . "]([forum_id], [topic_type], [topic_first_post_id], [topic_last_post_id]) ON [PRIMARY]";
312 2796 dougk_ff7
313 2796 dougk_ff7
                                $sql[] = "ALTER TABLE " . SEARCH_WORD_TABLE . " DROP
314 2796 dougk_ff7
                                        CONSTRAINT [PK_" . $table_prefix . "search_wordlist]";
315 2796 dougk_ff7
                                $sql[] = "CREATE UNIQUE INDEX [IX_" . $table_prefix . "search_wordlist]
316 2796 dougk_ff7
                                        ON [" . SEARCH_WORD_TABLE . "]([word_text]) WITH IGNORE_DUP_KEY ON [PRIMARY]";
317 2796 dougk_ff7
                                $sql[] = "CREATE  INDEX [IX_" . $table_prefix . "search_wordlist_1]
318 2796 dougk_ff7
                                        ON [" . SEARCH_WORD_TABLE . "]([word_common]) ON [PRIMARY]";
319 2796 dougk_ff7
320 2796 dougk_ff7
                                $sql[] = "CREATE INDEX [IX_" . $table_prefix . "search_wordmatch_1]
321 2796 dougk_ff7
                                        ON [" . SEARCH_MATCH_TABLE . "]([word_id]) ON [PRIMARY]";
322 2796 dougk_ff7
323 2796 dougk_ff7
                                $sql[] = "ALTER TABLE " . THEMES_NAME_TABLE . " ADD
324 2796 dougk_ff7
                                        tr_class1_name varchar(50) NULL,
325 2796 dougk_ff7
                                        tr_class2_name varchar(50) NULL,
326 2796 dougk_ff7
                                        tr_class3_name varchar(50) NULL,
327 2796 dougk_ff7
                                        th_class1_name varchar(50) NULL,
328 2796 dougk_ff7
                                        th_class2_name varchar(50) NULL,
329 2796 dougk_ff7
                                        th_class3_name varchar(50) NULL,
330 2796 dougk_ff7
                                        td_class1_name varchar(50) NULL,
331 2796 dougk_ff7
                                        td_class2_name varchar(50) NULL,
332 2796 dougk_ff7
                                        td_class3_name varchar(50) NULL,
333 2796 dougk_ff7
                                        span_class1_name varchar(50) NULL,
334 2796 dougk_ff7
                                        span_class2_name varchar(50) NULL,
335 2796 dougk_ff7
                                        span_class3_name varchar(50) NULL";
336 2796 dougk_ff7
                                break;
337 2796 dougk_ff7
338 2796 dougk_ff7
                        case 'msaccess':
339 2796 dougk_ff7
                                $sql[] = "ALTER TABLE " . USERS_TABLE . " DROP
340 2796 dougk_ff7
                                        COLUMN user_autologin_key";
341 2796 dougk_ff7
342 2796 dougk_ff7
                                $sql[] = "ALTER TABLE " . USERS_TABLE . " ADD
343 2796 dougk_ff7
                                        user_session_time int NOT NULL,
344 2796 dougk_ff7
                                        user_session_page smallint NOT NULL";
345 2796 dougk_ff7
                                $sql[] = "CREATE INDEX user_session_time
346 2796 dougk_ff7
                                        ON " . USERS_TABLE . " (user_session_time)";
347 2796 dougk_ff7
348 2796 dougk_ff7
                                $sql[] = "ALTER TABLE " . TOPICS_TABLE . " ADD
349 2796 dougk_ff7
                                        topic_first_post_id int NULL";
350 2796 dougk_ff7
                                $sql[] = "CREATE INDEX topic_first_post_id
351 2796 dougk_ff7
                                        ON " . TOPICS_TABLE . " (topic_first_post_id)";
352 2796 dougk_ff7
353 2796 dougk_ff7
                                $sql[] = "ALTER TABLE " . THEMES_NAME_TABLE . " ADD
354 2796 dougk_ff7
                                        tr_class1_name varchar(50) NULL,
355 2796 dougk_ff7
                                        tr_class2_name varchar(50) NULL,
356 2796 dougk_ff7
                                        tr_class3_name varchar(50) NULL,
357 2796 dougk_ff7
                                        th_class1_name varchar(50) NULL,
358 2796 dougk_ff7
                                        th_class2_name varchar(50) NULL,
359 2796 dougk_ff7
                                        th_class3_name varchar(50) NULL,
360 2796 dougk_ff7
                                        td_class1_name varchar(50) NULL,
361 2796 dougk_ff7
                                        td_class2_name varchar(50) NULL,
362 2796 dougk_ff7
                                        td_class3_name varchar(50) NULL,
363 2796 dougk_ff7
                                        span_class1_name varchar(50) NULL,
364 2796 dougk_ff7
                                        span_class2_name varchar(50) NULL,
365 2796 dougk_ff7
                                        span_class3_name varchar(50) NULL";
366 2796 dougk_ff7
                                break;
367 2796 dougk_ff7
368 2796 dougk_ff7
                        default:
369 2796 dougk_ff7
                                die("No DB LAYER found!");
370 2796 dougk_ff7
                                break;
371 2796 dougk_ff7
                }
372 2796 dougk_ff7
373 2796 dougk_ff7
        case 'RC-3':
374 2796 dougk_ff7
        case 'RC-4':
375 2796 dougk_ff7
        case '.0.0':
376 2796 dougk_ff7
                switch ( SQL_LAYER )
377 2796 dougk_ff7
                {
378 2796 dougk_ff7
                        case 'mysql':
379 2796 dougk_ff7
                        case 'mysql4':
380 2796 dougk_ff7
                                $sql[] = "ALTER TABLE " . USERS_TABLE . "
381 2796 dougk_ff7
                                        MODIFY COLUMN user_id  mediumint(8) NOT NULL,
382 2796 dougk_ff7
                                        MODIFY COLUMN user_timezone decimal(4,2) DEFAULT '0' NOT NULL";
383 2796 dougk_ff7
                                break;
384 2796 dougk_ff7
                        case 'postgresql':
385 2796 dougk_ff7
                                $sql[] = "ALTER TABLE " . USERS_TABLE . "
386 2796 dougk_ff7
                                        RENAME COLUMN user_timezone TO user_timezone_old";
387 2796 dougk_ff7
                                $sql[] = "ALTER TABLE " . USERS_TABLE . "
388 2796 dougk_ff7
                                        ADD COLUMN user_timezone decimal(4)";
389 2796 dougk_ff7
                                break;
390 2796 dougk_ff7
                        case 'mssql':
391 2796 dougk_ff7
                        case 'mssql-odbc':
392 2796 dougk_ff7
                                $sql[] = "ALTER TABLE " . USERS_TABLE . "
393 2796 dougk_ff7
                                        ALTER COLUMN [user_timezone] [decimal] (4,2) NOT NULL";
394 2796 dougk_ff7
                                /* ---------------------------------------------------------------------
395 2796 dougk_ff7
                                        DROP GROUP TABLE -- if this may cause you problems you can safely
396 2796 dougk_ff7
                                        comment it out, remember to manually add the IDENTITY setting on
397 2796 dougk_ff7
                                        the group_id column
398 2796 dougk_ff7
                                   --------------------------------------------------------------------- */
399 2796 dougk_ff7
                                $sql[] = "CREATE TABLE Tmp_" . GROUPS_TABLE . "
400 2796 dougk_ff7
                                        (group_id int IDENTITY (1, 1) NOT NULL, group_type smallint NULL, group_name varchar(50) NOT NULL, group_description varchar(255) NOT NULL, group_moderator int NULL, group_single_user smallint NOT NULL) ON [PRIMARY]";
401 2796 dougk_ff7
                                $sql[] = "INSERT INTO Tmp_" . GROPUS_TABLE . " (group_id, group_type, group_name, group_description, group_moderator, group_single_user)
402 2796 dougk_ff7
                                                SELECT group_id, group_type, group_name, group_description, group_moderator, group_signle_user FROM " . GROUPS_TABLE . " TABLOCKX";
403 2796 dougk_ff7
                                $sql[] = "DROP TABLE " . GROUPS_TABLE;
404 2796 dougk_ff7
                                $sql[] = "EXECUTE sp_rename N'Tmp_" . GROUPS_TABLE . "', N'" . GROUPS_TABLE . "', 'OBJECT'";
405 2796 dougk_ff7
                                $sql[] = "ALTER TABLE " . GROUPS_TABLE . " ADD
406 2796 dougk_ff7
                                        CONSTRAINT [PK_" . $table_prefix . "groups] PRIMARY KEY CLUSTERED (group_id) ON [PRIMARY]";
407 2796 dougk_ff7
                                $sql[] = "CREATE INDEX [IX_" . $table_prefix . "groups]
408 2796 dougk_ff7
                                        ON " . GROUPS_TABLE . " (group_single_user) ON [PRIMARY]";
409 2796 dougk_ff7
                                /* --------------------------------------------------------------
410 2796 dougk_ff7
                                        END OF DROP GROUP -- don't remove anything after this point!
411 2796 dougk_ff7
                                   -------------------------------------------------------------- */
412 2796 dougk_ff7
                                break;
413 2796 dougk_ff7
                }
414 2796 dougk_ff7
415 2796 dougk_ff7
        case '.0.1':
416 2796 dougk_ff7
                switch ( SQL_LAYER )
417 2796 dougk_ff7
                {
418 2796 dougk_ff7
                        case 'mysql':
419 2796 dougk_ff7
                        case 'mysql4':
420 2796 dougk_ff7
                                $sql[] = "ALTER TABLE " . GROUPS_TABLE . "
421 2796 dougk_ff7
                                        MODIFY COLUMN group_id mediumint(8) NOT NULL auto_increment";
422 2796 dougk_ff7
                                break;
423 2796 dougk_ff7
                        case 'mssql':
424 2796 dougk_ff7
                        case 'mssql-odbc':
425 2796 dougk_ff7
                                /* ---------------------------------------------------------------------
426 2796 dougk_ff7
                                        DROP GROUP TABLE -- if this may cause you problems you can safely
427 2796 dougk_ff7
                                        comment it out, remember to manually add the IDENTITY setting on
428 2796 dougk_ff7
                                        the group_id column
429 2796 dougk_ff7
                                   --------------------------------------------------------------------- */
430 2796 dougk_ff7
                                $sql[] = "CREATE TABLE Tmp_" . GROUPS_TABLE . "
431 2796 dougk_ff7
                                        (group_id int IDENTITY (1, 1) NOT NULL, group_type smallint NULL, group_name varchar(50) NOT NULL, group_description varchar(255) NOT NULL, group_moderator int NULL, group_single_user smallint NOT NULL) ON [PRIMARY]";
432 2796 dougk_ff7
                                $sql[] = "INSERT INTO Tmp_" . GROPUS_TABLE . " (group_id, group_type, group_name, group_description, group_moderator, group_single_user)
433 2796 dougk_ff7
                                                SELECT group_id, group_type, group_name, group_description, group_moderator, group_signle_user FROM " . GROUPS_TABLE . " TABLOCKX";
434 2796 dougk_ff7
                                $sql[] = "DROP TABLE " . GROUPS_TABLE;
435 2796 dougk_ff7
                                $sql[] = "EXECUTE sp_rename N'Tmp_" . GROUPS_TABLE . "', N'" . GROUPS_TABLE . "', 'OBJECT'";
436 2796 dougk_ff7
                                $sql[] = "ALTER TABLE " . GROUPS_TABLE . " ADD
437 2796 dougk_ff7
                                        CONSTRAINT [PK_" . $table_prefix . "groups] PRIMARY KEY CLUSTERED (group_id) ON [PRIMARY]";
438 2796 dougk_ff7
                                $sql[] = "CREATE INDEX [IX_" . $table_prefix . "groups]
439 2796 dougk_ff7
                                        ON " . GROUPS_TABLE . " (group_single_user) ON [PRIMARY]";
440 2796 dougk_ff7
                                /* --------------------------------------------------------------
441 2796 dougk_ff7
                                        END OF DROP GROUP -- don't remove anything after this point!
442 2796 dougk_ff7
                                   -------------------------------------------------------------- */
443 2796 dougk_ff7
                                break;
444 2796 dougk_ff7
                }
445 2796 dougk_ff7
}
446 2796 dougk_ff7
447 2796 dougk_ff7
echo "<h2>Updating database schema</h2>\n";
448 2796 dougk_ff7
echo "<p>Progress :: <b>";
449 2796 dougk_ff7
flush();
450 2796 dougk_ff7
451 2796 dougk_ff7
$error_ary = array();
452 2796 dougk_ff7
$errored = false;
453 2796 dougk_ff7
if ( count($sql) )
454 2796 dougk_ff7
{
455 2796 dougk_ff7
        for($i = 0; $i < count($sql); $i++)
456 2796 dougk_ff7
        {
457 2796 dougk_ff7
                _sql($sql[$i], $errored, $error_ary);
458 2796 dougk_ff7
        }
459 2796 dougk_ff7
460 2796 dougk_ff7
        echo "</b> <b class=\"ok\">Done</b><br />Result &nbsp; :: \n";
461 2796 dougk_ff7
462 2796 dougk_ff7
        if ( $errored )
463 2796 dougk_ff7
        {
464 2796 dougk_ff7
                echo " <b>Some queries failed, the statements and errors are listing below</b>\n<ul>";
465 2796 dougk_ff7
466 2796 dougk_ff7
                for($i = 0; $i < count($error_ary['sql']); $i++)
467 2796 dougk_ff7
                {
468 2796 dougk_ff7
                        echo "<li>Error :: <b>" . $error_ary['error_code'][$i]['message'] . "</b><br />";
469 2796 dougk_ff7
                        echo "SQL &nbsp; :: <b>" . $error_ary['sql'][$i] . "</b><br /><br /></li>";
470 2796 dougk_ff7
                }
471 2796 dougk_ff7
472 2796 dougk_ff7
                echo "</ul>\n<p>This is probably nothing to worry about, update will continue. Should this fail to complete you may need to seek help at our development board. See <a href=\"docs\README.html\">README</a> for details on how to obtain advice.</p>\n";
473 2796 dougk_ff7
        }
474 2796 dougk_ff7
        else
475 2796 dougk_ff7
        {
476 2796 dougk_ff7
                echo "<b>No errors</b>\n";
477 2796 dougk_ff7
        }
478 2796 dougk_ff7
}
479 2796 dougk_ff7
else
480 2796 dougk_ff7
{
481 2796 dougk_ff7
        echo " No updates required</b></p>\n";
482 2796 dougk_ff7
}
483 2796 dougk_ff7
484 2796 dougk_ff7
//
485 2796 dougk_ff7
//
486 2796 dougk_ff7
//
487 2796 dougk_ff7
unset($sql);
488 2796 dougk_ff7
$error_ary = array();
489 2796 dougk_ff7
$errored = false;
490 2796 dougk_ff7
491 2796 dougk_ff7
echo "<h2>Updating data</h2>\n";
492 2796 dougk_ff7
echo "<p>Progress :: <b>";
493 2796 dougk_ff7
flush();
494 2796 dougk_ff7
495 2796 dougk_ff7
switch ( $row['config_value'] )
496 2796 dougk_ff7
{
497 2796 dougk_ff7
        case '':
498 2796 dougk_ff7
                $sql = "SELECT themes_id
499 2796 dougk_ff7
                        FROM " . THEMES_TABLE . "
500 2796 dougk_ff7
                        WHERE template_name = 'subSilver'";
501 2796 dougk_ff7
                $result = _sql($sql, $errored, $error_ary);
502 2796 dougk_ff7
503 2796 dougk_ff7
                if( $row = $db->sql_fetchrow($result) )
504 2796 dougk_ff7
                {
505 2796 dougk_ff7
                        $theme_id = $row['themes_id'];
506 2796 dougk_ff7
507 2796 dougk_ff7
                        $sql = "UPDATE " . THEMES_TABLE . "
508 2796 dougk_ff7
                                SET head_stylesheet = 'subSilver.css', body_background = '', body_bgcolor = 'E5E5E5', body_text = '000000', body_link = '006699', body_vlink = '5493B4', body_alink = '', body_hlink = 'DD6900', tr_color1 = 'EFEFEF', tr_color2 = 'DEE3E7', tr_color3 = 'D1D7DC', tr_class1 = '', tr_class2 = '', tr_class3 = '', th_color1 = '98AAB1', th_color2 = '006699', th_color3 = 'FFFFFF', th_class1 = 'cellpic1.gif', th_class2 = 'cellpic3.gif', th_class3 = 'cellpic2.jpg', td_color1 = 'FAFAFA', td_color2 = 'FFFFFF', td_color3 = '', td_class1 = 'row1', td_class2 = 'row2', td_class3 = '', fontface1 = 'Verdana, Arial, Helvetica, sans-serif', fontface2 = 'Trebuchet MS', fontface3 = 'Courier, ''Courier New'', sans-serif', fontsize1 = 10, fontsize2 = 11, fontsize3 = 12, fontcolor1 = '444444', fontcolor2 = '006600', fontcolor3 = 'FFA34F', span_class1 = '', span_class2 = '', span_class3 = ''
509 2796 dougk_ff7
                                WHERE themes_id = $theme_id";
510 2796 dougk_ff7
                        _sql($sql, $errored, $error_ary);
511 2796 dougk_ff7
512 2796 dougk_ff7
                        $sql = "DELETE FROM " . THEMES_NAME_TABLE . "
513 2796 dougk_ff7
                                WHERE themes_id = $theme_id";
514 2796 dougk_ff7
                        _sql($sql, $errored, $error_ary);
515 2796 dougk_ff7
516 2796 dougk_ff7
                        $sql = "INSERT INTO " . THEMES_NAME_TABLE . " (themes_id, tr_color1_name, tr_color2_name, tr_color3_name, tr_class1_name, tr_class2_name, tr_class3_name, th_color1_name, th_color2_name, th_color3_name, th_class1_name, th_class2_name, th_class3_name, td_color1_name, td_color2_name, td_color3_name, td_class1_name, td_class2_name, td_class3_name, fontface1_name, fontface2_name, fontface3_name, fontsize1_name, fontsize2_name, fontsize3_name, fontcolor1_name, fontcolor2_name, fontcolor3_name, span_class1_name, span_class2_name, span_class3_name)
517 2796 dougk_ff7
                                VALUES ($theme_id, 'The lightest row colour', 'The medium row color', 'The darkest row colour', '', '', '', 'Border round the whole page', 'Outer table border', 'Inner table border', 'Silver gradient picture', 'Blue gradient picture', 'Fade-out gradient on index', 'Background for quote boxes', 'All white areas', '', 'Background for topic posts', '2nd background for topic posts', '', 'Main fonts', 'Additional topic title font', 'Form fonts', 'Smallest font size', 'Medium font size', 'Normal font size (post body etc)', 'Quote & copyright text', 'Code text colour', 'Main table header text colour', '', '', '')";
518 2796 dougk_ff7
                        _sql($sql, $errored, $error_ary);
519 2796 dougk_ff7
                }
520 2796 dougk_ff7
521 2796 dougk_ff7
                $sql = "SELECT MIN(post_id) AS first_post_id, topic_id
522 2796 dougk_ff7
                        FROM " . POSTS_TABLE . "
523 2796 dougk_ff7
                        GROUP BY topic_id
524 2796 dougk_ff7
                        ORDER BY topic_id ASC";
525 2796 dougk_ff7
                $result = _sql($sql, $errored, $error_ary);
526 2796 dougk_ff7
527 2796 dougk_ff7
                if ( $row = $db->sql_fetchrow($result) )
528 2796 dougk_ff7
                {
529 2796 dougk_ff7
                        do
530 2796 dougk_ff7
                        {
531 2796 dougk_ff7
                                $sql = "UPDATE " . TOPICS_TABLE . "
532 2796 dougk_ff7
                                        SET topic_first_post_id = " . $row['first_post_id'] . "
533 2796 dougk_ff7
                                        WHERE topic_id = " . $row['topic_id'];
534 2796 dougk_ff7
                                _sql($sql, $errored, $error_ary);
535 2796 dougk_ff7
                        }
536 2796 dougk_ff7
                        while ( $row = $db->sql_fetchrow($result) );
537 2796 dougk_ff7
                }
538 2796 dougk_ff7
539 2796 dougk_ff7
                $sql = "SELECT DISTINCT u.user_id
540 2796 dougk_ff7
                        FROM " . USERS_TABLE . " u, " . USER_GROUP_TABLE . " ug, " . AUTH_ACCESS_TABLE . " aa
541 2796 dougk_ff7
                        WHERE aa.auth_mod = 1
542 2796 dougk_ff7
                                AND ug.group_id = aa.group_id
543 2796 dougk_ff7
                                AND u.user_id = ug.user_id
544 2796 dougk_ff7
                                AND u.user_level <> " . ADMIN;
545 2796 dougk_ff7
                $result = _sql($sql, $errored, $error_ary);
546 2796 dougk_ff7
547 2796 dougk_ff7
                $mod_user = array();
548 2796 dougk_ff7
                while ( $row = $db->sql_fetchrow($result) )
549 2796 dougk_ff7
                {
550 2796 dougk_ff7
                        $mod_user[] = $row['user_id'];
551 2796 dougk_ff7
                }
552 2796 dougk_ff7
553 2796 dougk_ff7
                if ( count($mod_user) )
554 2796 dougk_ff7
                {
555 2796 dougk_ff7
                        $sql = "UPDATE " . USERS_TABLE . "
556 2796 dougk_ff7
                                SET user_level = " . MOD . "
557 2796 dougk_ff7
                                WHERE user_id IN (" . implode(', ', $mod_user) . ")";
558 2796 dougk_ff7
                        _sql($sql, $errored, $error_ary);
559 2796 dougk_ff7
                }
560 2796 dougk_ff7
561 2796 dougk_ff7
                $sql = "INSERT INTO " . CONFIG_TABLE . " (config_name, config_value)
562 2796 dougk_ff7
                        VALUES ('server_name', 'www.myserver.tld')";
563 2796 dougk_ff7
                _sql($sql, $errored, $error_ary);
564 2796 dougk_ff7
565 2796 dougk_ff7
                $sql = "INSERT INTO " . CONFIG_TABLE . " (config_name, config_value)
566 2796 dougk_ff7
                        VALUES ('script_path', '/phpBB2/')";
567 2796 dougk_ff7
                _sql($sql, $errored, $error_ary);
568 2796 dougk_ff7
569 2796 dougk_ff7
                $sql = "INSERT INTO " . CONFIG_TABLE . " (config_name, config_value)
570 2796 dougk_ff7
                        VALUES ('server_port', '80')";
571 2796 dougk_ff7
                _sql($sql, $errored, $error_ary);
572 2796 dougk_ff7
573 2796 dougk_ff7
                $sql = "INSERT INTO " . CONFIG_TABLE . " (config_name, config_value)
574 2796 dougk_ff7
                        VALUES ('record_online_users', '1')";
575 2796 dougk_ff7
                _sql($sql, $errored, $error_ary);
576 2796 dougk_ff7
577 2796 dougk_ff7
                $sql = "INSERT INTO " . CONFIG_TABLE . " (config_name, config_value)
578 2796 dougk_ff7
                        VALUES ('record_online_date', '" . time() . "')";
579 2796 dougk_ff7
                _sql($sql, $errored, $error_ary);
580 2796 dougk_ff7
581 2796 dougk_ff7
        case 'RC-3':
582 2796 dougk_ff7
        case 'RC-4':
583 2796 dougk_ff7
        case '.0.0':
584 2796 dougk_ff7
        case '.0.1':
585 2796 dougk_ff7
                if ( SQL_LAYER == 'postgresql' )
586 2796 dougk_ff7
                {
587 2796 dougk_ff7
                        $sql = "SELECT user_id, user_timezone_old
588 2796 dougk_ff7
                                FROM " . USERS_TABLE;
589 2796 dougk_ff7
                        $result = _sql($sql, $errored, $error_ary);
590 2796 dougk_ff7
591 2796 dougk_ff7
                        while ( $row = $db->sql_fetchrow($result) )
592 2796 dougk_ff7
                        {
593 2796 dougk_ff7
                                $sql = "UPDATE " . USERS_TABLE . "
594 2796 dougk_ff7
                                        SET user_timezone = " . $row['user_timezone_old'] . "
595 2796 dougk_ff7
                                        WHERE user_id = " . $row['user_id'];
596 2796 dougk_ff7
                                _sql($sql, $errored, $error_ary);
597 2796 dougk_ff7
                        }
598 2796 dougk_ff7
                }
599 2796 dougk_ff7
600 2796 dougk_ff7
                $sql = "SELECT topic_id, topic_moved_id
601 2796 dougk_ff7
                        FROM " . TOPICS_TABLE . "
602 2796 dougk_ff7
                        WHERE topic_moved_id <> 0";
603 2796 dougk_ff7
                $result = _sql($sql, $errored, $error_ary);
604 2796 dougk_ff7
605 2796 dougk_ff7
                $topic_ary = array();
606 2796 dougk_ff7
                while ( $row = $db->sql_fetchrow($result) )
607 2796 dougk_ff7
                {
608 2796 dougk_ff7
                        $topic_ary[$row['topic_id']] = $row['topic_moved_id'];
609 2796 dougk_ff7
                }
610 2796 dougk_ff7
611 2796 dougk_ff7
                while ( list($topic_id, $topic_moved_id) = each($topic_ary) )
612 2796 dougk_ff7
                {
613 2796 dougk_ff7
                        $sql = "SELECT MAX(post_id) AS last_post, MIN(post_id) AS first_post, COUNT(post_id) AS total_posts
614 2796 dougk_ff7
                                FROM " . POSTS_TABLE . "
615 2796 dougk_ff7
                                WHERE topic_id = $topic_moved_id";
616 2796 dougk_ff7
                        $result = _sql($sql, $errored, $error_ary);
617 2796 dougk_ff7
618 2796 dougk_ff7
                        $sql = ( $row = $db->sql_fetchrow($result) ) ? "UPDATE " . TOPICS_TABLE . "        SET topic_replies = " . ( $row['total_posts'] - 1 ) . ", topic_first_post_id = " . $row['first_post'] . ", topic_last_post_id = " . $row['last_post'] . " WHERE topic_id = $topic_id" : "DELETE FROM " . TOPICS_TABLE . " WHERE topic_id = " . $row['topic_id'];
619 2796 dougk_ff7
                        _sql($sql, $errored, $error_ary);
620 2796 dougk_ff7
                }
621 2796 dougk_ff7
622 2796 dougk_ff7
                unset($sql);
623 2796 dougk_ff7
624 2796 dougk_ff7
                $sql = "UPDATE " . CONFIG_TABLE . "
625 2796 dougk_ff7
                        SET config_value = '$updates_to_version'
626 2796 dougk_ff7
                        WHERE config_name = 'version'";
627 2796 dougk_ff7
                _sql($sql, $errored, $error_ary);
628 2796 dougk_ff7
629 2796 dougk_ff7
                sync('all forums');
630 2796 dougk_ff7
631 2796 dougk_ff7
                echo "</b> <b class=\"ok\">Done</b><br />Result &nbsp; :: \n";
632 2796 dougk_ff7
633 2796 dougk_ff7
                if ( $errored )
634 2796 dougk_ff7
                {
635 2796 dougk_ff7
                        echo " <b>Some queries failed, the statements and errors are listing below</b>\n<ul>";
636 2796 dougk_ff7
637 2796 dougk_ff7
                        for($i = 0; $i < count($error_ary['sql']); $i++)
638 2796 dougk_ff7
                        {
639 2796 dougk_ff7
                                echo "<li>Error :: <b>" . $error_ary['error_code'][$i]['message'] . "</b><br />";
640 2796 dougk_ff7
                                echo "SQL &nbsp; :: <b>" . $error_ary['sql'][$i] . "</b><br /><br /></li>";
641 2796 dougk_ff7
                        }
642 2796 dougk_ff7
643 2796 dougk_ff7
                        echo "</ul>\n<p>This is probably nothing to worry about, update will continue. Should this fail to complete you may need to seek help at our development board. See <a href=\"docs\README.html\">README</a> for details on how to obtain advice.</p>\n";
644 2796 dougk_ff7
                }
645 2796 dougk_ff7
                else
646 2796 dougk_ff7
                {
647 2796 dougk_ff7
                        echo "<b>No errors</b>\n";
648 2796 dougk_ff7
                }
649 2796 dougk_ff7
650 2796 dougk_ff7
                break;
651 2796 dougk_ff7
652 2796 dougk_ff7
                default:
653 2796 dougk_ff7
                        echo " No updates where required</b></p>\n";
654 2796 dougk_ff7
                        break;
655 2796 dougk_ff7
}
656 2796 dougk_ff7
657 2796 dougk_ff7
echo "<h2>Update completed</h2>\n";
658 2796 dougk_ff7
echo "\n<p>You should now visit the General Configuration settings page in the <a href=\"admin/\">Administration Panel</a> and check the General Configuration of the board. If you updated from versions prior to RC-3 you <b>must</b> update some entries. If you do not do this emails sent from the board will contain incorrect information. Don't forget to delete this file!</p>\n";
659 2796 dougk_ff7
660 2796 dougk_ff7
?>
661 2796 dougk_ff7
662 2796 dougk_ff7
<br clear="all" />
663 2796 dougk_ff7
664 2796 dougk_ff7
</body>
665 2796 dougk_ff7
</html>