] = $upgrade_phrases['upgrade_300b3.php']['drop_old_forumperms']; $query[] = " CREATE TABLE " . TABLE_PREFIX . "forumpermission ( forumpermissionid smallint unsigned NOT NULL auto_increment, forumid smallint unsigned NOT NULL DEFAULT '0', usergroupid smallint unsigned NOT NULL DEFAULT '0', forumpermissions int unsigned NOT NULL DEFAULT '0', PRIMARY KEY (forumpermissionid), UNIQUE KEY ugid_fid (usergroupid, forumid) ) "; $explain[] = sprintf($vbphrase['create_table'], TABLE_PREFIX . "usergroup"); if (!empty($fperms)) { echo "\n"; $query[] = "INSERT INTO forumpermission\n\t(forumid, usergroupid, forumpermissions)\nVALUES\n\t" . implode(",\n\t", $insertbits); $explain[] = $upgrade_phrases['upgrade_300b3.php']['reinsert_forum_perms']; } $query[] = "DELETE FROM datastore WHERE title='fperms_backup'"; $explain[] = $upgrade_phrases['upgrade_300b3.php']['remove_forum_perms_backup']; exec_queries(); } // ############################################################################# // Moderator Permissions if ($vbulletin->GPC['step'] == 23) { $db->query_write("ALTER TABLE moderator ADD permissions INT UNSIGNED NOT NULL DEFAULT '0'"); echo_flush(sprintf($vbphrase['alter_table'], TABLE_PREFIX . "moderator") . "\n"); $moderators = $db->query_read(" SELECT moderator.*,forum.title,user.username FROM moderator LEFT JOIN forum ON(forum.forumid=moderator.forumid) LEFT JOIN user ON(user.userid=moderator.userid) "); echo "

{$upgrade_phrases['upgrade_300b3.php']['updating_moderator_perms']}

\n"; // drop fields converted to bitfield 'permissions' $query[] = "ALTER TABLE moderator DROP newthreademail, DROP newpostemail, DROP caneditposts, DROP candeleteposts "; $explain[] = sprintf($vbphrase['alter_table_step_x'], 'moderator', 1, 4); // drop fields converted to bitfield 'permissions' $query[] = "ALTER TABLE moderator DROP canviewips, DROP canmanagethreads, DROP canopenclose, DROP caneditthreads "; $explain[] = sprintf($vbphrase['alter_table_step_x'], 'moderator', 2, 4); // drop fields converted to bitfield 'permissions' $query[] = "ALTER TABLE moderator DROP caneditstyles, DROP canbanusers, DROP canviewprofile, DROP canannounce "; $explain[] = sprintf($vbphrase['alter_table_step_x'], 'moderator', 3, 4); // drop fields converted to bitfield 'permissions' $query[] = "ALTER TABLE moderator DROP canmassmove, DROP canmassprune, DROP canmoderateposts, DROP canmoderateattachments "; $explain[] = sprintf($vbphrase['alter_table_step_x'], 'moderator', 4, 4); exec_queries(); } // ############################################################################# // Phrases if ($vbulletin->GPC['step'] == 24) { echo "

{$upgrade_phrases['upgrade_300b3.php']['insert_phrase_groups']}...

"; /*insert query*/ $db->query_write(" INSERT INTO " . TABLE_PREFIX . "phrasetype (phrasetypeid, fieldname, title, editrows) VALUES (1, 'global', '{$phrasetype['global']}', 3), (2, 'cpglobal', '{$phrasetype['cpglobal']}', 3), (3, 'cppermission', '{$phrasetype['cppermission']}', 3), (4, 'forum', '{$phrasetype['forum']}', 3), (5, 'calendar', '{$phrasetype['calendar']}', 3), (6, 'attachment_image', '{$phrasetype['attachment_image']}', 3), (7, 'style', '{$phrasetype['style']}', 3), (8, 'logging', '{$phrasetype['logging']}', 3), (9, 'cphome', '{$phrasetype['cphome']}', 3), (10, 'promotion', '{$phrasetype['promotion']}', 3), (11, 'user', '{$phrasetype['user']}', 3), (12, 'help_faq', '{$phrasetype['help_faq']}', 3), (13, 'sql', '{$phrasetype['sql']}', 3), (14, 'subscription', '{$phrasetype['subscription']}', 3), (15, 'language', '{$phrasetype['language']}', 3), (16, 'bbcode', '{$phrasetype['bbcode']}', 3), (17, 'stats', '{$phrasetype['stats']}', 3), (18, 'diagnostic', '{$phrasetype['diagnostics']}', 3), (19, 'maintenance', '{$phrasetype['maintenance']}', 3), (20, 'profilefield', '{$phrasetype['profile']}', 3), (21, 'thread', '{$phrasetype['thread']}', 3), (22, 'timezone', '{$phrasetype['timezone']}', 3), (23, 'banning', '{$phrasetype['banning']}', 3), (24, 'reputation', '{$phrasetype['reputation']}', 3), (25, 'wol', '{$phrasetype['wol']}', 3), (26, 'threadmanage', '{$phrasetype['threadmanage']}', 3), (27, 'pm', '{$phrasetype['pm']}', 3), (28, 'cpuser', '{$phrasetype['cpuser']}', 3), (29, 'accessmask', '{$phrasetype['accessmask']}', 3), (30, 'cron', '{$phrasetype['cron']}', 3), (31, 'moderator', '{$phrasetype['moderator']}', 3), (32, 'cpoption', '{$phrasetype['cpoption']}', 3), (33, 'cprank', '{$phrasetype['cprank']}', 3), (34, 'cpusergroup', '{$phrasetype['cpusergroup']}', 3), (35, 'holiday', '{$phrasetype['holiday']}', 3), (36, 'posting', '{$phrasetype['posting']}', 3), (37, 'poll', '{$phrasetype['poll']}', 3), (38, 'fronthelp', '{$phrasetype['fronthelp']}', 3), (39, 'register', '{$phrasetype['register']}', 3), (40, 'search', '{$phrasetype['search']}', 3), (41, 'showthread', '{$phrasetype['showthread']}', 3), (42, 'postbit', '{$phrasetype['postbit']}', 3), (43, 'forumdisplay', '{$phrasetype['forumdisplay']}', 3), (44, 'messaging', '{$phrasetype['messaging']}', 3), (45, '', '(reserved for future vBulletin use)', 0), (46, '', '(reserved for future vBulletin use)', 0), (47, '', '(reserved for future vBulletin use)', 0), (48, '', '(reserved for future vBulletin use)', 0), (49, '', '(reserved for future vBulletin use)', 0), (50, '', '(reserved for future vBulletin use)', 0), (51, '', '(reserved for future vBulletin use)', 0), (52, '', '(reserved for future vBulletin use)', 0), (53, '', '(reserved for future vBulletin use)', 0), (54, '', '(reserved for future vBulletin use)', 0), (55, '', '(reserved for future vBulletin use)', 0), (56, '', '(reserved for future vBulletin use)', 0), (57, '', '(reserved for future vBulletin use)', 0), (58, '', '(reserved for future vBulletin use)', 0), (59, '', '(reserved for future vBulletin use)', 0), (60, '', '(reserved for future vBulletin use)', 0), (61, '', '(reserved for future vBulletin use)', 0), (62, '', '(reserved for future vBulletin use)', 0), (63, '', '(reserved for future vBulletin use)', 0), (64, '', '(reserved for future vBulletin use)', 0), (65, '', '(reserved for future vBulletin use)', 0), (66, '', '(reserved for future vBulletin use)', 0), (67, '', '(reserved for future vBulletin use)', 0), (68, '', '(reserved for future vBulletin use)', 0), (69, '', '(reserved for future vBulletin use)', 0), (70, '', '(reserved for future vBulletin use)', 0), (71, '', '(reserved for future vBulletin use)', 0), (72, '', '(reserved for future vBulletin use)', 0), (73, '', '(reserved for future vBulletin use)', 0), (74, '', '(reserved for future vBulletin use)', 0), (75, '', '(reserved for future vBulletin use)', 0), (76, '', '(reserved for future vBulletin use)', 0), (77, '', '(reserved for future vBulletin use)', 0), (78, '', '(reserved for future vBulletin use)', 0), (79, '', '(reserved for future vBulletin use)', 0), (80, '', '(reserved for future vBulletin use)', 0), (81, '', '(reserved for future vBulletin use)', 0), (82, '', '(reserved for future vBulletin use)', 0), (83, '', '(reserved for future vBulletin use)', 0), (84, '', '(reserved for future vBulletin use)', 0), (85, '', '(reserved for future vBulletin use)', 0), (86, '', '(reserved for future vBulletin use)', 0), (87, '', '(reserved for future vBulletin use)', 0), (88, '', '(reserved for future vBulletin use)', 0), (89, '', '(reserved for future vBulletin use)', 0), (90, '', '(reserved for future vBulletin use)', 0), (91, '', '(reserved for future vBulletin use)', 0), (92, '', '(reserved for future vBulletin use)', 0), (93, '', '(reserved for future vBulletin use)', 0), (94, '', '(reserved for future vBulletin use)', 0), (95, '', '(reserved for future vBulletin use)', 0), (96, '', '(reserved for future vBulletin use)', 0), (97, '', '(reserved for future vBulletin use)', 0), (98, '', '(reserved for future vBulletin use)', 0), (99, '', '(reserved for future vBulletin use)', 0), (100, '', '(reserved for future vBulletin use)', 0), (101, '', '(reserved for future vBulletin use)', 0), (102, '', '(reserved for future vBulletin use)', 0), (103, '', '(reserved for future vBulletin use)', 0), (104, '', '(reserved for future vBulletin use)', 0), (105, '', '(reserved for future vBulletin use)', 0), (106, '', '(reserved for future vBulletin use)', 0), (107, '', '(reserved for future vBulletin use)', 0), (108, '', '(reserved for future vBulletin use)', 0), (109, '', '(reserved for future vBulletin use)', 0), (110, '', '(reserved for future vBulletin use)', 0), (111, '', '(reserved for future vBulletin use)', 0), (112, '', '(reserved for future vBulletin use)', 0), (113, '', '(reserved for future vBulletin use)', 0), (114, '', '(reserved for future vBulletin use)', 0), (115, '', '(reserved for future vBulletin use)', 0), (116, '', '(reserved for future vBulletin use)', 0), (117, '', '(reserved for future vBulletin use)', 0), (118, '', '(reserved for future vBulletin use)', 0), (119, '', '(reserved for future vBulletin use)', 0), (120, '', '(reserved for future vBulletin use)', 0), (121, '', '(reserved for future vBulletin use)', 0), (122, '', '(reserved for future vBulletin use)', 0), (123, '', '(reserved for future vBulletin use)', 0), (124, '', '(reserved for future vBulletin use)', 0), (125, '', '(reserved for future vBulletin use)', 0), (126, '', '(reserved for future vBulletin use)', 0), (127, '', '(reserved for future vBulletin use)', 0), (128, '', '(reserved for future vBulletin use)', 0), (129, '', '(reserved for future vBulletin use)', 0), (130, '', '(reserved for future vBulletin use)', 0), (131, '', '(reserved for future vBulletin use)', 0), (132, '', '(reserved for future vBulletin use)', 0), (133, '', '(reserved for future vBulletin use)', 0), (134, '', '(reserved for future vBulletin use)', 0), (135, '', '(reserved for future vBulletin use)', 0), (136, '', '(reserved for future vBulletin use)', 0), (137, '', '(reserved for future vBulletin use)', 0), (138, '', '(reserved for future vBulletin use)', 0), (139, '', '(reserved for future vBulletin use)', 0), (140, '', '(reserved for future vBulletin use)', 0), (141, '', '(reserved for future vBulletin use)', 0), (142, '', '(reserved for future vBulletin use)', 0), (143, '', '(reserved for future vBulletin use)', 0), (144, '', '(reserved for future vBulletin use)', 0), (145, '', '(reserved for future vBulletin use)', 0), (146, '', '(reserved for future vBulletin use)', 0), (147, '', '(reserved for future vBulletin use)', 0), (148, '', '(reserved for future vBulletin use)', 0), (149, '', '(reserved for future vBulletin use)', 0), (150, '', '(reserved for future vBulletin use)', 0), (1000, 'fronterror', '{$phrasetype['front_end_error']}', 8), (2000, 'frontredirect', '{$phrasetype['front_end_redirect']}', 8), (3000, 'emailbody', '{$phrasetype['email_body']}', 10), (4000, 'emailsubject', '{$phrasetype['email_subj']}', 3), (5000, 'vbsettings', '{$phrasetype['vbulletin_settings']}', 4), (6000, 'cphelptext', '{$phrasetype['cp_help']}', 8), (7000, 'faqtitle', '{$phrasetype['faq_title']}', 3), (8000, 'faqtext', '{$phrasetype['faq_text']}', 10), (9000, 'cpstopmsg', '{$phrasetype['stop_message']}', 8) "); } // ############################################################################# // Scheduled Tasks if ($vbulletin->GPC['step'] == 25) { $query[1] = "INSERT INTO cron (weekday, day, hour, minute, filename, loglevel, title) VALUES (-1, -1, 0, 1, './includes/cron/birthday.php', 1, '{$upgrade_phrases['upgrade_300b3.php']['cron_birthday']}')"; $explain[1] = sprintf($upgrade_phrases['upgrade_300b3.php']['inserting_task_x'], 1); $query[2] = "INSERT INTO cron (weekday, day, hour, minute, filename, loglevel, title) VALUES (-1, -1, -1, 56, './includes/cron/threadviews.php', 0, '{$upgrade_phrases['upgrade_300b3.php']['cron_thread_views']}')"; $explain[2] = sprintf($upgrade_phrases['upgrade_300b3.php']['inserting_task_x'], 2); $query[3] = "INSERT INTO cron (weekday, day, hour, minute, filename, loglevel, title) VALUES (-1, -1, -1, 45, './includes/cron/promotion.php', 1, '{$upgrade_phrases['upgrade_300b3.php']['cron_user_promo']}')"; $explain[3] = sprintf($upgrade_phrases['upgrade_300b3.php']['inserting_task_x'], 3); $query[4] = "INSERT INTO cron (weekday, day, hour, minute, filename, loglevel, title) VALUES (-1, -1, 0, 2, './includes/cron/digestdaily.php', 1, '{$upgrade_phrases['upgrade_300b3.php']['cron_daily_digest']}')"; $explain[4] = sprintf($upgrade_phrases['upgrade_300b3.php']['inserting_task_x'], 4); $query[5] = "INSERT INTO cron (weekday, day, hour, minute, filename, loglevel, title) VALUES (1, -1, 0, 30, './includes/cron/digestweekly.php', 1, '{$upgrade_phrases['upgrade_300b3.php']['cron_weekly_digest']}')"; $explain[5] = sprintf($upgrade_phrases['upgrade_300b3.php']['inserting_task_x'], 5); $query[6] = "INSERT INTO cron (weekday, day, hour, minute, filename, loglevel, title) VALUES (-1, -1, 0, 3, './includes/cron/activate.php', 1, '{$upgrade_phrases['upgrade_300b3.php']['cron_activation']}')"; $explain[6] = sprintf($upgrade_phrases['upgrade_300b3.php']['inserting_task_x'], 6); $query[7] = "INSERT INTO cron (weekday, day, hour, minute, filename, loglevel, title) VALUES (-1, -1, 0, 0, './includes/cron/subscriptions.php', 1, '{$upgrade_phrases['upgrade_300b3.php']['cron_subscriptions']}')"; $explain[7] = sprintf($upgrade_phrases['upgrade_300b3.php']['inserting_task_x'], 7); $query[8] = "INSERT INTO cron (weekday, day, hour, minute, filename, loglevel, title) VALUES (-1, -1, -1, 5, './includes/cron/cleanup.php', 0, '{$upgrade_phrases['upgrade_300b3.php']['cron_hourly_cleanup']}')"; $explain[8] = sprintf($upgrade_phrases['upgrade_300b3.php']['inserting_task_x'], 8); $query[9] = "INSERT INTO cron (weekday, day, hour, minute, filename, loglevel, title) VALUES (-1, -1, -1, 40, './includes/cron/cleanup2.php', 0, '{$upgrade_phrases['upgrade_300b3.php']['cron_hourly_cleaup2']}')"; $explain[9] = sprintf($upgrade_phrases['upgrade_300b3.php']['inserting_task_x'], 9); $query[10] = "INSERT INTO cron (weekday, day, hour, minute, filename, loglevel, title) VALUES (-1, -1, -1, 10, './includes/cron/attachmentviews.php', 0, '{$upgrade_phrases['upgrade_300b3.php']['cron_attachment_views']}')"; $explain[10] = sprintf($upgrade_phrases['upgrade_300b3.php']['inserting_task_x'], 10); $query[11] = "INSERT INTO cron (weekday, day, hour, minute, filename, loglevel, title) VALUES (-1, -1, 0, 0, './includes/cron/removebans.php', 1, '{$upgrade_phrases['upgrade_300b3.php']['cron_unban_users']}')"; $explain[11] = sprintf($upgrade_phrases['upgrade_300b3.php']['inserting_task_x'], 11); $query[12] = "INSERT INTO cron (weekday, day, hour, minute, filename, loglevel, title) VALUES (-1, -1, 0, 0, './includes/cron/stats.php', 0, '{$upgrade_phrases['upgrade_300b3.php']['cron_stats_log']}')"; $explain[12] = sprintf($upgrade_phrases['upgrade_300b3.php']['inserting_task_x'], 12); $tmp = $explain; exec_queries(0, 1); require_once(DIR . '/includes/functions_cron.php'); if (is_array($inserts)) { echo "\n"; } build_cron_next_run(); } // ############################################################################# // Settings #1 if ($vbulletin->GPC['step'] == 26) { $vb2groups = array( 'Turn Your vBulletin on and off' => 'onoff', 'General Settings' => 'general', 'Contact Details' => 'contact', 'Posting Code allowances (vB code / HTML / etc)' => 'postingallow', 'Forums Home Page Options' => 'forumhome', 'User and registration options' => 'user', 'Memberlist options' => 'memberlist', 'Thread display options' => 'showthread', 'Forum Display Options' => 'forumdisplay', 'Search Options' => 'search', 'Email Options' => 'email', 'Date / Time options' => 'datetime', 'Edit Options' => 'editpost', 'IP Logging Options' => 'ip', 'Floodcheck Options' => 'floodcheck', 'Banning Options' => 'banning', 'Private Messaging Options' => 'pm', 'Censorship Options' => 'censor', 'HTTP Headers and output' => 'http', 'Version Info' => 'version', 'Templates' => 'templates', 'Load limiting options' => 'loadlimit', 'Polls' => 'poll', 'Avatars' => 'avatar', 'Attachments' => 'attachment', 'Custom User Titles' => 'usertitle', 'Upload Options' => 'upload', 'Who\'s Online' => 'onl