<?php //upgrade from v1.2 to v1.3 (DB 2 -> 3) //add new config values set_config('date_format', 'd M Y'); set_config('time_format', 'H:i'); set_config('bbcode_privatemsg', 1); echo '<li>RV3: Adding new config values... success</li>'; //update database structure $db->drop_field('users', 'dst'); $new_timezone = new DBField('timezone', 'INT(3)'); $new_timezone->set_default(0); $db->alter_field('users', $new_timezone); $archived_fld = new DBField('archived', 'TINYINT(1)'); $archived_fld->add_extra('NOT NULL'); $archived_fld->set_default(0); $db->add_field('forums', $archived_fld, 'num_posts'); echo '<li>RV3: Updating database structure... success</li>'; //convert all old timezones (just the UTC offset) to the new technique which uses the entire PHP dictionary //map all UTC offsets to new timezones $mappings = array(-12 => 383, -11 => 398, -10 => 53, -9 => 94, -8 => 132, -7 => 162, -6 => 144, -5 => 151, -4 => 84, -3 => 57, -2 => 295, -1 => 8, 0 => 415, 1 => 333, 2 => 327, 3 => 340, 4 => 230, 5 => 244, 6 => 266, 7 => 220, 8 => 271, 9 => 279, 10 => 309, 11 => 399, 12 => 385, 13 => 213); //I hate mass queries as much as anyone, but they have to be done foreach ($mappings as $oldtime => $newtime) { $db->query('UPDATE `#^users` SET timezone=' . $newtime . ' WHERE timezone=' . $oldtime) or enhanced_error('Failed to update timezone', true); } echo '<li>RV3: Converting timezones... success</li>'; ExtensionConfig::add_page('/styles', array('file' => 'style.php', 'template' => false, 'admin' => false, 'mod' => false, 'subdirs' => true)); ExtensionConfig::remove_page('/styles/default.css'); ExtensionConfig::remove_page('/styles/default.css/'); ExtensionConfig::remove_page('/styles/embed.css'); echo '<li>RV3: Adding missing pages... success</li>';
ExtensionConfig::add_page('/myimages', array('file' => 'myimages.php', 'template' => true)); set_config('user_image_maxwidth', 1024); set_config('user_image_maxheight', 768); set_config('user_image_maxsize', 512); $table = new DBTable('userimages'); $new_fld = new DBField('id', 'INT'); $new_fld->add_key('PRIMARY'); $new_fld->add_extra('NOT NULL'); $new_fld->add_extra('AUTO_INCREMENT'); $table->add_field($new_fld); $new_fld = new DBField('filename', 'VARCHAR(256)'); $new_fld->add_extra('NOT NULL'); $table->add_field($new_fld); $new_fld = new DBField('user', 'INT'); $new_fld->add_extra('NOT NULL'); $table->add_field($new_fld); $new_fld = new DBField('ip_addr', 'VARCHAR(50)'); $new_fld->add_extra('NOT NULL'); $table->add_field($new_fld); $new_fld = new DBField('time', 'INT'); $new_fld->add_extra('NOT NULL'); $table->add_field($new_fld); $new_fld = new DBField('extension', 'VARCHAR(10)'); $new_fld->add_extra('NOT NULL'); $table->add_field($new_fld); $table->commit(); $new_fld = new DBField('g_upload_images', 'TINYINT(1)'); $new_fld->add_extra('NOT NULL'); $new_fld->set_default(0); $db->add_field('user_groups', $new_fld, 'g_post_images'); $db->query('UPDATE `#^user_groups` SET g_upload_images=1 WHERE g_permanent=1') or enhanced_error('Failed to update user groups', true);