Вообще уже несколько раз склеивал два форума в один, потому захотелось как-то автоматизировать и упростить.
По сути за несколько шагов можно в один форум перенести неограниченное кол-во конференций.
Переносятся:
- Форумы/Разделы
- Темы
- Сообщения
- Пользователи
В случае, если на обоих форумах существуют одинаковые ники пользователей, то переносимые пользователи будут переименованы добавлением префикса "NEW_старое имя", список таких пользователей будет выведен в процессе объединения форумов.
- Сделать бэкап БД объеденямых форумов!
- Из переносимого форума-исходника (Будем называть его 2 форум) копируем в БД форума-приемника (Будем называть его 1 форум)
таблицыphpbb_forums, phpbb_posts, phpbb_topics, phpbb_users
, Ваш префикс может отличаться от "phpbb_", также, если префиксы 1 и 2 форумов одинаковые, то необходимо переименовать таблицы 2го форума и после этого их переносить.
В моем случае префикс был разный и я просто сделал дамп этих 4х таблиц с помощью Sypex Dumper, а затем импортировал их в БД 1го форума (Этим же дампером можно сделать и бэкапы БД)
Необходимо что-бы структура копируемых таблиц обоих форумов была идентична (установлены одинаковые модификации), в некоторых случаях, если полей больше в 1 форуме и они имеют значения по умолчанию создание аналогичных полей в таблицах 2го форума не потребуется, но не наоборот, однако необходимо знать что это за поля. - Открыть файл
merge_f.php
и найти строкизаменить названия таблиц 2го форума на те которые вы перенесли в БД 1го форума.Код: Выделить всё
define('FORUMS_SOURCE', 'phpbb_forums'); define('POSTS_SOURCE', 'phpbb_posts'); define('TOPICS_SOURCE', 'phpbb_topics'); define('USERS_SOURCE', 'phpbb_users');
- Зайти на 1 форум через учетку администратора, отключить конференцию (Я рекомендую весь процесс проводить на локалке - Денвере), очистить общий кэш, загрузить по FTP и запустить скрипт
merge_f.php
набрав его в адресной строке браузераhttp://www.домен.ру/merge_f.php
Убедиться в наличии бэкапов и отключении форума (Если процесс не на локалке) и начать объединение нажав на соответствующую ссылку. Внимание! После нажатия на эту ссылку данные в БД начнут изменяться с каждым шагом и если в процессе объединения возникнут ошибки, то БД будет необходимо восстановить из бэкапов перед следующей попыткой и устранением причины ошибки - Продолжайте процесс объединения, скрипт будет сообщать о своих действиях:)
- После успешного завершения необходимо пересчитать статистику и настроить права доступа к перенесенным разделам (Подробную инструкцию выдаст сам скрипт по завершении)
- Необходимо перенести из 2го форума содержимое папки
images/avatars/
в 1й форум - Перенесенные таблицы из БД 2го форума можно удалить в БД 1го форума
Надеюсь кому-нибудь этот скрипт будет полезен.