Интеграция 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)

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

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.