1. В файл шаблона design/ваш шаблон/html/index.tpl перед закрытием тега </head> вставим такой код:
Код: Выделить всё
<!-- Ulogin -->
<script src="http://ulogin.ru/js/ulogin.js"></script>
<div id="uLogin" data-ulogin="display=small;fields=first_name,last_name,email,phone;providers=vkontakte,facebook,odnoklassniki,mailru;hidden=other;redirect_uri=http://ваш-сайт.ru/user/login"></div>
<!-- end -->
2. В фале view/LoginView.php после 64-й строки вставим такой код:
Код: Выделить всё
// Вход через ULogin
elseif(isset($_POST['token']))
{
$s = file_get_contents('http://ulogin.ru/token.php?token='.$_POST['token'].'&host='.$_SERVER['HTTP_HOST']);
$simpla = json_decode($s, true);
if (isset($simpla['identity'])){
$name = $simpla['first_name'].' '.$simpla['last_name'];
$email = $simpla['email'];
$phone = $simpla['phone'];
$password = md5($simpla['identity'].'Noxter');
// Проверяем есть ли в БД такой e-mail
$this->db->query('SELECT count(*) as count, id FROM s_users WHERE email=?', $email);
$user_exists = $this->db->result();
if($user_id = $this->users->check_password($email, $password))
{
$user = $this->users->get_user($email);
if($user->enabled)
{
$_SESSION['user_id'] = $user_id;
header('Location: '.$this->config->root_url);
}
else
{
$this->design->assign('error', 'user_disabled');
}
}
elseif($user_exists->count)
{
$_SESSION['user_id'] = $user_exists->id;
header('Location: '.$this->config->root_url);
}
else
{
$user_id = $this->users->add_user(array(
'name'=>$name,
'email'=>$email,
'password'=>$password,
'enabled'=>1)
);
$_SESSION['user_id'] = $user_id;
header('Location: '.$this->config->root_url);
}
}
}
Ссылка на автора: http://simpla-addons.org/blog/modules/2xx-avtorizatsiya-cherez-sotsialnye-seti