Быстрый лёгкий надёжный форумный движок
Вы не вошли.
Страницы 1
Тема закрыта
Возможно, ли интегрировать форум с этими торрентами, чтобы логины и пароли создавались при регистрации на торрент и автоматический для форума такие же. А так же что бы форум мог находиться как бы внутри торрента как тут phpbb http://www.filehack.net/forums.php
Редактировался Trams (2008-06-16 13:27:28)
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 = "Последние сообщения с форума";
?>
Вроде всё
Редактировался NeoN (2008-10-05 11:29:59)
спс, очень помог
Страницы 1
Тема закрыта