12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027 |
- /* ATTENTION: You don't need to run or use this file! The upgrade.php script does everything for you! */
- /******************************************************************************/
- --- Creating new tables and inserting default data...
- /******************************************************************************/
- ---# Creating "themes"...
- CREATE TABLE IF NOT EXISTS {$db_prefix}themes (
- ID_MEMBER mediumint(8) NOT NULL default '0',
- ID_THEME tinyint(4) unsigned NOT NULL default '1',
- variable tinytext NOT NULL default '',
- value text NOT NULL default '',
- PRIMARY KEY (ID_MEMBER, ID_THEME, variable(30))
- ) ENGINE=MyISAM;
- ALTER TABLE {$db_prefix}themes
- CHANGE COLUMN ID_MEMBER ID_MEMBER mediumint(8) NOT NULL default '0';
- ALTER TABLE {$db_prefix}themes
- CHANGE COLUMN value value text NOT NULL default '';
- INSERT IGNORE INTO {$db_prefix}themes
- (ID_MEMBER, ID_THEME, variable, value)
- VALUES (0, 1, 'name', 'SMF Default Theme'),
- (0, 1, 'theme_url', '{$boardurl}/Themes/default'),
- (0, 1, 'images_url', '{$boardurl}/Themes/default/images'),
- (0, 1, 'theme_dir', '{$sboarddir}/Themes/default'),
- (0, 1, 'allow_no_censored', '0'),
- (0, 1, 'additional_options_collapsable', '1'),
- (0, 2, 'name', 'Classic YaBB SE Theme'),
- (0, 2, 'theme_url', '{$boardurl}/Themes/classic'),
- (0, 2, 'images_url', '{$boardurl}/Themes/classic/images'),
- (0, 2, 'theme_dir', '{$sboarddir}/Themes/classic');
- ---#
- ---# Creating "collapsed_categories"...
- CREATE TABLE IF NOT EXISTS {$db_prefix}collapsed_categories (
- ID_CAT tinyint(4) unsigned NOT NULL default '0',
- ID_MEMBER mediumint(8) unsigned NOT NULL default '0',
- PRIMARY KEY (ID_CAT, ID_MEMBER)
- ) ENGINE=MyISAM;
- ---#
- ---# Creating and verifying "permissions"...
- CREATE TABLE IF NOT EXISTS {$db_prefix}permissions (
- ID_GROUP smallint(6) NOT NULL default '0',
- permission varchar(30) NOT NULL default '',
- addDeny tinyint(4) NOT NULL default '1',
- PRIMARY KEY (ID_GROUP, permission)
- ) ENGINE=MyISAM;
- ALTER TABLE {$db_prefix}permissions
- ADD addDeny tinyint(4) NOT NULL default '1';
- ALTER TABLE {$db_prefix}permissions
- CHANGE COLUMN permission permission varchar(30) NOT NULL default '';
- UPDATE IGNORE {$db_prefix}permissions
- SET
- permission = REPLACE(permission, 'profile_own_identity', 'profile_identity_own'),
- permission = REPLACE(permission, 'profile_any_identity', 'profile_identity_any'),
- permission = REPLACE(permission, 'profile_own_extra', 'profile_extra_own'),
- permission = REPLACE(permission, 'profile_any_extra', 'profile_extra_any'),
- permission = REPLACE(permission, 'profile_own_title', 'profile_title_own'),
- permission = REPLACE(permission, 'profile_any_title', 'profile_title_any'),
- permission = REPLACE(permission, 'im_read', 'pm_read'),
- permission = REPLACE(permission, 'im_send', 'pm_send');
- ---#
- ---# Inserting data into "permissions"...
- INSERT INTO {$db_prefix}permissions
- (ID_GROUP, permission)
- VALUES (-1, 'search_posts'), (-1, 'calendar_view'), (-1, 'view_stats'), (-1, 'profile_view_any'),
- (2, 'calendar_post'), (2, 'calendar_edit_any'), (2, 'calendar_edit_own');
- ---#
- ---# Creating and verifying "board_permissions"...
- CREATE TABLE IF NOT EXISTS {$db_prefix}board_permissions (
- ID_GROUP smallint(6) NOT NULL default '0',
- ID_BOARD smallint(5) unsigned NOT NULL default '0',
- permission varchar(30) NOT NULL default '',
- addDeny tinyint(4) NOT NULL default '1',
- PRIMARY KEY (ID_GROUP, ID_BOARD, permission)
- ) ENGINE=MyISAM;
- ALTER TABLE {$db_prefix}board_permissions
- ADD addDeny tinyint(4) NOT NULL default '1';
- ALTER TABLE {$db_prefix}board_permissions
- CHANGE COLUMN permission permission varchar(30) NOT NULL default '';
- ---#
- ---# Inserting data into "board_permissions"...
- INSERT INTO {$db_prefix}board_permissions
- (ID_GROUP, ID_BOARD, permission)
- VALUES (-1, 0, 'poll_view'), (3, 0, 'make_sticky'), (3, 0, 'lock_any'),
- (3, 0, 'remove_any'), (3, 0, 'move_any'), (3, 0, 'merge_any'), (3, 0, 'split_any'),
- (3, 0, 'delete_any'), (3, 0, 'modify_any'), (2, 0, 'make_sticky'), (2, 0, 'lock_any'),
- (2, 0, 'remove_any'), (2, 0, 'move_any'), (2, 0, 'merge_any'), (2, 0, 'split_any'),
- (2, 0, 'delete_any'), (2, 0, 'modify_any'), (2, 0, 'poll_lock_any'), (2, 0, 'poll_lock_any'),
- (2, 0, 'poll_add_any'), (2, 0, 'poll_remove_any'), (2, 0, 'poll_remove_any');
- INSERT IGNORE INTO {$db_prefix}board_permissions
- (ID_GROUP, ID_BOARD, permission)
- VALUES (3, 0, 'moderate_board'), (2, 0, 'moderate_board');
- ---#
- ---# Creating "moderators"...
- CREATE TABLE IF NOT EXISTS {$db_prefix}moderators (
- ID_BOARD smallint(5) unsigned NOT NULL default '0',
- ID_MEMBER mediumint(8) unsigned NOT NULL default '0',
- PRIMARY KEY (ID_BOARD, ID_MEMBER)
- ) ENGINE=MyISAM;
- ---#
- ---# Creating "attachments"...
- CREATE TABLE IF NOT EXISTS {$db_prefix}attachments (
- ID_ATTACH int(11) unsigned NOT NULL auto_increment,
- ID_MSG int(10) unsigned NOT NULL default '0',
- ID_MEMBER int(10) unsigned NOT NULL default '0',
- filename tinytext NOT NULL default '',
- size int(10) unsigned NOT NULL default '0',
- downloads mediumint(8) unsigned NOT NULL default '0',
- PRIMARY KEY (ID_ATTACH),
- UNIQUE ID_MEMBER (ID_MEMBER, ID_ATTACH),
- KEY ID_MSG (ID_MSG)
- ) ENGINE=MyISAM;
- ---#
- ---# Creating "log_notify"...
- CREATE TABLE IF NOT EXISTS {$db_prefix}log_notify (
- ID_MEMBER mediumint(8) unsigned NOT NULL default '0',
- ID_TOPIC mediumint(8) unsigned NOT NULL default '0',
- ID_BOARD smallint(5) unsigned NOT NULL default '0',
- sent tinyint(1) unsigned NOT NULL default '0',
- PRIMARY KEY (ID_MEMBER, ID_TOPIC, ID_BOARD)
- ) ENGINE=MyISAM;
- ---#
- ---# Creating "log_polls"...
- CREATE TABLE IF NOT EXISTS {$db_prefix}log_polls (
- ID_POLL mediumint(8) unsigned NOT NULL default '0',
- ID_MEMBER mediumint(8) unsigned NOT NULL default '0',
- ID_CHOICE tinyint(4) unsigned NOT NULL default '0',
- PRIMARY KEY (ID_POLL, ID_MEMBER, ID_CHOICE)
- ) ENGINE=MyISAM;
- ---#
- ---# Creating "log_actions"...
- CREATE TABLE IF NOT EXISTS {$db_prefix}log_actions (
- ID_ACTION int(10) unsigned NOT NULL auto_increment,
- logTime int(10) unsigned NOT NULL default '0',
- ID_MEMBER mediumint(8) unsigned NOT NULL default '0',
- IP tinytext NOT NULL default '',
- action varchar(30) NOT NULL default '',
- extra text NOT NULL default '',
- PRIMARY KEY (ID_ACTION),
- KEY logTime (logTime),
- KEY ID_MEMBER (ID_MEMBER)
- ) ENGINE=MyISAM;
- ---#
- ---# Creating "poll_choices"...
- CREATE TABLE IF NOT EXISTS {$db_prefix}poll_choices (
- ID_POLL mediumint(8) unsigned NOT NULL default '0',
- ID_CHOICE tinyint(4) unsigned NOT NULL default '0',
- label tinytext NOT NULL default '',
- votes smallint(5) unsigned NOT NULL default '0',
- PRIMARY KEY (ID_POLL, ID_CHOICE)
- ) ENGINE=MyISAM;
- ---#
- ---# Creating "smileys"...
- CREATE TABLE IF NOT EXISTS {$db_prefix}smileys (
- id_smiley smallint(5) unsigned NOT NULL auto_increment,
- code varchar(30) NOT NULL default '',
- filename varchar(48) NOT NULL default '',
- description varchar(80) NOT NULL default '',
- smileyRow tinyint(4) unsigned NOT NULL default '0',
- smileyOrder tinyint(4) unsigned NOT NULL default '0',
- hidden tinyint(4) unsigned NOT NULL default '0',
- PRIMARY KEY (id_smiley),
- KEY smileyOrder (smileyOrder)
- ) ENGINE=MyISAM;
- ---#
- ---# Loading default smileys...
- INSERT IGNORE INTO {$db_prefix}smileys
- (id_smiley, code, filename, description, smileyOrder, hidden)
- VALUES (1, ':)', 'smiley.gif', 'Smiley', 0, 0),
- (2, ';)', 'wink.gif', 'Wink', 1, 0),
- (3, ':D', 'cheesy.gif', 'Cheesy', 2, 0),
- (4, ';D', 'grin.gif', 'Grin', 3, 0),
- (5, '>:(', 'angry.gif', 'Angry', 4, 0),
- (6, ':(', 'sad.gif', 'Sad', 5, 0),
- (7, ':o', 'shocked.gif', 'Shocked', 6, 0),
- (8, '8)', 'cool.gif', 'Cool', 7, 0),
- (9, '???', 'huh.gif', 'Huh', 8, 0),
- (10, '::)', 'rolleyes.gif', 'Roll Eyes', 9, 0),
- (11, ':P', 'tongue.gif', 'Tongue', 10, 0),
- (12, ':-[', 'embarassed.gif', 'Embarrassed', 11, 0),
- (13, ':-X', 'lipsrsealed.gif', 'Lips Sealed', 12, 0),
- (14, ':-\\', 'undecided.gif', 'Undecided', 13, 0),
- (15, ':-*', 'kiss.gif', 'Kiss', 14, 0),
- (16, ':\'(', 'cry.gif', 'Cry', 15, 0),
- (17, '>:D', 'evil.gif', 'Evil', 16, 1),
- (18, '^-^', 'azn.gif', 'Azn', 17, 1),
- (19, 'O0', 'afro.gif', 'Afro', 18, 1);
- ---#
- ---# Dropping "log_search" and recreating it...
- DROP TABLE IF EXISTS {$db_prefix}log_search;
- CREATE TABLE {$db_prefix}log_search (
- ID_SEARCH tinyint(3) unsigned NOT NULL default '0',
- ID_TOPIC mediumint(8) unsigned NOT NULL default '0',
- ID_MSG int(10) unsigned NOT NULL default '0',
- relevance smallint(5) unsigned NOT NULL default '0',
- num_matches smallint(5) unsigned NOT NULL default '0',
- PRIMARY KEY (ID_SEARCH, ID_TOPIC)
- ) ENGINE=MyISAM;
- ---#
- ---# Dropping "sessions" and recreating it...
- DROP TABLE IF EXISTS {$db_prefix}sessions;
- CREATE TABLE {$db_prefix}sessions (
- session_id char(32) NOT NULL,
- last_update int(10) unsigned NOT NULL,
- data text NOT NULL,
- PRIMARY KEY (session_id)
- ) ENGINE=MyISAM;
- ---#
- ---# Verifying "settings"...
- ALTER IGNORE TABLE {$db_prefix}settings
- DROP PRIMARY KEY,
- ADD PRIMARY KEY (variable(30));
- ---#
- /******************************************************************************/
- --- Converting activity logs...
- /******************************************************************************/
- ---# Converting "log_online"...
- DROP TABLE IF EXISTS {$db_prefix}log_online;
- CREATE TABLE {$db_prefix}log_online (
- session char(32) NOT NULL default ' ',
- logTime timestamp,
- ID_MEMBER mediumint(8) unsigned NOT NULL default '0',
- ip int(11) unsigned NOT NULL default '0',
- url text NOT NULL default '',
- PRIMARY KEY (session),
- KEY online (logTime, ID_MEMBER),
- KEY ID_MEMBER (ID_MEMBER)
- ) ENGINE=MyISAM;
- ---#
- ---# Converting "log_floodcontrol"...
- DROP TABLE IF EXISTS {$db_prefix}log_floodcontrol;
- CREATE TABLE {$db_prefix}log_floodcontrol (
- ip tinytext NOT NULL default '',
- logTime int(10) unsigned NOT NULL default '0',
- PRIMARY KEY (ip(16)),
- KEY logTime (logTime)
- ) ENGINE=MyISAM;
- ---#
- ---# Converting "log_karma"...
- DROP TABLE IF EXISTS {$db_prefix}log_karma;
- CREATE TABLE {$db_prefix}log_karma (
- ID_TARGET mediumint(8) unsigned NOT NULL default '0',
- ID_EXECUTOR mediumint(8) unsigned NOT NULL default '0',
- logTime int(10) unsigned NOT NULL default '0',
- action tinyint(4) NOT NULL default '0',
- PRIMARY KEY (ID_TARGET, ID_EXECUTOR),
- KEY logTime (logTime)
- ) ENGINE=MyISAM;
- ---#
- ---# Retiring "log_clicks"...
- DROP TABLE IF EXISTS {$db_prefix}log_clicks;
- ---#
- ---# Converting "log_notify"...
- INSERT INTO {$db_prefix}log_notify
- SELECT ID_MEMBER, ID_TOPIC, 0, notificationSent
- FROM {$db_prefix}log_topics
- WHERE notificationSent != 0;
- ALTER TABLE {$db_prefix}log_topics
- DROP notificationSent;
- ---#
- ---# Converting "log_errors"...
- ALTER TABLE {$db_prefix}log_errors
- CHANGE COLUMN ID_ERROR ID_ERROR mediumint(8) unsigned NOT NULL auto_increment,
- ADD session char(32) NOT NULL default ' ';
- ---#
- ---# Converting "log_boards"...
- ---{
- $request = upgrade_query("
- SELECT lmr.ID_BOARD, lmr.ID_MEMBER, lmr.logTime
- FROM {$db_prefix}log_mark_read AS lmr
- LEFT JOIN {$db_prefix}log_boards AS lb ON (lb.ID_BOARD = lmr.ID_BOARD AND lb.ID_MEMBER = lmr.ID_MEMBER)
- WHERE lb.logTime < lmr.logTime");
- $replaceRows = '';
- while ($row = smf_mysql_fetch_assoc($request))
- $replaceRows .= "($row[ID_BOARD], $row[ID_MEMBER], $row[logTime]),";
- smf_mysql_free_result($request);
- if (!empty($replaceRows))
- {
- $replaceRows = substr($replaceRows, 0, -1);
- upgrade_query("
- REPLACE INTO {$db_prefix}log_boards
- (ID_BOARD, ID_MEMBER, logTime)
- VALUES $replaceRows");
- }
- ---}
- ---#
- ---# Converting "log_activity"...
- ALTER TABLE {$db_prefix}log_activity
- ADD date date NOT NULL default '0001-01-01';
- ALTER TABLE {$db_prefix}log_activity
- DROP PRIMARY KEY;
- UPDATE IGNORE {$db_prefix}log_activity
- SET date = year * 10000 + month * 100 + day;
- ALTER TABLE {$db_prefix}log_activity
- DROP day,
- DROP month,
- DROP year;
- ALTER TABLE {$db_prefix}log_activity
- ADD INDEX hits (hits);
- ALTER TABLE {$db_prefix}log_activity
- ADD PRIMARY KEY (date);
- ALTER TABLE {$db_prefix}log_activity
- CHANGE COLUMN hits hits mediumint(8) unsigned NOT NULL default '0',
- CHANGE COLUMN topics topics smallint(5) unsigned NOT NULL default '0',
- CHANGE COLUMN posts posts smallint(5) unsigned NOT NULL default '0',
- CHANGE COLUMN registers registers smallint(5) unsigned NOT NULL default '0',
- CHANGE COLUMN most_on most_on smallint(5) unsigned NOT NULL default '0';
- ---#
- /******************************************************************************/
- --- Converting Boards and Categories...
- /******************************************************************************/
- ---# Adding new columns to "boards"...
- ALTER TABLE {$db_prefix}boards
- CHANGE COLUMN count countPosts tinyint(4) NOT NULL default '0',
- ADD lastUpdated int(11) unsigned NOT NULL default '0',
- ADD ID_PARENT smallint(5) unsigned NOT NULL default '0',
- ADD ID_LAST_MSG int(10) unsigned NOT NULL default '0',
- ADD childLevel tinyint(4) unsigned NOT NULL default '0';
- ---#
- ---# Updating the structure of "boards"...
- ALTER TABLE {$db_prefix}boards
- CHANGE COLUMN boardOrder boardOrder smallint(5) NOT NULL default '0';
- ALTER TABLE {$db_prefix}boards
- DROP isAnnouncement;
- ALTER TABLE {$db_prefix}boards
- ADD ID_THEME tinyint(4) unsigned NOT NULL default '0';
- ALTER TABLE {$db_prefix}boards
- ADD use_local_permissions tinyint(4) unsigned NOT NULL default '0';
- ALTER TABLE {$db_prefix}boards
- ADD override_theme tinyint(4) unsigned NOT NULL default '0';
- ---#
- ---# Reindexing "boards" (part 1)...
- ALTER TABLE {$db_prefix}boards
- DROP INDEX ID_CAT,
- DROP ID_LAST_TOPIC;
- ALTER TABLE {$db_prefix}boards
- DROP INDEX memberGroups;
- ---#
- ---# Reindexing "boards" (part 2)...
- ALTER TABLE {$db_prefix}boards
- ADD INDEX lastUpdated (lastUpdated),
- ADD INDEX memberGroups (memberGroups(48)),
- ADD UNIQUE INDEX categories (ID_CAT, ID_BOARD);
- ---#
- ---# Updating the column sizes on "boards"...
- ALTER TABLE {$db_prefix}boards
- DROP PRIMARY KEY,
- CHANGE COLUMN ID_CAT ID_CAT tinyint(4) unsigned NOT NULL default '0',
- CHANGE COLUMN numTopics numTopics mediumint(8) unsigned NOT NULL default '0',
- CHANGE COLUMN numPosts numPosts mediumint(8) unsigned NOT NULL default '0',
- CHANGE COLUMN description description text NOT NULL default '',
- CHANGE COLUMN ID_BOARD ID_BOARD smallint(5) unsigned NOT NULL auto_increment PRIMARY KEY;
- ---#
- ---# Updating access permissions...
- ---{
- $member_groups = getMemberGroups();
- $result = upgrade_query("
- ALTER TABLE {$db_prefix}boards
- ADD memberGroups varchar(128) NOT NULL default '-1,0'");
- if ($result !== false)
- {
- $result = upgrade_query("
- SELECT TRIM(memberGroups) AS memberGroups, ID_CAT
- FROM {$db_prefix}categories");
- while ($row = smf_mysql_fetch_assoc($result))
- {
- if (trim($row['memberGroups']) == '')
- $groups = '-1,0,2';
- else
- {
- $memberGroups = array_unique(explode(',', $row['memberGroups']));
- $groups = array(2);
- foreach ($memberGroups as $k => $check)
- {
- $memberGroups[$k] = trim($memberGroups[$k]);
- if ($memberGroups[$k] == '' || !isset($member_groups[$memberGroups[$k]]) || $member_groups[$memberGroups[$k]] == 8)
- continue;
- $groups[] = $member_groups[$memberGroups[$k]];
- }
- $groups = implode(',', array_unique($groups));
- }
- upgrade_query("
- UPDATE {$db_prefix}boards
- SET memberGroups = '$groups', lastUpdated = " . time() . "
- WHERE ID_CAT = $row[ID_CAT]");
- }
- }
- ---}
- ALTER TABLE {$db_prefix}categories
- DROP memberGroups;
- ALTER TABLE {$db_prefix}boards
- CHANGE COLUMN memberGroups memberGroups varchar(128) NOT NULL default '-1,0';
- ---#
- ---# Converting "categories"...
- ALTER TABLE {$db_prefix}categories
- DROP PRIMARY KEY,
- ADD canCollapse tinyint(1) NOT NULL default '1',
- CHANGE COLUMN ID_CAT ID_CAT tinyint(4) unsigned NOT NULL auto_increment PRIMARY KEY;
- ---#
- ---# Converting announcement permissions...
- ---{
- $request = upgrade_query("
- SHOW COLUMNS
- FROM {$db_prefix}boards
- LIKE 'notifyAnnouncements'");
- if (smf_mysql_num_rows($request) > 0)
- {
- $conversions = array(
- 'moderate_forum' => array('manage_membergroups', 'manage_bans'),
- 'admin_forum' => array('manage_permissions'),
- 'edit_forum' => array('manage_boards', 'manage_smileys', 'manage_attachments'),
- );
- foreach ($conversions as $original_permission => $new_permissions)
- {
- $setString = '';
- $result = upgrade_query("
- SELECT ID_GROUP, addDeny
- FROM {$db_prefix}permissions
- WHERE permission = '$original_permission'");
- while ($row = smf_mysql_fetch_assoc($result))
- $setString .= "
- ('" . implode("', $row[ID_GROUP], $row[addDeny]),
- ('", $new_permissions) . "', $row[ID_GROUP], $row[addDeny]),";
- smf_mysql_free_result($result);
- if ($setString != '')
- upgrade_query("
- INSERT IGNORE INTO {$db_prefix}permissions
- (permission, ID_GROUP, addDeny)
- VALUES" . substr($setString, 0, -1));
- }
- }
- smf_mysql_free_result($request);
- ---}
- DELETE FROM {$db_prefix}permissions
- WHERE permission = 'edit_forum';
- ALTER TABLE {$db_prefix}boards
- DROP COLUMN notifyAnnouncements;
- ---#
- ---# Converting board statistics...
- ---{
- $result = upgrade_query("
- SELECT MAX(m.ID_MSG) AS ID_LAST_MSG, t.ID_BOARD
- FROM ({$db_prefix}messages AS m, {$db_prefix}topics AS t)
- WHERE m.ID_MSG = t.ID_LAST_MSG
- GROUP BY t.ID_BOARD");
- $last_msgs = array();
- while ($row = smf_mysql_fetch_assoc($result))
- $last_msgs[] = $row['ID_LAST_MSG'];
- smf_mysql_free_result($result);
- if (!empty($last_msgs))
- {
- $result = upgrade_query("
- SELECT m.ID_MSG, m.posterTime, t.ID_BOARD
- FROM ({$db_prefix}messages AS m, {$db_prefix}topics AS t)
- WHERE t.ID_TOPIC = m.ID_TOPIC
- AND m.ID_MSG IN (" . implode(',', $last_msgs) . ")
- LIMIT " . count($last_msgs));
- while ($row = smf_mysql_fetch_assoc($result))
- {
- upgrade_query("
- UPDATE {$db_prefix}boards
- SET ID_LAST_MSG = $row[ID_MSG], lastUpdated = " . (int) $row['posterTime'] . "
- WHERE ID_BOARD = $row[ID_BOARD]
- LIMIT 1");
- }
- smf_mysql_free_result($result);
- }
- ---}
- ---#
- ---# Converting "moderators"...
- ---{
- $request = upgrade_query("
- SHOW COLUMNS
- FROM {$db_prefix}boards
- LIKE 'moderators'");
- $do_moderators = smf_mysql_num_rows($request) > 0;
- smf_mysql_free_result($request);
- if ($do_moderators)
- {
- $result = upgrade_query("
- SELECT TRIM(moderators) AS moderators, ID_BOARD
- FROM {$db_prefix}boards
- WHERE TRIM(moderators) != ''");
- while ($row = smf_mysql_fetch_assoc($result))
- {
- $moderators = array_unique(explode(',', $row['moderators']));
- foreach ($moderators as $k => $dummy)
- {
- $moderators[$k] = addslashes(trim($moderators[$k]));
- if ($moderators[$k] == '')
- unset($moderators[$k]);
- }
- if (!empty($moderators))
- {
- upgrade_query("
- INSERT IGNORE INTO {$db_prefix}moderators
- (ID_BOARD, ID_MEMBER)
- SELECT $row[ID_BOARD], ID_MEMBER
- FROM {$db_prefix}members
- WHERE memberName IN ('" . implode("', '", $moderators) . "')
- LIMIT " . count($moderators));
- }
- }
- }
- ---}
- ALTER TABLE {$db_prefix}boards
- DROP moderators;
- ---#
- ---# Updating board order...
- ---{
- $request = upgrade_query("
- SELECT c.ID_CAT, c.catOrder, b.ID_BOARD, b.boardOrder
- FROM {$db_prefix}categories AS c
- LEFT JOIN {$db_prefix}boards AS b ON (b.ID_CAT = c.ID_CAT)
- ORDER BY c.catOrder, b.childLevel, b.boardOrder, b.ID_BOARD");
- $catOrder = -1;
- $boardOrder = -1;
- $curCat = -1;
- while ($row = smf_mysql_fetch_assoc($request))
- {
- if ($curCat != $row['ID_CAT'])
- {
- $curCat = $row['ID_CAT'];
- if (++$catOrder != $row['catOrder'])
- upgrade_query("
- UPDATE {$db_prefix}categories
- SET catOrder = $catOrder
- WHERE ID_CAT = $row[ID_CAT]
- LIMIT 1");
- }
- if (!empty($row['ID_BOARD']) && ++$boardOrder != $row['boardOrder'])
- upgrade_query("
- UPDATE {$db_prefix}boards
- SET boardOrder = $boardOrder
- WHERE ID_BOARD = $row[ID_BOARD]
- LIMIT 1");
- }
- smf_mysql_free_result($request);
- ---}
- ---#
- ---# Fixing possible issues with board access (part 1)...
- ---{
- if (empty($modSettings['smfVersion']) || (substr($modSettings['smfVersion'], 0, 9) == '1.0 Beta ' && $modSettings['smfVersion'][9] <= 5))
- {
- $all_groups = array();
- $result = upgrade_query("
- SELECT ID_GROUP
- FROM {$db_prefix}membergroups");
- while ($row = smf_mysql_fetch_assoc($result))
- $all_groups[] = $row['ID_GROUP'];
- smf_mysql_free_result($result);
- $result = upgrade_query("
- SELECT ID_BOARD, memberGroups
- FROM {$db_prefix}boards
- WHERE FIND_IN_SET(0, memberGroups)");
- while ($row = smf_mysql_fetch_assoc($result))
- {
- upgrade_query("
- UPDATE {$db_prefix}boards
- SET memberGroups = '" . implode(',', array_unique(array_merge(explode(',', $row['memberGroups']), $all_groups))) . "'
- WHERE ID_BOARD = $row[ID_BOARD]
- LIMIT 1");
- }
- smf_mysql_free_result($result);
- }
- ---}
- ---#
- ---# Fixing possible issues with board access. (part 2)..
- UPDATE {$db_prefix}boards
- SET memberGroups = SUBSTRING(memberGroups, 2)
- WHERE SUBSTRING(memberGroups, 1, 1) = ',';
- UPDATE {$db_prefix}boards
- SET memberGroups = SUBSTRING(memberGroups, 1, LENGTH(memberGroups) - 1)
- WHERE SUBSTRING(memberGroups, LENGTH(memberGroups)) = ',';
- UPDATE {$db_prefix}boards
- SET memberGroups = REPLACE(',,', ',', REPLACE(',,', ',', memberGroups))
- WHERE LOCATE(',,', memberGroups);
- ---#
- /******************************************************************************/
- --- Converting attachments, topics, and messages...
- /******************************************************************************/
- ---# Converting "attachments"...
- INSERT INTO {$db_prefix}attachments
- (ID_MSG, filename, size)
- SELECT ID_MSG, SUBSTRING(attachmentFilename, 1, 255), attachmentSize
- FROM {$db_prefix}messages
- WHERE attachmentFilename IS NOT NULL
- AND attachmentFilename != '';
- ALTER TABLE {$db_prefix}messages
- DROP attachmentSize,
- DROP attachmentFilename;
- ---#
- ---# Updating "attachments"...
- ALTER TABLE {$db_prefix}attachments
- DROP INDEX ID_MEMBER,
- ADD UNIQUE ID_MEMBER (ID_MEMBER, ID_ATTACH);
- ALTER TABLE {$db_prefix}attachments
- CHANGE COLUMN size size int(10) unsigned NOT NULL default '0';
- ---#
- ---# Updating columns on "messages" (part 1)...
- ALTER TABLE {$db_prefix}messages
- DROP PRIMARY KEY,
- CHANGE COLUMN ID_MSG ID_MSG int(10) unsigned NOT NULL auto_increment PRIMARY KEY;
- ---#
- ---# Updating columns on "messages" (part 2)...
- ALTER TABLE {$db_prefix}messages
- CHANGE COLUMN ID_TOPIC ID_TOPIC mediumint(8) unsigned NOT NULL default '0';
- ALTER TABLE {$db_prefix}messages
- CHANGE COLUMN smiliesEnabled smileysEnabled tinyint(4) NOT NULL default '1';
- ---#
- ---# Updating columns on "messages" (part 3)...
- ALTER TABLE {$db_prefix}messages
- CHANGE COLUMN posterTime posterTime int(10) unsigned NOT NULL default '0',
- CHANGE COLUMN modifiedTime modifiedTime int(10) unsigned NOT NULL default '0';
- ALTER TABLE {$db_prefix}messages
- ADD INDEX participation (ID_MEMBER, ID_TOPIC);
- ALTER TABLE {$db_prefix}messages
- ADD INDEX ipIndex (posterIP(15), ID_TOPIC);
- ---#
- ---# Updating columns on "messages" (part 4)...
- ALTER TABLE {$db_prefix}messages
- CHANGE COLUMN ID_MEMBER ID_MEMBER mediumint(8) unsigned NOT NULL default '0',
- CHANGE COLUMN icon icon varchar(16) NOT NULL default 'xx';
- ALTER TABLE {$db_prefix}messages
- ADD INDEX ID_MEMBER (ID_MEMBER);
- ALTER TABLE {$db_prefix}messages
- ADD UNIQUE INDEX topic (ID_TOPIC, ID_MSG);
- ---#
- ---# Updating columns on "messages" (part 5)...
- ALTER TABLE {$db_prefix}messages
- ADD COLUMN ID_BOARD smallint(5) unsigned NOT NULL default '0';
- ---#
- ---# Updating data in "messages"...
- ---{
- while (true)
- {
- nextSubstep($substep);
- $request = upgrade_query("
- SELECT DISTINCT t.ID_BOARD, t.ID_TOPIC
- FROM ({$db_prefix}messages AS m, {$db_prefix}topics AS t)
- WHERE t.ID_TOPIC = m.ID_TOPIC
- AND m.ID_BOARD = 0
- LIMIT 1400");
- $boards = array();
- while ($row = smf_mysql_fetch_assoc($request))
- $boards[$row['ID_BOARD']][] = $row['ID_TOPIC'];
- foreach ($boards as $board => $topics)
- upgrade_query("
- UPDATE {$db_prefix}messages
- SET ID_BOARD = $board
- WHERE ID_TOPIC IN (" . implode(', ', $topics) . ')');
- if (smf_mysql_num_rows($request) < 1400)
- break;
- smf_mysql_free_result($request);
- }
- ---}
- ---#
- ---# Cleaning up "messages"...
- ALTER TABLE {$db_prefix}messages
- ADD INDEX ID_BOARD (ID_BOARD);
- ALTER TABLE {$db_prefix}messages
- DROP INDEX posterTime_2;
- ALTER TABLE {$db_prefix}messages
- DROP INDEX posterTime_3;
- ALTER TABLE {$db_prefix}messages
- DROP INDEX ID_MEMBER_2;
- ALTER TABLE {$db_prefix}messages
- DROP INDEX ID_MEMBER_3;
- ---#
- ---# Updating indexes on "topics" (part 1)...
- ALTER TABLE {$db_prefix}topics
- DROP INDEX ID_FIRST_MSG;
- ALTER TABLE {$db_prefix}topics
- DROP INDEX ID_LAST_MSG;
- ALTER TABLE {$db_prefix}topics
- ADD INDEX isSticky (isSticky);
- ---#
- ---# Updating indexes on "topics" (part 2)...
- ALTER IGNORE TABLE {$db_prefix}topics
- ADD UNIQUE INDEX lastMessage (ID_LAST_MSG, ID_BOARD),
- ADD UNIQUE INDEX firstMessage (ID_FIRST_MSG, ID_BOARD),
- ADD UNIQUE INDEX poll (ID_POLL, ID_TOPIC);
- ---#
- ---# Updating columns on "topics" (part 1)...
- ALTER TABLE {$db_prefix}topics
- DROP PRIMARY KEY,
- CHANGE COLUMN ID_TOPIC ID_TOPIC mediumint(8) unsigned NOT NULL auto_increment PRIMARY KEY,
- CHANGE COLUMN ID_BOARD ID_BOARD smallint(5) unsigned NOT NULL default '0';
- ---#
- ---# Updating columns on "topics" (part 2)...
- ALTER TABLE {$db_prefix}topics
- CHANGE COLUMN ID_MEMBER_STARTED ID_MEMBER_STARTED mediumint(8) unsigned NOT NULL default '0',
- CHANGE COLUMN ID_MEMBER_UPDATED ID_MEMBER_UPDATED mediumint(8) unsigned NOT NULL default '0';
- ---#
- ---# Updating columns on "topics" (part 3)...
- ALTER TABLE {$db_prefix}topics
- CHANGE COLUMN ID_FIRST_MSG ID_FIRST_MSG int(10) unsigned NOT NULL default '0',
- CHANGE COLUMN ID_LAST_MSG ID_LAST_MSG int(10) unsigned NOT NULL default '0';
- ---#
- ---# Updating columns on "topics" (part 4)...
- ALTER TABLE {$db_prefix}topics
- CHANGE COLUMN ID_POLL ID_POLL mediumint(8) unsigned NOT NULL default '0';
- ---#
- /******************************************************************************/
- --- Converting members and personal messages...
- /******************************************************************************/
- ---# Updating data in "members" (part 1)...
- UPDATE IGNORE {$db_prefix}members
- SET im_ignore_list = '*'
- WHERE im_ignore_list RLIKE '([\n,]|^)[*]([\n,]|$)';
- ---#
- ---# Updating data in "members" (part 2)...
- ---{
- $request = upgrade_query("
- SHOW COLUMNS
- FROM {$db_prefix}members
- LIKE 'im_ignore_list'");
- $do_it = smf_mysql_num_rows($request) != 0;
- smf_mysql_free_result($request);
- while ($do_it)
- {
- nextSubstep($substep);
- $request = upgrade_query("
- SELECT ID_MEMBER, im_ignore_list
- FROM {$db_prefix}members
- WHERE im_ignore_list RLIKE '[a-z]'
- LIMIT 512");
- while ($row = smf_mysql_fetch_assoc($request))
- {
- $request2 = upgrade_query("
- SELECT ID_MEMBER
- FROM {$db_prefix}members
- WHERE FIND_IN_SET(memberName, '" . addslashes($row['im_ignore_list']) . "')");
- $im_ignore_list = '';
- while ($row2 = smf_mysql_fetch_assoc($request2))
- $im_ignore_list .= ',' . $row2['ID_MEMBER'];
- smf_mysql_free_result($request2);
- upgrade_query("
- UPDATE {$db_prefix}members
- SET im_ignore_list = '" . substr($im_ignore_list, 1) . "'
- WHERE ID_MEMBER = $row[ID_MEMBER]
- LIMIT 1");
- }
- if (smf_mysql_num_rows($request) < 512)
- break;
- smf_mysql_free_result($request);
- }
- ---}
- ---#
- ---# Updating data in "members" (part 3)...
- UPDATE {$db_prefix}members
- SET realName = memberName
- WHERE IFNULL(realName, '') = '';
- ---#
- ---# Updating data in "members" (part 4)...
- UPDATE {$db_prefix}members
- SET lngfile = REPLACE(lngfile, '.lng', '')
- WHERE lngfile LIKE '%.lng';
- ---#
- ---# Cleaning up "members"...
- ALTER TABLE {$db_prefix}members
- DROP INDEX memberID;
- ALTER TABLE {$db_prefix}members
- DROP INDEX memberID_2;
- ---#
- ---# Adding new columns to "members"...
- ALTER TABLE {$db_prefix}members
- DROP PRIMARY KEY,
- CHANGE COLUMN ID_MEMBER ID_MEMBER mediumint(8) unsigned NOT NULL auto_increment PRIMARY KEY,
- ADD instantMessages smallint(5) NOT NULL default 0,
- ADD unreadMessages smallint(5) NOT NULL default 0,
- ADD ID_THEME tinyint(4) unsigned NOT NULL default 0,
- ADD ID_GROUP smallint(5) unsigned NOT NULL default 0,
- ADD is_activated tinyint(3) unsigned NOT NULL default '1',
- ADD validation_code varchar(10) NOT NULL default '',
- ADD ID_MSG_LAST_VISIT int(10) unsigned NOT NULL default '0',
- ADD additionalGroups tinytext NOT NULL default '';
- ---#
- ---# Updating columns on "members"...
- ALTER TABLE {$db_prefix}members
- CHANGE COLUMN ID_THEME ID_THEME tinyint(4) unsigned NOT NULL default 0;
- ALTER TABLE {$db_prefix}members
- ADD showOnline tinyint(4) NOT NULL default '1';
- ALTER TABLE {$db_prefix}members
- ADD smileySet varchar(48) NOT NULL default '';
- ALTER TABLE {$db_prefix}members
- ADD totalTimeLoggedIn int(10) unsigned NOT NULL default '0';
- ALTER TABLE {$db_prefix}members
- ADD passwordSalt varchar(5) NOT NULL default '';
- ---#
- ---# Updating data in "members" (part 5)...
- UPDATE {$db_prefix}members
- SET gender = CASE gender
- WHEN '0' THEN 0
- WHEN 'Male' THEN 1
- WHEN 'Female' THEN 2
- ELSE 0 END, secretAnswer = IF(secretAnswer = '', '', MD5(secretAnswer))
- WHERE gender NOT IN ('0', '1', '2');
- ---#
- ---# Updating data in "members" (part 6)...
- ---{
- $member_groups = getMemberGroups();
- foreach ($member_groups as $name => $id)
- {
- upgrade_query("
- UPDATE IGNORE {$db_prefix}members
- SET ID_GROUP = $id
- WHERE memberGroup = '" . addslashes($name) . "'");
- nextSubstep($substep);
- }
- ---}
- UPDATE IGNORE {$db_prefix}members
- SET ID_GROUP = 1
- WHERE memberGroup = 'Administrator';
- UPDATE IGNORE {$db_prefix}members
- SET ID_GROUP = 2
- WHERE memberGroup = 'Global Moderator';
- ALTER TABLE {$db_prefix}members
- DROP memberGroup;
- ---#
- ---# Changing column sizes on "members" (part 1)...
- ALTER TABLE {$db_prefix}members
- CHANGE COLUMN timeOffset timeOffset float NOT NULL default '0',
- CHANGE COLUMN posts posts mediumint(8) unsigned NOT NULL default '0',
- CHANGE COLUMN timeFormat timeFormat varchar(80) NOT NULL default '',
- CHANGE COLUMN lastLogin lastLogin int(11) NOT NULL default '0',
- CHANGE COLUMN karmaBad karmaBad smallint(5) unsigned NOT NULL default '0',
- CHANGE COLUMN karmaGood karmaGood smallint(5) unsigned NOT NULL default '0',
- CHANGE COLUMN gender gender tinyint(4) unsigned NOT NULL default '0',
- CHANGE COLUMN hideEmail hideEmail tinyint(4) NOT NULL default '0';
- ---#
- ---# Changing column sizes on "members" (part 2)...
- ALTER TABLE {$db_prefix}members
- DROP INDEX realName;
- ALTER TABLE {$db_prefix}members
- CHANGE COLUMN AIM AIM varchar(16) NOT NULL default '',
- CHANGE COLUMN YIM YIM varchar(32) NOT NULL default '',
- CHANGE COLUMN ICQ ICQ tinytext NOT NULL default '',
- CHANGE COLUMN realName realName tinytext NOT NULL default '',
- CHANGE COLUMN emailAddress emailAddress tinytext NOT NULL default '',
- CHANGE COLUMN dateRegistered dateRegistered int(10) unsigned NOT NULL default '0',
- CHANGE COLUMN passwd passwd varchar(64) NOT NULL default '',
- CHANGE COLUMN personalText personalText tinytext NOT NULL default '',
- CHANGE COLUMN websiteTitle websiteTitle tinytext NOT NULL default '';
- ---#
- ---# Changing column sizes on "members" (part 3)...
- ALTER TABLE {$db_prefix}members
- DROP INDEX lngfile;
- ALTER TABLE {$db_prefix}members
- CHANGE COLUMN websiteUrl websiteUrl tinytext NOT NULL default '',
- CHANGE COLUMN location location tinytext NOT NULL default '',
- CHANGE COLUMN avatar avatar tinytext NOT NULL default '',
- CHANGE COLUMN im_ignore_list im_ignore_list tinytext NOT NULL default '',
- CHANGE COLUMN usertitle usertitle tinytext NOT NULL default '',
- CHANGE COLUMN lngfile lngfile tinytext NOT NULL default '',
- CHANGE COLUMN MSN MSN tinytext NOT NULL default '',
- CHANGE COLUMN memberIP memberIP tinytext NOT NULL default '',
- ADD INDEX lngfile (lngfile(24));
- ---#
- ---# Updating keys on "members"...
- ALTER TABLE {$db_prefix}members
- ADD INDEX ID_GROUP (ID_GROUP),
- ADD INDEX birthdate (birthdate),
- ADD INDEX lngfile (lngfile(30));
- ---#
- ---# Converting member statistics...
- REPLACE INTO {$db_prefix}settings
- (variable, value)
- SELECT 'latestMember', ID_MEMBER
- FROM {$db_prefix}members
- ORDER BY ID_MEMBER DESC
- LIMIT 1;
- REPLACE INTO {$db_prefix}settings
- (variable, value)
- SELECT 'latestRealName', IFNULL(realName, memberName)
- FROM {$db_prefix}members
- ORDER BY ID_MEMBER DESC
- LIMIT 1;
- REPLACE INTO {$db_prefix}settings
- (variable, value)
- SELECT 'maxMsgID', ID_MSG
- FROM {$db_prefix}messages
- ORDER BY ID_MSG DESC
- LIMIT 1;
- ---#
- ---# Adding new columns to "instant_messages"...
- ALTER IGNORE TABLE {$db_prefix}instant_messages
- ADD COLUMN deletedBySender tinyint(3) unsigned NOT NULL default '0' AFTER ID_MEMBER_FROM;
- ---#
- ---# Changing column sizes on "instant_messages" (part 1)...
- ALTER TABLE {$db_prefix}instant_messages
- CHANGE COLUMN ID_MEMBER_FROM ID_MEMBER_FROM mediumint(8) unsigned NOT NULL default 0,
- CHANGE COLUMN msgtime msgtime int(10) unsigned NOT NULL default '0',
- CHANGE COLUMN subject subject tinytext NOT NULL;
- ALTER TABLE {$db_prefix}instant_messages
- DROP INDEX fromName,
- DROP INDEX ID_MEMBER_FROM;
- ---#
- ---# Changing column sizes on "instant_messages" (part 2)...
- ALTER TABLE {$db_prefix}instant_messages
- DROP PRIMARY KEY,
- CHANGE COLUMN ID_IM ID_PM int(10) unsigned NOT NULL auto_increment PRIMARY KEY;
- ALTER TABLE {$db_prefix}instant_messages
- ADD INDEX msgtime (msgtime);
- ---#
- ---# Cleaning up "instant_messages"...
- ALTER TABLE {$db_prefix}instant_messages
- DROP INDEX ID_MEMBER_FROM_2;
- ALTER TABLE {$db_prefix}instant_messages
- DROP INDEX ID_MEMBER_FROM_3;
- ALTER TABLE {$db_prefix}instant_messages
- DROP INDEX ID_MEMBER_FROM_4;
- ALTER TABLE {$db_prefix}instant_messages
- DROP INDEX ID_MEMBER_FROM_5;
- ALTER TABLE {$db_prefix}instant_messages
- DROP INDEX ID_MEMBER_TO_2;
- ALTER TABLE {$db_prefix}instant_messages
- DROP INDEX ID_MEMBER_TO_3;
- ALTER TABLE {$db_prefix}instant_messages
- DROP INDEX ID_MEMBER_TO_4;
- ALTER TABLE {$db_prefix}instant_messages
- DROP INDEX ID_MEMBER_TO_5;
- ALTER TABLE {$db_prefix}instant_messages
- DROP INDEX deletedBy_2;
- ALTER TABLE {$db_prefix}instant_messages
- DROP INDEX deletedBy_3;
- ALTER TABLE {$db_prefix}instant_messages
- DROP INDEX deletedBy_4;
- ALTER TABLE {$db_prefix}instant_messages
- DROP INDEX deletedBy_5;
- ---#
- ---# Creating "im_recipients"...
- CREATE TABLE IF NOT EXISTS {$db_prefix}im_recipients (
- ID_PM int(10) unsigned NOT NULL default '0',
- ID_MEMBER mediumint(8) unsigned NOT NULL default '0',
- bcc tinyint(3) unsigned NOT NULL default '0',
- is_read tinyint(3) unsigned NOT NULL default '0',
- deleted tinyint(3) unsigned NOT NULL default '0',
- PRIMARY KEY (ID_PM, ID_MEMBER),
- KEY ID_MEMBER (ID_MEMBER, deleted)
- ) ENGINE=MyISAM;
- ---#
- ---# Updating "im_recipients"...
- ALTER TABLE {$db_prefix}im_recipients
- DROP PRIMARY KEY,
- CHANGE COLUMN ID_IM ID_PM int(10) unsigned NOT NULL default '0',
- ADD PRIMARY KEY (ID_PM, ID_MEMBER);
- ---#
- ---# Updating data in "instant_messages" (part 1)...
- ---{
- $request = upgrade_query("
- SHOW COLUMNS
- FROM {$db_prefix}instant_messages
- LIKE 'readBy'");
- $do_it = $request !== false;
- if ($do_it)
- {
- $adv_im = smf_mysql_num_rows($request) == 0;
- smf_mysql_free_result($request);
- upgrade_query("
- INSERT IGNORE INTO {$db_prefix}im_recipients
- (ID_PM, ID_MEMBER, bcc, is_read, deleted)
- SELECT ID_PM, ID_MEMBER_TO, 0, IF(" . (!$adv_im ? 'readBy' : 'alerted') . " != 0, 1, 0), IF(deletedBy = '1', 1, 0)
- FROM {$db_prefix}instant_messages");
- }
- ---}
- UPDATE IGNORE {$db_prefix}instant_messages
- SET deletedBySender = 1
- WHERE deletedBy = 0;
- ---#
- ---# Updating data in "instant_messages" (part 2)...
- ALTER TABLE {$db_prefix}instant_messages
- DROP INDEX ID_MEMBER_TO;
- ALTER TABLE {$db_prefix}instant_messages
- DROP INDEX deletedBy;
- ALTER TABLE {$db_prefix}instant_messages
- DROP INDEX readBy;
- ALTER TABLE {$db_prefix}instant_messages
- DROP COLUMN ID_MEMBER_TO,
- DROP COLUMN deletedBy,
- DROP COLUMN toName,
- DROP COLUMN readBy;
- ALTER TABLE {$db_prefix}instant_messages
- ADD INDEX ID_MEMBER (ID_MEMBER_FROM, deletedBySender);
- ---#
- ---# Recounting personal message totals...
- ---{
- $request = upgrade_query("
- SHOW CREATE TABLE {$db_prefix}instant_messages");
- $do_it = $request !== false;
- @smf_mysql_free_result($request);
- $request = upgrade_query("
- SELECT COUNT(*)
- FROM {$db_prefix}members");
- list ($totalMembers) = smf_mysql_fetch_row($request);
- smf_mysql_free_result($request);
- $_GET['m'] = (int) @$_GET['m'];
- while ($_GET['m'] < $totalMembers && $do_it)
- {
- nextSubstep($substep);
- $mrequest = upgrade_query("
- SELECT mem.ID_MEMBER, COUNT(pmr.ID_PM) AS instantMessages_real, mem.instantMessages
- FROM {$db_prefix}members AS mem
- LEFT JOIN {$db_prefix}im_recipients AS pmr ON (pmr.ID_MEMBER = mem.ID_MEMBER AND pmr.deleted = 0)
- WHERE mem.ID_MEMBER > $_GET[m]
- AND mem.ID_MEMBER <= $_GET[m] + 512
- GROUP BY mem.ID_MEMBER
- HAVING instantMessages_real != instantMessages
- LIMIT 512");
- while ($row = smf_mysql_fetch_assoc($mrequest))
- {
- upgrade_query("
- UPDATE {$db_prefix}members
- SET instantMessages = $row[instantMessages_real]
- WHERE ID_MEMBER = $row[ID_MEMBER]
- LIMIT 1");
- }
- $_GET['m'] += 512;
- }
- unset($_GET['m']);
- ---}
- ---{
- $request = upgrade_query("
- SHOW CREATE TABLE {$db_prefix}instant_messages");
- $do_it = $request !== false;
- @smf_mysql_free_result($request);
- $request = upgrade_query("
- SELECT COUNT(*)
- FROM {$db_prefix}members");
- list ($totalMembers) = smf_mysql_fetch_row($request);
- smf_mysql_free_result($request);
- $_GET['m'] = (int) @$_GET['m'];
- while ($_GET['m'] < $totalMembers && $do_it)
- {
- nextSubstep($substep);
- $mrequest = upgrade_query("
- SELECT mem.ID_MEMBER, COUNT(pmr.ID_PM) AS unreadMessages_real, mem.unreadMessages
- FROM {$db_prefix}members AS mem
- LEFT JOIN {$db_prefix}im_recipients AS pmr ON (pmr.ID_MEMBER = mem.ID_MEMBER AND pmr.deleted = 0 AND pmr.is_read = 0)
- WHERE mem.ID_MEMBER > $_GET[m]
- AND mem.ID_MEMBER <= $_GET[m] + 512
- GROUP BY mem.ID_MEMBER
- HAVING unreadMessages_real != unreadMessages
- LIMIT 512");
- while ($row = smf_mysql_fetch_assoc($mrequest))
- {
- upgrade_query("
- UPDATE {$db_prefix}members
- SET unreadMessages = $row[unreadMessages_real]
- WHERE ID_MEMBER = $row[ID_MEMBER]
- LIMIT 1");
- }
- $_GET['m'] += 512;
- }
- unset($_GET['m']);
- ---}
- ---#
- ---# Converting "membergroups"...
- ---{
- global $JrPostNum, $FullPostNum, $SrPostNum, $GodPostNum;
- $result = upgrade_query("
- SELECT minPosts
- FROM {$db_prefix}membergroups
- LIMIT 1");
- if ($result === false)
- {
- upgrade_query("
- RENAME TABLE {$db_prefix}membergroups TO {$db_prefix}old_membergroups");
- upgrade_query("
- CREATE TABLE {$db_prefix}membergroups (
- ID_GROUP smallint(5) unsigned NOT NULL auto_increment,
- groupName varchar(80) NOT NULL default '',
- onlineColor varchar(20) NOT NULL default '',
- minPosts mediumint(9) NOT NULL default '-1',
- maxMessages smallint(5) unsigned NOT NULL default '0',
- stars tinytext NOT NULL default '',
- PRIMARY KEY (ID_GROUP),
- KEY minPosts (minPosts)
- ) ENGINE=MyISAM");
- upgrade_query("
- INSERT INTO {$db_prefix}membergroups
- (ID_GROUP, groupName, onlineColor, minPosts, stars)
- SELECT ID_GROUP, membergroup, '#FF0000', -1, '5#staradmin.gif'
- FROM {$db_prefix}old_membergroups
- WHERE ID_GROUP = 1");
- upgrade_query("
- INSERT INTO {$db_prefix}membergroups
- (ID_GROUP, groupName, onlineColor, minPosts, stars)
- SELECT 2, membergroup, '#0000FF', -1, '5#stargmod.gif'
- FROM {$db_prefix}old_membergroups
- WHERE ID_GROUP = 8");
- upgrade_query("
- INSERT INTO {$db_prefix}membergroups
- (ID_GROUP, groupName, onlineColor, minPosts, stars)
- SELECT 3, membergroup, '', -1, '5#starmod.gif'
- FROM {$db_prefix}old_membergroups
- WHERE ID_GROUP = 2");
- upgrade_query("
- INSERT INTO {$db_prefix}membergroups
- (ID_GROUP, groupName, onlineColor, minPosts, stars)
- SELECT
- ID_GROUP + 1, membergroup, '', CASE ID_GROUP
- WHEN 3 THEN 0
- WHEN 4 THEN '$JrPostNum'
- WHEN 5 THEN '$FullPostNum'
- WHEN 6 THEN '$SrPostNum'
- WHEN 7 THEN '$GodPostNum'
- END, CONCAT(ID_GROUP - 2, '#star.gif')
- FROM {$db_prefix}old_membergroups
- WHERE ID_GROUP IN (3, 4, 5, 6, 7)");
- upgrade_query("
- INSERT INTO {$db_prefix}membergroups
- (ID_GROUP, groupName, onlineColor, minPosts, stars)
- SELECT ID_GROUP, membergroup, '', -1, ''
- FROM {$db_prefix}old_membergroups
- WHERE ID_GROUP > 8");
- upgrade_query("
- DROP TABLE IF EXISTS {$db_prefix}old_membergroups");
- $permissions = array(
- 'view_mlist',
- 'search_posts',
- 'profile_view_own',
- 'profile_view_any',
- 'pm_read',
- 'pm_send',
- 'calendar_view',
- 'view_stats',
- 'who_view',
- 'profile_identity_own',
- 'profile_extra_own',
- 'profile_remote_avatar',
- 'profile_remove_own',
- );
- foreach ($permissions as $perm)
- upgrade_query("
- INSERT INTO {$db_prefix}permissions
- (ID_GROUP, permission)
- SELECT IF(ID_GROUP = 1, 0, ID_GROUP), '$perm'
- FROM {$db_prefix}membergroups
- WHERE ID_GROUP != 3
- AND minPosts = -1");
- $board_permissions = array(
- 'remove_own',
- 'lock_own',
- 'mark_any_notify',
- 'mark_notify',
- 'modify_own',
- 'poll_add_own',
- 'poll_edit_own',
- 'poll_lock_own',
- 'poll_post',
- 'poll_view',
- 'poll_vote',
- 'post_attachment',
- 'post_new',
- 'post_reply_any',
- 'post_reply_own',
- 'delete_own',
- 'report_any',
- 'send_topic',
- 'view_attachments',
- );
- foreach ($board_permissions as $perm)
- upgrade_query("
- INSERT INTO {$db_prefix}board_permissions
- (ID_GROUP, permission)
- SELECT IF(ID_GROUP = 1, 0, ID_GROUP), '$perm'
- FROM {$db_prefix}membergroups
- WHERE minPosts = -1");
- }
- ---}
- ---#
- ---# Converting "reserved_names"...
- ---{
- $request = upgrade_query("
- SELECT setting, value
- FROM {$db_prefix}reserved_names");
- if ($request !== false)
- {
- $words = array();
- $match_settings = array();
- while ($row = smf_mysql_fetch_assoc($request))
- {
- if (substr($row['setting'], 0, 5) == 'match')
- $match_settings[$row['setting']] = $row['value'];
- else
- $words[] = $row['value'];
- }
- smf_mysql_free_result($request);
- upgrade_query("
- INSERT IGNORE INTO {$db_prefix}settings
- VALUES ('reserveWord', '" . (int) @$match_settings['matchword'] . "'),
- ('reserveCase', '" . (int) @$match_settings['matchcase'] . "'),
- ('reserveUser', '" . (int) @$match_settings['matchuser'] . "'),
- ('reserveName', '" . (int) @$match_settings['matchname'] . "'),
- ('reserveNames', '" . implode("\n", $words) . "')");
- upgrade_query("
- DROP TABLE {$db_prefix}reserved_names");
- }
- ---}
- ---#
- ---# Converting member's groups...
- ALTER TABLE {$db_prefix}members
- ADD COLUMN ID_POST_GROUP smallint(5) unsigned NOT NULL default '0',
- ADD INDEX ID_POST_GROUP (ID_POST_GROUP);
- ---{
- $request = upgrade_query("
- SELECT ID_GROUP, minPosts
- FROM {$db_prefix}membergroups
- WHERE minPosts != -1
- ORDER BY minPosts DESC");
- $post_groups = array();
- while ($row = smf_mysql_fetch_assoc($request))
- $post_groups[$row['minPosts']] = $row['ID_GROUP'];
- smf_mysql_free_result($request);
- $request = upgrade_query("
- SELECT ID_MEMBER, posts
- FROM {$db_prefix}members");
- $mg_updates = array();
- while ($row = smf_mysql_fetch_assoc($request))
- {
- $group = 4;
- foreach ($post_groups as $min_posts => $group_id)
- if ($row['posts'] > $min_posts)
- {
- $group = $group_id;
- break;
- }
- $mg_updates[$group][] = $row['ID_MEMBER'];
- }
- smf_mysql_free_result($request);
- foreach ($mg_updates as $group_to => $update_members)
- upgrade_query("
- UPDATE {$db_prefix}members
- SET ID_POST_GROUP = $group_to
- WHERE ID_MEMBER IN (" . implode(', ', $update_members) . ")
- LIMIT " . count($update_members));
- ---}
- ---#
- /******************************************************************************/
- --- Converting the calendar, notifications, and miscellaneous...
- /******************************************************************************/
- ---# Converting censored words...
- ---{
- if (!isset($modSettings['censor_vulgar']) || !isset($modSettings['censor_proper']))
- {
- $request = upgrade_query("
- SELECT vulgar, proper
- FROM {$db_prefix}censor");
- $censor_vulgar = array();
- $censor_proper = array();
- while ($row = smf_mysql_fetch_row($request))
- {
- $censor_vulgar[] = trim($row[0]);
- $censor_proper[] = trim($row[1]);
- }
- smf_mysql_free_result($request);
- $modSettings['censor_vulgar'] = addslashes(implode("\n", $censor_vulgar));
- $modSettings['censor_proper'] = addslashes(implode("\n", $censor_proper));
- upgrade_query("
- INSERT IGNORE INTO {$db_prefix}settings
- (variable, value)
- VALUES
- ('censor_vulgar', '$modSettings[censor_vulgar]'),
- ('censor_proper', '$modSettings[censor_proper]')");
- upgrade_query("
- DROP TABLE IF EXISTS {$db_prefix}censor");
- }
- ---}
- ---#
- ---# Converting topic notifications...
- ---{
- $result = upgrade_query("
- SELECT COUNT(*)
- FROM {$db_prefix}topics
- WHERE notifies != ''");
- if ($result !== false)
- {
- list ($numNotifies) = smf_mysql_fetch_row($result);
- smf_mysql_free_result($result);
- $_GET['t'] = (int) @$_GET['t'];
- while ($_GET['t'] < $numNotifies)
- {
- nextSubstep($substep);
- upgrade_query("
- INSERT IGNORE INTO {$db_prefix}log_notify
- (ID_MEMBER, ID_TOPIC)
- SELECT mem.ID_MEMBER, t.ID_TOPIC
- FROM ({$db_prefix}topics AS t, {$db_prefix}members AS mem)
- WHERE FIND_IN_SET(mem.ID_MEMBER, t.notifies)
- AND t.notifies != ''
- LIMIT $_GET[t], 512");
- $_GET['t'] += 512;
- }
- unset($_GET['t']);
- }
- ---}
- ALTER TABLE {$db_prefix}topics
- DROP notifies;
- ---#
- ---# Converting "banned"...
- ---{
- $request = upgrade_query("
- SELECT type, value
- FROM {$db_prefix}banned
- WHERE type = 'ip'");
- if ($request !== false)
- {
- $insertEntries = array();
- while ($row = smf_mysql_fetch_assoc($request))
- {
- if (preg_match('~^\d{1,3}\.(\d{1,3}|\*)\.(\d{1,3}|\*)\.(\d{1,3}|\*)$~', $row['value']) == 0)
- continue;
- $ip_parts = ip2range($row['value']);
- $insertEntries[] = "('ip_ban', {$ip_parts[0]['low']}, {$ip_parts[0]['high']}, {$ip_parts[1]['low']}, {$ip_parts[1]['high']}, {$ip_parts[2]['low']}, {$ip_parts[2]['high']}, {$ip_parts[3]['low']}, {$ip_parts[3]['high']}, '', '', 0, " . time() . ", NULL, 'full_ban', '', 'Imported from YaBB SE')";
- }
- smf_mysql_free_result($request);
- upgrade_query("
- CREATE TABLE IF NOT EXISTS {$db_prefix}banned2 (
- id_ban mediumint(8) unsigned NOT NULL auto_increment,
- ban_type varchar(30) NOT NULL default '',
- ip_low1 tinyint(3) unsigned NOT NULL default '0',
- ip_high1 tinyint(3) unsigned NOT NULL default '0',
- ip_low2 tinyint(3) unsigned NOT NULL default '0',
- ip_high2 tinyint(3) unsigned NOT NULL default '0',
- ip_low3 tinyint(3) unsigned NOT NULL default '0',
- ip_high3 tinyint(3) unsigned NOT NULL default '0',
- ip_low4 tinyint(3) unsigned NOT NULL default '0',
- ip_high4 tinyint(3) unsigned NOT NULL default '0',
- hostname tinytext NOT NULL default '',
- email_address tinytext NOT NULL default '',
- ID_MEMBER mediumint(8) unsigned NOT NULL default '0',
- ban_time int(10) unsigned NOT NULL default '0',
- expire_time int(10) unsigned,
- restriction_type varchar(30) NOT NULL default '',
- reason tinytext NOT NULL default '',
- notes text NOT NULL default '',
- PRIMARY KEY (id_ban)
- ) ENGINE=MyISAM");
- upgrade_query("
- INSERT INTO {$db_prefix}banned2
- (ban_type, ip_low1, ip_high1, ip_low2, ip_high2, ip_low3, ip_high3, ip_low4, ip_high4, hostname, email_address, ID_MEMBER, ban_time, expire_time, restriction_type, reason, notes)
- SELECT 'email_ban', 0, 0, 0, 0, 0, 0, 0, 0, '', value, 0, " . time() . ", NULL, 'full_ban', '', 'Imported from YaBB SE'
- FROM {$db_prefix}banned
- WHERE type = 'email'");
- upgrade_query("
- INSERT INTO {$db_prefix}banned2
- (ban_type, ip_low1, ip_high1, ip_low2, ip_high2, ip_low3, ip_high3, ip_low4, ip_high4, hostname, email_address, ID_MEMBER, ban_time, expire_time, restriction_type, reason, notes)
- SELECT 'user_ban', 0, 0, 0, 0, 0, 0, 0, 0, '', '', mem.ID_MEMBER, " . time() . ", NULL, 'full_ban', '', 'Imported from YaBB SE'
- FROM ({$db_prefix}banned AS ban, {$db_prefix}members AS mem)
- WHERE ban.type = 'username'
- AND mem.memberName = ban.value");
- upgrade_query("
- DROP TABLE {$db_prefix}banned");
- upgrade_query("
- RENAME TABLE {$db_prefix}banned2 TO {$db_prefix}banned");
- if (!empty($insertEntries))
- {
- upgrade_query("
- INSERT INTO {$db_prefix}banned
- (ban_type, ip_low1, ip_high1, ip_low2, ip_high2, ip_low3, ip_high3, ip_low4, ip_high4, hostname, email_address, ID_MEMBER, ban_time, expire_time, restriction_type, reason, notes)
- VALUES " . implode(',', $insertEntries));
- }
- }
- ---}
- ---#
- ---# Updating "log_banned"...
- ALTER TABLE {$db_prefix}log_banned
- CHANGE COLUMN logTime logTime int(10) unsigned NOT NULL default '0';
- ALTER TABLE {$db_prefix}log_banned
- ADD COLUMN id_ban_log mediumint(8) unsigned NOT NULL auto_increment PRIMARY KEY FIRST,
- ADD COLUMN ID_MEMBER mediumint(8) unsigned NOT NULL default '0' AFTER id_ban_log,
- ADD INDEX logTime (logTime);
- ---#
- ---# Updating columns on "calendar"...
- ALTER TABLE {$db_prefix}calendar
- DROP PRIMARY KEY,
- CHANGE COLUMN id ID_EVENT smallint(5) unsigned NOT NULL auto_increment PRIMARY KEY,
- CHANGE COLUMN id_board ID_BOARD smallint(5) unsigned NOT NULL default '0',
- CHANGE COLUMN id_topic ID_TOPIC mediumint(8) unsigned NOT NULL default '0',
- CHANGE COLUMN id_member ID_MEMBER mediumint(8) unsigned NOT NULL default '0';
- ALTER TABLE {$db_prefix}calendar
- CHANGE COLUMN title title varchar(48) NOT NULL default '';
- ALTER TABLE {$db_prefix}calendar
- ADD eventDate date NOT NULL default '0000-00-00';
- ---#
- ---# Updating indexes on "calendar"...
- ALTER TABLE {$db_prefix}calendar
- DROP INDEX idx_year_month;
- ALTER TABLE {$db_prefix}calendar
- DROP INDEX year;
- ---#
- ---# Updating data in "calendar"...
- UPDATE IGNORE {$db_prefix}calendar
- SET eventDate = CONCAT(year, '-', month + 1, '-', day);
- ALTER TABLE {$db_prefix}calendar
- DROP year,
- DROP month,
- DROP day,
- ADD INDEX eventDate (eventDate);
- ---#
- ---# Updating structure on "calendar_holidays"...
- CREATE TABLE IF NOT EXISTS {$db_prefix}calendar_holidays (
- ID_HOLIDAY smallint(5) unsigned NOT NULL auto_increment,
- eventDate date NOT NULL default '0000-00-00',
- title varchar(30) NOT NULL default '',
- PRIMARY KEY (ID_HOLIDAY),
- KEY eventDate (eventDate)
- ) ENGINE=MyISAM;
- ---#
- ---# Updating data in "calendar_holidays"...
- ---{
- $result = upgrade_query("
- SELECT COUNT(*)
- FROM {$db_prefix}calendar_holidays");
- list ($size) = smf_mysql_fetch_row($result);
- smf_mysql_free_result($result);
- if (empty($size))
- {
- upgrade_query("
- INSERT INTO {$db_prefix}calendar_holidays
- (eventDate, title)
- SELECT IF(year IS NULL, CONCAT('0000-', month, '-', day), CONCAT(year, '-', month, '-', day)), title
- FROM {$db_prefix}calendar_holiday");
- upgrade_query("
- INSERT INTO {$db_prefix}calendar_holidays
- (eventDate, title)
- VALUES ('0000-06-06', 'D-Day')");
- }
- ---}
- UPDATE {$db_prefix}calendar_holidays
- SET title = 'New Year\'s'
- WHERE title = 'New Years';
- ---#
- /******************************************************************************/
- --- Converting polls and choices...
- /******************************************************************************/
- ---# Converting data to "poll_choices"...
- INSERT INTO {$db_prefix}poll_choices
- (ID_POLL, ID_CHOICE, label, votes)
- SELECT ID_POLL, 0, option1, votes1
- FROM {$db_prefix}polls;
- INSERT INTO {$db_prefix}poll_choices
- (ID_POLL, ID_CHOICE, label, votes)
- SELECT ID_POLL, 1, option2, votes2
- FROM {$db_prefix}polls;
- INSERT INTO {$db_prefix}poll_choices
- (ID_POLL, ID_CHOICE, label, votes)
- SELECT ID_POLL, 2, option3, votes3
- FROM {$db_prefix}polls;
- INSERT INTO {$db_prefix}poll_choices
- (ID_POLL, ID_CHOICE, label, votes)
- SELECT ID_POLL, 3, option4, votes4
- FROM {$db_prefix}polls;
- INSERT INTO {$db_prefix}poll_choices
- (ID_POLL, ID_CHOICE, label, votes)
- SELECT ID_POLL, 4, option5, votes5
- FROM {$db_prefix}polls;
- INSERT INTO {$db_prefix}poll_choices
- (ID_POLL, ID_CHOICE, label, votes)
- SELECT ID_POLL, 5, option6, votes6
- FROM {$db_prefix}polls;
- INSERT INTO {$db_prefix}poll_choices
- (ID_POLL, ID_CHOICE, label, votes)
- SELECT ID_POLL, 6, option7, votes7
- FROM {$db_prefix}polls;
- INSERT INTO {$db_prefix}poll_choices
- (ID_POLL, ID_CHOICE, label, votes)
- SELECT ID_POLL, 7, option8, votes8
- FROM {$db_prefix}polls;
- ---#
- ---# Converting data to "log_polls"...
- ---{
- $query = upgrade_query("
- SELECT ID_POLL, votedMemberIDs
- FROM {$db_prefix}polls");
- if ($query !== false)
- {
- $setStringLog = '';
- while ($row = smf_mysql_fetch_assoc($query))
- {
- $members = explode(',', $row['votedMemberIDs']);
- foreach ($members as $member)
- if (is_numeric($member) && !empty($member))
- $setStringLog .= "
- ($row[ID_POLL], $member, 0),";
- }
- if (!empty($setStringLog))
- {
- upgrade_query("
- INSERT IGNORE INTO {$db_prefix}log_polls
- (ID_POLL, ID_MEMBER, ID_CHOICE)
- VALUES " . substr($setStringLog, 0, -1));
- }
- }
- ---}
- ---#
- ---# Updating "polls"...
- ALTER TABLE {$db_prefix}polls
- DROP option1, DROP option2, DROP option3, DROP option4, DROP option5, DROP option6, DROP option7, DROP option8,
- DROP votes1, DROP votes2, DROP votes3, DROP votes4, DROP votes5, DROP votes6, DROP votes7, DROP votes8,
- DROP votedMemberIDs,
- DROP PRIMARY KEY,
- CHANGE COLUMN ID_POLL ID_POLL mediumint(8) unsigned NOT NULL auto_increment PRIMARY KEY,
- CHANGE COLUMN votingLocked votingLocked tinyint(1) NOT NULL default '0',
- CHANGE COLUMN question question tinytext NOT NULL default '',
- ADD maxVotes tinyint(4) unsigned NOT NULL default '1',
- ADD expireTime int(10) unsigned NOT NULL default '0',
- ADD hideResults tinyint(4) unsigned NOT NULL default '0';
- ALTER TABLE {$db_prefix}polls
- ADD ID_MEMBER mediumint(8) unsigned NOT NULL default '0',
- ADD posterName tinytext NOT NULL default '';
- ALTER TABLE {$db_prefix}polls
- ADD changeVote tinyint(4) unsigned NOT NULL default '0';
- ---#
- ---# Updating data in "polls"...
- ---{
- $result = upgrade_query("
- SELECT p.ID_POLL, t.ID_MEMBER_STARTED
- FROM ({$db_prefix}topics AS t, {$db_prefix}messages AS m, {$db_prefix}polls AS p)
- WHERE m.ID_MSG = t.ID_FIRST_MSG
- AND p.ID_POLL = t.ID_POLL
- AND p.ID_MEMBER = 0
- AND t.ID_MEMBER_STARTED != 0");
- while ($row = smf_mysql_fetch_assoc($result))
- {
- upgrade_query("
- UPDATE {$db_prefix}polls
- SET ID_MEMBER = $row[ID_MEMBER_STARTED]
- WHERE ID_POLL = $row[ID_POLL]
- LIMIT 1");
- }
- smf_mysql_free_result($result);
- ---}
- ---#
- /******************************************************************************/
- --- Converting settings...
- /******************************************************************************/
- ---# Updating news...
- ---{
- if (!isset($modSettings['smfVersion']))
- {
- upgrade_query("
- REPLACE INTO {$db_prefix}settings
- (variable, value)
- VALUES
- ('news', SUBSTRING('" . htmlspecialchars(stripslashes($modSettings['news']), ENT_QUOTES) . "', 1, 65534))");
- }
- ---}
- ---#
- ---# Updating "themes"...
- ---{
- convertSettingsToTheme();
- $insertRows = '';
- $request = upgrade_query("
- SELECT ID_THEME, IF(value = '2', 5, value) AS value
- FROM {$db_prefix}themes
- WHERE variable = 'display_recent_bar'");
- while ($row = smf_mysql_fetch_assoc($request))
- $insertRows .= "($row[ID_THEME], 'number_recent_posts', '$row[value]'),";
- smf_mysql_free_result($request);
- if (!empty($insertRows))
- {
- $insertRows = substr($insertRows, 0, -1);
- upgrade_query("
- INSERT IGNORE INTO {$db_prefix}themes
- (ID_THEME, variable, value)
- VALUES $insertRows");
- }
- ---}
- ---#
- ---# Updating "settings"...
- ALTER TABLE {$db_prefix}settings
- DROP INDEX variable;
- UPDATE IGNORE {$db_prefix}settings
- SET variable = 'guest_hideContacts'
- WHERE variable = 'guest_hideEmail'
- LIMIT 1;
- ---#
- ---# Adding new settings (part 1)...
- INSERT IGNORE INTO {$db_prefix}settings
- (variable, value)
- VALUES
- ('news', ''),
- ('compactTopicPagesContiguous', '5'),
- ('compactTopicPagesEnable', '1'),
- ('enableStickyTopics', '1'),
- ('todayMod', '1'),
- ('karmaMode', '0'),
- ('karmaTimeRestrictAdmins', '1'),
- ('enablePreviousNext', '1'),
- ('pollMode', '1'),
- ('enableVBStyleLogin', '1'),
- ('enableCompressedOutput', '1'),
- ('karmaWaitTime', '1'),
- ('karmaMinPosts', '0'),
- ('karmaLabel', 'Karma:'),
- ('karmaSmiteLabel', '[smite]'),
- ('karmaApplaudLabel', '[applaud]'),
- ('attachmentSizeLimit', '128'),
- ('attachmentPostLimit', '192'),
- ('attachmentNumPerPostLimit', '4'),
- ('attachmentDirSizeLimit', '10240'),
- ('attachmentUploadDir', '{$sboarddir}/attachments'),
- ('attachmentExtensions', 'txt,doc,pdf,jpg,gif,mpg,png'),
- ('attachmentCheckExtensions', '1'),
- ('attachmentShowImages', '1'),
- ('attachmentEnable', '1'),
- ('attachmentEncryptFilenames', '1'),
- ('censorIgnoreCase', '1'),
- ('mostOnline', '1');
- ('enableThemes', '1');
- INSERT IGNORE INTO {$db_prefix}settings
- (variable, value)
- VALUES
- ('mostOnlineToday', '1'),
- ('mostDate', UNIX_TIMESTAMP()),
- ('trackStats', '1'),
- ('userLanguage', '1'),
- ('titlesEnable', '1'),
- ('topicSummaryPosts', '15'),
- ('enableErrorLogging', '1'),
- ('onlineEnable', '0'),
- ('cal_holidaycolor', '000080'),
- ('cal_bdaycolor', '920AC4'),
- ('cal_eventcolor', '078907'),
- ('cal_enabled', '0'),
- ('cal_maxyear', '2010'),
- ('cal_minyear', '2002'),
- ('cal_daysaslink', '0'),
- ('cal_defaultboard', ''),
- ('cal_showeventsonindex', '0'),
- ('cal_showbdaysonindex', '0'),
- ('cal_showholidaysonindex', '0'),
- ('cal_maxspan', '7'),
- ('cal_highlight_events', '3'),
- ('cal_highlight_holidays', '3'),
- ('cal_highlight_birthdays', '3'),
- ('cal_disable_prev_next', '0'),
- ('cal_display_type', '0'),
- ('cal_week_links', '2'),
- ('cal_prev_next_links', '1'),
- ('cal_short_days', '0'),
- ('cal_short_months', '0'),
- ('cal_week_numbers', '0'),
- ('smtp_host', ''),
- ('smtp_username', ''),
- ('smtp_password', ''),
- ('mail_type', '0'),
- ('timeLoadPageEnable', '0'),
- ('totalTopics', '1'),
- ('totalMessages', '1'),
- ('simpleSearch', '0'),
- ('censor_vulgar', ''),
- ('censor_proper', ''),
- ('mostOnlineToday', '1'),
- ('enablePostHTML', '0'),
- ('theme_allow', '1'),
- ('theme_default', '1'),
- ('theme_guests', '1'),
- ('enableEmbeddedFlash', '0'),
- ('xmlnews_enable', '1'),
- ('xmlnews_maxlen', '255'),
- ('hotTopicPosts', '15'),
- ('hotTopicVeryPosts', '25'),
- ('allow_editDisplayName', '1'),
- ('number_format', '1234.00'),
- ('attachmentEncryptFilenames', '1'),
- ('autoLinkUrls', '1');
- INSERT IGNORE INTO {$db_prefix}settings
- (variable, value)
- VALUES
- ('avatar_allow_server_stored', '1'),
- ('avatar_check_size', '0'),
- ('avatar_action_too_large', 'option_user_resize'),
- ('avatar_resize_upload', '1'),
- ('avatar_download_png', '1'),
- ('failed_login_threshold', '3'),
- ('edit_wait_time', '90'),
- ('autoFixDatabase', '1'),
- ('autoOptDatabase', '7'),
- ('autoOptMaxOnline', '0'),
- ('autoOptLastOpt', '0'),
- ('enableParticipation', '1'),
- ('recycle_enable', '0'),
- ('recycle_board', '0'),
- ('banLastUpdated', '0'),
- ('enableAllMessages', '0'),
- ('fixLongWords', '0'),
- ('knownThemes', '1,2'),
- ('who_enabled', '1'),
- ('lastActive', '15'),
- ('allow_hideOnline', '1'),
- ('guest_hideContacts', '0');
- ---#
- ---# Adding new settings (part 2)...
- ---{
- upgrade_query("
- INSERT IGNORE INTO {$db_prefix}settings
- (variable, value)
- VALUES
- ('registration_method', '" . (!empty($modSettings['registration_disabled']) ? 3 : (!empty($modSettings['approve_registration']) ? 2 : (!empty($GLOBALS['emailpassword']) || !empty($modSettings['send_validation']) ? 1 : 0))) . "'),
- ('send_validation_onChange', '" . @$GLOBALS['emailnewpass'] . "'),
- ('send_welcomeEmail', '" . @$GLOBALS['emailwelcome'] . "'),
- ('allow_hideEmail', '" . @$GLOBALS['allow_hide_email'] . "'),
- ('allow_guestAccess', '" . @$GLOBALS['guestaccess'] . "'),
- ('time_format', '" . (!empty($GLOBALS['timeformatstring']) ? $GLOBALS['timeformatstring'] : '%B %d, %Y, %I:%M:%S %p') . "'),
- ('enableBBC', '" . (!isset($GLOBALS['enable_ubbc']) ? 1 : $GLOBALS['enable_ubbc']) . "'),
- ('max_messageLength', '" . (empty($GLOBALS['MaxMessLen']) ? 10000 : $GLOBALS['MaxMessLen']) . "'),
- ('max_signatureLength', '" . @$GLOBALS['MaxSigLen'] . "'),
- ('spamWaitTime', '" . @$GLOBALS['timeout'] . "'),
- ('avatar_directory', '" . (isset($GLOBALS['facesdir']) ? fixRelativePath($GLOBALS['facesdir']) : fixRelativePath('./avatars')) . "'),
- ('avatar_url', '" . @$GLOBALS['facesurl'] . "'),
- ('avatar_max_height_external', '" . @$GLOBALS['userpic_height'] . "'),
- ('avatar_max_width_external', '" . @$GLOBALS['userpic_width'] . "'),
- ('avatar_max_height_upload', '" . @$GLOBALS['userpic_height'] . "'),
- ('avatar_max_width_upload', '" . @$GLOBALS['userpic_width'] . "'),
- ('defaultMaxMessages', '" . (empty($GLOBALS['maxmessagedisplay']) ? 15 : $GLOBALS['maxmessagedisplay']) . "'),
- ('defaultMaxTopics', '" . (empty($GLOBALS['maxdisplay']) ? 20 : $GLOBALS['maxdisplay']) . "'),
- ('defaultMaxMembers', '" . (empty($GLOBALS['MembersPerPage']) ? 20 : $GLOBALS['MembersPerPage']) . "'),
- ('time_offset', '" . @$GLOBALS['timeoffset'] . "'),
- ('cookieTime', '" . (empty($GLOBALS['Cookie_Length']) ? 60 : $GLOBALS['Cookie_Length']) . "'),
- ('requireAgreement', '" . @$GLOBALS['RegAgree'] . "')");
- ---}
- INSERT IGNORE INTO {$db_prefix}settings
- (variable, value)
- VALUES
- ('smileys_dir', '{$sboarddir}/Smileys'),
- ('smileys_url', '{$boardurl}/Smileys'),
- ('smiley_sets_known', 'default,classic'),
- ('smiley_sets_names', 'Default\nClassic'),
- ('smiley_sets_default', 'default'),
- ('censorIgnoreCase', '1'),
- ('cal_days_for_index', '7'),
- ('unapprovedMembers', '0'),
- ('default_personalText', ''),
- ('attachmentPostLimit', '192'),
- ('attachmentNumPerPostLimit', '4'),
- ('package_make_backups', '1'),
- ('databaseSession_loose', '1'),
- ('databaseSession_lifetime', '2880'),
- ('smtp_port', '25'),
- ('search_cache_size', '50'),
- ('search_results_per_page', '30'),
- ('search_weight_frequency', '30'),
- ('search_weight_age', '25'),
- ('search_weight_length', '20'),
- ('search_weight_subject', '15'),
- ('search_weight_first_message', '10');
- DELETE FROM {$db_prefix}settings
- WHERE variable = 'agreement'
- LIMIT 1;
- ---#
- ---# Converting settings to options...
- ---{
- convertSettingsToOptions();
- ---}
- ---#
- ---# Updating statistics...
- REPLACE INTO {$db_prefix}settings
- (variable, value)
- SELECT 'latestMember', ID_MEMBER
- FROM {$db_prefix}members
- ORDER BY ID_MEMBER DESC
- LIMIT 1;
- REPLACE INTO {$db_prefix}settings
- (variable, value)
- SELECT 'latestRealName', IFNULL(realName, memberName)
- FROM {$db_prefix}members
- ORDER BY ID_MEMBER DESC
- LIMIT 1;
- REPLACE INTO {$db_prefix}settings
- (variable, value)
- SELECT 'maxMsgID', ID_MSG
- FROM {$db_prefix}messages
- ORDER BY ID_MSG DESC
- LIMIT 1;
- REPLACE INTO {$db_prefix}settings
- (variable, value)
- SELECT 'totalMembers', COUNT(*)
- FROM {$db_prefix}members;
- REPLACE INTO {$db_prefix}settings
- (variable, value)
- SELECT 'unapprovedMembers', COUNT(*)
- FROM {$db_prefix}members
- WHERE is_activated = 0
- AND validation_code = '';
- REPLACE INTO {$db_prefix}settings
- (variable, value)
- SELECT 'totalMessages', COUNT(*)
- FROM {$db_prefix}messages;
- REPLACE INTO {$db_prefix}settings
- (variable, value)
- SELECT 'totalTopics', COUNT(*)
- FROM {$db_prefix}topics;
- REPLACE INTO {$db_prefix}settings
- (variable, value)
- VALUES ('cal_today_updated', '00000000');
- ---#
|