137 lines
3.4 KiB
JavaScript
137 lines
3.4 KiB
JavaScript
/************************************************/
|
|
/* IPB3 Javascript */
|
|
/* -------------------------------------------- */
|
|
/* ips.facebook.js - Facebook Connect code */
|
|
/* (c) IPS, Inc 2008 */
|
|
/* -------------------------------------------- */
|
|
/* Author: Matt Mecham, Rikki Tissier */
|
|
/************************************************/
|
|
|
|
var _vk = window.IPBoard;
|
|
|
|
_vk.prototype.vkontakte = {
|
|
|
|
linkedMember: {},
|
|
vkMemberInfo: {},
|
|
|
|
/*------------------------------*/
|
|
/* Constructor */
|
|
init: function()
|
|
{
|
|
Debug.write("Initializing ips.vkontakte.js");
|
|
|
|
},
|
|
|
|
show_loginButton: function()
|
|
{
|
|
var content = $('vk-template-button').innerHTML;
|
|
$('vkUserBox').update( content );
|
|
|
|
$('vk_login').observe( 'click', function() {
|
|
$('vk_frame').contentWindow.doLogin();
|
|
});
|
|
|
|
},
|
|
|
|
|
|
/**
|
|
* Updates the log in box
|
|
*
|
|
*/
|
|
login_updateBox: function()
|
|
{
|
|
|
|
/* INIT */
|
|
var content = $('vk-template-main').innerHTML;
|
|
|
|
content = content + $('vk-template-linked').innerHTML;
|
|
$('vkUserBox').update( content );
|
|
|
|
$('openapi_user').innerHTML = ipb.vkontakte.vkMemberInfo.name;
|
|
$('vk_linkForm').action = $('vk_linkForm').action + '?key=' + ipb.vkontakte.linkedMember['key'];
|
|
$('openapi_userlink').href = 'http://vkontakte.ru/id' + ipb.vkontakte.vkMemberInfo.id;
|
|
$('openapi_userphoto').src = ipb.vkontakte.vkMemberInfo.photo;
|
|
|
|
/* Set up handlers */
|
|
if ( $('vk_link') )
|
|
{
|
|
$('vk_link').observe('click', ipb.vkontakte.login_linkAcc );
|
|
}
|
|
|
|
if ( $('vk_complete') )
|
|
{
|
|
$('vk_complete').observe('click', ipb.vkontakte.login_complete );
|
|
}
|
|
|
|
if ( $('vk_logout') )
|
|
{
|
|
$('vk_logout').observe( 'click', function() {
|
|
$('vk_frame').contentWindow.doLogout();
|
|
});
|
|
}
|
|
},
|
|
|
|
initUserCP: function()
|
|
{
|
|
$('tc_remove').observe( 'click', ipb.vkontakte.usercp_remove );
|
|
},
|
|
|
|
/**
|
|
* Loads the URL to remove the app
|
|
*
|
|
*/
|
|
usercp_remove: function()
|
|
{
|
|
window.location = ipb.vars['base_url'] + 'app=core&module=usercp&tab=members&area=vkRemove&do=custom&secure_key=' + ipb.vars['secure_hash'];
|
|
},
|
|
|
|
/**
|
|
* Simply submits our form so PHP can do the final checks
|
|
*
|
|
*/
|
|
login_complete: function()
|
|
{
|
|
$('vk_linkForm').submit();
|
|
},
|
|
|
|
/**
|
|
* Check, via AJAX for an existing account
|
|
*
|
|
*/
|
|
login_linkAcc: function()
|
|
{
|
|
window.location = ipb.vars['base_url'] + 'app=core&module=usercp&tab=members&area=vkLink&do=custom&secure_key=' + ipb.vars['secure_hash'];
|
|
},
|
|
|
|
/**
|
|
* Check to see if the facebook user is linked to an IPB account
|
|
*/
|
|
loadUser: function(data)
|
|
{
|
|
/* Already been here? */
|
|
if ( typeof( ipb.vkontakte.linkedMember['member_id'] ) != 'undefined' )
|
|
{
|
|
return;
|
|
}
|
|
|
|
/* Fetch FB ID */
|
|
vkUserId = data.id;
|
|
ipb.vkontakte.vkMemberInfo = data;
|
|
|
|
/* Got a linked member? */
|
|
new Ajax.Request( ipb.vars['base_url'] + '&app=core&module=ajax&secure_key=' + ipb.vars['secure_hash'] + '§ion=vkontakte&do=getUserByVkId',
|
|
{
|
|
method: 'post',
|
|
parameters: data,
|
|
evalJSON: 'force',
|
|
onSuccess: function(t)
|
|
{
|
|
ipb.vkontakte.linkedMember = t.responseJSON;
|
|
ipb.vkontakte.login_updateBox();
|
|
}
|
|
}
|
|
);
|
|
}
|
|
}
|
|
|
|
ipb.vkontakte.init(); |