Version 3.0.5
This commit is contained in:
1 parent
19b38c7c74
commit
1d4720f3e2
3755 files changed
+508378
-664541
No files matched your search
@@ -0,0 +1,233 @@
|
||||
/************************************************/
|
||||
/* IPB3 Javascript */
|
||||
/* -------------------------------------------- */
|
||||
/* ips.facebook.js - Facebook Connect code */
|
||||
/* (c) IPS, Inc 2008 */
|
||||
/* -------------------------------------------- */
|
||||
/* Author: Matt Mecham, Rikki Tissier */
|
||||
/************************************************/
|
||||
|
||||
var _fb = window.IPBoard;
|
||||
|
||||
_fb.prototype.facebook = {
|
||||
api: '',
|
||||
linkedMember: {},
|
||||
mem_fb_uid: 0,
|
||||
|
||||
/*------------------------------*/
|
||||
/* Constructor */
|
||||
init: function()
|
||||
{
|
||||
Debug.write("Initializing ips.facebook.js");
|
||||
|
||||
//document.observe("dom:loaded", function(){
|
||||
|
||||
//});
|
||||
},
|
||||
|
||||
/**
|
||||
* Wrapper for loadUser when used on the log in page
|
||||
*/
|
||||
login_loadUser: function()
|
||||
{
|
||||
/* Annoyingly, this has to go here */
|
||||
ipb.facebook.api = FB.Facebook.apiClient;
|
||||
|
||||
ipb.facebook.loadUser();
|
||||
},
|
||||
|
||||
/**
|
||||
* Wrapper for loadUser when used on the register page
|
||||
*/
|
||||
register_loadUser: function()
|
||||
{
|
||||
var content = $('fb-template-main').innerHTML;
|
||||
|
||||
/* Annoyingly, this has to go here */
|
||||
ipb.facebook.api = FB.Facebook.apiClient;
|
||||
|
||||
$('fbUserBox').update( content );
|
||||
FB.XFBML.Host.parseDomTree();
|
||||
|
||||
/* Set up handler */
|
||||
$('fbc_completeNewAcc').observe('click', ipb.facebook.login_completeNewAcc );
|
||||
},
|
||||
|
||||
/**
|
||||
* Wrapper for loadUser when used on the UserCP page
|
||||
*/
|
||||
usercp_loadUser: function()
|
||||
{
|
||||
/* Has this ID been saved, yet? */
|
||||
if ( ! ipb.facebook.mem_fb_uid )
|
||||
{
|
||||
window.location = ipb.vars['base_url'] + 'app=core&module=usercp&tab=members&area=facebookLink&do=custom&secure_key=' + ipb.vars['secure_hash'];
|
||||
}
|
||||
|
||||
var content = $('fb-template').innerHTML;
|
||||
|
||||
/* Annoyingly, this has to go here */
|
||||
ipb.facebook.api = FB.Facebook.apiClient;
|
||||
|
||||
$('fbUserBox').update( content );
|
||||
FB.XFBML.Host.parseDomTree();
|
||||
|
||||
/* Set up handler */
|
||||
$('userCPForm').observe( 'submit', ipb.facebook.stupidBug );
|
||||
$('fbc_remove').observe( 'click', ipb.facebook.usercp_remove );
|
||||
},
|
||||
|
||||
/**
|
||||
* Updates the log in box
|
||||
*
|
||||
*/
|
||||
login_updateBox: function()
|
||||
{
|
||||
/* INIT */
|
||||
var content = $('fb-template-main').innerHTML;
|
||||
|
||||
if ( ipb.facebook.linkedMember['member_id'] > 0 )
|
||||
{
|
||||
content = content + $('fb-template-linked').innerHTML;
|
||||
}
|
||||
else
|
||||
{
|
||||
content = content + $('fb-template-notlinked').innerHTML;
|
||||
}
|
||||
|
||||
$('fbUserBox').update( content );
|
||||
FB.XFBML.Host.parseDomTree();
|
||||
|
||||
/* Set up handlers */
|
||||
$('fbc_completeNewAcc').observe('click', ipb.facebook.login_completeNewAcc );
|
||||
$('fbc_completeWithLink').observe('click', ipb.facebook.login_linkCheck );
|
||||
$('fbc_complete').observe('click', ipb.facebook.login_complete );
|
||||
},
|
||||
|
||||
/**
|
||||
* Loads the URL to remove the app
|
||||
*
|
||||
*/
|
||||
usercp_remove: function()
|
||||
{
|
||||
window.location = ipb.vars['base_url'] + 'app=core&module=usercp&tab=members&area=facebookRemove&do=custom&secure_key=' + ipb.vars['secure_hash'];
|
||||
},
|
||||
|
||||
/**
|
||||
* Get around clashes with FBJS
|
||||
*
|
||||
*/
|
||||
stupidBug: function(e)
|
||||
{
|
||||
Event.stop(e);
|
||||
var location = $('userCPForm').action + '&secure_hash=' + ipb.vars['secure_hash'] + '&do=save';
|
||||
|
||||
[ '_pic', '_avatar', '_status', '_aboutme' ].each( function (i) {
|
||||
location += '&fbc_s' + i + '='+ ( $('fbc_s' + i).checked ? 1 : 0 );
|
||||
} );
|
||||
|
||||
window.location = location;
|
||||
return false;
|
||||
},
|
||||
|
||||
/**
|
||||
* Simply submits our form so PHP can do the final checks
|
||||
*
|
||||
*/
|
||||
login_completeNewAcc: function()
|
||||
{
|
||||
$('fbc_linkNewAccForm').submit();
|
||||
},
|
||||
|
||||
/**
|
||||
* Simply submits our form so PHP can do the final checks
|
||||
*
|
||||
*/
|
||||
login_complete: function()
|
||||
{
|
||||
$('fbc_linkAlreadyForm').submit();
|
||||
},
|
||||
|
||||
/**
|
||||
* Check, via AJAX for an existing account
|
||||
*
|
||||
*/
|
||||
login_linkCheck: function()
|
||||
{
|
||||
/* Fetch FB ID */
|
||||
fbUserId = ipb.facebook.api.get_session().uid;
|
||||
|
||||
new Ajax.Request( ipb.vars['base_url'] + '&app=core&module=ajax&secure_key=' + ipb.vars['secure_hash'] + '§ion=login&do=authenticateUser&fbid=' + fbUserId,
|
||||
{
|
||||
method: 'post',
|
||||
parameters: { 'emailaddress' : $('fbc_emailAddress').value, 'password' : $('fbc_password').value },
|
||||
evalJSON: 'force',
|
||||
onSuccess: function(t)
|
||||
{
|
||||
if( Object.isUndefined( t.responseJSON ) )
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
_result = t.responseJSON;
|
||||
|
||||
if ( _result['status'] == 'error' )
|
||||
{
|
||||
$('fbc_linkError').update("Email или пароль неверны.");
|
||||
$('fbc_linkError').show();
|
||||
}
|
||||
else
|
||||
{
|
||||
if ( _result['memberData']['fb_uid'] != 0 )
|
||||
{
|
||||
$('fbc_linkError').update("Пользователь уже связан с учетной записью facebook");
|
||||
$('fbc_linkError').show();
|
||||
}
|
||||
else
|
||||
{
|
||||
/* Submit the form and let PHP re-check this and use the facebook PHP ipb.facebook.api to validate the signature, etc */
|
||||
$('fbc_linkForm').submit();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
);
|
||||
},
|
||||
/**
|
||||
* Check to see if the facebook user is linked to an IPB account
|
||||
*/
|
||||
loadUser: function()
|
||||
{
|
||||
/* Already been here? */
|
||||
if ( typeof( ipb.facebook.linkedMember['member_id'] ) != 'undefined' )
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
/* Fetch FB ID */
|
||||
fbUserId = ipb.facebook.api.get_session().uid;
|
||||
|
||||
/* Got a linked member? */
|
||||
new Ajax.Request( ipb.vars['base_url'] + '&app=core&module=ajax&secure_key=' + ipb.vars['secure_hash'] + '§ion=facebook&do=getUserByFbId&fbid=' + fbUserId,
|
||||
{
|
||||
method: 'post',
|
||||
evalJSON: 'force',
|
||||
onSuccess: function(t)
|
||||
{
|
||||
if( Object.isUndefined( t.responseJSON ) )
|
||||
{
|
||||
ipb.facebook.linkedMember = { 'member_id' : 0 };
|
||||
}
|
||||
else
|
||||
{
|
||||
ipb.facebook.linkedMember = t.responseJSON;
|
||||
}
|
||||
|
||||
ipb.facebook.login_updateBox();
|
||||
}
|
||||
}
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
ipb.facebook.init();
|
||||
Reference in new issue
Block a user