Уважаемые пользователи!
C 7 ноября 2020 года phpBB Group прекратила выпуск обновлений и завершила дальнейшее развитие phpBB версии 3.2.
С 1 августа 2024 года phpBB Group прекращает поддержку phpBB 3.2 на официальном сайте.
Сайт официальной русской поддержки phpBB Guru продолжит поддержку phpBB 3.2 до 31 декабря 2024 года.
С учетом этого, настоятельно рекомендуется обновить конференции до версии 3.3.

[utility] Склейка 2х и более форумов в один

Здесь авторы могут постить бета-версии своих модификаций для phpBB 3.0.x. Внимание! Не устанавливайте бета-версии модов на работающие форумы!
Правила форума
Местная Конституция | Шаблон запроса | Документация (phpBB3) | Переход на 3.0.6 и выше | FAQ-3 (phpbb3) | Как задавать вопросы | Как устанавливать моды

Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам (а вы рискуете получить предупреждение ;) ).
Аватара пользователя
Garret_Dark
phpBB 2.0.16
Сообщения: 1096
Стаж: 15 лет 2 месяца
Откуда: root/world/russia/
Благодарил (а): 126 раз
Поблагодарили: 206 раз
Контактная информация:

[utility] Склейка 2х и более форумов в один

Сообщение Garret_Dark »

Делал данный скрипт по запросу sanya15.
Вообще уже несколько раз склеивал два форума в один, потому захотелось как-то автоматизировать и упростить.
По сути за несколько шагов можно в один форум перенести неограниченное кол-во конференций.

Переносятся:
  • Форумы/Разделы
  • Темы
  • Сообщения
  • Пользователи
    В случае, если на обоих форумах существуют одинаковые ники пользователей, то переносимые пользователи будут переименованы добавлением префикса "NEW_старое имя", список таких пользователей будет выведен в процессе объединения форумов.
Инструкция:
  • Сделать бэкап БД объеденямых форумов!
  • Из переносимого форума-исходника (Будем называть его 2 форум) копируем в БД форума-приемника (Будем называть его 1 форум)
    таблицы phpbb_forums, phpbb_posts, phpbb_topics, phpbb_users, Ваш префикс может отличаться от "phpbb_", также, если префиксы 1 и 2 форумов одинаковые, то необходимо переименовать таблицы 2го форума и после этого их переносить.
    В моем случае префикс был разный и я просто сделал дамп этих 4х таблиц с помощью Sypex Dumper, а затем импортировал их в БД 1го форума (Этим же дампером можно сделать и бэкапы БД)
    Необходимо что-бы структура копируемых таблиц обоих форумов была идентична (установлены одинаковые модификации), в некоторых случаях, если полей больше в 1 форуме и они имеют значения по умолчанию создание аналогичных полей в таблицах 2го форума не потребуется, но не наоборот, однако необходимо знать что это за поля.
  • Открыть файл merge_f.php и найти строки

    Код: Выделить всё

    define('FORUMS_SOURCE',				'phpbb_forums');
    define('POSTS_SOURCE',				'phpbb_posts');
    define('TOPICS_SOURCE',				'phpbb_topics');
    define('USERS_SOURCE',				'phpbb_users');
    заменить названия таблиц 2го форума на те которые вы перенесли в БД 1го форума.
  • Зайти на 1 форум через учетку администратора, отключить конференцию (Я рекомендую весь процесс проводить на локалке - Денвере), очистить общий кэш, загрузить по FTP и запустить скрипт merge_f.php набрав его в адресной строке браузера http://www.домен.ру/merge_f.php
    Убедиться в наличии бэкапов и отключении форума (Если процесс не на локалке) и начать объединение нажав на соответствующую ссылку. Внимание! После нажатия на эту ссылку данные в БД начнут изменяться с каждым шагом и если в процессе объединения возникнут ошибки, то БД будет необходимо восстановить из бэкапов перед следующей попыткой и устранением причины ошибки
  • Продолжайте процесс объединения, скрипт будет сообщать о своих действиях:)
  • После успешного завершения необходимо пересчитать статистику и настроить права доступа к перенесенным разделам (Подробную инструкцию выдаст сам скрипт по завершении)
  • Необходимо перенести из 2го форума содержимое папки images/avatars/ в 1й форум
  • Перенесенные таблицы из БД 2го форума можно удалить в БД 1го форума
Вот и все вроде:)
Надеюсь кому-нибудь этот скрипт будет полезен.
merge_f.zip
(3.5 КБ) 434 скачивания
Аватара пользователя
Пчелкин
phpBB 3.3.0
Сообщения: 11234
Стаж: 14 лет 2 месяца
Откуда: fotovideoforum.ru
Благодарил (а): 1782 раза
Поблагодарили: 1340 раз
Контактная информация:

Re: [utility] Склейка 2х и более форумов в один

Сообщение Пчелкин »

Пора в команду поддержки ГУРУ вступать...
Аватара пользователя
Пчелкин
phpBB 3.3.0
Сообщения: 11234
Стаж: 14 лет 2 месяца
Откуда: fotovideoforum.ru
Благодарил (а): 1782 раза
Поблагодарили: 1340 раз
Контактная информация:

Re: [utility] Склейка 2х и более форумов в один

Сообщение Пчелкин »

Позовут...думаю что позовут!
Последний раз редактировалось Пчелкин 10.05.2015 13:16, всего редактировалось 1 раз.
Джумас
phpBB 1.2.1
Сообщения: 27
Стаж: 12 лет
Благодарил (а): 1 раз

Re: [utility] Склейка 2х и более форумов в один

Сообщение Джумас »

Скажите а что со вложениями объеденяемых форумов ( картинки, файлы ) ? Как действовать чтобы перенести с присоединяемого форума ?
Последний раз редактировалось Джумас 17.11.2012 12:36, всего редактировалось 1 раз.
bear9
phpBB 1.4.0
Сообщения: 39
Стаж: 13 лет
Благодарил (а): 1 раз

Re: [utility] Склейка 2х и более форумов в один

Сообщение bear9 »

Ошибка возникает ПОСЛЕ переноса постов, на этапе изменения типа столбцов. Мне если честно не совсем понятны манипуляции с ними, зачем вообще было необходимо добавлять их? Если автор объяснит, буду благодарен.
Вам стоит зайти в phpmyadmin и убедиться в правильности типа и наличия primary_key для forum_id, topic_id, user_id, post_id в соответствующих таблицах.
для переноса картинок скопируйте каталоги /uploads и /images
Джумас
phpBB 1.2.1
Сообщения: 27
Стаж: 12 лет
Благодарил (а): 1 раз

Re: [utility] Склейка 2х и более форумов в один

Сообщение Джумас »

Вам стоит зайти в phpmyadmin и убедиться в правильности типа и наличия primary_key для forum_id, topic_id, user_id, post_id в соответствующих таблицах.
Вопрос решил, именно в этом видать и была проблема
для переноса картинок скопируйте каталоги /uploads и /images
Мы говорим про вложения и про форум phpbb3, там папка /files и работа с файлами как понимаю идет через таблицу phpbb_attachments. Например в теле поста который хранится в БД вставленная картинка выглядит так

Код: Выделить всё

[attachment=0:1cilup40]<!-- ia0 -->43349--40939106-m750x740-ud8c05.jpg<!-- ia0 -->[/attachment:1cilup40] 
Аватара пользователя
Garret_Dark
phpBB 2.0.16
Сообщения: 1096
Стаж: 15 лет 2 месяца
Откуда: root/world/russia/
Благодарил (а): 126 раз
Поблагодарили: 206 раз
Контактная информация:

Re: [utility] Склейка 2х и более форумов в один

Сообщение Garret_Dark »

Джумас, вложения скриптом не переносятся.
Видимо в сообщении скрипта неточность насчет переноса файлов из директории /uploads
Garret_Dark писал(а):Необходимо перенести из 2го форума содержимое папки images/avatars/ в 1й форум
Джумас
phpBB 1.2.1
Сообщения: 27
Стаж: 12 лет
Благодарил (а): 1 раз

Re: [utility] Склейка 2х и более форумов в один

Сообщение Джумас »

Я понял что этим скриптом не переносятся вложение, но мне надо это реализовать :(

Подскажите хоть в какую сторону копать ? Вот как например происходит распарс кода вложения в сообщении и определение id вложения по post_id ?

Код: Выделить всё

[attachment=0:1cilup40]<!-- ia0 -->43349--40939106-m750x740-ud8c05.jpg<!-- ia0 -->[/attachment:1cilup40] 
мне кажется можно перелить с присоединяемого форума в папку files/ файлы, посмотреть какой сдвиг был при объединении по user_id, post_id скоректировать эти поля сдвигом в phpbb_attachments2 и соединить ее после этого с phpbb_attachments ... так ?

А скрипт хороший, нужный ... пожалуй вот только переноса вложений очень не хватает
bear9
phpBB 1.4.0
Сообщения: 39
Стаж: 13 лет
Благодарил (а): 1 раз

Re: [utility] Склейка 2х и более форумов в один

Сообщение bear9 »

"копать" в сторону /includes/bbcode.php там точно есть ответ... ну по идее должен быть еще в functions_posting.php, хотя скорее всего он вас приведет тоже к bbcode.php
Аватара пользователя
VayBoy
phpBB 1.4.1
Сообщения: 44
Стаж: 11 лет 4 месяца
Откуда: Санкт-Петербург
Благодарил (а): 6 раз
Поблагодарили: 8 раз
Контактная информация:

Re: [utility] Склейка 2х и более форумов в один

Сообщение VayBoy »

Вы ведь правда сделали бэкапы? :)
Для продолжения нажмите здесь


улыбнул )))

как всегда, архиполезные вещи пишешь )


Выручайте )

Duplicate entry '200' for key 'PRIMARY' [1062]
SQL
UPDATE bla_topics SET topic_id = topic_id + 99


Тоже самое было на стадии копирования пользователей. всех кроме двух вырезал - слились. Названия форумов - без проблем.
Не могу понять где что дублируется.
Последний раз редактировалось VayBoy 11.12.2012 17:58, всего редактировалось 3 раза.
Обмен ссылками с сайтами о ремонте электроники, сервис-центрами и подобными.

с точки зрения зла добро это зло.

Кирилл Керн
Джумас
phpBB 1.2.1
Сообщения: 27
Стаж: 12 лет
Благодарил (а): 1 раз

Re: [utility] Склейка 2х и более форумов в один

Сообщение Джумас »

Объединил я два форума под веселые пляски с бубном ... и вложения перенес, из замеченных косяков - не перенес ЛС с присоединяемого форума ( считаю там не критично это ) ну и опросы с доп. форума не перенеслись ( тож мне не критично ) ... возможно еще какие косяки вылезут, но пока с недельку работает юзеры особо не ругаются

... а, ну еще с автарами косяк вышел тож не на основном форуме
Аватара пользователя
Garret_Dark
phpBB 2.0.16
Сообщения: 1096
Стаж: 15 лет 2 месяца
Откуда: root/world/russia/
Благодарил (а): 126 раз
Поблагодарили: 206 раз
Контактная информация:

Re: [utility] Склейка 2х и более форумов в один

Сообщение Garret_Dark »

VayBoy писал(а):Выручайте ) Duplicate entry '200' for key 'PRIMARY' [1062]SQLUPDATE bla_topics SET topic_id = topic_id + 99
Вчера в аську какой-то товарищ стучался с подобной проблемой, но так и не отписал помогло или нет.
Есть подозрение в том, что на форуме-приемнике была(и) удалена(ы) последняя тема. Попробуй просто создать любую тему на "приемнике" перед следующей попыткой. Тоже самое касающееся юзеров - зарегить юзера.
Джумас писал(а):а, ну еще с автарами косяк вышел тож не на основном форуме
Аватарки нормально переносятся, их файлы только ручками скопировать нужно
Аватара пользователя
VayBoy
phpBB 1.4.1
Сообщения: 44
Стаж: 11 лет 4 месяца
Откуда: Санкт-Петербург
Благодарил (а): 6 раз
Поблагодарили: 8 раз
Контактная информация:

Re: [utility] Склейка 2х и более форумов в один

Сообщение VayBoy »

неа (
не помогает.

как мне вычислить проблемную тему ?

вот эти вот 200 на что указывают ?
200 строка в таблице передатчике или уже в приёмнике(с новыми) ?

накатал порядка трёх-пяти тем.

Duplicate entry '107' for key 'PRIMARY' [1062]
SQL
UPDATE b128640_topics SET topic_id = topic_id + 105

(как раз с двойки начинается id таблиц в передатчике
я так понимаю.что мы начинаем обновлять id и он упарывается на дубле.
эм... там ненужно нигде было запилить феничку мол ключевое поле...бла бла бла ? )))

на обоих 3 0 11 стоит

удалил примари ключ на темах.
скопировались.

завалился на сообщениях )
ща буду удалять примари там )

сообщения тем же макаром.
алл гуд.
заваливаюсь на

Incorrect table definition; there can be only one auto column and it must be defined as a key [1075]
ALTER TABLE b128640_topics CHANGE `topic_id` `topic_id` MEDIUMINT(8) UNSIGNED NOT NULL AUTO_INCREMENT


начинаю угорать потихоньку ) так как MySQL не учил уже лет 5ть млин ))


сделал апдейт пост_айди в таблице передатчике на плюс овер дофига.
всё перенёс.

спасибо за мод. в ручную затр... устал бы )


по существу.

было бы просто афигительно.
если бы в таблицы передатчики заносилась информация об адресах новых тем.
аля в начале вбиваем домен. формируем url и заносим в старые таблицы.
потом их заливаем обратно.
у юзеров светится - тема перемещена туда то...
Последний раз редактировалось VayBoy 11.12.2012 22:28, всего редактировалось 9 раз.
Обмен ссылками с сайтами о ремонте электроники, сервис-центрами и подобными.

с точки зрения зла добро это зло.

Кирилл Керн
Джумас
phpBB 1.2.1
Сообщения: 27
Стаж: 12 лет
Благодарил (а): 1 раз

Re: [utility] Склейка 2х и более форумов в один

Сообщение Джумас »

Garret_Dark писал(а):Аватарки нормально переносятся, их файлы только ручками скопировать нужно
Хм, переносил ручками да случился косячок что у некоторых добавляемых пользователей аватарки поменялись ... не ковырял то ли в галерее аватар на форумах было совпадение имен, или загруженные с одинаковыми id/именами .... короче я предупредил, кто будет клеить если что не удивляйтесь ;)

Добавлено спустя 10 минут 6 секунд:
Я чутка дописал ваш merge_f.php и он у меня еще и аттачи перенес ( понятно таблицу, сами файлы ручками ) ... криво конечно дописал, на коленке - использовать на свой страх и риск, или пусть кто глянет его да поправит. У меня нормально перенеслось с одним косячком - в одной и переносимых таблиц ( какой не помню ) auto_increment не поставился на первом поле, ну я его ручками просто поставил. Это вылезло когда пытался пост на форуме разместить, а так не видно было.
merge_f.zip
(3.7 КБ) 370 скачиваний
Закрыто

Вернуться в «Бета-версии модов для phpBB 3.0.x»