Русское сообщество fluxbb

Быстрый лёгкий надёжный форумный движок

Вы не вошли.

Объявление

Вы можете внести свой вклад в содержание сайта. Жертвователи попадут в почетную группу "Спонсоры". Поддержать сайт.

#1 2008-06-16 13:26:01

Trams
Гость

Интеграция PunBB и Sky Tracker или (TBDev)

Возможно, ли интегрировать форум с этими торрентами, чтобы логины и пароли создавались при регистрации на торрент и автоматический для форума такие же. А так же что бы форум мог находиться как бы внутри торрента как тут phpbb http://www.filehack.net/forums.php

Редактировался Trams (2008-06-16 13:27:28)

#2 2008-10-05 11:28:34

NeoN
Гость

Re: Интеграция PunBB и Sky Tracker или (TBDev)

1. Качаем прилагающийся архив с форумом и заливаем в корень трекера и устанавливаем его, перейдя по ссылке http://yourtracker/forum/install.php, при установке выбираем тип базы "mysql", не "mysql improved", копируем предложенное в процессе установки содержание файла config.php, создаем его в корне папки forum и вставляем скопированный текст.
2. Создаем файлик include/punbb.php

<?
define('PUN_ROOT', './forum/');
require PUN_ROOT.'include/common.php';
function punlogout()
{
sql_query('DELETE FROM punbb_online WHERE username=pun_user["username"]');
pun_setcookie(1, random_pass(8), time() + 31536000);
}
?>

найти
3. takesignup.php

require_once("include/bittorrent.php");

после вставить

require_once("include/punbb.php");
define('PUN_QUIET_VISIT', 1);

найти

$wantpasshash = md5($secret . $wantpassword . $secret);

после вставить

$wantpunbb = pun_hash($wantpassword);

найти

} else {
    logincookie($id, $wantpasshash);
}

после вставить

$now = time();

$frminsert = sql_query("INSERT INTO punbb_users (username, password, email, registered, last_visit, registration_ip) VALUES('$wantusername', '$wantpunbb', '$email', '$now', '$now', '". get_remote_address() ."')") or sqlerr(__FILE__, __LINE__);

$expire = ($save_pass == '1') ? time() + 31536000 : 0;
pun_setcookie($id, $wantpunbb, $expire);

4. takelogin.php
найти

require_once("include/bittorrent.php");

после вставить

require_once("include/punbb.php");
define('PUN_QUIET_VISIT', 1);

найти

if ($row["enabled"] == "no")
     bark("Этот аккаунт отключен.");

после вставить

$ras = sql_query("SELECT username, password, id, save_pass FROM punbb_users WHERE username = " . sqlesc($username) . "");
$raw = mysql_fetch_array($ras);

$user_id = $raw['id'];
$form_password_hash = pun_hash($_POST['password']);

найти

logincookie($row["id"], $row["passhash"]);

после вставить

$expire = ($save_pass == '1') ? time() + 31536000 : 0;
pun_setcookie($user_id, $form_password_hash, $expire);

5. logout.php
Полностью заменить на

<?

require_once("include/bittorrent.php");
require_once("include/punbb.php");

dbconn();

punlogout();
logoutcookie();

Header("Location: $DEFAULTBASEURL/");

?>

6. takeprofedit.php
найти

require_once("include/bittorrent.php");

после вставить

require_once("include/punbb.php");
define('PUN_QUIET_VISIT', 1);

найти

if ($chpassword != $passagain)
        bark("Пароли не совпадают. Попробуйте еще раз.");

после вставить

$ras = sql_query("SELECT username, password, id, save_pass FROM punbb_users WHERE username = '$CURUSER[username]'");
    $raw = mysql_fetch_array($ras);

    $save_pass = $raw['save_pass'];
    $user_id = $raw['id'];
    $form_password_hash = pun_hash($_POST['chpassword']);
    sql_query("UPDATE punbb_users SET password = \"$form_password_hash\" WHERE username = '$CURUSER[username]'") or sqlerr(__FILE__,__LINE__);

    $expire = ($save_pass == '1') ? time() + 31536000 : 0;
    pun_setcookie($user_id, $form_password_hash, $expire);

7. для переноса юзеров из трекера в форум, создайте и запустите bt2punbb.php

<?

require_once("include/bittorrent.php");
dbconn(true);
loggedinorreturn();

$res = sql_query("SELECT *, UNIX_TIMESTAMP(added) AS time from users ORDER by id");
print ("INSERT INTO `punbb_users` (`id`, `group_id`, `username`, `password`, `email`, `title`, `realname`, `url`, `jabber`, `icq`, `msn`, `aim`, `yahoo`, `location`, `use_avatar`, `signature`, `disp_topics`, `disp_posts`, `email_setting`, `save_pass`, `notify_with_post`, `show_smilies`, `show_img`, `show_img_sig`, `show_avatars`, `show_sig`, `timezone`, `language`, `style`, `num_posts`, `last_post`, `registered`, `registration_ip`, `last_visit`, `admin_note`, `activate_string`, `activate_key`) VALUES
  (1,3,'Guest','Guest','Guest',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,NULL,NULL,NULL,1,1,0,1,1,1,1,1,0,'Russian','Oxygen',0,NULL,0,'0.0.0.0',0,NULL,NULL,NULL);<br><br>");
while ($arr = mysql_fetch_array($res)) {
    print ("INSERT INTO `punbb_users` (`id`,`username`,`password`,`registered`,`email`,`language`,`style`,`use_avatar`) VALUES ('$arr[id]','$arr[username]','$arr[passhash]','$arr[time]','$arr[email]','Russian','Thunder',1);<br>");
}

?>

скопируйте выданное содержание и добавьте все это в базу.
важное замечание: в punbb id=1 зарезервировано за гостем, поэтому если у вас на трекере имеется пользователь с id=1, в выданном скриптом коде, надо заменить id этого пользователя на любое другое неиспользованное.
8. после переноса пользователей, ввиду того, что в punbb используется другой метод шифрования паролей, каждому пользователю для доступа на форум придется сменить пароль на трекере (в редактировании анкеты в самом низу в трех полях прописать старый пароль).
9. Блок вывода последних сообщений blocks/block-forum.php

<?php
if (!defined('BLOCK_FILE')) {
 Header("Location: ../index.php");
 exit;
}

/*
# $pbb_dbhost - хост где расположена база форума
# $pbb_dbuser - имя юзера для доступа к базе
# $pbb_dbpass - пасс юзера для доступа к базе
# $pbb_dbname - название базы данных в которую установлен форум
# $pbb_dbprefix - префикс баз данныз форума
# $pbb_path - писать в виде ссылки!(как в примере внизу)..думаю смысл понятен
*/


$pbb_dbname = "x264";
$pbb_dbprefix = "punbb_";
$pbb_dbhost = "localhost";  
$pbb_dbuser = "root";
$pbb_dbpass= "";
$pbb_path = "/forum"; 

$xdbx=mysql_connect($pbb_dbhost, $pbb_dbuser, $pbb_dbpass,true);
mysql_select_db($pbb_dbname,$xdbx);

$content .= "<table width=\"100%\" cellpadding=\"2\" cellspacing=\"0\"><tr><td align=\"center\" class=\"colhead\">Тема</td><td align=\"center\" class=\"colhead\">Автор</td><td align=\"center\" class=\"colhead\">Ответов</td><td align=\"center\" class=\"colhead\">Посл. сообщение</td></tr>";



$xdbx=mysql_connect($pbb_dbhost, $pbb_dbuser, $pbb_dbpass,true);
mysql_select_db($pbb_dbname,$xdbx);
$a = 1;
$result = mysql_query("SELECT a.id,a.subject,FROM_UNIXTIME(a.last_post,'%d/%m/%Y в %T') as last_post,a.last_poster,num_views,num_replies,b.id from ".$pbb_dbprefix."topics a LEFT JOIN ".$pbb_dbprefix."users b ON b.username=a.last_poster ORDER BY a.last_post DESC LIMIT 0, 5", $xdbx);
while(list($topic_id,$topic_name, $post_time,$poster_name,$poster_id,$num_views,$num_replies) = mysql_fetch_row($result))

$content .= "<tr><td><a href=\"$pbb_path/viewtopic.php?id=$topic_id&action=new\">$topic_name</a></td><td align=\"center\"><a href=\"$pbb_path/profile.php?id=$poster_id\">$poster_name</a></td><td align=\"center\">$num_views</td><td align=\"center\">$post_time</td></tr>";

$content .= "</table>";

$blocktitle = "Последние сообщения с форума";
?>

Вроде всё wink

Редактировался NeoN (2008-10-05 11:29:59)

#3 2009-04-12 14:39:08

repin
Гость

Re: Интеграция PunBB и Sky Tracker или (TBDev)

спс, очень помог

Подвал доски

Под управлением FluxBB. Хостинг Hostens