126 lines
5.7 KiB
PHP
126 lines
5.7 KiB
PHP
<?php
|
||
|
||
/**
|
||
* AVE.cms - Модуль Комментарии
|
||
*
|
||
* Обновленная структура с поддержкой выбора типа рейтинга (звезды/лайки),
|
||
* идентификации анонимных пользователей, загрузки файлов и защиты по IP.
|
||
*/
|
||
|
||
$module_sql_install = array();
|
||
$module_sql_deinstall = array();
|
||
$module_sql_update = array();
|
||
|
||
$module_sql_deinstall[] = "DROP TABLE IF EXISTS `%%PRFX%%_module_comments`;";
|
||
$module_sql_deinstall[] = "DROP TABLE IF EXISTS `%%PRFX%%_module_comment_info`;";
|
||
$module_sql_deinstall[] = "DROP TABLE IF EXISTS `%%PRFX%%_module_comment_votes`;";
|
||
|
||
// =================================================================================
|
||
// 1. УСТАНОВКА МОДУЛЯ (CREATE TABLE)
|
||
// =================================================================================
|
||
$module_sql_install[] = "CREATE TABLE `%%PRFX%%_module_comments` (
|
||
`Id` tinyint(1) unsigned NOT NULL auto_increment,
|
||
`comment_max_chars` smallint(3) unsigned NOT NULL default '1000',
|
||
`comment_user_groups` text NOT NULL,
|
||
`comment_user_groups_read` text NOT NULL,
|
||
`comment_need_approve` enum('0','1') NOT NULL default '0',
|
||
`comment_active` enum('1','0') NOT NULL default '1',
|
||
`comment_use_antispam` enum('1','0') NOT NULL default '1',
|
||
`comment_use_page_nav` enum('1','0') NOT NULL default '1',
|
||
`comment_page_nav_count` varchar(5) NOT NULL,
|
||
`comment_show_f1` tinyint(1) NOT NULL default '1',
|
||
`comment_req_f1` tinyint(1) NOT NULL default '0',
|
||
`comment_name_f1` varchar(255) NOT NULL default '',
|
||
`comment_show_f2` tinyint(1) NOT NULL default '1',
|
||
`comment_req_f2` tinyint(1) NOT NULL default '0',
|
||
`comment_name_f2` varchar(255) NOT NULL default '',
|
||
`comment_allow_files` tinyint(1) NOT NULL default '0',
|
||
`comment_file_max_size` int(10) NOT NULL default '2048',
|
||
`comment_rating_type` tinyint(1) NOT NULL default '0', /* 0 - звезды, 1 - лайки */
|
||
PRIMARY KEY (`Id`)
|
||
) ENGINE=MyISAM DEFAULT CHARSET=utf8;";
|
||
|
||
$module_sql_install[] = "CREATE TABLE `%%PRFX%%_module_comment_info` (
|
||
`Id` int(10) unsigned NOT NULL auto_increment,
|
||
`parent_id` int(10) unsigned NOT NULL default '0',
|
||
`document_id` int(10) unsigned NOT NULL default '0',
|
||
`comment_author_name` varchar(255) NOT NULL,
|
||
`comment_author_id` int(10) unsigned NOT NULL default '0',
|
||
`comment_author_email` varchar(255) NOT NULL,
|
||
`comment_author_city` varchar(255) NOT NULL,
|
||
`comment_author_website` varchar(255) NOT NULL,
|
||
`comment_author_ip` varchar(45) NOT NULL,
|
||
`anon_key` varchar(32) DEFAULT NULL,
|
||
`comment_published` int(10) unsigned NOT NULL default '0',
|
||
`comment_changed` int(10) unsigned NOT NULL default '0',
|
||
`comment_text` text NOT NULL,
|
||
`comment_status` tinyint(1) unsigned NOT NULL default '1',
|
||
`comments_close` tinyint(1) unsigned NOT NULL default '0',
|
||
`comment_file` varchar(255) NOT NULL default '',
|
||
/* ПОЛЯ РЕЙТИНГА */
|
||
`rating_sum` int(10) NOT NULL default '0',
|
||
`rating_count` int(10) NOT NULL default '0',
|
||
PRIMARY KEY (`Id`),
|
||
KEY `document_id` (`document_id`),
|
||
KEY `parent_id` (`parent_id`),
|
||
KEY `comment_status` (`comment_status`),
|
||
KEY `anon_key` (`anon_key`)
|
||
) ENGINE=MyISAM DEFAULT CHARSET=utf8 PACK_KEYS=0;";
|
||
|
||
$module_sql_install[] = "CREATE TABLE `%%PRFX%%_module_comment_votes` (
|
||
`id` int(10) unsigned NOT NULL auto_increment,
|
||
`comment_id` int(10) unsigned NOT NULL,
|
||
`user_id` int(10) unsigned DEFAULT '0',
|
||
`anon_key` varchar(32) DEFAULT '',
|
||
`remote_addr` varchar(45) DEFAULT '',
|
||
`vote_value` tinyint(1) NOT NULL,
|
||
`date_voted` int(10) unsigned NOT NULL,
|
||
PRIMARY KEY (`id`),
|
||
KEY `comment_id` (`comment_id`),
|
||
KEY `anon_key` (`anon_key`),
|
||
KEY `user_id` (`user_id`),
|
||
KEY `remote_addr` (`remote_addr`)
|
||
) ENGINE=MyISAM DEFAULT CHARSET=utf8;";
|
||
|
||
/* Добавили 0 в конце для comment_rating_type */
|
||
$module_sql_install[] = "INSERT INTO `%%PRFX%%_module_comments` VALUES (1, 1000, '1,3', '1,2,3,4', '0', '1', '1' , '0', '', 1, 0, '', 1, 0, '', 0, 2048, 0);";
|
||
|
||
// =================================================================================
|
||
// 2. ОБНОВЛЕНИЕ МОДУЛЯ (ALTER TABLE)
|
||
// =================================================================================
|
||
|
||
$module_sql_update[] = "
|
||
UPDATE `%%PRFX%%_module`
|
||
SET
|
||
ModuleAveTag = '" . $modul['ModuleAveTag'] . "',
|
||
ModulePHPTag = '" . $modul['ModulePHPTag'] . "',
|
||
ModuleVersion = '" . $modul['ModuleVersion'] . "'
|
||
WHERE ModuleSysName = '" . $modul['ModuleSysName'] . "'
|
||
LIMIT 1;
|
||
";
|
||
|
||
/* Добавляем переключатель типа рейтинга, если его нет */
|
||
$module_sql_update[] = "ALTER TABLE `%%PRFX%%_module_comments` ADD COLUMN IF NOT EXISTS `comment_rating_type` TINYINT(1) NOT NULL DEFAULT '0';";
|
||
|
||
$module_sql_update[] = "ALTER TABLE `%%PRFX%%_module_comment_info` ADD `rating_sum` INT(10) NOT NULL DEFAULT '0';";
|
||
$module_sql_update[] = "ALTER TABLE `%%PRFX%%_module_comment_info` ADD `rating_count` INT(10) NOT NULL DEFAULT '0';";
|
||
$module_sql_update[] = "ALTER TABLE `%%PRFX%%_module_comment_info` MODIFY `comment_author_ip` VARCHAR(45) NOT NULL;";
|
||
|
||
$module_sql_update[] = "CREATE TABLE IF NOT EXISTS `%%PRFX%%_module_comment_votes` (
|
||
`id` int(10) unsigned NOT NULL auto_increment,
|
||
`comment_id` int(10) unsigned NOT NULL,
|
||
`user_id` int(10) unsigned DEFAULT '0',
|
||
`anon_key` varchar(32) DEFAULT '',
|
||
`remote_addr` varchar(45) DEFAULT '',
|
||
`vote_value` tinyint(1) NOT NULL,
|
||
`date_voted` int(10) unsigned NOT NULL,
|
||
PRIMARY KEY (`id`),
|
||
KEY `comment_id` (`comment_id`),
|
||
KEY `anon_key` (`anon_key`),
|
||
KEY `user_id` (`user_id`),
|
||
KEY `remote_addr` (`remote_addr`)
|
||
) ENGINE=MyISAM DEFAULT CHARSET=utf8;";
|
||
|
||
$module_sql_update[] = "ALTER TABLE `%%PRFX%%_module_comment_votes` ADD COLUMN IF NOT EXISTS `remote_addr` VARCHAR(45) DEFAULT '' AFTER `anon_key`;";
|
||
|
||
?>
|