Интеграция phpBB и danneo cms, небольшой хак
Danneo cms имеет встроенную интеграцию с phpBB 3.0.x. При ее использовании осуществляется совместная регистрация, лог-ин и лог-аут. Но при этом используется таблица _users форума, а таблица пользователей даннео вообще никак не используется. В чем тут недостаток? Да хотя бы в том, что пароли в phpBB хэшируются специальным методом, в то время как остальные cms в большинстве своем используют для хэширования md5. Поэтому потом вы можете нажить некоторые проблемы с этим, так как у вас попросту не будет нужных хэшей.
В связи с этим я задумал сделать дублирование аккаунтов. При регистрации нового пользователя добавляется запись как в таблицу форума, так и в таблицу сайта. При этом можно в любой момент разделить сайт и форум, и они продолжать нормально функционировать без потери пользователей.
Итак, перейдем к делу. После стандартных настроек интеграции через danneo лезем править файлы форума.
Открываем includes/ucp/ucp_register.php
Находим (строки 327-328)
'user_inactive_time' => $user_inactive_time,
);
Добавляем, после:
// for danneo's table [by FladeX]
$user_cmspass = md5($data['new_password']);
Находим (строка 331)
$user_id = user_add($user_row, $cp_data);
Добавляем, после
// Duplicate user in cms database [by FladeX]
cmsuser_add($user_row, $user_id, $user_cmspass);
Открываем includes/functions_user.php
Находим (строки 296-297):
return $user_id;
}
Добавляем, после
function cmsuser_add($user_row, $user_id, $user_cmspass)
{
global $db, $user, $auth, $config, $phpbb_root_path, $phpEx;
$username = $user_row['username'];
$user_email = strtolower($user_row['user_email']);
$user_regdate = $user_row['user_regdate'];
$sql = "INSERT INTO danneo_users (userid, uname, upass, umail, regdate, activate) VALUES ('$user_id', '$username', '$user_cmspass', '$user_email', '$user_regdate', 1)";
$db->sql_query($sql);
}
Сохраните изменения и закройте файлы.
Примечания.
1. Вместо «danneo» должен быть ваш префикс таблиц danneo.
2. id пользователей не должны различаться. Во всяком случае id крайнего пользователя в phpBB не должен быть меньше id крайнего пользователя в danneo. А вообще хак делался для ситуации когда id не различаются.
3. Файлы необходимо открывать в кодировке utf-8 (unicode)