سلام دوستان
آموزش هماهنگ سازي ديتالايف با انجمن ساز قدرتمند ويبولتين رو براتون آماده کردم
براي هماهنگ سازي اين دو سيستم شما بايد از يک هاست و يک دامنه استفاده کنيد
ابتدا فايل ضميمه را دانلود و در مسير مورد نظر آپلود کنيد
integration dle with vbulletin 4.0.3
سپس آدرس زير را اجرا کنيد
http://yoursite.com/install.php
فايل index.php را باز کنيد و به دنبال کد زير بگرديد
$tpl->load_template ( 'main.tpl' );
پس از آن کد زير را قرار دهيد
$tpl->set ( '{forum_last_vB}', forum_last_vB());
$tpl->set ( '{birthday_block}', birthday_user_forum());
$tpl->set ( '{birthday_block}', birthday_user_forum());
فايل engine/inc/editusers.php را باز کنيد و کد زير را پيدا کنيد
if( !defined( 'DATALIFEENGINE' ) OR !defined( 'LOGGED_IN' ) ) {
die( "Hacking attempt!" );
}
die( "Hacking attempt!" );
}
بعد از آن کد زير را قرار دهيد
require_once(ROOT_DIR.'/engine/modules/dle_vs_vb.php');
در همين فايل به دنبال کد زير بگرديد:
msg( "info", $lang['user_addok'], "$lang[user_ok] <b>$regusername</b> $lang[user_ok_1] <b>{$user_group[$reglevel]['group_name']}</b>", "$PHP_SELF?mod=editusers&action=list" );
قبل از آن کد زير را قرار دهيد
vb_admin_add($regusername, $regpassword, $regemail, $add_time);
در همين فايل به دنبال کد زير بگرديد:
$filecontents = '';
پس از آن کد زير را قرار دهيد
vb_admin_profile($editmail, $editlogin, $editpass, $editicq, $editland, $editinfo);
به دنبال کد زير بگرديد:
$db->query( "delete FROM " . USERPREFIX . "_pm WHERE user='$id'" );
پس از آن کد زير را قرار دهيد
vb_admin_del_user($row['name']);
فايل engine/modules/sitelogin.php را باز کنيد و کد زير را پيدا کنيد
if( ! defined( 'DATALIFEENGINE' ) ) {
die( "Hacking attempt!" );
}
die( "Hacking attempt!" );
}
بعد از آن کد زير را قرار دهيد
require_once(ROOT_DIR.'/engine/modules/dle_vs_vb.php');
در همين فايل کد زير را پيدا کنيد
if( isset( $_REQUEST['action'] ) and $_REQUEST['action'] == "logout" ) {
و بعد از آن کد زير را قرار دهيد
if (isset($_SESSION['dle_user_id'])) vb_logout($_SESSION['dle_user_id']); elseif (isset($_COOKIE['dle_user_id'])) vb_logout($_COOKIE['dle_user_id']);
کد زير را پيدا کنيد
if( $is_logged ) {
بعد از آن کد زير را قرار دهيد
vb_login($member_login);
فايل engine/modules/pm.php را باز کنيد و کد زير را پيدا کنيد
$db->query( "UPDATE " . USERPREFIX . "_users set pm_all=pm_all+1, pm_unread=pm_unread+1 where user_id='$row[user_id]'" );
بعد از آن کد زير را قرار دهيد
vb_pm($member_id['name'], $name, $subj, $comments, $time, intval($_REQUEST['outboxcopy']));
در همين فايل کد زير را پيدا کنيد
if( ($row['user'] == $member_id['user_id'] and $row['folder'] == "inbox") or ($row['user_from'] == $member_id['name'] and $row['folder'] == "outbox") ) {
بعد از آن کد زير را قرار دهيد
vb_pm($row['pm_read'], $member_id['name'], '', '', '', $row['id'], "del");
کد زير را پيدا کنيد
if( ($row['user'] == $member_id['user_id'] and $row['folder'] == "inbox") or ($row['user_from'] == $member_id['name'] and $row['folder'] == "outbox") ) {
بعد از آن کد زير را قرار دهيد
vb_pm($row['pm_read'], $member_id['name'], '', '', '', $row['id'], "del");
کد زير را پيدا کنيد
$db->query( "UPDATE " . USERPREFIX . "_pm set pm_read='yes' where id='$row[id]'" );
بعد از آن کد زير را قرار دهيد
vb_pm('', $member_id['name'], '', '', '', $row['id'], "read");
فايل engine/modules/lostpassword.php را باز کنيد و کد زير را پيدا کنيد
$db->query( "DELETE FROM " . USERPREFIX . "_lostdb WHERE lostname='$douser'" );
بعد از آن کد زير را قرار دهيد
vb_lostpassword($username, $new_pass);
فايل engine/modules/register.php را باز کنيد و کد زير را پيدا کنيد
$db->query( "UPDATE " . USERPREFIX . "_users set fullname='$fullname', info='$info', land='$land', icq='$icq', xfields='$filecontents' where name='$user'" );
بعد از آن کد زير را قرار دهيد
vb_register($user, "", "", '', $land, $icq, $info, "update");
کد زير را پيدا کنيد
$id = $db->insert_id();
قبل از آن کد زير را قرار دهيد
vb_register($name, $user_arr[2], $email, $add_time , "", "", "", "new");
فايل engine/modules/profile.php را باز کنيد و کد زير را پيدا کنيد
if( strlen( $password1 ) > 0 ) {
قبل از آن کد زير را قرار دهيد
vb_editpofile($icq, $email, md5($password1), $user, $land, $info);
فايل engine/modules/show.full.php را باز کنيد و کد زير را پيدا کنيد
$tpl->compile( 'content' );
قبل از آن کد زير را قرار دهيد
if ($config_vb['goforum'] && $config_vb['allow_module'] && $config_vb['forumid'][$row['category']] != "") {
$link_on_forum = preg_replace('/{link_on_forum}/',$config['http_home_url']."?do=goforum&postid=".$row['id'],
$config_vb['link_on_forum']);
$tpl->set('{link_on_forum}', $link_on_forum); }
else $tpl->set('{link_on_forum}', "");
$link_on_forum = preg_replace('/{link_on_forum}/',$config['http_home_url']."?do=goforum&postid=".$row['id'],
$config_vb['link_on_forum']);
$tpl->set('{link_on_forum}', $link_on_forum); }
else $tpl->set('{link_on_forum}', "");
فايل templates/{THEME}/main.tpl را باز کنيد و قبل از کد زير را قرار دهيد
<link rel="stylesheet" type="text/css" href="{THEME}/css/vblaststyle.css" />
فايل register.php ويبولتين را باز کنيد و به دنبال کد زير بگرديد
require_once(DIR . '/includes/functions_misc.php');
بعد از آن کد زير را قرار دهيد
require_once('../engine/modules/dle_vs_vb.php');
کد زير را پيدا کنيد
$vbulletin->userinfo['userid']
= $userid
= $userdata->save();
= $userid
= $userdata->save();
بعد از آن کد زير را قرار دهيد
dle_register($vbulletin->GPC['username'], $vbulletin->GPC['password'], $vbulletin->GPC['password_md5'], $vbulletin->GPC['emailconfirm'], $vbulletin->GPC['bblastvisit']);
فايل login.php ويبولتين را باز کنيد و به دنبال کد زير بگرديد
require_once(DIR . '/includes/functions_login.php');
بعد از آن کد زير را قرار دهيد
require_once('../engine/modules/dle_vs_vb.php');
کد زير را پيدا کنيد
if ($_REQUEST['do'] == 'logout')
{
{
بعد از آن کد زير را قرار دهيد
dle_logout();
کد زير را پيدا کنيد
process_new_login($vbulletin->GPC['logintype'], $vbulletin->GPC['cookieuser'], $vbulletin->GPC['cssprefs']);
بعد از آن کد زير را قرار دهيد
dle_login($vbulletin->GPC['vb_login_username'], $vbulletin->GPC['vb_login_password'], $vbulletin->GPC['vb_login_md5password'], $vbulletin->GPC['bblastvisit']);
در همين فايل کد زير را پيدا کنيد
$userdata->save();
بعد از آن کد زير را قرار دهيد
dle_lostpassword($userinfo['username'], md5(md5($newpassword)));
فايل profile.php ويبولتين را باز کنيد و به دنبال کد زير بگرديد
require_once(DIR . '/includes/functions_user.php');
بعد از آن کد زير را قرار دهيد
require_once('../engine/modules/dle_vs_vb.php');
در همين فايل کد زير را پيدا کنيد
if ($activate)
قبل از آن کد زير را قرار دهيد
dle_editpofile('', $vbulletin->GPC['emailconfirm'], $vbulletin->GPC['currentpassword'], $vbulletin->GPC['newpasswordconfirm'], $vbulletin->userinfo['username'], '', '');
کد زير را پيدا کنيد
if ($vbulletin->session->vars['profileupdate'])
قبل از آن کد زير را قرار دهيد
dle_editpofile($vbulletin->GPC['icq'], "", "", "", $vbulletin->userinfo['username'], $vbulletin->GPC['userfield']['field2'], $vbulletin->GPC['userfield']['field1']);
فايل private.php ويبولتين را باز کنيد و به دنبال کد زير بگرديد
require_once(DIR . '/includes/functions_misc.php');
بعد از آن کد زير را قرار دهيد
require_once('../engine/modules/dle_vs_vb.php');
کد زير را پيدا کنيد
$deletePmSql = "DELETE FROM " . TABLE_PREFIX . "pm WHERE pmid IN(" . implode(', ', $pmids) . ")";
قبل از آن کد زير را قرار دهيد
dle_pm('', $vbulletin->userinfo['username'], '', '', '', $pmids, "del");
کد زير را پيدا کنيد
$pmdm->save();
بعد از آن کد زير را قرار دهيد
dle_pm($pmdm->pmtext['fromusername'], $pmdm->pmtext['touserarray'], $pmdm->pmtext['title'], $pmdm->pmtext['message'], $pmdm->pmtext['dateline'], $pmdm->info['savecopy']);
در همين فايل کد زير را پيدا کنيد
$db->shutdown_query("UPDATE " . TABLE_PREFIX . "pm SET messageread=1 WHERE userid=" . $vbulletin->userinfo['userid'] . " AND pmid=$pm[pmid]");
بعد از آن کد زير را قرار دهيد
dle_pm('', $vbulletin->userinfo['username'], '', '', '', $pm['pmid'], "read");
براي نمايش آخرين ارسال ها از تگ {forum_last_vB} استفاده کنيد
با استفاده از اين هک قسمت هاي عضويت , پيام خصوصي , ورود , آمار و lostpassword هماهنگ مي شوند.
اين هک بر روي ورژن 4.0.3 ويبولتين و اکثر ورژن هاي 3.8.4 به بعد قابل اجرا است
اگر مشکلي داشتيد در بخش نظرات بگيد