Files
comment/sql.php

95 lines
4.6 KiB
PHP
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<?php
/**
* AVE.cms - Модуль Комментарии
*
* Обновленная структура с поддержкой произвольных полей, загрузки изображений
* и идентификации анонимных пользователей (anon_key)
*/
$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`;";
// =================================================================================
// 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',
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(15) NOT NULL,
/* НОВОЕ ПОЛЕ: КЛЮЧ АНОНИМА (MD5 = 32 символа) */
`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 '',
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[] = "INSERT INTO `%%PRFX%%_module_comments` VALUES (1, 1000, '1,3', '1,2,3,4', '0', '1', '1' , '0', '', 1, 0, '', 1, 0, '', 0, 2048);";
// =================================================================================
// 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_comment_info` ADD `comment_file` VARCHAR(255) NOT NULL DEFAULT '' AFTER `comments_close`;";
$module_sql_update[] = "ALTER TABLE `%%PRFX%%_module_comments` ADD `comment_allow_files` TINYINT(1) NOT NULL DEFAULT '0';";
$module_sql_update[] = "ALTER TABLE `%%PRFX%%_module_comments` ADD `comment_file_max_size` INT(10) NOT NULL DEFAULT '2048';";
// НОВОЕ: Добавляем поле anon_key в существующую таблицу
$module_sql_update[] = "ALTER TABLE `%%PRFX%%_module_comment_info` ADD `anon_key` VARCHAR(32) DEFAULT NULL AFTER `comment_author_ip`;";
$module_sql_update[] = "ALTER TABLE `%%PRFX%%_module_comment_info` ADD INDEX `anon_key` (`anon_key`);";
?>