| 1 |
<?php |
| 2 |
// Exit if accessed directly |
| 3 |
if( !defined( 'ABSPATH' ) ) exit; |
| 4 |
|
| 5 |
|
| 6 |
$charset_collate = ''; |
| 7 |
if ( ! empty(WPF()->db->charset) ) $charset_collate = "DEFAULT CHARACTER SET " . WPF()->db->charset; |
| 8 |
if ( ! empty(WPF()->db->collate) ) $charset_collate .= " COLLATE " . WPF()->db->collate; |
| 9 |
$engine = version_compare(WPF()->db->db_version(), '5.6.4', '>=') ? 'InnoDB' : 'MyISAM'; |
| 10 |
|
| 11 |
$wpforo_sql = array( |
| 12 |
"CREATE TABLE IF NOT EXISTS `".WPF()->tables->forums."`( |
| 13 |
`forumid` INT UNSIGNED NOT NULL AUTO_INCREMENT, |
| 14 |
`title` VARCHAR(255) NOT NULL, |
| 15 |
`slug` VARCHAR(255) NOT NULL, |
| 16 |
`description` LONGTEXT, |
| 17 |
`parentid` INT UNSIGNED NOT NULL DEFAULT 0, |
| 18 |
`icon` VARCHAR(255), |
| 19 |
`last_topicid` INT UNSIGNED NOT NULL DEFAULT 0, |
| 20 |
`last_postid` INT UNSIGNED NOT NULL DEFAULT 0, |
| 21 |
`last_userid` INT UNSIGNED NOT NULL DEFAULT 0, |
| 22 |
`last_post_date` DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00', |
| 23 |
`topics` INT NOT NULL DEFAULT 0, |
| 24 |
`posts` INT NOT NULL DEFAULT 0, |
| 25 |
`permissions` TEXT, |
| 26 |
`meta_key` TEXT, |
| 27 |
`meta_desc` TEXT, |
| 28 |
`status` tinyint(1) UNSIGNED NOT NULL DEFAULT 0, |
| 29 |
`is_cat` tinyint(1) UNSIGNED NOT NULL DEFAULT 0, |
| 30 |
`cat_layout` tinyint(1) UNSIGNED NOT NULL DEFAULT 0, |
| 31 |
`order` INT UNSIGNED NOT NULL DEFAULT 0, |
| 32 |
PRIMARY KEY (`forumid`), |
| 33 |
UNIQUE KEY `UNIQUE SLUG` (`slug`(191)), |
| 34 |
KEY `order` (`order`), |
| 35 |
KEY `status` (`status`), |
| 36 |
KEY `parentid` (`parentid`), |
| 37 |
KEY `is_cat` (`is_cat`) |
| 38 |
) ENGINE=MyISAM $charset_collate;", |
| 39 |
"CREATE TABLE IF NOT EXISTS `".WPF()->tables->topics."`( |
| 40 |
`topicid` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT, |
| 41 |
`forumid` INT UNSIGNED NOT NULL, |
| 42 |
`first_postid` BIGINT UNSIGNED NOT NULL DEFAULT 0, |
| 43 |
`userid` INT UNSIGNED NOT NULL, |
| 44 |
`title` VARCHAR(255) NOT NULL, |
| 45 |
`slug` VARCHAR(255) NOT NULL, |
| 46 |
`created` DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00', |
| 47 |
`modified` DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00', |
| 48 |
`last_post` BIGINT UNSIGNED NOT NULL DEFAULT 0, |
| 49 |
`posts` INT NOT NULL DEFAULT 0, |
| 50 |
`votes` INT NOT NULL DEFAULT 0, |
| 51 |
`answers` INT NOT NULL DEFAULT 0, |
| 52 |
`views` INT UNSIGNED NOT NULL DEFAULT 0, |
| 53 |
`meta_key` TEXT, |
| 54 |
`meta_desc` TEXT, |
| 55 |
`type` TINYINT NOT NULL DEFAULT 0, |
| 56 |
`closed` tinyint(1) UNSIGNED NOT NULL DEFAULT 0, |
| 57 |
`has_attach` tinyint(1) UNSIGNED NOT NULL DEFAULT 0, |
| 58 |
`private` tinyint(1) UNSIGNED NOT NULL DEFAULT 0, |
| 59 |
`status` tinyint(1) UNSIGNED NOT NULL DEFAULT 0, |
| 60 |
`name` VARCHAR(50) NOT NULL DEFAULT '', |
| 61 |
`email` VARCHAR(50) NOT NULL DEFAULT '', |
| 62 |
PRIMARY KEY (`topicid`), |
| 63 |
UNIQUE KEY `slug` (`slug`(191)), |
| 64 |
FULLTEXT KEY `title` (`title`), |
| 65 |
KEY `forumid` (`forumid`), |
| 66 |
KEY `first_postid` (`first_postid`), |
| 67 |
KEY `created` (`created`), |
| 68 |
KEY `modified` (`modified`), |
| 69 |
KEY `type` (`type`), |
| 70 |
KEY `status` (`status`), |
| 71 |
KEY `email` (`email`), |
| 72 |
KEY `is_private` (`private`), |
| 73 |
KEY `own_private` (`userid`,`private`), |
| 74 |
KEY `forumid_status` (`forumid`,`status`) |
| 75 |
) ENGINE=$engine $charset_collate;", |
| 76 |
"CREATE TABLE IF NOT EXISTS `".WPF()->tables->posts."`( |
| 77 |
`postid` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT, |
| 78 |
`parentid` BIGINT UNSIGNED NOT NULL DEFAULT 0, |
| 79 |
`forumid` INT UNSIGNED NOT NULL, |
| 80 |
`topicid` BIGINT UNSIGNED NOT NULL, |
| 81 |
`userid` INT UNSIGNED NOT NULL, |
| 82 |
`title` varchar(255), |
| 83 |
`body` LONGTEXT, |
| 84 |
`created` DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00', |
| 85 |
`modified` DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00', |
| 86 |
`likes` INT UNSIGNED NOT NULL DEFAULT 0, |
| 87 |
`votes` INT NOT NULL DEFAULT 0, |
| 88 |
`is_answer` tinyint(1) UNSIGNED NOT NULL DEFAULT 0, |
| 89 |
`is_first_post` tinyint(1) UNSIGNED NOT NULL DEFAULT 0, |
| 90 |
`status` tinyint(1) UNSIGNED NOT NULL DEFAULT 0, |
| 91 |
`name` VARCHAR(50) NOT NULL DEFAULT '', |
| 92 |
`email` VARCHAR(50) NOT NULL DEFAULT '', |
| 93 |
`private` tinyint(1) UNSIGNED NOT NULL DEFAULT 0, |
| 94 |
PRIMARY KEY (`postid`), |
| 95 |
FULLTEXT KEY `title`(`title`(191)), |
| 96 |
FULLTEXT KEY `body` (`body`), |
| 97 |
FULLTEXT KEY `title_plus_body` (`title`,`body`), |
| 98 |
KEY `topicid` (`topicid`), |
| 99 |
KEY `forumid` (`forumid`), |
| 100 |
KEY `userid` (`userid`), |
| 101 |
KEY `created` (`created`), |
| 102 |
KEY `parentid` (`parentid`), |
| 103 |
KEY `is_answer` (`is_answer`), |
| 104 |
KEY `is_first_post` (`is_first_post`), |
| 105 |
KEY `status` (`status`), |
| 106 |
KEY `email` (`email`), |
| 107 |
KEY `is_private` (`private`), |
| 108 |
KEY `forumid_status` (`forumid`,`status`), |
| 109 |
KEY `topicid_status` (`topicid`,`status`), |
| 110 |
KEY `topicid_solved` (`topicid`,`is_answer`) |
| 111 |
) ENGINE=$engine $charset_collate;", |
| 112 |
"CREATE TABLE IF NOT EXISTS `".WPF()->tables->profiles."` ( |
| 113 |
`userid` INT UNSIGNED NOT NULL, |
| 114 |
`title` VARCHAR(255) NOT NULL DEFAULT 'member', |
| 115 |
`username` VARCHAR(255) NOT NULL, |
| 116 |
`groupid` INT UNSIGNED NOT NULL, |
| 117 |
`posts` INT NOT NULL DEFAULT 0, |
| 118 |
`questions` INT NOT NULL DEFAULT 0, |
| 119 |
`answers` INT NOT NULL DEFAULT 0, |
| 120 |
`comments` INT NOT NULL DEFAULT 0, |
| 121 |
`site` VARCHAR(255), |
| 122 |
`icq` VARCHAR(255), |
| 123 |
`aim` VARCHAR(255), |
| 124 |
`yahoo` VARCHAR(255), |
| 125 |
`msn` VARCHAR(255), |
| 126 |
`facebook` VARCHAR(255), |
| 127 |
`twitter` VARCHAR(255), |
| 128 |
`gtalk` VARCHAR(255), |
| 129 |
`skype` VARCHAR(255), |
| 130 |
`avatar` VARCHAR(255), |
| 131 |
`signature` TEXT, |
| 132 |
`about` TEXT, |
| 133 |
`occupation` TEXT, |
| 134 |
`location` VARCHAR(255), |
| 135 |
`last_login` DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00', |
| 136 |
`online_time` INT UNSIGNED, |
| 137 |
`rank` INT UNSIGNED NOT NULL DEFAULT 0, |
| 138 |
`like` INT UNSIGNED NOT NULL DEFAULT 0, |
| 139 |
`status` VARCHAR(8) DEFAULT 'active' COMMENT 'active, blocked, trashed, spamer', |
| 140 |
`timezone` VARCHAR(255), |
| 141 |
`is_email_confirmed` TINYINT(1) NOT NULL DEFAULT 0, |
| 142 |
PRIMARY KEY (`userid`), |
| 143 |
UNIQUE KEY `UNIQUE ID` (`userid`), |
| 144 |
KEY `groupid` (`groupid`), |
| 145 |
KEY `online_time` (`online_time`), |
| 146 |
KEY `posts` (`posts`), |
| 147 |
KEY `status` (`status`), |
| 148 |
KEY `is_email_confirmed` (`is_email_confirmed`) |
| 149 |
) ENGINE=MyISAM $charset_collate;", |
| 150 |
"CREATE TABLE IF NOT EXISTS `".WPF()->tables->usergroups."`( |
| 151 |
`groupid` INT UNSIGNED NOT NULL AUTO_INCREMENT, |
| 152 |
`name` VARCHAR(255) NOT NULL, |
| 153 |
`cans` LONGTEXT NOT NULL COMMENT 'board permissions', |
| 154 |
`description` TEXT, |
| 155 |
`utitle` VARCHAR(100) NOT NULL DEFAULT '', |
| 156 |
`role` VARCHAR(50) NOT NULL DEFAULT '', |
| 157 |
`access` VARCHAR(50) NOT NULL DEFAULT '', |
| 158 |
`color` varchar(7) NOT NULL DEFAULT '', |
| 159 |
`visible` tinyint(1) UNSIGNED NOT NULL DEFAULT 1, |
| 160 |
PRIMARY KEY (`groupid`), |
| 161 |
KEY `visible` (`visible`), |
| 162 |
UNIQUE KEY `UNIQUE_GROUP_NAME` (`name`(191)) |
| 163 |
) ENGINE=MyISAM $charset_collate;", |
| 164 |
"CREATE TABLE IF NOT EXISTS `".WPF()->tables->languages."`( |
| 165 |
`langid` INT UNSIGNED NOT NULL AUTO_INCREMENT, |
| 166 |
`name` VARCHAR(255) NOT NULL, |
| 167 |
PRIMARY KEY (`langid`), |
| 168 |
UNIQUE KEY `UNIQUE language name` (`name`(191)) |
| 169 |
) ENGINE=MyISAM $charset_collate;", |
| 170 |
"CREATE TABLE IF NOT EXISTS `".WPF()->tables->phrases."` ( |
| 171 |
`phraseid` INT UNSIGNED NOT NULL AUTO_INCREMENT, |
| 172 |
`langid` INT UNSIGNED NOT NULL, |
| 173 |
`phrase_key` VARCHAR(255) NOT NULL, |
| 174 |
`phrase_value` text NOT NULL, |
| 175 |
`package` VARCHAR(255) NOT NULL DEFAULT 'wpforo', |
| 176 |
PRIMARY KEY (`phraseid`), |
| 177 |
KEY `langid` (`langid`), |
| 178 |
KEY `phrase_key` (`phrase_key`(191)), |
| 179 |
UNIQUE KEY lng_and_key_uniq (`langid`, `phrase_key`(191)) |
| 180 |
) ENGINE=MyISAM $charset_collate;", |
| 181 |
"CREATE TABLE IF NOT EXISTS `".WPF()->tables->likes."`( |
| 182 |
`likeid` INT UNSIGNED NOT NULL AUTO_INCREMENT, |
| 183 |
`userid` INT UNSIGNED NOT NULL, |
| 184 |
`postid` INT UNSIGNED NOT NULL, |
| 185 |
`post_userid` INT UNSIGNED NOT NULL, |
| 186 |
PRIMARY KEY (`likeid`), |
| 187 |
UNIQUE KEY `userid` (`userid`,`postid`) |
| 188 |
) ENGINE=INNODB $charset_collate;", |
| 189 |
"CREATE TABLE IF NOT EXISTS `".WPF()->tables->views."`( |
| 190 |
`vid` INT UNSIGNED NOT NULL AUTO_INCREMENT, |
| 191 |
`userid` INT UNSIGNED NOT NULL, |
| 192 |
`topicid` INT UNSIGNED NOT NULL, |
| 193 |
`created` INT UNSIGNED NOT NULL, |
| 194 |
PRIMARY KEY (`vid`), |
| 195 |
KEY `user_topic` (`userid`,`topicid`) |
| 196 |
) ENGINE=INNODB $charset_collate;", |
| 197 |
"CREATE TABLE IF NOT EXISTS `".WPF()->tables->votes."`( |
| 198 |
`voteid` INT UNSIGNED NOT NULL AUTO_INCREMENT, |
| 199 |
`userid` INT UNSIGNED NOT NULL, |
| 200 |
`postid` INT UNSIGNED NOT NULL, |
| 201 |
`reaction` TINYINT NOT NULL DEFAULT 1, |
| 202 |
`post_userid` INT UNSIGNED NOT NULL, |
| 203 |
PRIMARY KEY (`voteid`), |
| 204 |
UNIQUE KEY `userid` (`userid`,`postid`) |
| 205 |
) ENGINE=INNODB $charset_collate;", |
| 206 |
"CREATE TABLE IF NOT EXISTS `".WPF()->tables->accesses."`( |
| 207 |
`accessid` INT UNSIGNED NOT NULL AUTO_INCREMENT, |
| 208 |
`access` VARCHAR(255) NOT NULL, |
| 209 |
`title` VARCHAR(255) NOT NULL, |
| 210 |
`cans` LONGTEXT NOT NULL COMMENT 'forum permissions', |
| 211 |
PRIMARY KEY (`accessid`), |
| 212 |
UNIQUE KEY ( `access`(191) ) |
| 213 |
) ENGINE=MyISAM $charset_collate;", |
| 214 |
"CREATE TABLE IF NOT EXISTS `".WPF()->tables->subscribes."` ( |
| 215 |
`subid` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT, |
| 216 |
`itemid` BIGINT UNSIGNED NOT NULL, |
| 217 |
`type` VARCHAR(5) NOT NULL, |
| 218 |
`confirmkey` varchar(32) NOT NULL, |
| 219 |
`userid` BIGINT UNSIGNED NOT NULL, |
| 220 |
`active` TINYINT(1) UNSIGNED NOT NULL DEFAULT 0, |
| 221 |
`user_name` VARCHAR(60) NOT NULL, |
| 222 |
`user_email` VARCHAR(60) NOT NULL, |
| 223 |
PRIMARY KEY (`subid`), |
| 224 |
UNIQUE KEY `fld_group_unq` (`itemid`,`type`,`userid`,`user_email`(60)), |
| 225 |
UNIQUE KEY `confirmkey` (`confirmkey`), |
| 226 |
KEY `itemid_2` (`itemid`), |
| 227 |
KEY `userid` (`userid`) |
| 228 |
) ENGINE=INNODB $charset_collate;", |
| 229 |
"CREATE TABLE IF NOT EXISTS `".WPF()->tables->visits."` ( |
| 230 |
`id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT, |
| 231 |
`userid` BIGINT UNSIGNED NOT NULL, |
| 232 |
`name` VARCHAR(60) NOT NULL, |
| 233 |
`ip` VARCHAR(60) NOT NULL, |
| 234 |
`time` INT UNSIGNED NOT NULL, |
| 235 |
`forumid` INT UNSIGNED NOT NULL, |
| 236 |
`topicid` BIGINT UNSIGNED NOT NULL, |
| 237 |
PRIMARY KEY (`id`), |
| 238 |
KEY `userid` (`userid`), |
| 239 |
KEY `forumid` (`forumid`), |
| 240 |
KEY `topicid` (`topicid`), |
| 241 |
KEY `time` (`time`), |
| 242 |
KEY `ip` (`ip`) |
| 243 |
) ENGINE=INNODB $charset_collate;" |
| 244 |
); |