Просмотр файла local/upgrade_4.5.3.dat

Размер файла: 23.47Kb
<?php
#---------------------------------------------#
#      ********* RotorCMS *********           #
#           Author  :  Vantuz                 #
#            Email  :  [email protected]     #
#             Site  :  http://visavi.net      #
#              ICQ  :  36-44-66               #
#            Skype  :  vantuzilla             #
#---------------------------------------------#
if (!defined('BASEDIR')) {
	exit(header('Location:../index.php'));
}

/* Добавление нового поля в таблицу пользователей для хранения времени получения бонуса */
$check = DB::run() -> querySingle("SHOW COLUMNS FROM `users` LIKE 'users_timebonus';");
if (empty($check)) {
	DB::run() -> query("ALTER TABLE `users` ADD `users_timebonus` int(11) NOT NULL DEFAULT '0' AFTER `users_timelastlogin`;");
	echo 'Добавлено поле users_timebonus в таблицу users<br />';
}

/* Добавление настроек количества ежедневгого бонуса в таблицу setting */
$check = DB::run() -> querySingle("SELECT `setting_name` FROM `setting` WHERE `setting_name`=?;", array('bonusmoney'));
if (empty($check)) {
	DB::run() -> query("INSERT INTO `setting` (`setting_name`, `setting_value`) VALUES (?, ?);", array('bonusmoney', 500));
	echo 'Добавлены настройки количества ежедневгого бонуса в таблицу setting<br />';
}

/* Добавление настроек количества денег при регистрации в таблицу setting */
$check = DB::run() -> querySingle("SELECT `setting_name` FROM `setting` WHERE `setting_name`=?;", array('registermoney'));
if (empty($check)) {
	DB::run() -> query("INSERT INTO `setting` (`setting_name`, `setting_value`) VALUES (?, ?);", array('registermoney', 1000));
	echo 'Добавлены настройки количества денег при регистрации в таблицу setting<br />';
}


/* Добавление нового поля в таблицу категорий загрузки для указания директории */
$check = DB::run() -> querySingle("SHOW COLUMNS FROM `cats` LIKE 'folder';");
if (empty($check)) {
	DB::run() -> query("ALTER TABLE `cats` ADD `folder` varchar(50) NOT NULL DEFAULT '';");
	echo 'Добавлено поле folder в таблицу cats<br />';
}

/* Добавление настроек веса смайлов в таблицу setting */
$check = DB::run() -> querySingle("SELECT `setting_name` FROM `setting` WHERE `setting_name`=?;", array('smilemaxsize'));
if (empty($check)) {
	DB::run() -> query("INSERT INTO `setting` (`setting_name`, `setting_value`) VALUES (?, ?);", array('smilemaxsize', 10240));
	echo 'Добавлены настройки веса смайлов в таблицу setting<br />';
}

/* Добавление настроек макс. размера смайлов в таблицу setting */
$check = DB::run() -> querySingle("SELECT `setting_name` FROM `setting` WHERE `setting_name`=?;", array('smilemaxweight'));
if (empty($check)) {
	DB::run() -> query("INSERT INTO `setting` (`setting_name`, `setting_value`) VALUES (?, ?);", array('smilemaxweight', 100));
	echo 'Добавлены настройки макс. размера смайлов в таблицу setting<br />';
}

/* Добавление настроек мин. размера смайлов в таблицу setting */
$check = DB::run() -> querySingle("SELECT `setting_name` FROM `setting` WHERE `setting_name`=?;", array('smileminweight'));
if (empty($check)) {
	DB::run() -> query("INSERT INTO `setting` (`setting_name`, `setting_value`) VALUES (?, ?);", array('smileminweight', 16));
	echo 'Добавлены настройки мин. размера смайлов в таблицу setting<br />';
}

/* Добавление настроек постраничной навигации событий в таблицу setting */
$check = DB::run() -> querySingle("SELECT `setting_name` FROM `setting` WHERE `setting_name`=?;", array('postevents'));
if (empty($check)) {
	DB::run() -> query("INSERT INTO `setting` (`setting_name`, `setting_value`) VALUES (?, ?);", array('postevents', 10));
	echo 'Добавлены настройки постраничной навигации событий в таблицу setting<br />';
}

/* Добавление настроек кол. комментарий событий в таблицу setting */
$check = DB::run() -> querySingle("SELECT `setting_name` FROM `setting` WHERE `setting_name`=?;", array('maxkommevents'));
if (empty($check)) {
	DB::run() -> query("INSERT INTO `setting` (`setting_name`, `setting_value`) VALUES (?, ?);", array('maxkommevents', 500));
	echo 'Добавлены настройки кол. комментарий событий в таблицу setting<br />';
}

/* Добавление настроек кол. баллов для публикации событий в таблицу setting */
$check = DB::run() -> querySingle("SELECT `setting_name` FROM `setting` WHERE `setting_name`=?;", array('eventpoint'));
if (empty($check)) {
	DB::run() -> query("INSERT INTO `setting` (`setting_name`, `setting_value`) VALUES (?, ?);", array('eventpoint', 50));
	echo 'Добавлены настройки кол. баллов для публикации событий в таблицу setting<br />';
}

/* Добавление настроек постраничной навигации истории банов в таблицу setting */
$check = DB::run() -> querySingle("SELECT `setting_name` FROM `setting` WHERE `setting_name`=?;", array('listbanhist'));
if (empty($check)) {
	DB::run() -> query("INSERT INTO `setting` (`setting_name`, `setting_value`) VALUES (?, ?);", array('listbanhist', 10));
	echo 'Добавлены настройки постраничной навигации истории банов в таблицу setting<br />';
}

/* Добавление настроек постраничной навигации инвайтов в таблицу setting */
$check = DB::run() -> querySingle("SELECT `setting_name` FROM `setting` WHERE `setting_name`=?;", array('listinvite'));
if (empty($check)) {
	DB::run() -> query("INSERT INTO `setting` (`setting_name`, `setting_value`) VALUES (?, ?);", array('listinvite', 20));
	echo 'Добавлены настройки постраничной навигации инвайтов в таблицу setting<br />';
}

/* Добавление настроек постраничной навигации предложения и проблемы в таблицу setting */
$check = DB::run() -> querySingle("SELECT `setting_name` FROM `setting` WHERE `setting_name`=?;", array('postoffers'));
if (empty($check)) {
	DB::run() -> query("INSERT INTO `setting` (`setting_name`, `setting_value`) VALUES (?, ?);", array('postoffers', 10));
	echo 'Добавлены настройки постраничной навигации предложения и проблемы в таблицу setting<br />';
}

/* Добавление настроек постраничной навигации комментариев предложения и проблемы в таблицу setting */
$check = DB::run() -> querySingle("SELECT `setting_name` FROM `setting` WHERE `setting_name`=?;", array('postcommoffers'));
if (empty($check)) {
	DB::run() -> query("INSERT INTO `setting` (`setting_name`, `setting_value`) VALUES (?, ?);", array('postcommoffers', 10));
	echo 'Добавлены настройки постраничной навигации комментариев предложения и проблемы в таблицу setting<br />';
}

/* Добавление настроек кол. комментариев предложения и проблемы в таблицу setting */
$check = DB::run() -> querySingle("SELECT `setting_name` FROM `setting` WHERE `setting_name`=?;", array('maxpostoffers'));
if (empty($check)) {
	DB::run() -> query("INSERT INTO `setting` (`setting_name`, `setting_value`) VALUES (?, ?);", array('maxpostoffers', 300));
	echo 'Добавлены настройки кол. комментариев предложения и проблемы в таблицу setting<br />';
}

/* Добавление настроек постраничной навигации в поиске пользователей в таблицу setting */
$check = DB::run() -> querySingle("SELECT `setting_name` FROM `setting` WHERE `setting_name`=?;", array('usersearch'));
if (empty($check)) {
	DB::run() -> query("INSERT INTO `setting` (`setting_name`, `setting_value`) VALUES (?, ?);", array('usersearch', 30));
	echo 'Добавлены настройки постраничной навигации в поиске пользователей в таблицу setting<br />';
}

/* Добавление настроек постраничной навигации стены сообщений в таблицу setting */
$check = DB::run() -> querySingle("SELECT `setting_name` FROM `setting` WHERE `setting_name`=?;", array('wallpost'));
if (empty($check)) {
	DB::run() -> query("INSERT INTO `setting` (`setting_name`, `setting_value`) VALUES (?, ?);", array('wallpost', 10));
	echo 'Добавлены настройки постраничной навигации стены сообщений в таблицу setting<br />';
}

/* Добавление настроек кол. постов стены сообщений в таблицу setting */
$check = DB::run() -> querySingle("SELECT `setting_name` FROM `setting` WHERE `setting_name`=?;", array('wallmaxpost'));
if (empty($check)) {
	DB::run() -> query("INSERT INTO `setting` (`setting_name`, `setting_value`) VALUES (?, ?);", array('wallmaxpost', 100));
	echo 'Добавлены настройки кол. постов стены сообщений в таблицу setting<br />';
}

/* Добавление настроек истории авторизаций в таблицу setting */
$check = DB::run() -> querySingle("SELECT `setting_name` FROM `setting` WHERE `setting_name`=?;", array('loginauthlist'));
if (empty($check)) {
	DB::run() -> query("INSERT INTO `setting` (`setting_name`, `setting_value`) VALUES (?, ?);", array('loginauthlist', 10));
	echo 'Добавлены настройки постраничной навигации в истории авторизаций в таблицу setting<br />';
}

/* Удаление поля jabber у пользователей */
$check = DB::run() -> querySingle("SHOW COLUMNS FROM `users` LIKE 'users_jabber';");
if (!empty($check)) {
	DB::run() -> query("ALTER TABLE `users` DROP COLUMN `users_jabber`;");
	echo 'Удалено поле users_jabber из таблицы users<br />';
}

$check = DB::run() -> querySingle("SHOW COLUMNS FROM `users` LIKE 'users_sendprivatmail';");
if (empty($check)) {
	DB::run() -> query("ALTER TABLE `users` ADD `users_sendprivatmail` tinyint(1) unsigned NOT NULL DEFAULT '0' AFTER `users_timelastlogin`;");
	echo 'Добавлено новое поле users_sendprivatmail в таблицу users<br />';
}

/* Добавление настроек кол. дней перед отправкой уведомления о привате на email в таблицу setting */
$check = DB::run() -> querySingle("SELECT `setting_name` FROM `setting` WHERE `setting_name`=?;", array('sendprivatmailday'));
if (empty($check)) {
	DB::run() -> query("INSERT INTO `setting` (`setting_name`, `setting_value`) VALUES (?, ?);", array('sendprivatmailday', 3));
	echo 'Добавлены настройки кол. дней перед отправкой уведомления о привате на email в таблицу setting<br />';
}

/* Добавление настроек рассылки писем за одну операцию в таблицу setting */
$check = DB::run() -> querySingle("SELECT `setting_name` FROM `setting` WHERE `setting_name`=?;", array('sendmailpacket'));
if (empty($check)) {
	DB::run() -> query("INSERT INTO `setting` (`setting_name`, `setting_value`) VALUES (?, ?);", array('sendmailpacket', 20));
	echo 'Добавлены настройки рассылки писем за одну операцию в таблицу setting<br />';
}

/* Добавление нового поля в таблицу пользователей для отписки рассылки */
$check = DB::run() -> querySingle("SHOW COLUMNS FROM `users` LIKE 'users_subscribe';");
if (empty($check)) {
	DB::run() -> query("ALTER TABLE `users` ADD `users_subscribe` varchar(32) NOT NULL DEFAULT '';");

	// Заносим всем пользователям случайный хеш
	DB::run() -> exec("UPDATE `users` SET `users_subscribe` = MD5(UUID());");

	echo 'Добавлено поле users_subscribe в таблицу users<br />';
}

/* Добавление настроек драйвера отправки писем в таблицу setting */
$check = DB::run() -> querySingle("SELECT `setting_name` FROM `setting` WHERE `setting_name`=?;", array('maildriver'));
if (empty($check)) {
	DB::run() -> query("INSERT INTO `setting` (`setting_name`, `setting_value`) VALUES (?, ?);", array('maildriver', 'sendmail'));
	echo 'Добавлены настройки драйвера отправки писем в таблицу setting<br />';
}

/* Добавление настроек smtp хоста отправки писем в таблицу setting */
$check = DB::run() -> querySingle("SELECT `setting_name` FROM `setting` WHERE `setting_name`=?;", array('mailhost'));
if (empty($check)) {
	DB::run() -> query("INSERT INTO `setting` (`setting_name`, `setting_value`) VALUES (?, ?);", array('mailhost', 'smtp.yandex.ru'));
	echo 'Добавлены настройки smtp хоста отправки писем в таблицу setting<br />';
}

/* Добавление настроек smtp порта отправки писем в таблицу setting */
$check = DB::run() -> querySingle("SELECT `setting_name` FROM `setting` WHERE `setting_name`=?;", array('mailport'));
if (empty($check)) {
	DB::run() -> query("INSERT INTO `setting` (`setting_name`, `setting_value`) VALUES (?, ?);", array('mailport', 465));
	echo 'Добавлены настройки smtp порта отправки писем в таблицу setting<br />';
}

/* Добавление настроек smtp пользователя отправки писем в таблицу setting */
$check = DB::run() -> querySingle("SELECT `setting_name` FROM `setting` WHERE `setting_name`=?;", array('mailusername'));
if (empty($check)) {
	DB::run() -> query("INSERT INTO `setting` (`setting_name`, `setting_value`) VALUES (?, ?);", array('mailusername', ''));
	echo 'Добавлены настройки smtp пользователя отправки писем в таблицу setting<br />';
}

/* Добавление настроек smtp пароля отправки писем в таблицу setting */
$check = DB::run() -> querySingle("SELECT `setting_name` FROM `setting` WHERE `setting_name`=?;", array('mailpassword'));
if (empty($check)) {
	DB::run() -> query("INSERT INTO `setting` (`setting_name`, `setting_value`) VALUES (?, ?);", array('mailpassword', ''));
	echo 'Добавлены настройки smtp пароля отправки писем в таблицу setting<br />';
}

/* Добавление настроек smtp шифрования отправки писем в таблицу setting */
$check = DB::run() -> querySingle("SELECT `setting_name` FROM `setting` WHERE `setting_name`=?;", array('mailsecurity'));
if (empty($check)) {
	DB::run() -> query("INSERT INTO `setting` (`setting_name`, `setting_value`) VALUES (?, ?);", array('mailsecurity', 'ssl'));
	echo 'Добавлены настройки smtp шифрования отправки писем в таблицу setting<br />';
}

/* Добавление настроек времени подсчета онлайн в таблицу setting */
$check = DB::run() -> querySingle("SELECT `setting_name` FROM `setting` WHERE `setting_name`=?;", array('timeonline'));
if (empty($check)) {
	DB::run() -> query("INSERT INTO `setting` (`setting_name`, `setting_value`) VALUES (?, ?);", array('timeonline', 600));
	echo 'Добавлены настройки времени подсчета онлайн в таблицу setting<br />';
}


if ($config['rotorversion'] < '4.3.9') {
	DB::run() -> query("ALTER TABLE `banhist` MODIFY `ban_reason` text DEFAULT NULL;");
	DB::run() -> query("ALTER TABLE `blogs` MODIFY `blogs_text` text DEFAULT NULL;");
	DB::run() -> query("ALTER TABLE `chat` MODIFY `chat_text` text DEFAULT NULL;");
	DB::run() -> query("ALTER TABLE `commblog` MODIFY `commblog_text` text DEFAULT NULL;");
	DB::run() -> query("ALTER TABLE `commevents` MODIFY `commevent_text` text DEFAULT NULL;");
	DB::run() -> query("ALTER TABLE `commload` MODIFY `commload_text` text DEFAULT NULL;");
	DB::run() -> query("ALTER TABLE `commnews` MODIFY `commnews_text` text DEFAULT NULL;");
	DB::run() -> query("ALTER TABLE `commoffers` MODIFY `comm_text` text DEFAULT NULL;");
	DB::run() -> query("ALTER TABLE `commphoto` MODIFY `commphoto_text` text DEFAULT NULL;");
	DB::run() -> query("ALTER TABLE `contact` MODIFY `contact_text` text DEFAULT NULL;");
	DB::run() -> query("ALTER TABLE `downs` MODIFY `downs_text` text DEFAULT NULL;");
	DB::run() -> query("ALTER TABLE `downs` MODIFY `downs_notice` text DEFAULT NULL;");
	DB::run() -> query("ALTER TABLE `events` MODIFY `event_text` text DEFAULT NULL;");
	DB::run() -> query("ALTER TABLE `guest` MODIFY `guest_text` text DEFAULT NULL;");
	DB::run() -> query("ALTER TABLE `guest` MODIFY `guest_reply` text DEFAULT NULL;");
	DB::run() -> query("ALTER TABLE `ignore` MODIFY `ignore_text` text DEFAULT NULL;");
	DB::run() -> query("ALTER TABLE `inbox` MODIFY `inbox_text` text DEFAULT NULL;");
	DB::run() -> query("ALTER TABLE `news` MODIFY `news_text` text DEFAULT NULL;");
	DB::run() -> query("ALTER TABLE `note` MODIFY `note_text` text DEFAULT NULL;");
	DB::run() -> query("ALTER TABLE `notebook` MODIFY `note_text` text DEFAULT NULL;");
	DB::run() -> query("ALTER TABLE `notice` MODIFY `notice_text` text DEFAULT NULL;");
	DB::run() -> query("ALTER TABLE `offers` MODIFY `offers_text` text DEFAULT NULL;");
	DB::run() -> query("ALTER TABLE `offers` MODIFY `offers_text_reply` text DEFAULT NULL;");
	DB::run() -> query("ALTER TABLE `outbox` MODIFY `outbox_text` text DEFAULT NULL;");
	DB::run() -> query("ALTER TABLE `photo` MODIFY `photo_text` text DEFAULT NULL;");
	DB::run() -> query("ALTER TABLE `posts` MODIFY `posts_text` text DEFAULT NULL;");
	DB::run() -> query("ALTER TABLE `rating` MODIFY `rating_text` text DEFAULT NULL;");
	DB::run() -> query("ALTER TABLE `rules` MODIFY `rules_text` text DEFAULT NULL;");
	DB::run() -> query("ALTER TABLE `spam` MODIFY `spam_text` text DEFAULT NULL;");
	DB::run() -> query("ALTER TABLE `transfers` MODIFY `trans_text` text DEFAULT NULL;");
	DB::run() -> query("ALTER TABLE `trash` MODIFY `trash_text` text DEFAULT NULL;");
	DB::run() -> query("ALTER TABLE `users` MODIFY `users_info` text DEFAULT NULL;");
	DB::run() -> query("ALTER TABLE `users` MODIFY `users_reasonban` text DEFAULT NULL;");
	DB::run() -> query("ALTER TABLE `wall` MODIFY `wall_text` text DEFAULT NULL;");
	echo 'Обновлена структура БД для совместимости с MySQL 5.7<br />';
}

/* Добавление нового поля в категории загрузок для закрытия разделов */
$check = DB::run() -> querySingle("SHOW COLUMNS FROM `cats` LIKE 'closed';");
if (empty($check)) {
	DB::run() -> query("ALTER TABLE `cats` ADD `closed` tinyint(1) unsigned NOT NULL default '0';");
	echo 'Добавлено поле в категории загрузок для закрытия разделов<br />';
}

if ($config['rotorversion'] < '4.3.0') {
	echo 'Необходимо выполнить <a href="/upgrade/upgrade_smiles2.php">апгрейд смайлов</a><br />';
}

if ($config['rotorversion'] < '4.5.0') {
	echo 'Необходимо выполнить <a href="/upgrade/upgrade_bbcodes.php">апгрейд тегов</a><br />';
}

if (file_exists(BASEDIR.'/assets/fonts/.htaccess')){
	echo '<i class="fa fa-exclamation-circle"></i> Необходимо удалить файл assets/fonts/.htaccess<br />';
}

/* Если установлен модуль игры */
if (file_exists(BASEDIR.'/games')) {

	$check = DB::run() -> querySingle("SHOW TABLES LIKE 'lotinfo';");
	if (empty($check)) {
		DB::run() -> exec("
		CREATE TABLE IF NOT EXISTS `lotinfo` (
		  `lot_id` int(11) unsigned NOT NULL auto_increment,
		  `lot_date` smallint(4) unsigned NOT NULL,
		  `lot_sum` int(11) unsigned NOT NULL default '0',
		  `lot_newnum` smallint(4) unsigned NOT NULL default '0',
		  `lot_oldnum` smallint(4) unsigned NOT NULL default '0',
		  `lot_winners` varchar(255) NOT NULL default '',
		  PRIMARY KEY  (`lot_id`)
		) ENGINE=MyISAM  DEFAULT CHARSET=utf8;
		");
		echo 'Добавлена таблица lotinfo<br />';
	}

	$check = DB::run() -> querySingle("SHOW TABLES LIKE 'lotusers';");
	if (empty($check)) {
		DB::run() -> exec("
		CREATE TABLE IF NOT EXISTS `lotusers` (
		  `lot_id` int(11) unsigned NOT NULL auto_increment,
		  `lot_user` varchar(20) NOT NULL,
		  `lot_num` smallint(4) unsigned NOT NULL default '0',
		  `lot_time` int(11) unsigned NOT NULL default '0',
		  PRIMARY KEY  (`lot_id`)
		) ENGINE=MyISAM  DEFAULT CHARSET=utf8;
		");
		echo 'Добавлена таблица lotusers<br />';
	}

	$check = DB::run() -> querySingle("SHOW TABLES LIKE 'bank';");
	if (empty($check)) {
		DB::run() -> exec("
		CREATE TABLE IF NOT EXISTS `bank` (
		  `bank_id` int(11) unsigned NOT NULL auto_increment,
		  `bank_user` varchar(20) NOT NULL,
		  `bank_sum` int(11) unsigned NOT NULL default '0',
		  `bank_oper` int(11) unsigned NOT NULL default '0',
		  `bank_time` int(11) unsigned NOT NULL default '0',
		  PRIMARY KEY  (`bank_id`),
		  UNIQUE KEY `bank_user` (`bank_user`)
		) ENGINE=MyISAM  DEFAULT CHARSET=utf8;
		");
		echo 'Добавлена таблица bank<br />';
	}

	/* Добавление нового поля в таблицу пользователей для хранения суммы кредита */
	$check = DB::run() -> querySingle("SHOW COLUMNS FROM `users` LIKE 'users_sumcredit';");
	if (empty($check)) {
		DB::run() -> query("ALTER TABLE `users` ADD `users_sumcredit` int(11) unsigned NOT NULL DEFAULT '0';");
		echo 'Добавлено поле users_sumcredit в таблицу users<br />';
	}

	/* Добавление нового поля в таблицу пользователей для хранения времени получения кредита */
	$check = DB::run() -> querySingle("SHOW COLUMNS FROM `users` LIKE 'users_timecredit';");
	if (empty($check)) {
		DB::run() -> query("ALTER TABLE `users` ADD `users_timecredit` int(11) unsigned NOT NULL DEFAULT '0';");
		echo 'Добавлено поле users_timecredit в таблицу users<br />';
	}
}

$version = substr(strstr(basename(__FILE__), '_'), 1, -4);

DB::run() -> query("REPLACE INTO `setting` (`setting_name`, `setting_value`) VALUES (?, ?);", array('rotorversion', $version));
clearCache();

echo '<div class="note"><b>RotorCMS автоматически обновлен до версии ' . $version . '</b></div><br />';
?>