set_error(); if(! defined('CACHE_MEMCACHED')) { define('CACHE_MEMCACHED', false); } define("VERSION", "5.1"); define("D_UPDATE", 1340774040); include_once ABSOLUTE_PATH.'includes/function.php'; include_once(ABSOLUTE_PATH.'includes/core.php'); include_once(ABSOLUTE_PATH.'includes/database.php'); DB::connect(); include_once ABSOLUTE_PATH.'includes/init.php'; $diafan = new Init(); $languages = array(); $langs = array(); $result = DB::query("SELECT * FROM {language}"); while ($row = DB::fetch_array($result)) { $languages[] = $row["id"]; $langs[] = $row; } $modules = array(); $result = DB::query("SELECT name FROM {modules}"); while ($row = DB::fetch_array($result)) { $modules[] = $row["name"]; } DB::query("ALTER TABLE {users_role} ADD `registration` ENUM('0', '1') NOT NULL DEFAULT '0'"); foreach($languages as $lang_id) { if($lang_id != 1) { DB::query("ALTER TABLE {users_role} ADD name".$lang_id." VARCHAR(64) NOT NULL DEFAULT ''"); } } DB::query("CREATE TABLE {users_param_role_rel} ( `id` INT(11) UNSIGNED NOT NULL AUTO_INCREMENT, `element_id` INT(11) UNSIGNED NOT NULL DEFAULT '0', `role_id` TINYINT(3) UNSIGNED NOT NULL DEFAULT '0', `trash` ENUM('0', '1') NOT NULL DEFAULT '0', PRIMARY KEY (`id`) ) CHARSET=utf8"); $result = DB::query("SELECT id FROM {users_param} WHERE trash='0'"); while($row = DB::fetch_array($result)) { DB::query("INSERT INTO {users_param_role_rel} (element_id, role_id) VALUES (%d, 0)", $row["id"]); } if(in_array('banners', $modules)) { DB::query("ALTER TABLE {banners_site_rel} ADD trash ENUM('0', '1') NOT NULL DEFAULT '0'"); } // пользователь, создавший материал DB::query("ALTER TABLE {site} ADD admin_id INT(11) UNSIGNED NOT NULL DEFAULT '0'"); if(in_array('clauses', $modules)) { DB::query("ALTER TABLE {clauses} ADD admin_id INT(11) UNSIGNED NOT NULL DEFAULT '0'"); DB::query("ALTER TABLE {clauses_category} ADD admin_id INT(11) UNSIGNED NOT NULL DEFAULT '0'"); } if(in_array('faq', $modules)) { DB::query("ALTER TABLE {faq} ADD admin_id INT(11) UNSIGNED NOT NULL DEFAULT '0'"); DB::query("ALTER TABLE {faq_category} ADD admin_id INT(11) UNSIGNED NOT NULL DEFAULT '0'"); } if(in_array('feedback', $modules)) { DB::query("ALTER TABLE {feedback} ADD admin_id INT(11) UNSIGNED NOT NULL DEFAULT '0'"); } if(in_array('files', $modules)) { DB::query("ALTER TABLE {files} ADD admin_id INT(11) UNSIGNED NOT NULL DEFAULT '0'"); DB::query("ALTER TABLE {files_category} ADD admin_id INT(11) UNSIGNED NOT NULL DEFAULT '0'"); } if(in_array('photo', $modules)) { DB::query("ALTER TABLE {photo} ADD admin_id INT(11) UNSIGNED NOT NULL DEFAULT '0'"); DB::query("ALTER TABLE {photo_category} ADD admin_id INT(11) UNSIGNED NOT NULL DEFAULT '0'"); } if(in_array('shop', $modules)) { DB::query("ALTER TABLE {shop} ADD admin_id INT(11) UNSIGNED NOT NULL DEFAULT '0'"); DB::query("ALTER TABLE {shop_category} ADD admin_id INT(11) UNSIGNED NOT NULL DEFAULT '0'"); } DB::query("ALTER TABLE {users_role} ADD `only_self` ENUM('0', '1') NOT NULL DEFAULT '0'"); // изменен модуль "Восстановление доступа" DB::query("UPDATE {config} SET value='Восстановление доступа к сайту %%title (%%url).', lang_id=1 WHERE module_name='users' AND name='subject_reminding'"); DB::query("UPDATE {config} SET value='Здравствуйте, %%fio!
Вы запросили восстановление доступа к сайту %%title (%%url).
Для изменения пароля пройдите по ссылке: %%actlink', lang_id=1 WHERE module_name='users' AND name='message_reminding'"); DB::query("INSERT INTO {config} (`module_name`, `name`, `value`, lang_id) VALUES ('users', 'subject_reminding_new_pass', 'Новый пароль на сайте %%title (%%url).', 1)"); DB::query("INSERT INTO {config} (`module_name`, `name`, `value`, lang_id) VALUES ('users', 'message_reminding_new_pass', 'Здравствуйте, %%fio!
Вы изменили пароль на сайте %%title (%%url).
Логин: %%login
Пароль: %%password', 1)"); DB::query("UPDATE {config} SET value='На ваш e-mail отправлена ссылка на форму изменения пароля.', lang_id=1 WHERE module_name='users' AND name='mes_reminding'"); // переделана мультиязычность DB::query("CREATE TABLE {languages_translate} ( id INT(11) UNSIGNED NOT NULL AUTO_INCREMENT, text TEXT NOT NULL DEFAULT '', text_translate TEXT NOT NULL DEFAULT '', lang_id TINYINT(2) UNSIGNED NOT NULL DEFAULT '0', module_name VARCHAR(50) NOT NULL DEFAULT '', type ENUM('admin', 'site') NOT NULL DEFAULT 'admin', PRIMARY KEY (`id`) ) CHARSET=utf8"); DB::query("RENAME TABLE {language} TO {languages}"); DB::query("ALTER TABLE {languages} ADD base_admin ENUM('0', '1') NOT NULL DEFAULT '0', ADD base_site ENUM('0', '1') NOT NULL DEFAULT '0'"); DB::query("UPDATE {languages} SET base_admin='1', base_site='1' WHERE shortname='%h'", LANGUAGE_BASE); DB::query("UPDATE {adminsite} SET rewrite='languages' WHERE rewrite='language'"); DB::query("ALTER TABLE {users} CHANGE `language` `lang_id` TINYINT( 2 ) UNSIGNED NOT NULL DEFAULT '0'"); if(in_array('feedback', $modules)) { DB::query("ALTER TABLE {feedback} CHANGE `language` `lang_id` TINYINT( 2 ) UNSIGNED NOT NULL DEFAULT '0'"); } $array_languages = array( 'banners' => array('alt', 'title', 'act'), 'site' => array('name', 'title', 'text', 'keywords', 'descr', 'title_meta', 'act'), 'clauses' => array('name', 'act', 'keywords', 'descr', 'title_meta', 'anons', 'text'), 'clauses_category' => array('name', 'act', 'keywords', 'descr', 'title_meta', 'anons', 'text'), 'comments_param' => array('name', 'text'), 'comments_param_select' => array('name'), 'faq' => array('name', 'act', 'keywords', 'descr', 'title_meta', 'anons', 'text'), 'faq_category' => array('name', 'act', 'keywords', 'descr', 'title_meta', 'anons', 'text'), 'feedback_param' => array('name', 'text'), 'feedback_param_select' => array('name'), 'files' => array('name', 'act', 'keywords', 'descr', 'title_meta', 'anons', 'text'), 'files_category' => array('name', 'act', 'keywords', 'descr', 'title_meta', 'anons', 'text'), 'images' => array('alt', 'title'), 'menu' => array('name', 'act'), 'menu_category' => array('name', 'act'), 'news' => array('name', 'act', 'keywords', 'descr', 'title_meta', 'anons', 'text'), 'news_category' => array('name', 'act', 'keywords', 'descr', 'title_meta', 'anons', 'text'), 'photo' => array('name', 'act', 'keywords', 'descr', 'title_meta', 'anons', 'text'), 'photo_category' => array('name', 'act', 'keywords', 'descr', 'title_meta', 'anons', 'text'), 'shop' => array('name', 'act', 'keywords', 'descr', 'title_meta', 'anons', 'text'), 'shop_additional_cost' => array('name', 'act', 'text'), 'shop_category' => array('name', 'act', 'keywords', 'descr', 'title_meta', 'anons', 'text'), 'shop_delivery' => array('name', 'act', 'text'), 'shop_order_param' => array('name', 'text'), 'shop_order_param_select' => array('name'), 'shop_param' => array('name', 'text', 'measure_unit'), 'shop_param_element' => array('value'), 'shop_param_select' => array('name'), 'shop_payment' => array('name', 'act', 'text'), 'subscribtion' => array('name', 'text'), 'subscribtion_category' => array('name', 'text'), 'tags' => array('act'), 'tags_name' => array('name'), 'users_param' => array('name', 'text'), 'users_param_select' => array('name'), 'users_role' => array('name'), 'votes' => array('name'), 'votes_category' => array('name', 'act') ); foreach ($array_languages as $tab => $filds) { $creattable = DB::fetch_array(DB::query("SHOW CREATE TABLE {".$tab."}")); if ($creattable) { foreach ($filds as $f) { if (preg_match("/".$f."` ([^\n]+),\n/", $creattable['Create Table'], $ob)) { DB::query("ALTER TABLE {".$tab."} CHANGE `".$f."` `".$f."1` ".$ob[1]); } } } } DB::query("ALTER TABLE {modules} ADD `title` VARCHAR( 100 ) NOT NULL AFTER `name`, ADD site_page ENUM('0', '1') NOT NULL DEFAULT '0'"); DB::query("UPDATE {modules} SET site_page=site"); DB::query("UPDATE {modules} SET title='Страница пользователя' WHERE name='users'"); DB::query("UPDATE {modules} SET title='Регистрация' WHERE name='registration'"); DB::query("UPDATE {modules} SET title='Восстановление доступа' WHERE name='reminding'"); DB::query("UPDATE {modules} SET title='Личные сообщения' WHERE name='messages'"); DB::query("UPDATE {modules} SET title='Новости' WHERE name='news'"); DB::query("UPDATE {modules} SET title='Статьи' WHERE name='clauses'"); DB::query("UPDATE {modules} SET title='Обратная связь' WHERE name='feedback'"); DB::query("UPDATE {modules} SET title='Вопрос-Ответ' WHERE name='faq'"); DB::query("UPDATE {modules} SET title='Магазин' WHERE name='shop'"); DB::query("UPDATE {modules} SET title='Корзина' WHERE name='cart'"); DB::query("UPDATE {modules} SET title='Список пожеланий' WHERE name='wishlist'"); DB::query("UPDATE {modules} SET title='Файловый архив' WHERE name='files'"); DB::query("UPDATE {modules} SET title='Поиск' WHERE name='search'"); DB::query("UPDATE {modules} SET title='Баннеры' WHERE name='banners'"); DB::query("UPDATE {modules} SET title='Комментарии' WHERE name='comments'"); DB::query("UPDATE {modules} SET title='Рейтинг' WHERE name='rating'"); DB::query("UPDATE {modules} SET title='Теги' WHERE name='tags'"); DB::query("UPDATE {modules} SET title='Фотогалерея' WHERE name='photo'"); DB::query("UPDATE {modules} SET title='Опросы' WHERE name='votes'"); DB::query("UPDATE {modules} SET title='Рассылки' WHERE name='subscribtion'"); DB::query("UPDATE {modules} SET title='Форум' WHERE name='forum'"); DB::query("UPDATE {modules} SET title='Карта сайта' WHERE name='map'"); DB::query("UPDATE {modules} SET title='Рефералы' WHERE name='referals'"); DB::query("INSERT INTO {modules} (name, module_name, admin, title) VALUES ('adminsite', 'core', '1', 'Страницы админки')"); DB::query("INSERT INTO {modules} (name, module_name, admin, site, title) VALUES ('attachments', 'core', '1', '1', 'Прикрепленные файлы')"); DB::query("INSERT INTO {modules} (name, module_name, site, title) VALUES ('bbcode', 'core', '1', 'Bbcode')"); DB::query("INSERT INTO {modules} (name, module_name, site, title) VALUES ('captcha', 'core', '1', 'Защитный код')"); DB::query("INSERT INTO {modules} (name, module_name, admin, title) VALUES ('config', 'core', '1', 'Параметры сайта')"); DB::query("INSERT INTO {modules} (name, module_name, admin, site, title) VALUES ('images', 'core', '1', '1', 'Изображения')"); DB::query("INSERT INTO {modules} (name, module_name, admin, site, title) VALUES ('languages', 'core', '1', '1', 'Языки сайта')"); DB::query("INSERT INTO {modules} (name, module_name, admin, site, title) VALUES ('menu', 'core', '1', '1', 'Меню')"); DB::query("INSERT INTO {modules} (name, module_name, admin, site, title) VALUES ('paginator', 'core', '1', '1', 'Постраничная навигация')"); DB::query("INSERT INTO {modules} (name, module_name, admin, title) VALUES ('site', 'core', '1', 'Страницы сайта')"); DB::query("INSERT INTO {modules} (name, module_name, admin, title) VALUES ('trash', 'core', '1', 'Корзина')"); DB::query("INSERT INTO {modules} (name, module_name, admin, title) VALUES ('update', 'core', '1', 'Обновление')"); DB::query("INSERT INTO {modules} (name, module_name, admin, site, title) VALUES ('useradmin', 'core', '1', '1', 'Редактирование из пользовательской части')"); $row = DB::fetch_array(DB::query("SELECT * FROM {adminsite} WHERE rewrite='languages'")); if($row) { DB::query("INSERT INTO {adminsite} (parent_id, group_id, name, rewrite, text, act, numrow, sort) VALUES (%d, '3', '%s', 'languages', '%s', '1', '3563', '1')", $row["id"], $row["name"], $row["text"]); $id = DB::last_id("adminsite"); DB::query("INSERT INTO {adminsite} (parent_id, group_id, name, rewrite, text, act, numrow, sort) VALUES (%d, '3', 'Перевод интерфейса', 'languages/translate', '

Модуль мультиязычности: перевод интерфейса.

Полная документация и помощь

', '1', '3563', '1')", $row["id"], $row["name"], $row["text"]); DB::query("INSERT INTO {adminsite_parents} (element_id, parent_id) VALUES (%d, %d)", $id, $row["id"]); DB::query("INSERT INTO {adminsite_parents} (element_id, parent_id) VALUES (%d, %d)", $id + 1, $row["id"]); DB::query("UPDATE {adminsite} SET count_children=2 WHERE id=%d", $row["id"]); } include_once(ABSOLUTE_PATH.'language/ru.php'); foreach($langs as $row) { if($row["shortname"] && $row["shortname"] != "ru") { $file = file_get_contents(ABSOLUTE_PATH.'language/'.$row["shortname"].'.php'); $strings = explode("\n", $file); foreach($strings as $s) { if(preg_match('/define\(([\'\"]+)(_ADMIN_|_LANG_)([^\'\"]+)([\'\"]+),( )*([\'\"]+)([^\'\"]+)([\'\"]+)\);/', $s, $m)) { $original = $m[2].$m[3]; $value = $m[7]; $type = $m[2] == '_ADMIN_' ? 'admin' : 'site'; if(defined($original)) { $original = constant($original); DB::query("INSERT INTO {languages_translate} (lang_id, module_name, text, text_translate, type) VALUES (%d, '', '%s', '%s', '%s')", $row["id"], $original, $value, $type); } } } } } // Поле “Период действия” с ... по ... для любого контента DB::query("ALTER TABLE {site} ADD date_start INT(10) UNSIGNED NOT NULL DEFAULT '0', ADD date_finish INT(10) UNSIGNED NOT NULL DEFAULT '0'"); DB::query("ALTER TABLE {menu} ADD date_start INT(10) UNSIGNED NOT NULL DEFAULT '0', ADD date_finish INT(10) UNSIGNED NOT NULL DEFAULT '0'"); if(in_array('clauses', $modules)) { DB::query("ALTER TABLE {clauses} ADD date_start INT(10) UNSIGNED NOT NULL DEFAULT '0', ADD date_finish INT(10) UNSIGNED NOT NULL DEFAULT '0'"); } if(in_array('news', $modules)) { DB::query("ALTER TABLE {news} ADD date_start INT(10) UNSIGNED NOT NULL DEFAULT '0', ADD date_finish INT(10) UNSIGNED NOT NULL DEFAULT '0'"); } if(in_array('faq', $modules)) { DB::query("ALTER TABLE {faq} ADD date_start INT(10) UNSIGNED NOT NULL DEFAULT '0', ADD date_finish INT(10) UNSIGNED NOT NULL DEFAULT '0'"); } if(in_array('photo', $modules)) { DB::query("ALTER TABLE {photo} ADD date_start INT(10) UNSIGNED NOT NULL DEFAULT '0', ADD date_finish INT(10) UNSIGNED NOT NULL DEFAULT '0'"); } if(in_array('files', $modules)) { DB::query("ALTER TABLE {files} ADD date_start INT(10) UNSIGNED NOT NULL DEFAULT '0', ADD date_finish INT(10) UNSIGNED NOT NULL DEFAULT '0'"); } if(in_array('shop', $modules)) { DB::query("ALTER TABLE {shop} ADD date_start INT(10) UNSIGNED NOT NULL DEFAULT '0', ADD date_finish INT(10) UNSIGNED NOT NULL DEFAULT '0'"); if (! is_dir(ABSOLUTE_PATH.USERFILES.'/shop/imgs')) { mkdir(ABSOLUTE_PATH.USERFILES.'/shop/imgs', 0777); } if (! is_dir(ABSOLUTE_PATH.USERFILES.'/shop/imgs/small')) { mkdir(ABSOLUTE_PATH.USERFILES.'/shop/imgs/small', 0777); } } //Примечание закрытых для обновления файлов DB::query("ALTER TABLE {update} ADD `text` TEXT NOT NULL DEFAULT ''"); // в конструкторе полей тип поля "файлы" DB::query("ALTER TABLE {attachments} ADD `param_id` INT(11) UNSIGNED NOT NULL DEFAULT '0'"); DB::query("ALTER TABLE {users_param} ADD `config` TEXT NOT NULL DEFAULT ''"); if (! is_dir(ABSOLUTE_PATH.USERFILES.'/users')) { mkdir(ABSOLUTE_PATH.USERFILES.'/users', 0777); } if (! is_dir(ABSOLUTE_PATH.USERFILES.'/users/files')) { mkdir(ABSOLUTE_PATH.USERFILES.'/users/files', 0777); } if (! is_dir(ABSOLUTE_PATH.USERFILES.'/users/imgs')) { mkdir(ABSOLUTE_PATH.USERFILES.'/users/imgs', 0777); } if (! is_dir(ABSOLUTE_PATH.USERFILES.'/users/imgs/small')) { mkdir(ABSOLUTE_PATH.USERFILES.'/users/imgs/small', 0777); } $text = 'Options -Indexes deny from all '; $fp = fopen(ABSOLUTE_PATH.USERFILES.'/users/files/.htaccess', "w"); fwrite($fp, $text); fclose($fp); if(in_array('shop', $modules)) { DB::query("ALTER TABLE {shop_order_param} ADD `config` TEXT NOT NULL DEFAULT ''"); DB::query("ALTER TABLE {shop_param} ADD `config` TEXT NOT NULL DEFAULT ''"); if (! is_dir(ABSOLUTE_PATH.USERFILES.'/shop/imgs')) { mkdir(ABSOLUTE_PATH.USERFILES.'/shop/imgs', 0777); } if (! is_dir(ABSOLUTE_PATH.USERFILES.'/shop/imgs/small')) { mkdir(ABSOLUTE_PATH.USERFILES.'/shop/imgs/small', 0777); } if (! is_dir(ABSOLUTE_PATH.USERFILES.'/shop_order')) { mkdir(ABSOLUTE_PATH.USERFILES.'/shop_order', 0777); } if (! is_dir(ABSOLUTE_PATH.USERFILES.'/shop_order/files')) { mkdir(ABSOLUTE_PATH.USERFILES.'/shop_order/files', 0777); } if (! is_dir(ABSOLUTE_PATH.USERFILES.'/shop_order/imgs')) { mkdir(ABSOLUTE_PATH.USERFILES.'/shop_order/imgs', 0777); } if (! is_dir(ABSOLUTE_PATH.USERFILES.'/shop_order/imgs/small')) { mkdir(ABSOLUTE_PATH.USERFILES.'/shop_order/imgs/small', 0777); } $fp = fopen(ABSOLUTE_PATH.USERFILES.'/shop_order/files/.htaccess', "w"); fwrite($fp, $text); fclose($fp); } if(in_array('feedback', $modules)) { DB::query("ALTER TABLE {feedback_param} ADD `config` TEXT NOT NULL DEFAULT ''"); $result = DB::query("SELECT id FROM {site} WHERE addmodule='feedback' AND trash='0'"); while($row = DB::fetch_array($result)) { if($diafan->configmodules("attachments", "feedback", $row["id"], 1)) { $config = array( 'max_count_attachments' => $diafan->configmodules("max_count_attachments", "feedback", $row["id"], 1), "attachment_extensions" => $diafan->configmodules("attachment_extensions", "feedback", $row["id"], 1), "recognize_image" => $diafan->configmodules("recognize_image", "feedback", $row["id"], 1), "attachments_access_admin" => $diafan->configmodules("attachments_access_admin", "feedback", $row["id"], 1), "attach_big_width" => $diafan->configmodules("attach_big_width", "feedback", $row["id"], 1), "attach_big_height" => $diafan->configmodules("attach_big_height", "feedback", $row["id"], 1), "attach_big_quality" => $diafan->configmodules("attach_big_quality", "feedback", $row["id"], 1), "attach_medium_width" => $diafan->configmodules("attach_medium_width", "feedback", $row["id"], 1), "attach_medium_height" => $diafan->configmodules("attach_medium_height", "feedback", $row["id"], 1), "attach_medium_quality" => $diafan->configmodules("attach_medium_quality", "feedback", $row["id"], 1), ); $sort = DB::query_result("SELECT MAX(sort) FROM {feedback_param}") + 1; DB::query("INSERT INTO {feedback_param} (name1, type, site_id, sort, config) VALUES ('Файлы', 'attachments', %d, %d, '%s')", $row["id"], $sort, serialize($config)); $id = DB::last_id("feedback_param"); DB::query("UPDATE {attachments} SET param_id=%d WHERE module_name='feedback' AND element_id IN (SELECT id FROM {feedback} WHERE site_id=%d)", $row["id"]); } } } if(in_array('comments', $modules)) { DB::query("ALTER TABLE {comments_param} ADD `config` TEXT NOT NULL DEFAULT ''"); if (! is_dir(ABSOLUTE_PATH.USERFILES.'/comments')) { mkdir(ABSOLUTE_PATH.USERFILES.'/comments', 0777); } if (! is_dir(ABSOLUTE_PATH.USERFILES.'/comments/files')) { mkdir(ABSOLUTE_PATH.USERFILES.'/comments/files', 0777); } if (! is_dir(ABSOLUTE_PATH.USERFILES.'/comments/imgs')) { mkdir(ABSOLUTE_PATH.USERFILES.'/comments/imgs', 0777); } if (! is_dir(ABSOLUTE_PATH.USERFILES.'/comments/imgs/small')) { mkdir(ABSOLUTE_PATH.USERFILES.'/comments/imgs/small', 0777); } $fp = fopen(ABSOLUTE_PATH.USERFILES.'/comments/files/.htaccess', "w"); fwrite($fp, $text); fclose($fp); } // расположение страницы-блока DB::query("CREATE TABLE {site_block_rel} ( `id` INT(11) UNSIGNED NOT NULL AUTO_INCREMENT, `element_id` INT(11) UNSIGNED NOT NULL DEFAULT '0', `site_id` INT(11) UNSIGNED NOT NULL DEFAULT '0', `trash` ENUM('0', '1') NOT NULL DEFAULT '0', PRIMARY KEY (`id`) ) CHARSET=utf8"); // заголовок страницы-блока DB::query("UPDATE {site} SET title_no_show='1' WHERE block='1'"); $result = DB::query("SELECT id FROM {site} WHERE trash='0' AND block='1'"); while($row = DB::fetch_array($result)) { DB::query("INSERT INTO {site_block_rel} (element_id, site_id) VALUES (%d, 0)", $row["id"]); } if(in_array('votes', $modules)) { // расположение опроса на нескольких страницах сайта DB::query("CREATE TABLE {votes_category_site_rel} ( `id` INT(11) UNSIGNED NOT NULL AUTO_INCREMENT, `element_id` INT(11) UNSIGNED NOT NULL DEFAULT '0', `site_id` INT(11) UNSIGNED NOT NULL DEFAULT '0', `trash` ENUM('0', '1') NOT NULL DEFAULT '0', PRIMARY KEY (`id`) ) CHARSET=utf8"); $result = DB::query("SELECT id, site_id FROM {votes_category} WHERE trash='0'"); while($row = DB::fetch_array($result)) { DB::query("INSERT INTO {votes_category_site_rel} (element_id, site_id) VALUES (%d, %d)", $row["id"], $row["site_id"]); } DB::query("ALTER TABLE {votes_category} DROP `site_id`"); foreach($languages as $lang_id) { DB::query("ALTER TABLE {votes} ADD act".$lang_id." ENUM('0', '1') NOT NULL DEFAULT '0'"); DB::query("UPDATE {votes} SET act".$lang_id."='1'"); } } if(in_array('banners', $modules)) { $result = DB::query("SELECT id, section FROM {banners} WHERE trash='0'"); while($row = DB::fetch_array($result)) { switch($row["section"]) { case 0: case 3: DB::query("INSERT INTO {banners_site_rel} (element_id, site_id) VALUES (%d, 0)", $row["id"]); case 2: DB::query("INSERT INTO {banners_site_rel} (element_id, site_id) VALUES (%d, 1)", $row["id"]); } } DB::query("ALTER TABLE {banners} DROP `section`"); } // Можно создавать пункты меню для разных разделов модуля DB::query("ALTER TABLE {site} CHANGE `addmodule` `module_name` VARCHAR(30) NOT NULL DEFAULT ''"); // Экспорт/импорт БД $adminsite_id = DB::query_result("SELECT id FROM {adminsite} WHERE rewrite='update/install'"); if($adminsite_id) { DB::query("UPDATE {adminsite} SET count_children=count_children+1 WHERE id=%d", $adminsite_id); DB::query("INSERT INTO {adminsite} (name, rewrite, group_id, parent_id, text, numrow, sort, act) VALUES ('Экспорт/импорт БД', 'update/importexport', '3', %d, '', '633', '55', '1')", $adminsite_id); $last_adminsite_id = DB::last_id("adminsite"); DB::query("INSERT INTO {adminsite_parents} (element_id, parent_id) VALUES (%d, %d)", $last_adminsite_id, $adminsite_id); } // Настройки и история поиска if(in_array('search', $modules)) { $adminsite_id = DB::query_result("SELECT id FROM {adminsite} WHERE rewrite='search'"); if($adminsite_id) { DB::query("UPDATE {adminsite} SET count_children=3 WHERE id=%d", $adminsite_id); DB::query("INSERT INTO {adminsite} (name, rewrite, group_id, parent_id, text, numrow, sort, act) VALUES ('Индексация', 'search', '1', %d, '', '3456', '1', '1')", $adminsite_id); $last_adminsite_id = DB::last_id("adminsite"); DB::query("INSERT INTO {adminsite} (name, rewrite, group_id, parent_id, text, numrow, sort, act) VALUES ('История поиска', 'search/history', '1', %d, '', '99', '2', '1')", $adminsite_id); DB::query("INSERT INTO {adminsite} (name, rewrite, group_id, parent_id, text, numrow, sort, act) VALUES ('Настройки', 'search/config', '1', %d, '', '7', '3', '1')", $adminsite_id); DB::query("INSERT INTO {adminsite_parents} (element_id, parent_id) VALUES (%d, %d)", $last_adminsite_id, $adminsite_id); DB::query("INSERT INTO {adminsite_parents} (element_id, parent_id) VALUES (%d, %d)", $last_adminsite_id + 1, $adminsite_id); DB::query("INSERT INTO {adminsite_parents} (element_id, parent_id) VALUES (%d, %d)", $last_adminsite_id + 2, $adminsite_id); } DB::query("INSERT INTO {config} (name, module_name, value) VALUES ('count_history', 'search', '100'), ('nastr', 'search', '30')"); DB::query("CREATE TABLE {search_history} ( `id` int(11) unsigned NOT NULL auto_increment, `created` INT( 10 ) UNSIGNED NOT NULL DEFAULT '0', `name` text NOT NULL DEFAULT '', PRIMARY KEY (`id`) ) DEFAULT CHARSET=utf8 ;"); } // рейтинг можно прикреплять к категориям if(in_array('rating', $modules)) { DB::query("ALTER TABLE {rating} CHANGE `module_name` `module_name` VARCHAR(17) NOT NULL DEFAULT ''"); } // похожие новости, статьи, файлы, фото, вопросы if(in_array('faq', $modules)) { DB::query("CREATE TABLE {faq_rel} ( `id` INT(11) UNSIGNED NOT NULL AUTO_INCREMENT, `element_id` INT(11) UNSIGNED NOT NULL DEFAULT '0', `rel_element_id` INT(11) UNSIGNED NOT NULL DEFAULT '0', `trash` ENUM('0', '1') NOT NULL DEFAULT '0', PRIMARY KEY (`id`) ) CHARSET=utf8"); } if(in_array('files', $modules)) { DB::query("CREATE TABLE {files_rel} ( `id` INT(11) UNSIGNED NOT NULL AUTO_INCREMENT, `element_id` INT(11) UNSIGNED NOT NULL DEFAULT '0', `rel_element_id` INT(11) UNSIGNED NOT NULL DEFAULT '0', `trash` ENUM('0', '1') NOT NULL DEFAULT '0', PRIMARY KEY (`id`) ) CHARSET=utf8"); } if(in_array('news', $modules)) { DB::query("CREATE TABLE {news_rel} ( `id` INT(11) UNSIGNED NOT NULL AUTO_INCREMENT, `element_id` INT(11) UNSIGNED NOT NULL DEFAULT '0', `rel_element_id` INT(11) UNSIGNED NOT NULL DEFAULT '0', `trash` ENUM('0', '1') NOT NULL DEFAULT '0', PRIMARY KEY (`id`) ) CHARSET=utf8"); } if(in_array('clauses', $modules)) { DB::query("CREATE TABLE {clauses_rel} ( `id` INT(11) UNSIGNED NOT NULL AUTO_INCREMENT, `element_id` INT(11) UNSIGNED NOT NULL DEFAULT '0', `rel_element_id` INT(11) UNSIGNED NOT NULL DEFAULT '0', `trash` ENUM('0', '1') NOT NULL DEFAULT '0', PRIMARY KEY (`id`) ) CHARSET=utf8"); } if(in_array('photo', $modules)) { DB::query("CREATE TABLE {photo_rel} ( `id` INT(11) UNSIGNED NOT NULL AUTO_INCREMENT, `element_id` INT(11) UNSIGNED NOT NULL DEFAULT '0', `rel_element_id` INT(11) UNSIGNED NOT NULL DEFAULT '0', `trash` ENUM('0', '1') NOT NULL DEFAULT '0', PRIMARY KEY (`id`) ) CHARSET=utf8"); } if(in_array('shop', $modules)) { DB::query("ALTER TABLE {shop_rel} CHANGE good_id element_id INT(11) UNSIGNED NOT NULL DEFAULT '0'"); DB::query("ALTER TABLE {shop_rel} CHANGE rel_good_id rel_element_id INT(11) UNSIGNED NOT NULL DEFAULT '0'"); DB::query("INSERT INTO {config} (name, module_name, value) VALUES ('rel_two_sided', 'shop', '1')"); } // поиск if(in_array('search', $modules)) { DB::query("ALTER TABLE {search_results} CHANGE `module` `table_name` varchar(50) NOT NULL"); } if(in_array('shop', $modules)) { // корзина и список пожеланий не должны пропадать по окончанию сессии DB::query("CREATE TABLE {shop_cart} ( `id` INT(11) UNSIGNED NOT NULL AUTO_INCREMENT, `good_id` INT(11) UNSIGNED NOT NULL DEFAULT '0', `user_id` INT(11) UNSIGNED NOT NULL DEFAULT '0', `price_id` INT( 11 ) UNSIGNED NOT NULL DEFAULT '0', `created` INT(12) UNSIGNED NOT NULL DEFAULT '0', `count` SMALLINT(5) UNSIGNED NOT NULL DEFAULT '0', `param` text NOT NULL DEFAULT '', `is_file` ENUM('0', '1') NOT NULL DEFAULT '0', `trash` ENUM('0', '1') NOT NULL DEFAULT '0', PRIMARY KEY (`id`), KEY user_id (`user_id`) ) CHARSET=utf8"); DB::query("CREATE TABLE {shop_wishlist} ( `id` INT(11) UNSIGNED NOT NULL AUTO_INCREMENT, `good_id` INT(11) UNSIGNED NOT NULL DEFAULT '0', `user_id` INT(11) UNSIGNED NOT NULL DEFAULT '0', `session_id` VARCHAR( 64 ) NOT NULL DEFAULT '', `created` INT(12) UNSIGNED NOT NULL DEFAULT '0', `count` SMALLINT(5) UNSIGNED NOT NULL DEFAULT '0', `param` text NOT NULL DEFAULT '', `is_file` ENUM('0', '1') NOT NULL DEFAULT '0', `trash` ENUM('0', '1') NOT NULL DEFAULT '0', PRIMARY KEY (`id`), KEY user_id (`user_id`) ) CHARSET=utf8"); // административная часть списка пожеланий, список ожиданий $adminsite_id = DB::query_result("SELECT id FROM {adminsite} WHERE rewrite='shop/order'"); if($adminsite_id) { DB::query("UPDATE {adminsite} SET count_children=count_children+3 WHERE id=%d", $adminsite_id); DB::query("INSERT INTO {adminsite} (name, rewrite, group_id, parent_id, numrow, sort, act) VALUES ('Список пожеланий', 'shop/wishlist', '4', %d, '57', '3', '1')", $adminsite_id); $last_adminsite_id = DB::last_id("adminsite"); DB::query("INSERT INTO {adminsite} (name, rewrite, group_id, parent_id, text, numrow, sort, act) VALUES ('Список ожиданий', 'shop/waitlist', '4', %d, '', '4', '4', '1')", $adminsite_id); DB::query("INSERT INTO {adminsite} (name, rewrite, group_id, parent_id, text, numrow, sort, act) VALUES ('Статусы заказа', 'shop/orderstatus', '4', %d, '', '23', '5', '1')", $adminsite_id); DB::query("INSERT INTO {adminsite_parents} (element_id, parent_id) VALUES (%d, %d)", $last_adminsite_id, $adminsite_id); DB::query("INSERT INTO {adminsite_parents} (element_id, parent_id) VALUES (%d, %d)", $last_adminsite_id + 1, $adminsite_id); DB::query("INSERT INTO {adminsite_parents} (element_id, parent_id) VALUES (%d, %d)", $last_adminsite_id + 2, $adminsite_id); } DB::query("INSERT INTO {config} (name, module_name, value, lang_id) VALUES ('subject_waitlist', 'shop', 'Товар поступил на склад', 1)"); DB::query("INSERT INTO {config} (name, module_name, value, lang_id) VALUES ('message_waitlist', 'shop', 'Здравствуйте!
Товар %%good поступил на склад.', 1)"); DB::query("CREATE TABLE {shop_waitlist} ( `id` INT(11) UNSIGNED NOT NULL AUTO_INCREMENT, `good_id` INT(11) UNSIGNED NOT NULL DEFAULT '0', `user_id` INT(11) UNSIGNED NOT NULL DEFAULT '0', `lang_id` TINYINT(2) UNSIGNED NOT NULL DEFAULT '0', `mail` VARCHAR( 64 ) NOT NULL DEFAULT '', `created` INT(12) UNSIGNED NOT NULL DEFAULT '0', `param` text NOT NULL DEFAULT '', `trash` ENUM('0', '1') NOT NULL DEFAULT '0', PRIMARY KEY (`id`) ) CHARSET=utf8"); // накопительная скидка DB::query("ALTER TABLE {shop_discount} ADD `threshold_cumulative` INT( 11 ) UNSIGNED NOT NULL DEFAULT '0'"); DB::query("ALTER TABLE {shop_price} ADD `threshold_cumulative` INT( 11 ) UNSIGNED NOT NULL DEFAULT '0'"); // редактируемые статусы заказа DB::query("ALTER TABLE {shop_order} ADD `status_id` TINYINT(3) NOT NULL DEFAULT '0'"); DB::query("CREATE TABLE {shop_order_status} ( `id` TINYINT(3) UNSIGNED NOT NULL AUTO_INCREMENT, `name1` VARCHAR(50) NOT NULL DEFAULT '', `status` ENUM('0', '1', '2', '3', '4') NOT NULL DEFAULT '0', `sort` INT(11) UNSIGNED NOT NULL DEFAULT '0', `trash` ENUM('0', '1') NOT NULL DEFAULT '0', PRIMARY KEY (`id`) ) CHARSET=utf8"); foreach($languages as $lang_id) { if($lang_id == 1) continue; DB::query("ALTER TABLE {shop_order_status} ADD `name".$lang_id."` VARCHAR(50) NOT NULL DEFAULT ''"); } DB::query("INSERT INTO {shop_order_status} (id, name1, status, sort) VALUES (1, 'Новый', '0', 1), (2, 'В обработке', '1', 2), (3, 'Отменен', '2', 3), (4, 'Выполнен', '3', 4)"); DB::query("UPDATE {shop_order} SET status_id=1 WHERE status='0'"); DB::query("UPDATE {shop_order} SET status_id=2 WHERE status='1'"); DB::query("UPDATE {shop_order} SET status_id=3 WHERE status='2'"); DB::query("UPDATE {shop_order} SET status_id=4 WHERE status='3'"); DB::query("INSERT INTO {config} (name, module_name, value, lang_id) VALUES ('subject_change_status', 'shop', 'Статус заказа изменен', 1)"); DB::query("INSERT INTO {config} (name, module_name, value, lang_id) VALUES ('message_change_status', 'shop', 'Здравствуйте!
Статус заказ №%%order изменен на \"%%status\".', 1)"); // экспорт товаров, доработан импорт DB::query("UPDATE {adminsite} SET name='Импорт/экспорт', rewrite='shop/importexport' WHERE rewrite='shop/import'"); DB::query("ALTER TABLE {shop_import_category} ADD `count_part` SMALLINT(5) UNSIGNED NOT NULL DEFAULT '0', ADD `delimiter` VARCHAR(20) NOT NULL DEFAULT '', ADD `end_string` VARCHAR(20) NOT NULL DEFAULT '', ADD `encoding` VARCHAR(20) NOT NULL DEFAULT '', ADD `sub_delimiter` VARCHAR(20) NOT NULL DEFAULT ''"); DB::query("UPDATE {shop_import_category} SET `count_part`=200, `delimiter`=';', `encoding`='cp1251', `sub_delimiter`='|'"); DB::query("ALTER TABLE {shop_import} CHANGE `type` `type` VARCHAR( 20 ) NOT NULL DEFAULT '', ADD `params` text NOT NULL, ADD `required` ENUM('0', '1') NOT NULL DEFAULT '0'"); $result = DB::query("SELECT id, type, param_id FROM {shop_import} WHERE type='param'"); while($row = DB::fetch_array($result)) { $params = array("id" => $row["param_id"]); DB::query("UPDATE {shop_import} SET params='%s' WHERE id=%d", $params, $row["id"]); } DB::query("ALTER TABLE {shop_import} DROP param_id"); $result = DB::query("SELECT id, type, cat_id FROM {shop_import} WHERE type='menu_id'"); while($row = DB::fetch_array($result)) { $params = array("id" => DB::query("SELECT menu_id FROM {shop_import_category} WHERE id=%d", $row["cat_id"])); DB::query("UPDATE {shop_import} SET type='menu', params='%s' WHERE id=%d", $params, $row["id"]); } $result = DB::query("SELECT id, type, cat_id FROM {shop_import} WHERE type='image'"); while($row = DB::fetch_array($result)) { $params = array("directory" => DB::query("SELECT image_directory FROM {shop_import_category} WHERE id=%d", $row["cat_id"])); DB::query("UPDATE {shop_import} SET type='images', params='%s' WHERE id=%d", $params, $row["id"]); } DB::query("ALTER TABLE {shop} CHANGE `import_id` `import_id` VARCHAR(100) NOT NULL DEFAULT ''"); DB::query("ALTER TABLE {shop_category} CHANGE `import_id` `import_id` VARCHAR(100) NOT NULL DEFAULT ''"); DB::query("ALTER TABLE {shop_price} ADD `import_id` VARCHAR(100) NOT NULL DEFAULT ''"); } // изображения DB::query("CREATE TABLE {images_variations} ( id INT(11) UNSIGNED NOT NULL AUTO_INCREMENT, name VARCHAR(250) NOT NULL DEFAULT '', folder VARCHAR(20) NOT NULL DEFAULT '', quality TINYINT( 2 ) UNSIGNED NOT NULL DEFAULT '0', param TEXT NOT NULL DEFAULT '', trash ENUM('0', '1') NOT NULL DEFAULT '0', PRIMARY KEY (id) ) CHARSET=utf8"); DB::query("INSERT INTO {adminsite} (name, rewrite, group_id, numrow, sort, act) VALUES ('Изображения', 'images', '3', 67, 20, '1')"); if(! is_dir(ABSOLUTE_PATH.USERFILES."/original")) { mkdir(ABSOLUTE_PATH.USERFILES."/original", 0777); $text = 'Options -Indexes deny from all '; $fp = fopen(ABSOLUTE_PATH.USERFILES.'/original/.htaccess', "w"); fwrite($fp, $text); fclose($fp); } if(! is_dir(ABSOLUTE_PATH.USERFILES."/small")) { mkdir(ABSOLUTE_PATH.USERFILES."/small", 0777); } DB::query("ALTER TABLE {images} ADD `convert` VARCHAR(1) NOT NULL DEFAULT '0'"); $img_modules = array(); $big_size = ''; $medium_size = ''; $result = DB::query("SELECT * FROM {config} WHERE name IN ('big_width', 'big_height', 'medium_width', 'medium_height') ORDER BY site_id DESC"); while($row = DB::fetch_array($result)) { if(in_array($row["module_name"].$row["site_id"], $img_modules)) continue; $img_modules[] = $row["module_name"].$row["site_id"]; $big_width = DB::query_result("SELECT value FROM {config} WHERE (site_id=%d".($row["site_id"] ? " OR site_id=0" : "").") AND module_name='%s' AND name='big_width' ORDER BY site_id DESC LIMIT 1", $row["site_id"], $row["module_name"]); $big_height = DB::query_result("SELECT value FROM {config} WHERE (site_id=%d".($row["site_id"] ? " OR site_id=0" : "").") AND module_name='%s' AND name='big_height' ORDER BY site_id DESC LIMIT 1", $row["site_id"], $row["module_name"]); $big_quality = DB::query_result("SELECT value FROM {config} WHERE (site_id=%d".($row["site_id"] ? " OR site_id=0" : "").") AND module_name='%s' AND name='big_quality' ORDER BY site_id DESC LIMIT 1", $row["site_id"], $row["module_name"]); if($big_size != $big_width.'.'.$big_height) { $param = array(0 => array('name' => 'resize', 'width' => $big_width, 'height' => $big_height, 'max' => 0)); if(! $big_size) { $name = 'Большой'; $big_folder = 'large'; } else { $name = 'Большой '.$row["module_name"].($row["site_id"] ? ' '.$row["site_id"] : ''); $big_folder = 'large_'.$row["module_name"].($row["site_id"] ? ' '.$row["site_id"] : ''); } DB::query("INSERT INTO {images_variations} (name, folder, param, quality) VALUES ('%s', '%s', '%s', %d)", $name, $big_folder, serialize($param), $big_quality); $module_big_variation_id = DB::last_id("images_variations"); if(! $big_size) { $big_variation_id = $module_big_variation_id; $big_size = $big_width.'.'.$big_height; } } else { $module_big_variation_id = $big_variation_id; $big_folder = 'big'; } $medium_width = DB::query_result("SELECT value FROM {config} WHERE (site_id=%d".($row["site_id"] ? " OR site_id=0" : "").") AND module_name='%s' AND name='medium_width' ORDER BY site_id DESC LIMIT 1", $row["site_id"], $row["module_name"]); $medium_height = DB::query_result("SELECT value FROM {config} WHERE (site_id=%d".($row["site_id"] ? " OR site_id=0" : "").") AND module_name='%s' AND name='medium_height' ORDER BY site_id DESC LIMIT 1", $row["site_id"], $row["module_name"]); $medium_quality = DB::query_result("SELECT value FROM {config} WHERE (site_id=%d".($row["site_id"] ? " OR site_id=0" : "").") AND module_name='%s' AND name='medium_quality' ORDER BY site_id DESC LIMIT 1", $row["site_id"], $row["module_name"]); if($medium_size != $medium_width.'.'.$medium_height) { $param = array(0 => array('name' => 'resize', 'width' => $medium_width, 'height' => $medium_height, 'max' => 0)); if(! $medium_size) { $name = 'Маленький'; $medium_folder = 'medium'; } else { $name = 'Маленький '.$row["module_name"].($row["site_id"] ? ' '.$row["site_id"] : ''); $medium_folder = 'medium_'.$row["module_name"].($row["site_id"] ? ' '.$row["site_id"] : ''); } DB::query("INSERT INTO {images_variations} (name, folder, param, quality) VALUES ('%s', '%s', '%s', %d)", $name, $medium_folder, serialize($param), $medium_quality); $module_medium_variation_id = DB::last_id("images_variations"); if(! $medium_size) { $medium_variation_id = $module_medium_variation_id; $medium_size = $medium_width.'.'.$medium_height; } } else { $module_medium_variation_id = $medium_variation_id; $medium_folder = 'medium'; } $variations = serialize(array(0 => array('name' => 'large', 'id' => $module_big_variation_id), 1 => array('name' => 'medium', 'id' => $module_medium_variation_id))); DB::query("INSERT INTO {config} (name, module_name, value, site_id) VALUES ('images_variations', '%s', '%s', %d)", $row["module_name"], $variations, $row["site_id"]); if($row["site_id"]) { $result_img = DB::query("SELECT i.id, i.name FROM {images} AS i INNER JOIN {".$row["module_name"]."} AS e ON i.element_id=e.id WHERE e.site_id=%d AND i.module_name='%s' AND i.`convert`='0'", $row["site_id"], $row["module_name"]); } else { $result_img = DB::query("SELECT id, name FROM {images} WHERE module_name='%s' AND `convert`='0'", $row["module_name"]); } while($row_img = DB::fetch_array($result_img)) { if(! is_dir(ABSOLUTE_PATH.USERFILES."/".$row["module_name"]."/".$big_folder)) { mkdir(ABSOLUTE_PATH.USERFILES."/".$row["module_name"]."/".$big_folder, 0777); } if(! is_dir(ABSOLUTE_PATH.USERFILES."/".$row["module_name"]."/".$medium_folder)) { mkdir(ABSOLUTE_PATH.USERFILES."/".$row["module_name"]."/".$medium_folder, 0777); } copy(ABSOLUTE_PATH.USERFILES."/".$row["module_name"]."/".$row_img["name"], ABSOLUTE_PATH.USERFILES."/original/".$row_img["name"]); copy(ABSOLUTE_PATH.USERFILES."/".$row["module_name"]."/".$row_img["name"], ABSOLUTE_PATH.USERFILES."/".$row["module_name"]."/".$big_folder."/".$row_img["name"]); copy(ABSOLUTE_PATH.USERFILES."/".$row["module_name"]."/small/".$row_img["name"], ABSOLUTE_PATH.USERFILES."/small/".$row_img["name"]); unlink(ABSOLUTE_PATH.USERFILES."/".$row["module_name"]."/small/".$row_img["name"]); unlink(ABSOLUTE_PATH.USERFILES."/".$row["module_name"]."/".$row_img["name"]); if($medium_folder != 'medium') { copy(ABSOLUTE_PATH.USERFILES."/".$row["module_name"]."/medium/".$row_img["name"], ABSOLUTE_PATH.USERFILES."/".$row["module_name"]."/".$medium_folder."/".$row_img["name"]); unlink(ABSOLUTE_PATH.USERFILES."/".$row["module_name"]."/medium/".$row_img["name"]); } DB::query("UPDATE {images} SET `convert`='1' WHERE id=%d", $row_img["id"]); } } //изображения категорий $img_modules = array(); $result = DB::query("SELECT * FROM {config} WHERE name IN ('big_width_cat', 'big_height_cat', 'medium_width_cat', 'medium_height_cat') ORDER BY site_id DESC"); while($row = DB::fetch_array($result)) { if(in_array($row["module_name"].$row["site_id"], $img_modules)) continue; $img_modules[] = $row["module_name"].$row["site_id"]; $big_width = DB::query_result("SELECT value FROM {config} WHERE (site_id=%d".($row["site_id"] ? " OR site_id=0" : "").") AND module_name='%s' AND name='big_width_cat' ORDER BY site_id DESC LIMIT 1", $row["site_id"], $row["module_name"]); $big_height = DB::query_result("SELECT value FROM {config} WHERE (site_id=%d".($row["site_id"] ? " OR site_id=0" : "").") AND module_name='%s' AND name='big_height_cat' ORDER BY site_id DESC LIMIT 1", $row["site_id"], $row["module_name"]); $big_quality = DB::query_result("SELECT value FROM {config} WHERE (site_id=%d".($row["site_id"] ? " OR site_id=0" : "").") AND module_name='%s' AND name='big_quality_cat' ORDER BY site_id DESC LIMIT 1", $row["site_id"], $row["module_name"]); if(! $big_width || ! $big_height) continue; if($big_size != $big_width.'.'.$big_height) { $param = array(0 => array('name' => 'resize', 'width' => $big_width, 'height' => $big_height, 'max' => 0)); if(! $big_size) { $name = 'Большой'; $big_folder = 'big'; } else { $name = 'Большой '.$row["module_name"].'cat'.($row["site_id"] ? ' '.$row["site_id"] : ''); $big_folder = 'big_'.$row["module_name"].'cat'.($row["site_id"] ? ' '.$row["site_id"] : ''); } DB::query("INSERT INTO {images_variations} (name, folder, param, quality) VALUES ('%s', '%s', '%s', %d)", $name, $big_folder, serialize($param), $big_quality); $module_big_variation_id = DB::last_id("images_variations"); if(! $big_size) { $big_variation_id = $module_big_variation_id; $big_size = $big_width.'.'.$big_height; } } else { $module_big_variation_id = $big_variation_id; $big_folder = 'big'; } $medium_width = DB::query_result("SELECT value FROM {config} WHERE (site_id=%d".($row["site_id"] ? " OR site_id=0" : "").") AND module_name='%s' AND name='medium_width_cat' ORDER BY site_id DESC LIMIT 1", $row["site_id"], $row["module_name"]); $medium_height = DB::query_result("SELECT value FROM {config} WHERE (site_id=%d".($row["site_id"] ? " OR site_id=0" : "").") AND module_name='%s' AND name='medium_height_cat' ORDER BY site_id DESC LIMIT 1", $row["site_id"], $row["module_name"]); $medium_quality = DB::query_result("SELECT value FROM {config} WHERE (site_id=%d".($row["site_id"] ? " OR site_id=0" : "").") AND module_name='%s' AND name='medium_quality_cat' ORDER BY site_id DESC LIMIT 1", $row["site_id"], $row["module_name"]); if(! $medium_width || ! $medium_height) continue; if($medium_size != $medium_width.'.'.$medium_height) { $param = array(0 => array('name' => 'resize', 'width' => $medium_width, 'height' => $medium_height, 'max' => 0)); if(! $medium_size) { $name = 'Маленький'; $medium_folder = 'medium'; } else { $name = 'Маленький '.$row["module_name"].'cat'.($row["site_id"] ? ' '.$row["site_id"] : ''); $medium_folder = 'medium_'.$row["module_name"].'cat'.($row["site_id"] ? ' '.$row["site_id"] : ''); } DB::query("INSERT INTO {images_variations} (name, folder, param, quality) VALUES ('%s', '%s', '%s', %d)", $name, $medium_folder, serialize($param), $medium_quality); $module_medium_variation_id = DB::last_id("images_variations"); if(! $medium_size) { $medium_variation_id = $module_medium_variation_id; $medium_size = $medium_width.'.'.$medium_height; } } else { $module_medium_variation_id = $medium_variation_id; $medium_folder = 'medium'; } $variations = serialize(array(0 => array('name' => 'big', 'id' => $module_big_variation_id), 1 => array('name' => 'medium', 'id' => $module_medium_variation_id))); DB::query("INSERT INTO {config} (name, module_name, value, site_id) VALUES ('images_variations_cat', '%s', '%s', %d)", $row["module_name"], $variations, $row["site_id"]); if($row["site_id"]) { $result_img = DB::query("SELECT i.id, i.name FROM {images} AS i INNER JOIN {".$row["module_name"]."_category} AS e ON i.element_id=e.id WHERE e.site_id=%d AND i.module_name='%s' AND i.`convert`='0'", $row["site_id"], $row["module_name"].'cat'); } else { $result_img = DB::query("SELECT id, name FROM {images} WHERE module_name='%s' AND `convert`='0'", $row["module_name"].'cat'); } while($row_img = DB::fetch_array($result_img)) { if(! is_dir(ABSOLUTE_PATH.USERFILES."/".$row["module_name"]."/".$big_folder)) { mkdir(ABSOLUTE_PATH.USERFILES."/".$row["module_name"]."/".$big_folder, 0777); } if(! is_dir(ABSOLUTE_PATH.USERFILES."/".$row["module_name"]."/".$medium_folder)) { mkdir(ABSOLUTE_PATH.USERFILES."/".$row["module_name"]."/".$medium_folder, 0777); } copy(ABSOLUTE_PATH.USERFILES."/".$row["module_name"]."/".$row_img["name"], ABSOLUTE_PATH.USERFILES."/original/".$row["name"]); copy(ABSOLUTE_PATH.USERFILES."/".$row["module_name"]."/".$row_img["name"], ABSOLUTE_PATH.USERFILES."/".$row["module_name"]."/".$big_folder."/".$row_img["name"]); copy(ABSOLUTE_PATH.USERFILES."/".$row["module_name"]."/small/".$row_img["name"], ABSOLUTE_PATH.USERFILES."/small/".$row_img["name"]); unlink(ABSOLUTE_PATH.USERFILES."/".$row["module_name"]."/small/".$row_img["name"]); unlink(ABSOLUTE_PATH.USERFILES."/".$row["module_name"]."/".$row_img["name"]); if($medium_folder != 'medium') { copy(ABSOLUTE_PATH.USERFILES."/".$row["module_name"]."/medium/".$row_img["name"], ABSOLUTE_PATH.USERFILES."/".$row["module_name"]."/".$medium_folder."/".$row_img["name"]); unlink(ABSOLUTE_PATH.USERFILES."/".$row["module_name"]."/medium/".$row_img["name"]); } DB::query("UPDATE {images} SET `convert`='1' WHERE id=%d", $row_img["id"]); } } $result_img = DB::query("SELECT id, name FROM {images} WHERE module_name='menu'"); while($row_img = DB::fetch_array($result_img)) { if(! is_dir(ABSOLUTE_PATH.USERFILES."/menu/big")) { mkdir(ABSOLUTE_PATH.USERFILES."/menu/big", 0777); } copy(ABSOLUTE_PATH.USERFILES."/menu/".$row_img["name"], ABSOLUTE_PATH.USERFILES."/original/".$row["name"]); copy(ABSOLUTE_PATH.USERFILES."/menu/".$row_img["name"], ABSOLUTE_PATH.USERFILES."/menu/big/".$row_img["name"]); copy(ABSOLUTE_PATH.USERFILES."/menu/small/".$row_img["name"], ABSOLUTE_PATH.USERFILES."/small/".$row_img["name"]); @unlink(ABSOLUTE_PATH.USERFILES."/menu/small/".$row_img["name"]); unlink(ABSOLUTE_PATH.USERFILES."/menu/".$row_img["name"]); } DB::query("INSERT INTO {config} (`module_name`, `name`, `value`) VALUES ('menu', 'images_variations', '%s')", serialize(array(0 => array('name' => 'big', 'id' => $big_variation_id)))); DB::query("ALTER TABLE {images} DROP `convert`"); $row = DB::fetch_array(DB::query("SELECT * FROM {adminsite} WHERE rewrite='menu'")); if($row) { DB::query("INSERT INTO {adminsite} (parent_id, group_id, name, rewrite, act, numrow, sort) VALUES (%d, '1', 'Настройки', 'menu/config', '1', '90', '68')", $row["id"], $row["name"]); $id = DB::last_id("adminsite"); DB::query("INSERT INTO {adminsite_parents} (element_id, parent_id) VALUES (%d, %d)", $id, $row["id"]); DB::query("UPDATE {adminsite} SET count_children=3 WHERE id=%d", $row["id"]); }; DB::query("CREATE TABLE {images_editor_folders} ( id SMALLINT(5) UNSIGNED NOT NULL AUTO_INCREMENT, parent_id SMALLINT(5) UNSIGNED NOT NULL DEFAULT '0', name VARCHAR(250) NOT NULL DEFAULT '', PRIMARY KEY (id) ) CHARSET=utf8"); //редирект при завершении оформления заказа if(in_array('shop', $modules)) { DB::query("ALTER TABLE {shop_payment} ADD `redirect` VARCHAR(100) NOT NULL DEFAULT ''"); } $diafan->_cache->delete(""); //////////////////////config $new_values = array( 'VERSION_CMS' => VERSION, 'DATE_UPDATE' => D_UPDATE, 'TIT1' => TIT ); include_once(ABSOLUTE_PATH.'includes/config.php'); Config::save($new_values, $langs); echo 'Обновление успешно завершено!';