Конвертируем IPB 2.3.x в phpBB 3.0.5

Переход с IPB на phpBB довольно веселое дело :) . Приготовьтесь к тому, что просто «откинуться на спинку кресла» не получится.

Я воспользовался конвертором, который выложили вот здесь:
http://www.phpbb.com/community/viewtopic.php?f=65&t=576207&sid=f4e5ac48a626429fa8c49f016248d1ed&start=210#p9367695

Конвертор придется немного подправить.

В файле functions_ipb23.php в функции phpbb_set_encoding нужно прописать кодировку исходного форума IPB:

function phpbb_set_encoding($text, $grab_user_lang = true)
{
	global $lang_enc_array, $convert_row, $db_character_set;
	global $convert, $phpEx;
 
	// get from Table:language, charset=
	//$db_character_set = 'iso-8859-1';
	// Sergei_T
	$db_character_set = 'windows-1251';
	$encoding = $db_character_set;
 
	return utf8_recode($text, $encoding);
}

У меня, после конвертирования, пользователи с русскими именами были перенесены неправильно, в файле convert_ipb23.php ищем строчки:

738
739
array('username', 'members.name', array('function1' => 'ipb_fix_name', 'function2' => 'phpbb_set_encoding', 'function3' => 'utf8_htmlspecialchars')),
array('username_clean', 'members.name', array('function1' => 'ipb_fix_name', 'function2' => 'phpbb_set_clean_name')),

Заменяем на:

array('username',	'members.name', array('function1' => 'phpbb_set_encoding', 'function2' => 'utf8_htmlspecialchars')),
array('username_clean', 'members.name', array('function1' => 'phpbb_set_clean_name')),

Кодировка имен пользователей будет сохранена, но после конвертации нужно будет запустить скрипт username_clean.php, чтобы пользователи с русскими именами могли нормально заходить на форум.

Конвертор с моими изменениями (оригинал в комплекте): IPB2.3.x_to_phpBB3_04a_Sergei_T.tar.gz

Сначала делаем дамп базы IPB, например, так:

mysqldump -u root -p ipbbase > ipbbase-dump

Создаем в консоли MySQL базу и пользователя для phpBB:

create database phpbb-base;
create user 'phpbb-base-user'@'localhost' identified by your-password;
grant all on phpbb-base.* to 'phpbb-base-user'@'localhost';

Таблицы из дампа IPB копируем в созданную базу phpBB:

mysql -u root -p phpbb-base < ipbbase-dump

Для работы конвертора указываем пользователя и пароль к базе phpBB, во время работы конвертора данные из таблиц IPB будут перенесены в таблицы phpBB, поэтому не указывайте рабочую базу IPB.

После конвертирования может понадобится создать нового пользователя с правами администратора. Например, вот таким запросом (создает в базе phpBB нового пользователя с логином admin1 и паролем admin):

INSERT INTO phpbb_users (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) VALUES
(3, 5, 'Admin1', 'admin1', 0,
'21232f297a57a5a743894a0e4a801fc3',
'adm...@adm', 'en', 1, 1, 'AA0000', 1,
'', '', '', '', '', 't', 'a', 't', 'd', '', '', '',
'', '', '', '', '', '', '', '', '', '', '');

Распечатать Распечатать

Другие записи:

Поднимаем Openfire на Debian 5
Поднимаем учет трафика на Squid и TraffPRO – Часть 1
MySQL: сделаем это по-быстрому
Монтирование удаленных ресурсов с помощью Gigolo
Запрещаем выполнять команды по ssh, но разрешаем scp, sftp, cvs, rdist или rsync в Debian Lenny
Осторожно БОЯН! Сброс root пароля MySQL :)
Простое монтирование удаленного диска по sftp в консоли
Баг: не работает MailHide в WP-reCAPTCHA
Массовое переименование таблиц базы данных MySQL
Готовим WordPress к переносу с localhost

  1. Подопытным стал форум портала http://anime16.ru
    phpBB версия здесь: http://anime16.ru/forum

    Удалось перенести автоматически:
    Форумы
    Атачменты
    Смайлы
    Пользователей
    Подписи пользователей
    Аватары

  2. Darklord:

    Во-первых,выражаю благодарность за проделанную работу товарищу Sergei_T.Перенеслось отлично,но все же не без багов(а где вы видели все идеальное?),которые я буду отписывать по мере нахождения.Собственно нашел 2 мелких бага сразу,это:
    1.остался код [attachment]т.к. прикрепление изображений в phpbb иной.
    2.при цитировании появился код {POST_SNAPBACK} который посылает на гл.страницу.
    {ххх писал(а):
    Цитата(ххх @ 7.4.2009, 20:20) {POST_SNAPBACK}
    Bamboo blade,чето типа такого сматрю}

    Остальное буду отписывать по мере нахождения

  3. я думаю коды лишние в постах удалить SQL запросом может?

  4. Darklord:

    можно.

  5. чето неоткрывается http://anime16.ru/forum пишет 404.

  6. Форум убрал, т.к. админы с anime16 не могут решить кто из них главный и т.п. Теперь пусть делают сами)))

  7. 2cid:
    не лезь на мой блог

  8. А для какой версии IPB это подходит? А то у меня почему то не получается сконвертировать :(

  9. Нужно смотреть дамп базы – так сразу не скажешь. Обычно при переносе пользователей из ipb в phpbb затирается админская учетка, ее добавлял SQL запросом. С ipb 2.3 вроде нормально переносил пользователей.

Добавить комментарий

Ваш e-mail не будет опубликован.

Можно использовать следующие HTML-теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre lang="" line="" escaped="" highlight="">