Poniższa modyfikacja działa tylko jeśli php-fusion i punbb korzystają z jednej bazy. Jeśli prefix dla tabel punbb jest inny niż pun_ to musisz odpowiednio zmodyfikować poniższy skrypt.
1. Dla php-fusion
Otwórz maincore.php
Znajdź:
setcookie("fusion_user", $cookie_value, $cookie_exp, "/", "", "0");
Po dodaj:
//set punbb cookie
$pun_user = dbarray(dbquery('SELECT id, password, save_pass FROM pun_users WHERE username=\''.$user_name.'\''));
include_once 'forum/config.php';
setcookie($cookie_name, serialize(array($pun_user['id'], md5($cookie_seed.sha1($_POST['user_pass'])))), $cookie_exp, $cookie_path, $cookie_domain, $cookie_secure, true);
//
Otwórz register.php
Znajdź:
opentable($locale['400']);
Po dodaj:
// punbb forum
$result = mysql_query("INSERT INTO pun_users (username, password, email, use_avatar, email_setting, save_pass, notify_with_post, show_smilies, show_img, show_img_sig, show_avatars, show_sig, timezone, language, style, num_posts, registered, registration_ip, last_visit, signature) VALUES('$username', '".sha1($password1)."', '".$email."', 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 'English', 'Oxygen', 0, ".time().", '".USER_IP."', ".time().", '$user_sig')") or die(mysql_error());
Otwórz setuser.php
Znajdź:
setcookie("fusion_user", "", time() - 7200, "/", "", "0");
Przed dodaj:
// wylogowywanie z punbb
// wyciąganie z bazy fusiona nazwy użytkownika do wylogowania (nie wiem jak inaczej usunąć usera z listy użytkowników online w punbb)
$cookie_vars = explode(".", $_COOKIE['fusion_user']);
$data = dbarray(dbquery("SELECT online_user FROM ".$db_prefix."online WHERE online_ip='".USER_IP."'"));
$data2 = dbarray(dbquery("SELECT user_name FROM ".$db_prefix."users WHERE user_id='".$data['online_user']."'"));
// usuwanie usera z listy online w punbb
dbquery("DELETE FROM pun_online WHERE ident='".$data2['user_name']."'");
// usuwanie cookie'sa
include_once 'forum/config.php';
setcookie($cookie_name, '', 0, $cookie_path, $cookie_domain, $cookie_secure, true);
//
2. Dla PunBB
Otwórz login.php
Znajdź:
else if ($action == 'out')
{
Po dodaj:
header('Location: ../setuser.php?logout=yes');
Znajdź:
else if ($action == 'forget' || $action == 'forget_2')
{
Po dodaj:
header('Location: ../lostpassword.php');
Znajdź:
require PUN_ROOT.'footer.php';
}
Zamień na:
require PUN_ROOT.'footer.php';
} else {
header('Location: ../login.php');
}
PS. Forum ścięło tabulatory - w załączniku instrukcja z tabulatorami ;) Nie wiem czy wszystko działa jak powinno, potestujcie i zdajcie relacje ;P
daris dodał/a następującą plik:
Edytowane przez daris dnia 17.02.2008 14:48:29
|