Прикрутить форум к Самописному сайту.

Автор Оборонитель, 28 августа 2011, 15:15:40

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

Оборонитель

Есть сайт - http://monopolystar.ru
Сайт самописный.
Планирую поставить на него форум SMF, но хотелось бы сделать единую регистрацию, и если возможно единую авторизацию. При регистрации на сайте, сразу создавалась учетная запись на форуме.
Думаю лучше форум CMF 2.0, так как на 1.1.х мало дополнений.

Интересует кто с таким сталкивался, и как можно подобное реализовать?

Заранее благодарен

alex4715

Я конечно, не смог разобраться со своей бедой это фрейморк кохана режит все глобальные переменные. и сделал вот так как ниже, но это не верное решение. Но если сможешь можешь использовать. если тебе не что не мешает работать с глобальными переменными то можно тупо инклюдить файлы и использовать функции форума типа createTopics и тд, на офф сайте есть хорошее описание всех функций.


public function creatnUser($acc, $admin = false){
$regOpt = array(
'id_member' => $acc['user_id'],
'member_name'     => $acc['email'],
'email_address'     => $acc['email'],
'passwd'     => sha1(strtolower($acc['email']) . $acc['pass']),
'password_salt'     => substr(md5(mt_rand()), 0, 4) ,
'posts'     => 0,
'date_registered'   => time(),
'member_ip'     => $_SERVER['REMOTE_ADDR'],
'member_ip2'     =>  $_SERVER['REMOTE_ADDR'],
'validation_code'   => '',
'personal_text'     => '',
'pm_email_notify'   => 1,
'id_theme'     => 0,
'id_post_group'     => 4,
'lngfile'           => '',
'buddy_list'     => '',
'pm_ignore_list'    => '',
'message_labels'    => '',
'website_title'     => '',
'website_url'     => '',
'location'          => '',
'icq'     => '',
'aim'     => '',
'yim'     => '',
'msn'         => '',
'time_format'     => '',
'signature'     => '',
'avatar'          => '',
'usertitle'         => '',
'secret_question'   => '',
'secret_answer'     => '',
'additional_groups' => '',
'ignore_boards' => '',
'smiley_set' => '',
'openid_uri' => null,
);
$regOpt['real_name'] = substr($acc['email'], 0, strpos($acc['email'], '@'));
$regOpt['id_group'] = $admin?1:0;
foreach($regOpt as $k=>$v){
$keys[] = $k;
$values[] = $this->_db->escape($v);
}
$key = implode(',', $keys);
$value = implode(',', $values);
$this->_db->query(Database::INSERT, 'INSERT INTO smf_members ('.$key.') VALUES ('.$value.')', TRUE);
}

public function updateUser($acc, $id){
$acc['pass'] = sha1(strtolower($acc['email']) . $acc['pass']);
$this->_db->query(Database::UPDATE, 'UPDATE smf_members SET
email_address = '.$this->_db->escape($acc['email']).',
member_name = '.$this->_db->escape($acc['email']).',
passwd = '.$this->_db->escape($acc['pass']).' 
WHERE id_member = '.$this->_db->escape($id), TRUE);
}

public function updateUserInfo($user_id, $birthday, $city, $country){
$this->_db->query(Database::UPDATE, 'UPDATE smf_members SET
birthdate = '.$this->_db->escape($birthday).',
location = '.$this->_db->escape($country.'->'.$city).'
WHERE id_member = '.$this->_db->escape($user_id), TRUE);
}

public function loginUser($id){
global $cookiename, $boardurl, $modSettings;
$res = $this->_db->query(Database::SELECT, 'SELECT member_name, passwd, password_salt FROM smf_members WHERE id_member = '.$this->_db->escape($id), TRUE);
$user = $res[0]->member_name;
$passwrd = $res[0]->passwd;
$m = 'SMFCookie780';
if($res->count() > 0){
require_once("forum/Settings.php");
require_once("forum/Sources/Subs-Auth.php");
require_once("forum/Sources/Load.php");
setLoginCookie(60 * $m+24000+time(), $id, sha1($passwrd . $res[0]->password_salt));
}
}

public function logoutUser(){
setcookie ('SMFCookie780', "", time() - 124000);
}