';
if( $tmpl_mode == true ){
echo '';
}
$addthis_ssi_config = '
var addthis_config = {
login:{
services:{
facebook:{
appId:"'.get_option('addthis_ssi_fbid').'",scope:"email"
},
twitter:{
appKey:"'.get_option('addthis_ssi_twkey').'"
},
google:{
clientId:"'.get_option('addthis_ssi_googleid').'"
}
},
callback:function(user){
document.getElementById("addthis_signature").value = user.addthis_signature;
document.getElementById("addthis_firstname").value = user.firstName;
document.getElementById("addthis_lastname").value = user.lastName;
document.getElementById("addthis_email").value = user.email;
document.getElementById("addthis_profileurl").value = user.profileURL;
document.getElementById("addthis_avatarurl").value = user.thumbnailURL;
document.getElementById("loginform").submit();
}
}
};';
$addthis_addjs->addAfterScript( $addthis_ssi_config );
$addthis_addjs->output_script();
}
add_action( 'login_form', 'addthis_ssi_render_buttons' );
function addthis_ssi_render_fields(){
echo '
';
}
add_action( 'login_form', 'addthis_ssi_render_fields' );
function addthis_ssi(){
if ( is_user_logged_in() ) {
if( get_option('addthis_ssi_welcome_enabled') ) {
global $current_user;
get_currentuserinfo();
echo get_avatar( $current_user->ID, 30 ).' Hi '.$current_user->first_name;
}
} else {
addthis_ssi_render_buttons( true );
}
}
function addthis_ssi_getuser( $signature ) {
global $wpdb;
$sql = "SELECT user_id FROM $wpdb->usermeta WHERE meta_key = '%s' AND meta_value = '%s'";
$user_id = $wpdb->get_var( $wpdb->prepare( $sql, 'addthis_signature', $_REQUEST[ 'addthis_signature' ] ) );
return $user_id;
}
function addthis_social_sign_in() {
if ( version_compare( get_bloginfo( 'version' ) , '3.1' , '<' ))
require_once(ABSPATH . WPINC . '/registration.php');
if( $_REQUEST[ 'addthis_signature' ] != "" )
$user_id = addthis_ssi_getuser( $_REQUEST[ 'addthis_signature' ] );
$domain = parse_url( get_site_url() );
$user_email = $_REQUEST[ 'addthis_email' ] ? $_REQUEST[ 'addthis_email' ] : strtolower( $_REQUEST[ 'addthis_firstname' ].$_REQUEST[ 'addthis_lastname' ] ).'_'.time().'@'.$domain['host'];
if( $user_id ) {
$user_data = get_userdata( $user_id );
$user_login = $user_data->user_login;
} elseif( $user_id = email_exists( $user_email ) ) {
if ( $user_id && is_integer( $user_id ) ) {
update_user_meta( $user_id, 'addthis_signature', $_REQUEST[ 'addthis_signature' ] );
update_user_meta( $user_id, 'addthis_avatarurl', $_REQUEST[ 'addthis_avatarurl' ] );
}
} else {
$user_login = strtolower( str_replace(' ', '', $_REQUEST[ 'addthis_firstname' ]).str_replace(' ', '', $_REQUEST[ 'addthis_lastname' ]) );
if ( username_exists( $user_login ) )
$user_login = $user_login."_".time();
$userdata = array( 'user_login' => $user_login, 'user_email' => $user_email, 'first_name' => $_REQUEST[ 'addthis_firstname' ], 'last_name' => $_REQUEST[ 'addthis_lastname' ], 'user_url' => $_REQUEST[ 'addthis_profileurl' ], 'user_pass' => wp_generate_password() );
if( get_option('addthis_default_user_role') ) {
$userdata['role'] = get_option('addthis_default_user_role');
}
// Create a new user
$user_id = wp_insert_user( $userdata );
if ( $user_id && is_integer( $user_id ) ) {
update_user_meta( $user_id, 'addthis_signature', $_REQUEST[ 'addthis_signature' ] );
update_user_meta( $user_id, 'addthis_avatarurl', $_REQUEST[ 'addthis_avatarurl' ] );
}
}
wp_set_auth_cookie( $user_id );
$addthis_ssi_redirect_enabled = get_option('addthis_ssi_redirect_enabled');
$addthis_ssi_redirect_url = get_option('addthis_ssi_redirect_url');
// Redirect to custom URL if enabled
if( $addthis_ssi_redirect_enabled && $addthis_ssi_redirect_url ) {
$redirect_to = $addthis_ssi_redirect_url;
} else {
// Redirect to request page if redirect_to is set
if ( isset( $_REQUEST[ 'redirect_to' ] ) && $_REQUEST[ 'redirect_to' ] != '' ) {
$redirect_to = $_REQUEST[ 'redirect_to' ];
// Redirect to https if user wants ssl
if ( isset( $secure_cookie ) && $secure_cookie && false !== strpos( $redirect_to, 'wp-admin') )
$redirect_to = preg_replace( '|^http://|', 'https://', $redirect_to );
} else {
$redirect_to = admin_url();
}
}
wp_redirect( $redirect_to );
exit();
}
}
add_action( 'init', 'addthis_social_sign_in' );
if ( is_admin() ){
/* Settings page html code */
add_action( 'admin_menu', 'addthis_ssi_admin_menu' );
function addthis_ssi_admin_menu() {
add_options_page('AddThis Social Sign In', 'AddThis SSI', 'administrator','addthis-social-sign-in', 'addthis_ssi_html_page');
}
}
function addthis_ssi_html_page() {
wp_enqueue_script('adminscript', plugins_url('js/admin.js', __FILE__));
wp_enqueue_style( 'adminstyles', plugins_url('css/admin-styles.css', __FILE__) );
if ( version_compare( get_bloginfo( 'version' ) , '3.3' , '<' ))
wp_head();
require("views/settings.php");
}
function addthis_custom_avatar( $avatar, $id_or_email, $size, $default, $alt ) {
global $comment;
if( ! empty ( $avatar ) ) {
if( ! empty ( $id_or_email ) ) {
if ( is_numeric( $id_or_email ) ) {
$user_id = ( int ) $id_or_email;
}
elseif ( is_string( $id_or_email ) && ( $user = get_user_by( 'email', $id_or_email ) ) ) {
$user_id = $user->ID;
}
elseif ( is_object( $id_or_email ) && ! empty( $id_or_email->user_id ) ) {
$user_id = ( int ) $id_or_email->user_id;
}
}
//Check if we are in a comment
if ( ! is_null ( $comment ) && ! empty ( $comment->user_id ) ) {
$user_id = $comment->user_id;
}
if ( $user_id ) {
if ( ( $user_thumbnail = get_user_meta ( $user_id, 'addthis_avatarurl', true ) ) !== false ) {
if ( strlen ( trim ( $user_thumbnail ) ) > 0) {
$user_thumbnail = preg_replace ( '#src=([\'"])([^\\1]+)\\1#Ui', "src=\\1" . $user_thumbnail . "\\1", $avatar );
return $user_thumbnail;
}
}
}
}
return $avatar;
}
if( get_option('addthis_ssi_thumbnail_enabled') ) {
add_filter ( 'get_avatar', 'addthis_custom_avatar', 10, 5 );
}
function get_role_names() {
global $wp_roles;
if ( ! isset( $wp_roles ) )
$wp_roles = new WP_Roles();
return $wp_roles->get_names();
}
// Setup our shared resources early
add_action( 'init', 'addthis_ssi_shared', 0 );
function addthis_ssi_shared() {
global $addthis_addjs;
if ( !isset( $addthis_addjs ) ){
require('includes/addthis_addjs.php');
$addthis_options = get_option('addthis_settings');
$addthis_addjs = new AddThis_addjs( $addthis_options );
} elseif ( !method_exists( $addthis_addjs, 'getAtPluginPromoText' ) ){
require('includes/addthis_addjs_extender.php');
$addthis_addjs = new AddThis_addjs_extender( $addthis_options );
}
}
function addthis_ssi_remove() {
/* Deletes the database field */
delete_option('addthis_ssi_fbid');
delete_option('addthis_ssi_twkey');
delete_option('addthis_ssi_googleid');
delete_option('addthis_default_user_role');
delete_option('addthis_ssi_redirect_enabled');
delete_option('addthis_ssi_redirect_url');
delete_option('addthis_ssi_welcome_enabled');
delete_option('addthis_ssi_thumbnail_enabled');
}
/* Runs on plugin deactivation*/
register_deactivation_hook( __FILE__, 'addthis_ssi_remove' );
/* 2.9 compatability functions*/
if (! function_exists('get_site_url'))
{
function get_site_url( $blog_id = null, $path = '', $scheme = null ) {
// should the list of allowed schemes be maintained elsewhere?
$orig_scheme = $scheme;
if ( !in_array( $scheme, array( 'http', 'https', 'relative' ) ) ) {
if ( ( 'login_post' == $scheme || 'rpc' == $scheme ) && ( force_ssl_login() || force_ssl_admin() ) )
$scheme = 'https';
elseif ( ( 'login' == $scheme ) && force_ssl_admin() )
$scheme = 'https';
elseif ( ( 'admin' == $scheme ) && force_ssl_admin() )
$scheme = 'https';
else
$scheme = ( is_ssl() ? 'https' : 'http' );
}
if ( empty( $blog_id ) || !is_multisite() )
$url = get_option( 'siteurl' );
else
$url = get_blog_option( $blog_id, 'siteurl' );
if ( 'relative' == $scheme )
$url = preg_replace( '#^.+://[^/]*#', '', $url );
elseif ( 'http' != $scheme )
$url = str_replace( 'http://', "{$scheme}://", $url );
if ( !empty( $path ) && is_string( $path ) && strpos( $path, '..' ) === false )
$url .= '/' . ltrim( $path, '/' );
return apply_filters( 'site_url', $url, $path, $orig_scheme, $blog_id );
}
}
if (! function_exists('update_user_meta'))
{
function update_user_meta($user_id, $meta_key, $meta_value, $prev_value = '') {
return update_metadata('user', $user_id, $meta_key, $meta_value, $prev_value);
}
}
if (! function_exists('get_user_meta'))
{
function get_user_meta($user_id, $key = '', $single = false) {
return get_metadata('user', $user_id, $key, $single);
}
}
?>