Производство фотообоев в Новосибирске. Интернет магазин фотообоев. Изготовление - один день! Каталог 10 000 изображений!
13 Май 2011

Bitrix API: конвертация форума с PHPBB

posted in Bitrix, Программирование |

Задача для меня, ещё совсем не опытного Bitrix программиста, не тривиальна … но предположив, что я далеко не первый кодер, реализующий такую задачу я решил плотно погуглить …. и конечно-же нашел отличный материал, на основе которого и конвертировал таки форум.
Итак, статья — Переезжаем с phpBB на форум Битрикс
Материал в целом достаточный, причём неплохо прокомментирован, но всё же хочу акцентировать на некоторых моментах, с которыми пришлось столкнуться:

  • Во первых, в файле forum.php в начале на базе форума phpbb идёт проверка на существование таблиц TBL_WITH_FORUM_IDS и TBL_WITH_POSTS_IDS — логично предположить, что эти таблицы нужно создавать в базе форума phpbb — но это не так ! Вторая проверка — лишняя, в базе форума делаем только одну табличку b_gp_old_bb, две других b_gp_old_bb_topics и b_gp_old_bb_posts — в базе битрикса.
    Может кому поднадобится — вот скриптик добавления:
  • Поле post_username в табличке _posts в моей версии phpbb было заполнено какой-то хернёй, поэтому для привязки юзера, пришлось клеить табличу _users по полю poster_id
    Второй запрос у меня выглядел так:

  • в users.php define(‘TBL_BANLIST’, ‘null’); — это было в комментах
  • ещё прикол — после того как форумы будут добавлены в админке, нужно будет зайти в свойства компонента (режим сайта режим правки — модуль форума) и тупо нажать сохранить — таким образом добавленные форумы пропишутся в видимые. Иначе пусто.
  • Правим /bitrix/modules/forum/classes/general/topic.php в методе ADD $arFields[«VIEWS»] = 0; — это тоже было
  • define(‘PATH_TO_AVATAR’, $_SERVER[‘DOCUMENT_ROOT’]….. — сюда нужно копирнуть аватарки старого форума
  • С define(‘LIMIT_FOR_ONE_STEP’, …. я заморачиваться не стал, поставил set_time_limit(0); и всего делов — все юзеры перетащились за раз
  • Так как пришлось скриптик отлаживать и запускать по несколько раз, я дописал удаление всех юзеров созданных ранее (кроме себя)
  • В моём phpbb использовалось поле RANK которого нет в битриксе, для него я сделал ещё одно пользовательское свойство UF_PHPBB_RANK и добавил его заполнение
    «UF_PHPBB_RANK» => $arUser[«user_rank»]
  • На счёт паролей — решил проэксперементировать — скопировал хэш из phpbb в битрикс — и о чудо — пасс подошел, НО при добавлении пароля через API сам хэш считался паролем и ещё раз хэшировался — мне же нужно было перетащить хэш «как есть», для этого ещё один допил:

    в начале скрипта дёргаем пароли старого форума

    В конце скрипта (когда юзера уже на месте)

  • Совсем не понял зачем чистить special chars — это дело в __ConvertPosts я закоментил
  • в forums.php трюк с $lastID у меня не прошел — т.к. не хватило оперативки для переноса всего форума, но каждый раз в ручную его править — не реально, поэтому в начале скриптика
    $lastID = file_get_contents(‘last.id’);
    define(‘LIMIT_FOR_ONE_STEP’, ‘500’);
    и в цикле
    $lastID = $arItem[«topic_id»];
    file_put_contents(«last.id»,$lastID);
  • вроде всё

У нас 8 комментариев на запись “Bitrix API: конвертация форума с PHPBB”

Почему бы Вам не высказать своем мнение! Позвольте нам узнать, что Вы думаете...

  1. 1 On 15.05.2011, Man4dead said:

    Я немного не понял, как добавленные форумы сделать видимыми? А то у меня пусто.

  2. 2 On 15.05.2011, GTAlex said:

    Зайти будучи авторизированным с правами админа в режиме сайт, в режиме правки в настройки компонента форума — форумы должны автоматически встать в поле «показывать только выбранные форумы»
    Тут глянь скриншотик
    http://clip2net.com/clip/m77265/1305438514-clip-49kb.png

  3. 3 On 18.05.2011, Федор said:

    Пост, безусловно, полезный. Но раз намучившись с этим долбаным пхпбб на одном своем сайте (фантастическим образом исчезала учетная запись главного админа — постоянно перенастраивал все в БД), плюнул и твердо решил — проще заказывать эту работу. Так и действую. А вот битриксовый — впервые слышу. Надо будет посмотреть.

  4. 4 On 20.05.2011, seo-likes said:

    Спасибо, это действительно нужная информация. Давно уже думал уехать с phpbb — что-то он перестал мне нравится в последнее время

  5. 5 On 23.05.2011, ivntech said:

    не раз уже слыхал слово Битрикс но что то никогда внимания не обращал

  6. 6 On 03.06.2011, Айонщик said:

    Спасибо за статью, в интернете много интересного, ваш сайт не исключение! Учусь кодировать, хоть примеры посмотрю!

  7. 7 On 16.02.2012, seyfer said:

    Вы не могли бы выложить ваши измененные файлы скриптов?

  8. 8 On 19.11.2012, Перенос форума PHPBB3 на Битрикс | Блог GTAlex - о работе в сети и не только said:

    […] пару постов, где я подробно описал процесс миграции: Bitrix API: конвертация форума с PHPBB PHPBB 2 Битрикс — личные сообщения Но в данном случае […]

Оставить комментарий