Files
firstgarden-web-gnu/skin/social/social_u_register_form.skin.php
2018-03-30 17:40:37 +09:00

163 lines
5.1 KiB
PHP

<?php
if (!defined('_GNUBOARD_')) exit;
if( ! $config['cf_social_login_use']) { //소셜 로그인을 사용하지 않으면
return;
}
$socials = social_get_provider_service_name('', 'all');
$session_id = session_id();
add_stylesheet('<link rel="stylesheet" href="'.get_social_skin_url().'/style.css">', 10);
?>
<li>
<label class="frm_label">SNS 로그인 관리</label>
<div class="reg-form sns-wrap-reg">
<div class="sns-wrap">
<?php foreach( $socials as $social=>$provider_name ){
if( !option_array_checked($social, $config['cf_social_servicelist'])) {
continue;
}
$social_nonce = social_nonce_create($social, $session_id);
$add_class='';
$title='';
if( in_array($social, $my_provides) ){
$link_href = G5_SOCIAL_LOGIN_URL.'/unlink.php?provider='.$social.'&amp;social_nonce='.$social_nonce;
$title = $provider_name.' 연결을 해제합니다.';
} else {
$add_class = ' sns-icon-not';
$link_href = $self_url.'?provider='.$social.'&amp;mylink=1&amp;url='.$urlencode;
$title = $provider_name.' 계정을 연결 합니다.';
}
?>
<a href="<?php echo $link_href; ?>" id="sns-<?php echo $social; ?>" class="sns-icon social_link sns-<?php echo $social; ?><?php echo $add_class; ?>" title="<?php echo $title; ?>" data-provider="<?php echo $social; ?>" ><span class="ico"></span><span class="txt"><?php echo $provider_name; ?> 로그인</span></a>
<?php } //end foreach ?>
</div>
</div>
</li>
<script>
function social_get_nonce(provider){
var socials = [];
<?php foreach( $socials as $social=>$v ){ ?>
socials["<?php echo $social; ?>"] = "<?php echo social_nonce_create($social, $session_id); ?>";
<?php } ?>
return (typeof socials[provider] != 'undefined') ? socials[provider] : '';
}
function social_link_fn(provider){
provider = provider.toLowerCase();
var $icon = jQuery("#sns-"+provider);
if( $icon.length ){
var social_url = "<?php echo G5_SOCIAL_LOGIN_URL; ?>",
link_href = social_url+"/unlink.php?provider="+provider+"&social_nonce="+social_get_nonce(provider),
atitle = provider+" 연결을 해제합니다.";
$icon.attr({"href":link_href, "title":atitle}).removeClass("sns-icon-not");
alert('연결 되었습니다');
return true;
}
return false;
}
jQuery(function($){
var social_img_path = "<?php echo G5_SOCIAL_LOGIN_URL; ?>",
self_url = "<?php echo $self_url; ?>",
urlencode = "<?php echo $urlencode; ?>";
$(".sns-wrap").on("click", ".social_link", function(e){
e.preventDefault();
var othis = $(this);
if( ! othis.hasClass('sns-icon-not') ){ //소셜계정 해제하기
if (!confirm('정말 이 계정 연결을 해제하시겠습니까?')) {
return false;
}
var ajax_url = "<?php echo G5_SOCIAL_LOGIN_URL.'/unlink.php' ?>",
mb_id = '',
provider = $(this).attr("data-provider");
if( ! provider ){
alert("잘못된 요청! provider 값이 없습니다.");
return false;
}
$.ajax({
url: ajax_url,
type: 'POST',
data: {
'provider': provider,
'mb_id': mb_id,
'nonce' : social_get_nonce(provider)
},
dataType: 'json',
cache : false,
async: false,
success: function(data, textStatus) {
if (data.error) {
alert(data.error);
return false;
} else {
var atitle = provider+" 계정을 연결 합니다.",
link_href = self_url+"?provider="+provider+"&mylink=1&url="+urlencode;
othis.attr({"href":link_href, "title":atitle}).addClass("sns-icon-not");
}
},
error: function(data) {
try { console.log(data) } catch (e) { alert(data.error) };
}
});
} else { //소셜계정 연결하기
var pop_url = $(this).attr("href");
var is_popup = "<?php echo G5_SOCIAL_USE_POPUP; ?>";
if( is_popup ){
var newWin = window.open(
pop_url,
"social_sing_on",
"location=0,status=0,scrollbars=0,width=600,height=500"
);
if(!newWin || newWin.closed || typeof newWin.closed=='undefined')
alert('브라우저에서 팝업이 차단되어 있습니다. 팝업 활성화 후 다시 시도해 주세요.');
} else {
location.replace(pop_url);
}
}
return false;
});
});
</script>