Exemple #1
0
<?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>';
Exemple #2
0
$new_fld->add_extra('NOT NULL');
$tables['interface_history']->add_field($new_fld);
$new_fld = new DBField('field', 'VARCHAR(50)');
$new_fld->add_extra('NOT NULL');
$new_fld->set_default('\'\'');
$new_fld->set_default('\'\'');
$tables['interface_history']->add_field($new_fld);
$new_fld = new DBField('user', 'INT');
$new_fld->add_extra('NOT NULL');
$tables['interface_history']->add_field($new_fld);
$new_fld = new DBField('time', 'INT');
$new_fld->add_extra('NOT NULL');
$tables['interface_history']->add_field($new_fld);
$new_fld = new DBField('old_value', 'TEXT');
$new_fld->add_extra('NOT NULL');
$new_fld->set_default('\'\'');
$new_fld->set_default('\'\'');
$tables['interface_history']->add_field($new_fld);
$tables['interface_history']->commit();
echo '<li>RV2: Adding interface history table... success</li>';
//run through stock cache to insert pages and language keys
include FORUM_ROOT . '/app_config/cache/pages.php';
$q = 'INSERT INTO `#^pages`(url,file,template,nocontentbox,admin,moderator,subdirs) VALUES';
$page_insert_data = array();
$orig_pages = $pages;
$orig_pagessubdirs = $pagessubdirs;
include FORUM_ROOT . '/app_config/pages.php';
$pages = array_merge($pages, $orig_pages);
foreach ($pages as $url => $info) {
    $page_insert_data[] = '(\'' . $db->escape($url) . '\',\'' . $db->escape($info['file']) . '\',' . ($info['template'] ? '1' : '0') . ',' . (isset($info['nocontentbox']) ? '1' : '0') . ',' . (isset($info['admin']) && $info['admin'] ? '1' : '0') . ',' . (isset($info['mod']) && $info['mod'] ? '1' : '0') . ',0)';
}
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);
Exemple #4
0
 $tables['user_groups']->add_field($new_fld);
 $new_fld = new DBField('g_access_board', 'TINYINT(1)');
 $new_fld->add_extra('NOT NULL');
 $new_fld->set_default('1');
 $tables['user_groups']->add_field($new_fld);
 $new_fld = new DBField('g_view_forums', 'TINYINT(1)');
 $new_fld->add_extra('NOT NULL');
 $new_fld->set_default('1');
 $tables['user_groups']->add_field($new_fld);
 $new_fld = new DBField('g_post_topics', 'TINYINT(1)');
 $new_fld->add_extra('NOT NULL');
 $new_fld->set_default('1');
 $tables['user_groups']->add_field($new_fld);
 $new_fld = new DBField('g_post_replies', 'TINYINT(1)');
 $new_fld->add_extra('NOT NULL');
 $new_fld->set_default('1');
 $tables['user_groups']->add_field($new_fld);
 $tables['user_groups']->commit();
 unset($tables);
 unset($new_fld);
 //add database data
 set_config('board_title', get_cookie_data('board_title'));
 set_config('announcement_text', '');
 set_config('announcement_enable', 0);
 set_config('online_timeout', 300);
 set_config('show_post_count', 1);
 set_config('sig_max_length', 0);
 set_config('sig_max_lines', 0);
 set_config('sig_max_height', 0);
 set_config('default_language', 'English');
 set_config('default_user_group', 3);