diff --git a/install/sql/mysql.sql b/install/sql/mysql.sql index 26666c4dd..f33f8e086 100644 --- a/install/sql/mysql.sql +++ b/install/sql/mysql.sql @@ -43,6 +43,8 @@ DROP TABLE IF EXISTS `bb_extension_groups`; DROP TABLE IF EXISTS `bb_forums`; DROP TABLE IF EXISTS `bb_groups`; DROP TABLE IF EXISTS `bb_log`; +DROP TABLE IF EXISTS `bb_poll_users`; +DROP TABLE IF EXISTS `bb_poll_votes`; DROP TABLE IF EXISTS `bb_posts`; DROP TABLE IF EXISTS `bb_posts_html`; DROP TABLE IF EXISTS `bb_posts_search`; @@ -65,9 +67,6 @@ DROP TABLE IF EXISTS `bb_topic_templates`; DROP TABLE IF EXISTS `bb_topic_tpl`; DROP TABLE IF EXISTS `bb_users`; DROP TABLE IF EXISTS `bb_user_group`; -DROP TABLE IF EXISTS `bb_vote_desc`; -DROP TABLE IF EXISTS `bb_vote_results`; -DROP TABLE IF EXISTS `bb_vote_voters`; DROP TABLE IF EXISTS `bb_words`; DROP TABLE IF EXISTS `buf_last_seeder`; DROP TABLE IF EXISTS `buf_topic_view`; @@ -856,6 +855,34 @@ CREATE TABLE IF NOT EXISTS `bb_log` ( -- -------------------------------------------------------- +-- +-- Структура таблицы `bb_poll_users` +-- + +CREATE TABLE IF NOT EXISTS `bb_poll_users` ( + `topic_id` int(10) unsigned NOT NULL, + `user_id` int(11) NOT NULL, + `vote_ip` varchar(32) NOT NULL, + `vote_dt` int(11) NOT NULL DEFAULT '0', + PRIMARY KEY (`topic_id`,`user_id`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8; + +-- -------------------------------------------------------- + +-- +-- Структура таблицы `bb_poll_votes` +-- + +CREATE TABLE IF NOT EXISTS `bb_poll_votes` ( + `topic_id` int(10) unsigned NOT NULL, + `vote_id` tinyint(4) unsigned NOT NULL, + `vote_text` varchar(255) NOT NULL, + `vote_result` mediumint(8) unsigned NOT NULL, + PRIMARY KEY (`topic_id`,`vote_id`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8; + +-- -------------------------------------------------------- + -- -- Структура таблицы `bb_posts` -- @@ -1415,52 +1442,6 @@ CREATE TABLE IF NOT EXISTS `bb_user_group` ( -- -------------------------------------------------------- --- --- Структура таблицы `bb_vote_desc` --- - -CREATE TABLE IF NOT EXISTS `bb_vote_desc` ( - `vote_id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, - `topic_id` mediumint(8) unsigned NOT NULL DEFAULT '0', - `vote_text` text NOT NULL, - `vote_start` int(11) NOT NULL DEFAULT '0', - `vote_length` int(11) NOT NULL DEFAULT '0', - PRIMARY KEY (`vote_id`), - KEY `topic_id` (`topic_id`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8; - --- -------------------------------------------------------- - --- --- Структура таблицы `bb_vote_results` --- - -CREATE TABLE IF NOT EXISTS `bb_vote_results` ( - `vote_id` mediumint(8) unsigned NOT NULL DEFAULT '0', - `vote_option_id` tinyint(4) unsigned NOT NULL DEFAULT '0', - `vote_option_text` varchar(255) NOT NULL DEFAULT '', - `vote_result` int(11) NOT NULL DEFAULT '0', - KEY `vote_option_id` (`vote_option_id`), - KEY `vote_id` (`vote_id`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8; - --- -------------------------------------------------------- - --- --- Структура таблицы `bb_vote_voters` --- - -CREATE TABLE IF NOT EXISTS `bb_vote_voters` ( - `vote_id` mediumint(8) unsigned NOT NULL DEFAULT '0', - `vote_user_id` mediumint(8) NOT NULL DEFAULT '0', - `vote_user_ip` char(32) NOT NULL DEFAULT '', - KEY `vote_id` (`vote_id`), - KEY `vote_user_id` (`vote_user_id`), - KEY `vote_user_ip` (`vote_user_ip`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8; - --- -------------------------------------------------------- - -- -- Структура таблицы `bb_words` -- diff --git a/upgrade/r575-poll_upgrade.php b/upgrade/r575-poll_upgrade.php new file mode 100644 index 000000000..d45797f6c --- /dev/null +++ b/upgrade/r575-poll_upgrade.php @@ -0,0 +1,59 @@ +session_start(); + +set_die_append_msg(); +if (!IS_SUPER_ADMIN) bb_die($lang['ONLY_FOR_SUPER_ADMIN']); + +$confirm = request_var('confirm', ''); + +if ($confirm) +{ + DB()->query(" + INSERT INTO bb_poll_votes + (topic_id, vote_id, vote_text, vote_result) + SELECT + topic_id, 0, vote_text, 0 + FROM bb_vote_desc; + "); + + DB()->query(" + INSERT INTO bb_poll_votes + (topic_id, vote_id, vote_text, vote_result) + SELECT + d.topic_id, r.vote_option_id, r.vote_option_text, r.vote_result + FROM bb_vote_desc d, bb_vote_results r + WHERE + d.vote_id = r.vote_id; + "); + + DB()->query(" + INSERT INTO bb_poll_users + (topic_id, user_id, vote_ip) + SELECT + d.topic_id, v.vote_user_id, v.vote_user_ip + FROM bb_vote_desc d, bb_vote_voters v + WHERE + d.vote_id = v.vote_id + AND v.vote_user_id > 0; + "); + + DB()->query("DROP TABLE IF EXISTS bb_vote_desc"); + DB()->query("DROP TABLE IF EXISTS bb_vote_results"); + DB()->query("DROP TABLE IF EXISTS bb_vote_voters"); + + bb_die('