Конвертор uCoz -> phpBBex

Список разделов phpBBex 1.x (поддерживается) Мастерская 1.x

Описание: Только готовые решения! Статьи, заметки, моды и другие полезности для phpBBex 1.x и phpBB 3.0.x.
Модератор: Поддержка

Сообщение #61 Sumanai » 10.01.2015, 11:50

В сторону лимитов по памяти и времени выполнения скрипта.
Sumanai M
Аватара
Репутация: 1677
С нами: 11 лет 9 месяцев

Сообщение #62 odseg » 10.01.2015, 13:58

возможно http://php.net/manual/ru/function.set-time-limit.php
или http://php.net/manual/ru/info.configuration.php#ini.max-execution-time
на локальном хостинге проще всего проверять )
odseg M
Откуда: Молодечно
Репутация: 2
С нами: 10 лет 5 месяцев

Сообщение #63 go_to_the_rain » 10.01.2015, 15:41

odseg, max_execution_time первым делом увеличила в php.ini, но к сожалению, тоже самое - висит на импорте 33000 сообщений ))
go_to_the_rain
Репутация: 1
С нами: 9 лет 10 месяцев

Сообщение #64 go_to_the_rain » 13.01.2015, 12:14

Оказывается проблема была в определенных постах в дампе ucoz (forump.txt). "Висло" на тех постах, где шел тег hide вместе с тегом spoiler. После редактирования тех постов, все прошло гладко.
go_to_the_rain
Репутация: 1
С нами: 9 лет 10 месяцев

Сообщение #65 odseg » 13.01.2015, 16:18

все проще чем казалось =)
odseg M
Откуда: Молодечно
Репутация: 2
С нами: 10 лет 5 месяцев

Сообщение #66 lett » 26.11.2015, 19:36

всем привет,
конвертер всё еще актуален по крайней мере для меня )
навыков у меня не особо, поэтому сталкиваюсь с затыками
может подскажите?
например:

Общая ошибка
SQL ERROR [ mysqli ]

Column 'forum_id' cannot be null [1048]

SQL

INSERT INTO phpbb_posts (post_id, topic_id, forum_id, poster_id, icon_id, poster_ip, post_time, post_approved, post_reported, enable_bbcode, enable_smilies, enable_magic_url, enable_sig, post_username, post_subject, post_text, post_checksum, post_attachment, bbcode_bitfield, bbcode_uid, post_postcount, post_edit_time, post_edit_reason, post_edit_user, post_edit_count, post_edit_locked) VALUES (37675, 12160, NULL, '68', 0, '86.57.233.169', '1185873702', 1, 0, 1, 1, 1, 1, '', '', 'безлимитка, я так понимаю', '674715da8cd97dcd19294db2d836fa1e', 0, '', '', 1, 0, '', 0, 0, 0)

BACKTRACE

FILE: (not given by php)
LINE: (not given by php)
CALL: msg_handler()

FILE: [ROOT]/includes/db/dbal.php
LINE: 757
CALL: trigger_error()

FILE: [ROOT]/includes/db/mysqli.php
LINE: 189
CALL: dbal->sql_error()

FILE: [ROOT]/!ucoz2phpbbex.php
LINE: 1709
CALL: dbal_mysqli->sql_query()

FILE: [ROOT]/!ucoz2phpbbex.php
LINE: 1858
CALL: ucoz_import_messages()
lett
Репутация: 0
С нами: 8 лет 11 месяцев

Сообщение #67 odseg » 27.11.2015, 09:56

база укоза, как я понимаю свежая? скорее всего там изменили схему данных, ид форума точно не может быть нулл. или на укозе можно без отдельной категории ? если не сложно дай ссылку на свой укоз-форум.
odseg M
Откуда: Молодечно
Репутация: 2
С нами: 10 лет 5 месяцев

Сообщение #68 lett » 27.11.2015, 10:47

да, конечно база юкоза новенькая

если удалять сообщения на которое ругается конвертер, то перенос идет дальше, до следующего сообщения, на которое он ругается. Сейчас для эксперимента оставил 100 строк в forump.txt конвертер завершил перенос без сбоев.

Спойлер
http://hoi2games.ru/forum/

Добавлено спустя 4 часа 11 минут:
сейчас провел небольшое сопоставление, сообщения на которые конвертер пишет НУЛЛ forum id не бьются через поисковик форума, т.е. поиск форума выдает, что такого сообщения не существует. В то же время посты которые конвертер воспринимает нормально поиск по форуму находит, они существуют потому что видимо существуют форумные темы с ними. А к постам НУЛЛ forum id невозможно сопоставить айди форума, потому как его форум судя по всему был когда то удален. И что с этим делать?

Добавлено спустя 5 минут 57 секунд:
допустим что раз какие-то форумы когда-то были удалены, то сообщения эти по логике нафиг не нужны, тогда какого они сохраняются в forump.txt и как почистить этот файл от так сказать мусорных сообщений.

Добавлено спустя 14 минут 24 секунды:
или сделать так, чтобы конвертер их игнорил

Добавлено спустя 1 час 2 минуты:
в fr_fr.txt нет разделов с таким айди. Например сообщение на котором выдает НУЛЛ 95|21|1185873702|0|
95 - forum id

в fr_fr.txt есть 94 и 96, а 95 нет. В этом видимо и затык.
lett
Репутация: 0
С нами: 8 лет 11 месяцев

Сообщение #69 Mneznakomec » 29.02.2016, 15:53

Снова вернулся к старой теме, правлю скрипт, столкнулся с тем, что часть полей из users перекинули в profile_fields_data, но это ладно, исправил. Даже необходимость заполнить отключенное поле.

Проблема в другом: переменная $config теперь пуста. Раньше из неё тянули с пару десятков параметров, а сейчас - пусто. ($config['avatar_path'] )

Что изменилось во 2 версии?
Mneznakomec
Аватара
Репутация: 7
С нами: 11 лет 3 месяца

Сообщение #70 Sumanai » 29.02.2016, 17:16

В phpBB 3.1 $config- это сервис, который получают с помощью DI контейнера. Пример получения контейнера DI можно посмотреть в файле common.php, а сама переменная $config инициализируется в файле includes/compatibility_globals.php.
Sumanai M
Аватара
Репутация: 1677
С нами: 11 лет 9 месяцев

Сообщение #71 Mneznakomec » 11.03.2016, 12:59

У меня всё получилось. В рамках разумного. То есть импорт данных прошёл целиком и полностью, вложения ВСЕ нашлись, пользователи, темы, разделы - всё импортировалось. Есть мелкие проблемы: некоторые бб-коды не заработали, в частности - спойлер. Но у меня их нечасто пользовали, решил забить.

Скрипт работает только для 1.х, желательно для 1.9.1. После корректного импорта можно сделать апгрейд до 2.х. Небольшие мелочи вылезают, типа "нулевой размер вложений", но вы должны помнить, что форум нужно настраивать. Настраивать как до, так и после импорта.

Скрипт, доработанный мной, переносит только тех пользователей, которые хоть что-то когда-то написали на всём сайте.

Пользователи с id=1 и id=2 обрабатываются особенно:
1) Все сообщения пользователя с id=1 записываются в id=1 phpbbEx, то есть становятся гостевыми. У меня этот пользователь неактивен с основания, так что неаткуально.
2) Все сообщения пользователя с id=2 укоза записываются в id=13 phpbbEx. Пользователь id=2 в phpbbEx - это админ системный, а в укозе это обычный пользователь. Поэтому я переписываю данные этого пользователя на id забаненного навечно пользователя с id=13 из укоза. Вы можете взять любой удобный для вас id.

В коде есть пометки //Mn, там уникально для меня: например - поля с данными профиля. Те, что "город, Yahoo" и прочая ерунда. Меппинг составляете только вы сами, можете вообще не грузить их.

Скрипт для правки дней рождений в уже импортированной базе - во вложении. Его нужно положить в корень с форумом новым и запустить.

Внимание: тем, у кого не грузятся вложения.
1) Проверьте права доступа к директориям. На время импорта задайте владельца ВСЕЙ директории дампа ucoz и ВСЕЙ директории форума - www-data. И права дайте полные (777). Избежите кучи проблем. Потом вернётся как нужно.
2) Очень внимательно проверьте бэкап: я столкнулся с тем, что файлы были видны в бэкапе, а по факту были битые, поэтому не грузились. А 30% и вовсе отсутствовали. Это так формирует бэкап укоз, особенно если у вас меньше 65% доступного свободного места на диске укоза. Я заходил по ftp на сервер к ним и скачивал файлы из папки _fr вручную (ну или wget с получением списка файлов директории, если кто опытный).
3) В настройках веб-серверов, особенно nginx, увеличьте максимальный размер поста до 100мб.
4) Измените php.ini от используемой версии PHP (можно посмотреть в админке путь)!!! Увеличьте размер доступной памяти для скрипта и время выполнения скриптов.
5) Добавьте неизвестные типы расширений в админке. У меня это были файлы .kmz и gpx. Внимательно выбирайте группу файлов.

Процедура авторизации в 2.х версии изменена: теперь там провайдеры. Мы написали свой провайдер, сделали патч для 2.0.2. Если кому нужно - пишите.

Ботов перенёс на 1500 вперёд, то есть добавил к их ID 15000.
Код: Выделить всё
UPDATE `phpbb_users` SET `user_id` = `user_id` +1000000 WHERE `user_id` >2
UPDATE `phpbb_bots` SET `user_id` = `user_id` + 1000000

Последняя актуальная версия скрипта - во вложении. Если скрипт где-то зависает - прежде всего удаляйте крупные сложные тэги, типа <iframe> и огромные сообщения.
Вложения
birthday5.zip
Скрипт исправления ДР в базе
(922 байт) Скачиваний: 546
ucoz2phpbbex_1_1_0.zip
Скрипт конвертера
(24.45 КБ) Скачиваний: 570
Mneznakomec
Аватара
Репутация: 7
С нами: 11 лет 3 месяца

Сообщение #72 Sumanai » 11.03.2016, 15:42

Mneznakomec:Ботов перенёс на 1500 вперёд, то есть добавил к их ID 15000.
То есть 15000 пользователь станет ботом?
Sumanai M
Аватара
Репутация: 1677
С нами: 11 лет 9 месяцев

Сообщение #73 Mneznakomec » 17.03.2016, 11:27

Sumanai:То есть 15000 пользователь станет ботом?
Да, только 1500-ый, я ошибся с нулём. Боты начнут именоваться с 1503 и закончат 156х (на данный момент, забыл точно сколько).
Следующий пользователь будет создан с id, равным id самого последнего бота +1, та же берётся максимум нынешний просто.
Mneznakomec
Аватара
Репутация: 7
С нами: 11 лет 3 месяца

Сообщение #74 Robifri » 15.04.2016, 13:59

Здравствуйте.
Спасибо большое за данный скрипт.

У меня появилась проблема, ни как не могу понять, как ее решить. Скорее всего она решается из админки ucoza, но я не уверен, по этому и спрашиваю у местных знатоков.
При импорте пользователей у меня пишет следующее: "Найдена неопределенная группа 7 в дампе UCOZ!!!"
Подскажите пожалуйста как это исправить.
Robifri
Репутация: 1
С нами: 8 лет 7 месяцев

Сообщение #75 Mneznakomec » 15.04.2016, 14:52

Robifri:При импорте пользователей у меня пишет следующее: "Найдена неопределенная группа 7 в дампе UCOZ!!!"
7 группа в phpbb - это "новые", если вы не используете функционал данный и группа отключена, то исправьте в карте групп 7 на 2.

Код: Выделить всё
define ("UCOZ_GROUP_BLOCKED", 255);
$groups_map = array(
  1 => array( 7 ),
  2 => array( 2 ),
  3 => array( 4 ),
  4 => array( 5 ),
  // { Mn
  8 => array( 8 ),
  9 => array( 9 ),
  10 => array( 9 ),
  11 => array( 9 ),
  // } Mn
);

Напишите
Код: Выделить всё
define ("UCOZ_GROUP_BLOCKED", 255);
$groups_map = array(
  1 => array( 2 ),
  2 => array( 2 ),
  3 => array( 4 ),
  4 => array( 5 ),
  // { Mn
  8 => array( 8 ),
  9 => array( 9 ),
  10 => array( 9 ),
  11 => array( 9 ),
  // } Mn
);

Всё на примере моей последней версии скрипта.
Mneznakomec
Аватара
Репутация: 7
С нами: 11 лет 3 месяца

Сообщение #76 Robifri » 15.04.2016, 15:01

Mneznakomec:7 группа в phpbb - это "новые", если вы не используете функционал данный и группа отключена, то исправьте в карте групп 7 на 2.
Спасибо большое за столь быстрый ответ.
Исправил по вашему совету, но ничего не изменилось.
Код: Выделить всё
define ("UCOZ_GROUP_BLOCKED", 255);
$groups_map = array(
  1 => array( 2 ),
  2 => array( 2 ),
  3 => array( 4 ),
  4 => array( 5 ),
  // { Mn
  8 => array( 8 ),
  9 => array( 9 ),
  10 => array( 9 ),
  11 => array( 9 ),
  // } Mn
);
Вот скрин ошибки - http://clip2net.com/s/3wXRkD2

Полазил по форуму ucoza - группа с айди 7 это модераторы
Robifri
Репутация: 1
С нами: 8 лет 7 месяцев

Сообщение #77 Mneznakomec » 15.04.2016, 15:08

А, в ucoze не найдено.

Тогда так.
Код: Выделить всё
define ("UCOZ_GROUP_BLOCKED", 255);
$groups_map = array(
  1 => array( 2 ),
  2 => array( 2 ),
  3 => array( 4 ),
  4 => array( 5 ),
  7 => array( 4 ),
  // { Mn
  8 => array( 8 ),
  9 => array( 9 ),
  10 => array( 9 ),
  11 => array( 9 ),
  // } Mn
);

Напоминаю, что скрипт работает ТОЛЬКО в 1.9.

Ну и тему бы почитать вам очень внимательно. На скрине ошибка, что не найден pf_number. Я писал, что это моё личное и это нужно удалять другим пользователям. Либо добавлять поле с таким названием в phpbbex.
Mneznakomec
Аватара
Репутация: 7
С нами: 11 лет 3 месяца

Сообщение #78 Robifri » 15.04.2016, 15:21

Mneznakomec:Напоминаю, что скрипт работает ТОЛЬКО в 1.9.

Ну и тему бы почитать вам очень внимательно. На скрине ошибка, что не найден pf_number. Я писал, что это моё личное и это нужно удалять другим пользователям. Либо добавлять поле с таким названием в phpbbex.

Убил phpbbex. Поставил 1.9
Удалил строки:
Код: Выделить всё
      // Mn Если заполнено дополнительное поле AOL (велосипед)
      $sql = 'INSERT INTO ' . PROFILE_FIELDS_DATA_TABLE . ' (user_id, pf_mobile_number, pf_equipment, pf_bike, pf_real_name, pf_unique_rang) VALUES('
          . $user_id . ',"' . _E($r_user[19]) . '","' . _E($r_user[20]) . '","' . _E($r_user[18]) . '","' . _E($r_user[5]) . '","' . _E(utf8_clean_string($r_user[14])) . '")';
      $db->sql_query($sql);
      // Mn
Теперь начинается импорт, пишет:
Код: Выделить всё
Импорт пользователей...
  Данные из файлов ./ucoz/_s1/users.txt и ./ucoz/_s1/ugen.txt прочитаны...
На этом месте останавливается и в ошибках:
Код: Выделить всё
Общая ошибка
SQL ERROR [ mysqli ]

Duplicate entry '13' for key 'PRIMARY' [1062]

SQL

INSERT INTO phpbb123_users (user_id, group_id, user_permissions, user_ip, user_regdate, username, username_clean, user_password, user_passchg, user_pass_convert, user_email, user_email_hash, user_birthday, user_gender, user_lastvisit, user_lastmark, user_lastpage, user_rating_positive, user_rating_negative, user_posts, user_lang, user_timezone, user_dst, user_dateformat, user_style, user_rank, user_full_folder, user_notify, user_notify_pm, user_notify_type, user_allow_pm, user_allow_viewonline, user_allow_viewemail, user_allow_massemail, user_options, user_avatar, user_avatar_type, user_avatar_width, user_avatar_height, user_sig, user_sig_bbcode_uid, user_sig_bbcode_bitfield, user_from, user_icq, user_website, user_occ, user_interests, user_form_salt, user_new) VALUES (13, 5, '', '212.152.61.190', '1168530762', 'WARG', 'warg', '$1$E5S7$1RRemLR3CCPeDUgkoFTBm/', 1460722850, 1, 'nosferatualesseo@mail.ru', '311130506024', '17-05-1988', 1, '1460458467', 1460722850, '', 22, 0, 7188, 'ru', '0', 0, '|d.m.Y|{, H:i}', 1, 0, -3, 0, 0, 0, 0, 1, 0, 0, 233343, '13.gif', 1, 148, 146, '[b:3lgal1gx]Eukahainen[/b:3lgal1gx]-[color=orange:3lgal1gx]Druid[/color:3lgal1gx];[b:3lgal1gx]Alessandro[/b:3lgal1gx]-[color=purple:3lgal1gx]Warlock[/color:3lgal1gx]-[color=gray:3lgal1gx]R.I.P[/color:3lgal1gx]\n[img:3lgal1gx]http&#58;//malleus&#46;clan&#46;su/_ph/2/2/436189755&#46;gif[/img:3lgal1gx]', '3lgal1gx', 'Sg==', '', '', '', '', '', '59c836dc5b72eaf8', 1)

BACKTRACE
Скрин - http://clip2net.com/s/3wXWSMv

Вроде все правильно делаю, не пойму в чем беда(

Добавлено спустя 1 час 20 минут:
UPD
Все понял, нужно было удалить всех юзеров кроме админа и все сообщения.
После этого импорт прошел на "УРА".
Мало ли, кто то будет после меня все читать, по этому вот вам:
1) Устанавливаете phpbbex 1.9 http://phpbbex.com/forum/viewtopic.php?t=1580
2) Удаляете из админки созданные форумы.
3) Заходите в базу, ищите таблицу перфикс_users. Удаляете юзеров кроме админа созданного вами (второй он там после анонимуса, анонимус тоже удалять)
4) Скачиваете скрипт от Mneznakomec, за что ему оргомное спасибо. http://phpbbex.com/forum/download/file.php?id=2133&filename=ucoz2phpbbex_1_1_0.zip
5) Смотрите скрипт, правите в нем путь к вашей папке с дампом юкоза, а так-же название папки со смайликами. Удаляете от туда кусок кода:
Код: Выделить всё
 // Mn Если заполнено дополнительное поле AOL (велосипед)
      $sql = 'INSERT INTO ' . PROFILE_FIELDS_DATA_TABLE . ' (user_id, pf_mobile_number, pf_equipment, pf_bike, pf_real_name, pf_unique_rang) VALUES('
          . $user_id . ',"' . _E($r_user[19]) . '","' . _E($r_user[20]) . '","' . _E($r_user[18]) . '","' . _E($r_user[5]) . '","' . _E(utf8_clean_string($r_user[14])) . '")';
      $db->sql_query($sql);
      // Mn
6) Запускаете скрипт и наслаждаетесь.



У меня все получилось, но 1 непонятка появилась)
На юкозе: "Всего создано 614 тем, в которые добавлено 17981 ответов.Зарегистрировано 115 участников."
После импорта: "Всего сообщений: 18532 • Тем: 610 • Пользователей: 112"

Добавлено спустя 11 минут 29 секунд:
UPD 2
Юзер анонимус оказывается нужен))) Без него не отображается форум не залогиненым.

Сделайте запрос sql:
Код: Выделить всё
INSERT INTO phpbb_users (user_id, user_type, group_id, username, username_clean, user_regdate, user_password, user_email, user_lang, user_style, user_rank, user_colour, user_posts, user_permissions, user_ip, user_birthday, user_lastpage, user_last_confirm_key, user_post_sortby_type, user_post_sortby_dir, user_topic_sortby_type, user_topic_sortby_dir, user_avatar, user_sig, user_sig_bbcode_uid, user_from, user_icq, user_aim, user_yim, user_msnm, user_jabber, user_website, user_occ, user_interests, user_actkey, user_newpasswd, user_allow_massemail) VALUES (1, 2, 1, 'Anonymous', 'anonymous', 0, '', '', 'en', 1, 0, '', 0, '', '', '', '', '', 't', 'a', 't', 'd', '', '', '', '', '', '', '', '', '', '', '', '', '', '', 0);
Перфикс только не забудьте поменять и форум будет корректно работать.
Robifri
Репутация: 1
С нами: 8 лет 7 месяцев

Сообщение #79 bb3 » 28.09.2016, 17:27

Подскажите. Перенес сайт с укоза на phpBB 3.1.9.
Захожу под логином укоза на phpbb - пишет про ошибку "Вы ввели неверный пароль. Проверьте его и попробуйте ввести ещё раз. Если проблема со входом останется, то сообщите об этом администратору."

Это так должно быть?
bb3
Гость

Сообщение #80 Sumanai » 28.09.2016, 18:08

Пункт 4 из инструкции "После обновления" выполнили? Правда на 3.1.9 файл будет в другом месте и с другим синтаксисом, нужно смотреть, как его исправлять.

Добавлено спустя 1 минуту 39 секунд:
bb3:на phpBB
Надеюсь, на phpBBex обновляться планируете? :wink:
Sumanai M
Аватара
Репутация: 1677
С нами: 11 лет 9 месяцев

Пред.След.

Вернуться в Мастерская 1.x