Перейти к публикации
View in the app

A better way to browse. Learn more.

Дизайн и модификация Invision Community

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Надо слить две базы в единый форум

Опубликовано:

Есть два форума, оба доведены до версии 3.4.9, надо их слить в один.

При помощи IP Converters это вроде бы успешно получилось, но…

 

 

1. Не очень понятно что происходит с одноимёнными пользователями. В принципе большинство одноимённых пользователей - реально один пользователь и их надо тоже объединять.

Но наверняка есть и разные одноимённые пользователи, и их объединять нельзя.

IP Converters очевидно объединяет пользователей по email, но как он поступает если имя одинаковое но email разный?

 

 

2. В постах было много URL-ссылок на соседние топики/посты/пользователей - старый_форум/index.php?showtopic=XXXXX&p=YYYYY, showuser=ZZZZZ, и т.п.

При переносе второго форума в первый - ID постов и пользователей стали разумеется новые (т.к. такие номера уже были заняты в первой базе), но в постах - все ссылки остались на старые адреса со старыми ID.

Домен то я могу в ссылках изменить при помощи поиска и замены в SQL-дампе, но вот изменить старые ID на новые - я не представляю как.

Что делать?

 

Если при переносе индексы во всех ID постов/юзеров увеличиваются линейно и в том же порядке - то есть мысль написать программу которая находит в перенесённой части базы все URL-ссылки на старые ID и увеличивает их… Но наверняка ведь есть какие-то готовые решения?

Рекомендованные сообщения

Опубликовано:

Не очень понятно что происходит с одноимёнными пользователями

Смотрите логи в папке cache. Название файла начинается с converter_error_log_

 

2. Данные есть в таблицах, названия которых начинаются с conv_.

Опубликовано:
  • Автор
2. Данные есть в таблицах, названия которых начинаются с conv_.
Да, есть там это. Запрос типа SELECT ipb_id FROM b_conv_link_topics WHERE foreign_id=старый_ID - выводит новый ID топика и т.п.

 

А есть какие-то готовые инструменты для правки всех ID в ссылках на посты/топики/пользователей?

Раз в БД эти таблицы есть - то очевидно их кто-то использует?

Опубликовано:

А есть какие-то готовые инструменты для правки всех ID в ссылках на посты/топики/пользователей?

Не встречал.

Раз в БД эти таблицы есть - то очевидно их кто-то использует?

В папке Tools, что идет с конвертерами, есть скрипты-редиректы для различных cms
Опубликовано:
  • Автор
Не встречал.
А как же люди сливают два форума в один? Так и оставляют кривые ссылки в постах перенесённых со старого форума? Ведь практически на любом форуме есть URL-ссылки на посты…

 

В папке Tools, что идет с конвертерами, есть скрипты-редиректы для различных cms
Я не очень понимаю как эти скрипты использовать, куда их надо подключать и как…

Но главное - я там не вижу сриптов для самой IPB. Там всё для других систем (Links - vBulletin 5, Links - XenForo, Links - phpBB и т.п.), а у меня то оба форума на IPB.

Изменено пользователем f2065

Опубликовано:

А как же люди сливают два форума в один?

Нужно у них спросить.

Может устанавливают реврайты в htaccess, может отлавливают ссылки в php-скриптах, может на старом форуме делают редирект на php-файл на новом, где проверяют ссылки.

 

Основная задача конвертера - преобразование форума на платформе, отличной от ipboard, в ipboard.

Вот свежий пример http://ipbskins.ru/forum/topic13638.html/. Кто виноват, что ips не подумали про ваши ссылки в постах :)

Опубликовано:
  • Автор
2. Данные есть в таблицах, названия которых начинаются с conv_.
А там я что-то не вижу ID пользователей… Только ID постов, тем, и вроде бы ЛС.

Ничего похожего на ID пользователей нет.

 

И как править в таком случае ссылки вида /showuser.php ?

 

Разве что превращать на исходном форуме их в тег MEMBER, но что-то он не прижился да и у него очевидно проблема будет если пользователь переименуется… Вобщем это путь не подходит. А более я что-то не вижу решений (кроме как вообще удалить все URL index.php?showuser=[01234567890]+ на добавляемом форуме до слияния).

Опубликовано:
И как править в таком случае ссылки вида /showuser.php

Только скриптом. Определить новый id пользователя можно и по дополнительным признакам - никнейм, почта. Т.е. парсите ссылку регуляркой, определяете старый id, по нему, в таблице из старой базы выбираете данные пользователя, ищете их в новой базе, генерите ссылку, делаете замену. Это не так сложно как кажется. :)

Опубликовано:

А там я что-то не вижу ID пользователей… Только ID постов, тем, и вроде бы ЛС.

Ничего похожего на ID пользователей нет.

SELECT * FROM conv_link WHERE type='members';

Опубликовано:
  • Автор

А вот все ID аттачей при конвертации корректно преобразуются…

Хотя в SELECT * FROM `b_conv_link` WHERE `type`='attachments' записаны их старые номера (foreign_id) и новые номер (ipb_id).

Нашёл конкретные посты, у них в исходной базе и в финальной - разные ID, всё правильно изменено. Т.е. IP Converter номера аттачей переписал во всех постах.

 

Но почему аналогичным образом не конвертируются ID топиков, постов, пользователей???

Может надо в исходной базе что-то донастроить, или ссылки showtopic в какой-то другой формат преобразовать?

Изменено пользователем f2065

Опубликовано:
  • Автор

Проблему решил так:

Выгрузил php-скриптом foreign_id и ipb_id для members forums posts topics в бинарные файлы.

Выгрузил дамп базы.

Написал конвертилку текста которая пробегается по дамп-файлу и в соответствии с foreign_id=ipb_id изменяет там адрес/ID в домен/index.php?showtopic=ID, домен/index.php?showtopic=ID&p=ID, домен/index.php?showuser=ID, домен/index.php?app=forums&module=forums&section=findpost&pid=ID.

Вроде всё как надо в итоге стало, все ссылки на новые правильные места стали вести, с правильными ID.

 

Если эта процедура востребована - то можно сделать готовый набор скриптов и инструментов…

Опубликовано:

Готовый, универсальный набор инструментов "для чайника" вы не сделаете, это задачи из разряда "обработать напильником". У меня есть уже с десяток таких наборов постобработки конвертированных баз (ссылки, бб-коды, смайлы), каждый подходит исключительно для одного конкретного случая.

Создайте аккаунт или войдите в него для комментирования

Сейчас на странице 0

  • Нет пользователей, просматривающих эту страницу.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.