Helix_Website/wp-content/plugins/wpforo/wpf-includes/install-sql.php

329 lines
14 KiB
PHP

<?php
// Exit if accessed directly
if( !defined( 'ABSPATH' ) ) exit;
if( !function_exists('wpforo_get_install_sqls') ){
function wpforo_get_install_sqls(){
$charset_collate = '';
if ( ! empty(WPF()->db->charset) ) $charset_collate = "DEFAULT CHARACTER SET " . WPF()->db->charset;
if ( ! empty(WPF()->db->collate) ) $charset_collate .= " COLLATE " . WPF()->db->collate;
$engine = version_compare(WPF()->db->db_version(), '5.6.4', '>=') ? 'InnoDB' : 'MyISAM';
return array(
WPF()->tables->forums => "CREATE TABLE IF NOT EXISTS `".WPF()->tables->forums."`(
`forumid` INT UNSIGNED NOT NULL AUTO_INCREMENT,
`title` VARCHAR(255) NOT NULL,
`slug` VARCHAR(255) NOT NULL,
`description` LONGTEXT,
`parentid` INT UNSIGNED NOT NULL DEFAULT 0,
`icon` VARCHAR(255),
`last_topicid` INT UNSIGNED NOT NULL DEFAULT 0,
`last_postid` INT UNSIGNED NOT NULL DEFAULT 0,
`last_userid` INT UNSIGNED NOT NULL DEFAULT 0,
`last_post_date` DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00',
`topics` INT NOT NULL DEFAULT 0,
`posts` INT NOT NULL DEFAULT 0,
`permissions` TEXT,
`meta_key` TEXT,
`meta_desc` TEXT,
`status` tinyint(1) UNSIGNED NOT NULL DEFAULT 0,
`is_cat` tinyint(1) UNSIGNED NOT NULL DEFAULT 0,
`cat_layout` tinyint(1) UNSIGNED NOT NULL DEFAULT 0,
`order` INT UNSIGNED NOT NULL DEFAULT 0,
`color` VARCHAR(7) NOT NULL DEFAULT '',
PRIMARY KEY (`forumid`),
UNIQUE KEY `UNIQUE SLUG` (`slug`(191)),
KEY `order` (`order`),
KEY `status` (`status`),
KEY `parentid` (`parentid`),
KEY `last_postid` (`last_postid`),
KEY `is_cat` (`is_cat`)
) ENGINE=InnoDB $charset_collate",
WPF()->tables->topics => "CREATE TABLE IF NOT EXISTS `".WPF()->tables->topics."`(
`topicid` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
`forumid` INT UNSIGNED NOT NULL,
`first_postid` BIGINT UNSIGNED NOT NULL DEFAULT 0,
`userid` INT UNSIGNED NOT NULL,
`title` VARCHAR(255) NOT NULL,
`slug` VARCHAR(255) NOT NULL,
`created` DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00',
`modified` DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00',
`last_post` BIGINT UNSIGNED NOT NULL DEFAULT 0,
`posts` INT NOT NULL DEFAULT 0,
`votes` INT NOT NULL DEFAULT 0,
`answers` INT NOT NULL DEFAULT 0,
`views` INT UNSIGNED NOT NULL DEFAULT 0,
`meta_key` TEXT,
`meta_desc` TEXT,
`type` TINYINT NOT NULL DEFAULT 0,
`solved` TINYINT(1) NOT NULL DEFAULT 0,
`closed` tinyint(1) UNSIGNED NOT NULL DEFAULT 0,
`has_attach` tinyint(1) UNSIGNED NOT NULL DEFAULT 0,
`private` tinyint(1) UNSIGNED NOT NULL DEFAULT 0,
`status` tinyint(1) UNSIGNED NOT NULL DEFAULT 0,
`name` VARCHAR(50) NOT NULL DEFAULT '',
`email` VARCHAR(50) NOT NULL DEFAULT '',
`prefix` VARCHAR(100) NOT NULL DEFAULT '',
`tags` TEXT,
PRIMARY KEY (`topicid`),
KEY `slug` (`slug`(191)),
FULLTEXT KEY `title` (`title`),
KEY `forumid` (`forumid`),
KEY `first_postid` (`first_postid`),
KEY `created` (`created`),
KEY `modified` (`modified`),
KEY `last_post` (`last_post`),
KEY `type` (`type`),
KEY `status` (`status`),
KEY `email` (`email`),
KEY `solved` (`solved`),
KEY `is_private` (`private`),
KEY `own_private` (`userid`,`private`),
KEY `forumid_status` (`forumid`,`status`),
KEY `forumid_status_private` (`forumid`,`status`,`private`),
KEY `prefix` (`prefix`)
) ENGINE=$engine $charset_collate",
WPF()->tables->postmeta => "CREATE TABLE IF NOT EXISTS `".WPF()->tables->postmeta."`(
`metaid` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
`postid` BIGINT UNSIGNED NOT NULL,
`metakey` VARCHAR(255) NOT NULL,
`metavalue` MEDIUMTEXT,
`forumid` INT UNSIGNED NOT NULL DEFAULT 0,
`topicid` BIGINT UNSIGNED NOT NULL DEFAULT 0,
`is_first_post` TINYINT(1) UNSIGNED NOT NULL DEFAULT 0,
`status` TINYINT(1) UNSIGNED NOT NULL DEFAULT 0,
`private` TINYINT(1) UNSIGNED NOT NULL DEFAULT 0,
PRIMARY KEY (`metaid`),
KEY `postid_metakey` (`postid`, `metakey`(191)),
KEY `forumid` (`forumid`),
KEY `topicid` (`topicid`),
KEY `is_first_post` (`is_first_post`),
KEY `status` (`status`),
KEY `private` (`private`)
) ENGINE=InnoDB $charset_collate",
WPF()->tables->posts => "CREATE TABLE IF NOT EXISTS `".WPF()->tables->posts."`(
`postid` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
`parentid` BIGINT UNSIGNED NOT NULL DEFAULT 0,
`forumid` INT UNSIGNED NOT NULL,
`topicid` BIGINT UNSIGNED NOT NULL,
`userid` INT UNSIGNED NOT NULL,
`title` varchar(255),
`body` LONGTEXT,
`created` DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00',
`modified` DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00',
`likes` INT UNSIGNED NOT NULL DEFAULT 0,
`votes` INT NOT NULL DEFAULT 0,
`is_answer` tinyint(1) UNSIGNED NOT NULL DEFAULT 0,
`is_first_post` tinyint(1) UNSIGNED NOT NULL DEFAULT 0,
`status` tinyint(1) UNSIGNED NOT NULL DEFAULT 0,
`name` VARCHAR(50) NOT NULL DEFAULT '',
`email` VARCHAR(50) NOT NULL DEFAULT '',
`private` tinyint(1) UNSIGNED NOT NULL DEFAULT 0,
`root` BIGINT NULL DEFAULT NULL,
PRIMARY KEY (`postid`),
FULLTEXT KEY `title`(`title`(191)),
FULLTEXT KEY `body` (`body`),
FULLTEXT KEY `title_plus_body` (`title`,`body`),
KEY `topicid` (`topicid`),
KEY `forumid` (`forumid`),
KEY `userid` (`userid`),
KEY `created` (`created`),
KEY `parentid` (`parentid`),
KEY `is_answer` (`is_answer`),
KEY `is_first_post` (`is_first_post`),
KEY `status` (`status`),
KEY `email` (`email`),
KEY `is_private` (`private`),
KEY `root` (`root`),
KEY `forumid_status` (`forumid`,`status`),
KEY `topicid_status` (`topicid`,`status`),
KEY `topicid_solved` (`topicid`,`is_answer`),
KEY `topicid_parentid` (`topicid`,`parentid`),
KEY `forumid_status_private` (`forumid`, `status`, `private`),
KEY `forumid_answer_first` (`forumid`, `is_answer`, `is_first_post`)
) ENGINE=$engine $charset_collate",
WPF()->tables->profiles => "CREATE TABLE IF NOT EXISTS `".WPF()->tables->profiles."` (
`userid` INT UNSIGNED NOT NULL,
`title` VARCHAR(255) NOT NULL DEFAULT 'member',
`username` VARCHAR(255) NOT NULL,
`groupid` INT UNSIGNED NOT NULL,
`posts` INT NOT NULL DEFAULT 0,
`questions` INT NOT NULL DEFAULT 0,
`answers` INT NOT NULL DEFAULT 0,
`comments` INT NOT NULL DEFAULT 0,
`site` VARCHAR(255),
`icq` VARCHAR(50),
`aim` VARCHAR(50),
`yahoo` VARCHAR(50),
`msn` VARCHAR(50),
`facebook` VARCHAR(255),
`twitter` VARCHAR(255),
`gtalk` VARCHAR(50),
`skype` VARCHAR(50),
`avatar` VARCHAR(255),
`signature` TEXT,
`about` TEXT,
`occupation` TEXT,
`location` VARCHAR(255),
`last_login` DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00',
`online_time` INT UNSIGNED,
`rank` INT UNSIGNED NOT NULL DEFAULT 0,
`like` INT UNSIGNED NOT NULL DEFAULT 0,
`status` VARCHAR(8) DEFAULT 'active' COMMENT 'active, blocked, trashed, spamer',
`timezone` VARCHAR(255),
`is_email_confirmed` TINYINT(1) NOT NULL DEFAULT 0,
`secondary_groups` VARCHAR(255),
`fields` LONGTEXT,
PRIMARY KEY (`userid`),
KEY `groupid` (`groupid`),
KEY `online_time` (`online_time`),
KEY `posts` (`posts`),
KEY `status` (`status`),
KEY `is_email_confirmed` (`is_email_confirmed`)
) ENGINE=InnoDB $charset_collate",
WPF()->tables->usergroups => "CREATE TABLE IF NOT EXISTS `".WPF()->tables->usergroups."`(
`groupid` INT UNSIGNED NOT NULL AUTO_INCREMENT,
`name` VARCHAR(255) NOT NULL,
`cans` LONGTEXT NOT NULL COMMENT 'board permissions',
`description` TEXT,
`utitle` VARCHAR(100) NOT NULL DEFAULT '',
`role` VARCHAR(50) NOT NULL DEFAULT '',
`access` VARCHAR(50) NOT NULL DEFAULT '',
`color` varchar(7) NOT NULL DEFAULT '',
`visible` tinyint(1) UNSIGNED NOT NULL DEFAULT 1,
`secondary` tinyint(1) UNSIGNED NOT NULL DEFAULT 1,
PRIMARY KEY (`groupid`),
KEY `visible` (`visible`),
KEY `secondary` (`secondary`),
UNIQUE KEY `UNIQUE_GROUP_NAME` (`name`(191))
) ENGINE=InnoDB $charset_collate",
WPF()->tables->languages => "CREATE TABLE IF NOT EXISTS `".WPF()->tables->languages."`(
`langid` INT UNSIGNED NOT NULL AUTO_INCREMENT,
`name` VARCHAR(255) NOT NULL,
PRIMARY KEY (`langid`),
UNIQUE KEY `UNIQUE language name` (`name`(191))
) ENGINE=InnoDB $charset_collate",
WPF()->tables->phrases => "CREATE TABLE IF NOT EXISTS `".WPF()->tables->phrases."` (
`phraseid` INT UNSIGNED NOT NULL AUTO_INCREMENT,
`langid` INT UNSIGNED NOT NULL,
`phrase_key` text NOT NULL,
`phrase_value` text NOT NULL,
`package` VARCHAR(255) NOT NULL DEFAULT 'wpforo',
PRIMARY KEY (`phraseid`),
KEY `langid` (`langid`),
KEY `phrase_key` (`phrase_key`(191)),
UNIQUE KEY lng_and_key_uniq (`langid`, `phrase_key`(191))
) ENGINE=MyISAM $charset_collate",
WPF()->tables->likes => "CREATE TABLE IF NOT EXISTS `".WPF()->tables->likes."`(
`likeid` INT UNSIGNED NOT NULL AUTO_INCREMENT,
`userid` INT UNSIGNED NOT NULL,
`postid` INT UNSIGNED NOT NULL,
`post_userid` INT UNSIGNED NOT NULL,
PRIMARY KEY (`likeid`),
UNIQUE KEY `userid` (`userid`,`postid`),
KEY `post_userid` (`post_userid`)
) ENGINE=INNODB $charset_collate",
WPF()->tables->views => "CREATE TABLE IF NOT EXISTS `".WPF()->tables->views."`(
`vid` INT UNSIGNED NOT NULL AUTO_INCREMENT,
`userid` INT UNSIGNED NOT NULL,
`topicid` INT UNSIGNED NOT NULL,
`created` INT UNSIGNED NOT NULL,
PRIMARY KEY (`vid`),
KEY `userid` (`userid`),
KEY `topicid` (`topicid`),
UNIQUE KEY `user_topic` (`userid`,`topicid`)
) ENGINE=INNODB $charset_collate",
WPF()->tables->votes => "CREATE TABLE IF NOT EXISTS `".WPF()->tables->votes."`(
`voteid` INT UNSIGNED NOT NULL AUTO_INCREMENT,
`userid` INT UNSIGNED NOT NULL,
`postid` INT UNSIGNED NOT NULL,
`reaction` TINYINT NOT NULL DEFAULT 1,
`post_userid` INT UNSIGNED NOT NULL,
PRIMARY KEY (`voteid`),
UNIQUE KEY `userid` (`userid`,`postid`)
) ENGINE=INNODB $charset_collate",
WPF()->tables->accesses => "CREATE TABLE IF NOT EXISTS `".WPF()->tables->accesses."`(
`accessid` INT UNSIGNED NOT NULL AUTO_INCREMENT,
`access` VARCHAR(255) NOT NULL,
`title` VARCHAR(255) NOT NULL,
`cans` LONGTEXT NOT NULL COMMENT 'forum permissions',
PRIMARY KEY (`accessid`),
UNIQUE KEY ( `access`(191) )
) ENGINE=InnoDB $charset_collate",
WPF()->tables->subscribes => "CREATE TABLE IF NOT EXISTS `".WPF()->tables->subscribes."` (
`subid` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
`itemid` BIGINT UNSIGNED NOT NULL,
`type` VARCHAR(5) NOT NULL,
`confirmkey` varchar(32) NOT NULL,
`userid` BIGINT UNSIGNED NOT NULL,
`active` TINYINT(1) UNSIGNED NOT NULL DEFAULT 0,
`user_name` VARCHAR(60) NOT NULL,
`user_email` VARCHAR(60) NOT NULL,
PRIMARY KEY (`subid`),
UNIQUE KEY `fld_group_unq` (`itemid`,`type`,`userid`,`user_email`(60)),
UNIQUE KEY `confirmkey` (`confirmkey`),
KEY `itemid_2` (`itemid`),
KEY `userid` (`userid`)
) ENGINE=INNODB $charset_collate",
WPF()->tables->visits => "CREATE TABLE IF NOT EXISTS `".WPF()->tables->visits."` (
`id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
`userid` BIGINT UNSIGNED NOT NULL,
`name` VARCHAR(60) NOT NULL,
`ip` VARCHAR(60) NOT NULL,
`time` INT UNSIGNED NOT NULL,
`forumid` INT UNSIGNED NOT NULL,
`topicid` BIGINT UNSIGNED NOT NULL,
PRIMARY KEY (`id`),
KEY `userid` (`userid`),
KEY `forumid` (`forumid`),
KEY `topicid` (`topicid`),
KEY `time` (`time`),
KEY `ip` (`ip`),
KEY `time_forumid` (`time`,`forumid`),
KEY `time_topicid` (`time`,`topicid`),
UNIQUE KEY `unique_tracking` (`userid`,`ip`,`forumid`,`topicid`)
) ENGINE=INNODB $charset_collate",
WPF()->tables->activity => "CREATE TABLE IF NOT EXISTS `".WPF()->tables->activity."` (
`id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
`type` VARCHAR(60) NOT NULL,
`itemid` BIGINT UNSIGNED NOT NULL,
`itemtype` VARCHAR(60) NOT NULL,
`itemid_second` BIGINT UNSIGNED NOT NULL DEFAULT 0,
`userid` BIGINT UNSIGNED NOT NULL DEFAULT 0,
`name` VARCHAR(60) NOT NULL DEFAULT '',
`email` VARCHAR(70) NOT NULL DEFAULT '',
`date` INT UNSIGNED NOT NULL DEFAULT 0,
`content` TEXT,
`permalink` VARCHAR(1024) NOT NULL DEFAULT '',
`new` TINYINT(1) UNSIGNED NOT NULL DEFAULT 0,
PRIMARY KEY (`id`),
KEY `type` (`type`),
KEY `type_objid_objtype` (`type`,`itemid`,`itemtype`),
KEY `type_objid_objtype_userid` (`type`,`itemid`,`itemtype`,`userid`),
KEY `itemtype_userid_new` (`itemtype`,`userid`,`new`),
KEY `date` (`date`)
) ENGINE=INNODB $charset_collate",
WPF()->tables->post_revisions => "CREATE TABLE IF NOT EXISTS `" . WPF()->tables->post_revisions . "` (
`revisionid` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
`userid` BIGINT UNSIGNED NOT NULL DEFAULT 0,
`textareaid` VARCHAR(50) NOT NULL,
`postid` BIGINT UNSIGNED NOT NULL DEFAULT 0,
`body` LONGTEXT,
`created` INT UNSIGNED NOT NULL DEFAULT 0,
`version` SMALLINT NOT NULL DEFAULT 0,
`email` VARCHAR(50) NOT NULL DEFAULT '',
`url` TEXT,
PRIMARY KEY (`revisionid`),
KEY `userid_textareaid_postid_email` (`userid`, `textareaid`, `postid`, `email`, `url`(70))
) ENGINE=INNODB $charset_collate",
WPF()->tables->tags => "CREATE TABLE IF NOT EXISTS `".WPF()->tables->tags."`(
`tagid` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
`tag` VARCHAR(255) NOT NULL,
`prefix` TINYINT(1) UNSIGNED NOT NULL DEFAULT 0,
`count` INT UNSIGNED NOT NULL DEFAULT 0,
PRIMARY KEY (`tagid`),
UNIQUE KEY `tag` (`tag`(190)),
KEY (`prefix`)
) ENGINE=INNODB $charset_collate"
);
}
}