aboutsummaryrefslogtreecommitdiffstats
path: root/phpBB/update_to_RC3.php
blob: 1929201b4e705a62968efcc055dee73d235f4d77 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
<html>
<body>
<?php

$phpbb_root_path = "./";
include($phpbb_root_path . 'extension.inc');
include($phpbb_root_path . 'common.'.$phpEx);
   
$sql = array();

switch ( SQL_LAYER )
{
	case 'mysql':
	case 'mysql4':
/*		$sql[] = "ALTER TABLE " . USERS_TABLE . " 
			ADD COLUMN user_session_time int(11) DEFAULT '0' NOT NULL, 
			ADD COLUMN user_session_page smallint(5) DEFAULT '0' NOT NULL, 
			ADD INDEX (user_session_time)";
		$sql[] = "ALTER TABLE " . SEARCH_TABLE . " 
			MODIFY search_id int(11) NOT NULL";
		$sql[] = "ALTER TABLE " . TOPICS_TABLE . " 
			MODIFY topic_moved_id mediumint(8) UNSIGNED DEFAULT '0' NOT NULL";
		$sql[] = "UPDATE " . THEMES_TABLE . " 
			SET head_stylesheet = 'subSilver.css' 
			WHERE template_name = 'subSilver'";
*/			
		$sql[] = "ALTER TABLE " . TOPICS_TABLE . "  
			ADD COLUMN topic_first_post_id mediumint(8) UNSIGNED DEFAULT '0' NOT NULL, 
			ADD INDEX (topic_first_post_id)";

		$sql[] = "ALTER TABLE " . THEMES_NAME_TABLE . " 
			ADD COLUMN tr_class1_name varchar(50) NULL, 
			ADD COLUMN tr_class2_name varchar(50) NULL, 
			ADD COLUMN tr_class3_name varchar(50) NULL, 
			ADD COLUMN th_class1_name varchar(50) NULL, 
			ADD COLUMN th_class2_name varchar(50) NULL, 
			ADD COLUMN th_class3_name varchar(50) NULL, 
			ADD COLUMN td_class1_name varchar(50) NULL, 
			ADD COLUMN td_class2_name varchar(50) NULL, 
			ADD COLUMN td_class3_name varchar(50) NULL, 
			ADD COLUMN span_class1_name varchar(50) NULL, 
			ADD COLUMN span_class2_name varchar(50) NULL, 
			ADD COLUMN span_class3_name varchar(50) NULL";
		break;

	case 'postgresql':
/*		$sql[] = "ALTER TABLE " . USERS_TABLE . " 
			ADD COLUMN user_session_time int4";
		$sql[] = "ALTER TABLE " . USERS_TABLE . " 
			ADD COLUMN user_session_page int2";
		$sql[] = "ALTER TABLE " . USERS_TABLE . " 
			ALTER COLUMN user_session_time SET DEFAULT '0'";
		$sql[] = "ALTER TABLE " . USERS_TABLE . " 
			ALTER COLUMN user_session_page SET DEFAULT '0'";
		$sql[] = "CREATE INDEX user_session_time_" . $table_prefix . "users_index 
			ON " . USERS_TABLE . " (user_session_time)";
		$sql[] = "UPDATE " . THEMES_TABLE . " 
			SET head_stylesheet = 'subSilver.css' 
			WHERE template_name = 'subSilver'";
*/				
		$sql[] = "ALTER TABLE " . TOPICS_TABLE . " 
			ADD COLUMN topic_first_post_id int4";
		$sql[] = "CREATE INDEX topic_first_post_id_" . $table_prefix . "topics_index 
			ON " . TOPICS_TABLE . " (topic_first_post_id)";

		$sql[] = "ALTER TABLE " . THEMES_NAME_TABLE . " 
			ADD COLUMN tr_class1_name varchar(50) NULL"; 
		$sql[] = "ALTER TABLE " . THEMES_NAME_TABLE . " 
			ADD COLUMN tr_class2_name varchar(50) NULL"; 
		$sql[] = "ALTER TABLE " . THEMES_NAME_TABLE . " 
			ADD COLUMN tr_class3_name varchar(50) NULL"; 
		$sql[] = "ALTER TABLE " . THEMES_NAME_TABLE . " 
			ADD COLUMN th_class1_name varchar(50) NULL"; 
		$sql[] = "ALTER TABLE " . THEMES_NAME_TABLE . " 
			ADD COLUMN th_class2_name varchar(50) NULL"; 
		$sql[] = "ALTER TABLE " . THEMES_NAME_TABLE . " 
			ADD COLUMN th_class3_name varchar(50) NULL"; 
		$sql[] = "ALTER TABLE " . THEMES_NAME_TABLE . " 
			ADD COLUMN td_class1_name varchar(50) NULL"; 
		$sql[] = "ALTER TABLE " . THEMES_NAME_TABLE . " 
			ADD COLUMN td_class2_name varchar(50) NULL"; 
		$sql[] = "ALTER TABLE " . THEMES_NAME_TABLE . " 
			ADD COLUMN td_class3_name varchar(50) NULL"; 
		$sql[] = "ALTER TABLE " . THEMES_NAME_TABLE . " 
			ADD COLUMN span_class1_name varchar(50) NULL"; 
		$sql[] = "ALTER TABLE " . THEMES_NAME_TABLE . " 
			ADD COLUMN span_class2_name varchar(50) NULL"; 
		$sql[] = "ALTER TABLE " . THEMES_NAME_TABLE . " 
			ADD COLUMN span_class3_name varchar(50) NULL";
		break;

	case 'mssql-odbc':
	case 'mssql':
/*		$sql[] = "ALTER TABLE " . USERS_TABLE . " ADD 
			user_session_time int NOT NULL, 
			user_session_page smallint NOT NULL, 
			CONSTRAINT [DF_" . $table_prefix . "users_user_session_time] DEFAULT (0) FOR [user_session_time],
			CONSTRAINT [DF_" . $table_prefix . "users_user_session_page] DEFAULT (0) FOR [user_session_page]";
		$sql[] = "CREATE INDEX [IX_" . $table_prefix . "users] 
			ON [" . USERS_TABLE . "]([user_session_time]) ON [PRIMARY]";
		$sql[] = "UPDATE " . THEMES_TABLE . " 
			SET head_stylesheet = 'subSilver.css' 
			WHERE template_name = 'subSilver'";
*/	
		$sql[] = "DROP INDEX " . TOPICS_TABLE . ".IX_" . $table_prefix . "topics";
		$sql[] = "ALTER TABLE " . TOPICS_TABLE . " ADD 
			topic_first_post_id int NOT NULL, 
			CONSTRAINT [DF_" . $table_prefix . "topics_topic_first_post_id] DEFAULT (0) FOR [topic_first_post_id]";
		$sql[] = "CREATE  INDEX [IX_" . $table_prefix . "topics] 
			ON [" . TOPICS_TABLE . "]([forum_id], [topic_type], [topic_first_post_id], [topic_last_post_id]) ON [PRIMARY]";

		$sql[] = "ALTER TABLE " . THEMES_NAME_TABLE . " ADD
			tr_class1_name varchar(50) NULL, 
			tr_class2_name varchar(50) NULL, 
			tr_class3_name varchar(50) NULL, 
			th_class1_name varchar(50) NULL, 
			th_class2_name varchar(50) NULL, 
			th_class3_name varchar(50) NULL, 
			td_class1_name varchar(50) NULL, 
			td_class2_name varchar(50) NULL, 
			td_class3_name varchar(50) NULL, 
			span_class1_name varchar(50) NULL, 
			span_class2_name varchar(50) NULL, 
			span_class3_name varchar(50) NULL";
		break;

	case 'msaccess':
/*		$sql[] = "ALTER TABLE " . USERS_TABLE . " ADD 
			user_session_time int NOT NULL, 
			user_session_page smallint NOT NULL";
		$sql[] = "CREATE INDEX user_session_time 
			ON " . USERS_TABLE . " (user_session_time)";
		$sql[] = "UPDATE " . THEMES_TABLE . " 
			SET head_stylesheet = 'subSilver.css' 
			WHERE template_name = 'subSilver'";
*/	
		$sql[] = "ALTER TABLE " . TOPICS_TABLE . " ADD 
			topic_first_post_id int NOT NULL";
		$sql[] = "CREATE INDEX topic_first_post_id 
			ON " . TOPICS_TABLE . " (topic_first_post_id)";

		$sql[] = "ALTER TABLE " . THEMES_NAME_TABLE . " ADD
			tr_class1_name varchar(50) NULL, 
			tr_class2_name varchar(50) NULL, 
			tr_class3_name varchar(50) NULL, 
			th_class1_name varchar(50) NULL, 
			th_class2_name varchar(50) NULL, 
			th_class3_name varchar(50) NULL, 
			td_class1_name varchar(50) NULL, 
			td_class2_name varchar(50) NULL, 
			td_class3_name varchar(50) NULL, 
			span_class1_name varchar(50) NULL, 
			span_class2_name varchar(50) NULL, 
			span_class3_name varchar(50) NULL";
		break;

	default:
		die("No DB LAYER found!");
		break;
}



$errored = false;
for($i = 0; $i < count($sql); $i++)
{
	echo "Running >>> " . $sql[$i];

	$result = $db->sql_query($sql[$i]);
	if ( !$result )
	{
		$errored = true;
		$error = $db->sql_error();
		echo " :: <b>FAILED</b> <u>( " . $error['message'] . " )</u><br /><br />\n\n";
	}
	else
	{
		echo " :: <b>COMPLETED</b><br /><br />\n\n";
	}
}

if ( $errored )
{
	echo "\n<br /><br />Errors occured! Please check and correct issues as required<br />\n";
}
else
{

	$sql = "SELECT themes_id 
		FROM " . THEMES_TABLE . " 
		WHERE template_name = 'subSilver'";
	if( !($result = $db->sql_query($sql)) )
	{
		die("Couldn't obtain subSilver id");
	}

	if( $row = $db->sql_fetchrow($result) )
	{
		$theme_id = $row['themes_id'];

		$sql = "UPDATE " . THEMES_TABLE . " 
			SET head_stylesheet = '', 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 = ''
			WHERE themes_id = $theme_id";
		if ( !($result = $db->sql_query($sql)) )
		{
			die("Couldn't update subSilver theme");
		}

		$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) 
			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', '', '', '')";
		if ( !($result = $db->sql_query($sql)) )
		{
			echo "WARNING >> Couldn't insert subSilver name info";
		}
	}

	$sql = "SELECT MIN(post_id) AS first_post_id, topic_id
		FROM " . POSTS_TABLE . "
		GROUP BY topic_id
		ORDER BY topic_id ASC";
	if ( !($result = $db->sql_query($sql)) )
	{
		die("Couldn't obtain first post id list");
	}

	if ( $row = $db->sql_fetchrow($result) )
	{
		do
		{
			$post_id = $row['first_post_id'];
			$topic_id = $row['topic_id'];

			$sql = "UPDATE " . TOPICS_TABLE . " 
				SET topic_first_post_id = $post_id 
				WHERE topic_id = $topic_id";
			if ( !$db->sql_query($sql) )
			{
				die("Couldn't update topic first post id in topic :: $topic_id");
			}
		}
		while ( $row = $db->sql_fetchrow($result) );
	}
	
	echo "\n<br /><br />\nCOMPLETE! Please delete this file before continuing!<br />\n";
}

?>
</body>
</html>