Merge remote-tracking branch '그누보드/master'
# Conflicts: # adm/shop_admin/orderform.php # bbs/register_form_update.php # lib/common.lib.php # mobile/shop/personalpayform.sub.php # plugin/htmlpurifier/extend.video.php # plugin/kcaptcha/kcaptcha.lib.php # shop/orderformupdate.php # skin/social/social_register_member.skin.php # version.php
This commit is contained in:
85
skin/member/basic/consent_modal.inc.php
Normal file
85
skin/member/basic/consent_modal.inc.php
Normal file
@ -0,0 +1,85 @@
|
||||
<!-- HTML -->
|
||||
<?php if (!defined('_GNUBOARD_')) exit; ?>
|
||||
<dialog id="consentDialog" aria-labelledby="consentDialogTitle" aria-describedby="consentDialogBody">
|
||||
<form method="dialog" class="cd-card">
|
||||
<header class="cd-head">
|
||||
<h3 id="consentDialogTitle" class="cd-title">안내</h3>
|
||||
</header>
|
||||
<div id="consentDialogBody" class="cd-body"></div>
|
||||
<footer class="cd-actions">
|
||||
<button type="button" class="cd-agree">동의합니다</button>
|
||||
<button value="close" class="cd-close">닫기</button>
|
||||
</footer>
|
||||
</form>
|
||||
</dialog>
|
||||
|
||||
<!-- 스타일 -->
|
||||
<style>
|
||||
#consentDialog { padding:0; border:none; border-radius:12px; }
|
||||
#consentDialog::backdrop { background: rgba(0,0,0,.45); backdrop-filter: blur(5px);}
|
||||
.cd-card { min-width: 320px; max-width: 560px; background:#fff; border-radius:12px; }
|
||||
.cd-head { display:flex; align-items:center; justify-content:space-between; padding:16px; }
|
||||
.cd-title { margin:0; font-size:18px; font-weight:bold; }
|
||||
.cd-body { max-height:500px; overflow-y:auto; padding:16px; border-top:1px solid #e6e6e9; border-bottom:1px solid #e6e6e9; line-height:1.6; font-size:14px; color:#222; }
|
||||
.cd-actions { display:flex; gap:8px; justify-content:flex-end; padding:12px 16px 16px; }
|
||||
.cd-actions .cd-agree { padding:8px 14px; border:1px solid #3a8afd; background:#3a8afd; color:#fff; border-radius:8px; }
|
||||
.cd-actions .cd-close { padding:8px 14px; border:1px solid #ccc; background:#fff; color:#111; border-radius:8px; }
|
||||
</style>
|
||||
|
||||
<!-- JS -->
|
||||
<script>
|
||||
(function(){
|
||||
const dlg = document.getElementById('consentDialog');
|
||||
if (!dlg) return;
|
||||
|
||||
const body = document.getElementById('consentDialogBody');
|
||||
const titleE = document.getElementById('consentDialogTitle');
|
||||
let opener = null;
|
||||
|
||||
const openFrom = (btn) => {
|
||||
opener = btn;
|
||||
const tplSel = btn.getAttribute('data-template');
|
||||
const title = btn.getAttribute('data-title') || '안내';
|
||||
const tpl = tplSel ? document.querySelector(tplSel) : null;
|
||||
|
||||
titleE.textContent = title;
|
||||
body.innerHTML = tpl ? tpl.innerHTML : '';
|
||||
|
||||
dlg.dataset.check = btn.getAttribute('data-check') || '';
|
||||
dlg.dataset.checkGroup = btn.getAttribute('data-check-group') || '';
|
||||
|
||||
if (dlg.showModal) dlg.showModal(); else dlg.setAttribute('open','');
|
||||
};
|
||||
|
||||
const closeDialog = () => {
|
||||
if (dlg.close) dlg.close(); else dlg.removeAttribute('open');
|
||||
if (opener) opener.focus();
|
||||
};
|
||||
|
||||
document.addEventListener('click', (e)=>{
|
||||
const trigger = e.target.closest('.js-open-consent');
|
||||
if (trigger) { openFrom(trigger); return; }
|
||||
|
||||
if (e.target.classList.contains('cd-agree')) {
|
||||
const sel = dlg.dataset.check;
|
||||
const groupSel = dlg.dataset.checkGroup;
|
||||
|
||||
if (groupSel) {
|
||||
document.querySelectorAll(groupSel).forEach(cb => {
|
||||
cb.checked = true;
|
||||
cb.dispatchEvent(new Event('change', {bubbles:true}));
|
||||
});
|
||||
}
|
||||
if (sel) {
|
||||
const cb = document.querySelector(sel);
|
||||
if (cb) { cb.checked = true; cb.dispatchEvent(new Event('change', {bubbles:true})); }
|
||||
}
|
||||
closeDialog();
|
||||
e.preventDefault();
|
||||
return;
|
||||
}
|
||||
});
|
||||
|
||||
dlg.addEventListener('cancel', (e)=>{ e.preventDefault(); closeDialog(); });
|
||||
})();
|
||||
</script>
|
||||
@ -17,7 +17,7 @@ add_stylesheet('<link rel="stylesheet" href="'.$member_skin_url.'/style.css">',
|
||||
@include_once(get_social_skin_path().'/social_register.skin.php');
|
||||
?>
|
||||
<section id="fregister_term">
|
||||
<h2>회원가입약관</h2>
|
||||
<h2>(필수) 회원가입약관</h2>
|
||||
<textarea readonly><?php echo get_text($config['cf_stipulation']) ?></textarea>
|
||||
<fieldset class="fregister_agree">
|
||||
<input type="checkbox" name="agree" value="1" id="agree11" class="selec_chk">
|
||||
@ -25,8 +25,8 @@ add_stylesheet('<link rel="stylesheet" href="'.$member_skin_url.'/style.css">',
|
||||
</fieldset>
|
||||
</section>
|
||||
|
||||
<section id="fregister_private">
|
||||
<h2>개인정보 수집 및 이용</h2>
|
||||
<section id="fregister_private" class="fregister_terms">
|
||||
<h2>(필수) 개인정보 수집 및 이용</h2>
|
||||
<div>
|
||||
<table>
|
||||
<caption>개인정보 수집 및 이용</caption>
|
||||
|
||||
@ -51,8 +51,7 @@ if ($config['cf_cert_use'] && ($config['cf_cert_simple'] || $config['cf_cert_ipi
|
||||
<div class="tbl_frm01 tbl_wrap register_form_inner">
|
||||
<h2>개인정보 입력</h2>
|
||||
<ul>
|
||||
<li>
|
||||
<?php
|
||||
<?php
|
||||
$desc_name = '';
|
||||
$desc_phone = '';
|
||||
if ($config['cf_cert_use']) {
|
||||
@ -62,7 +61,9 @@ if ($config['cf_cert_use'] && ($config['cf_cert_simple'] || $config['cf_cert_ipi
|
||||
if (!$config['cf_cert_simple'] && !$config['cf_cert_hp'] && $config['cf_cert_ipin']) {
|
||||
$desc_phone = '';
|
||||
}
|
||||
|
||||
?>
|
||||
<li>
|
||||
<?php
|
||||
if ($config['cf_cert_simple']) {
|
||||
echo '<button type="button" id="win_sa_kakao_cert" class="btn_frmline win_sa_cert" data-type="">간편인증</button>'.PHP_EOL;
|
||||
}
|
||||
@ -72,12 +73,11 @@ if ($config['cf_cert_use'] && ($config['cf_cert_simple'] || $config['cf_cert_ipi
|
||||
echo '<button type="button" id="win_ipin_cert" class="btn_frmline">아이핀 본인확인</button>'.PHP_EOL;
|
||||
|
||||
echo '<span class="cert_req">(필수)</span>';
|
||||
echo '<noscript>본인확인을 위해서는 자바스크립트 사용이 가능해야합니다.</noscript>'.PHP_EOL;
|
||||
}
|
||||
?>
|
||||
<?php
|
||||
if ($config['cf_cert_use'] && $member['mb_certify']) {
|
||||
switch ($member['mb_certify']) {
|
||||
echo '<noscript>본인확인을 위해서는 자바스크립트 사용이 가능해야합니다.</noscript>'.PHP_EOL;
|
||||
?>
|
||||
<?php
|
||||
if ($member['mb_certify']) {
|
||||
switch ($member['mb_certify']) {
|
||||
case "simple":
|
||||
$mb_cert = "간편인증";
|
||||
break;
|
||||
@ -92,8 +92,9 @@ if ($config['cf_cert_use'] && ($config['cf_cert_simple'] || $config['cf_cert_ipi
|
||||
<div id="msg_certify">
|
||||
<strong><?php echo $mb_cert; ?> 본인확인</strong><?php if ($member['mb_adult']) { ?> 및 <strong>성인인증</strong><?php } ?> 완료
|
||||
</div>
|
||||
<?php } ?>
|
||||
<?php } ?>
|
||||
</li>
|
||||
<?php } ?>
|
||||
<li>
|
||||
<label for="reg_mb_name">이름 (필수)<?php echo $desc_name ?></label>
|
||||
<input type="text" id="reg_mb_name" name="mb_name" value="<?php echo get_text($member['mb_name']) ?>" <?php echo $required ?> <?php echo $name_readonly; ?> class="frm_input full_input <?php echo $required ?> <?php echo $name_readonly ?>" size="10" placeholder="이름">
|
||||
@ -135,13 +136,12 @@ if ($config['cf_cert_use'] && ($config['cf_cert_simple'] || $config['cf_cert_ipi
|
||||
</li>
|
||||
<?php } ?>
|
||||
|
||||
<?php if ($config['cf_use_tel']) { ?>
|
||||
<li>
|
||||
<?php if ($config['cf_use_tel']) { ?>
|
||||
|
||||
<label for="reg_mb_tel">전화번호<?php if ($config['cf_req_tel']) { ?> (필수)<?php } ?></label>
|
||||
<input type="text" name="mb_tel" value="<?php echo get_text($member['mb_tel']) ?>" id="reg_mb_tel" <?php echo $config['cf_req_tel']?"required":""; ?> class="frm_input full_input <?php echo $config['cf_req_tel']?"required":""; ?>" maxlength="20" placeholder="전화번호">
|
||||
<?php } ?>
|
||||
</li>
|
||||
<?php } ?>
|
||||
<li>
|
||||
<?php if ($config['cf_use_hp'] || ($config["cf_cert_use"] && ($config['cf_cert_hp'] || $config['cf_cert_simple']))) { ?>
|
||||
<label for="reg_mb_hp">휴대폰번호<?php if (!empty($hp_required)) { ?> (필수)<?php } ?><?php echo $desc_phone ?></label>
|
||||
@ -227,26 +227,6 @@ gif, jpg, png파일만 가능하며 용량 <?php echo number_format($config['cf_
|
||||
|
||||
</li>
|
||||
<?php } ?>
|
||||
|
||||
<li class="chk_box">
|
||||
<input type="checkbox" name="mb_mailling" value="1" id="reg_mb_mailling" <?php echo ($w=='' || $member['mb_mailling'])?'checked':''; ?> class="selec_chk">
|
||||
<label for="reg_mb_mailling">
|
||||
<span></span>
|
||||
<b class="sound_only">메일링서비스</b>
|
||||
</label>
|
||||
<span class="chk_li">정보 메일을 받겠습니다.</span>
|
||||
</li>
|
||||
|
||||
<?php if ($config['cf_use_hp']) { ?>
|
||||
<li class="chk_box">
|
||||
<input type="checkbox" name="mb_sms" value="1" id="reg_mb_sms" <?php echo ($w=='' || $member['mb_sms'])?'checked':''; ?> class="selec_chk">
|
||||
<label for="reg_mb_sms">
|
||||
<span></span>
|
||||
<b class="sound_only">SMS 수신여부</b>
|
||||
</label>
|
||||
<span class="chk_li">휴대폰 문자메세지를 받겠습니다.</span>
|
||||
</li>
|
||||
<?php } ?>
|
||||
|
||||
<?php if (isset($member['mb_open_date']) && $member['mb_open_date'] <= date("Y-m-d", G5_SERVER_TIME - ($config['cf_open_modify'] * 86400)) || empty($member['mb_open_date'])) { // 정보공개 수정일이 지났다면 수정가능 ?>
|
||||
<li class="chk_box">
|
||||
@ -288,13 +268,120 @@ gif, jpg, png파일만 가능하며 용량 <?php echo number_format($config['cf_
|
||||
<input type="text" name="mb_recommend" id="reg_mb_recommend" class="frm_input" placeholder="추천인아이디">
|
||||
</li>
|
||||
<?php } ?>
|
||||
|
||||
<li class="is_captcha_use">
|
||||
자동등록방지
|
||||
<?php echo captcha_html(); ?>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<!-- 회원가입 약관 동의에 광고성 정보 수신 동의 표시 여부가 사용시에만 -->
|
||||
<?php if($config['cf_use_promotion'] == 1) { ?>
|
||||
<div class="tbl_frm01 tbl_wrap register_form_inner">
|
||||
<h2>수신설정</h2>
|
||||
<!-- 수신설정만 팝업 및 체크박스 관련 class 적용 -->
|
||||
<ul>
|
||||
<!-- (선택) 마케팅 목적의 개인정보 수집 및 이용 -->
|
||||
<li class="chk_box">
|
||||
<div class="consent-line">
|
||||
<input type="checkbox" name="mb_marketing_agree" value="1" id="reg_mb_marketing_agree" aria-describedby="desc_marketing" <?php echo $member['mb_marketing_agree'] ? 'checked' : ''; ?> class="selec_chk marketing-sync">
|
||||
<label for="reg_mb_marketing_agree"><span></span><b class="sound_only">(선택) 마케팅 목적의 개인정보 수집 및 이용</b></label>
|
||||
<span class="chk_li">(선택) 마케팅 목적의 개인정보 수집 및 이용</span>
|
||||
<button type="button" class="js-open-consent" data-title="마케팅 목적의 개인정보 수집 및 이용" data-template="#tpl_marketing" data-check="#reg_mb_marketing_agree" aria-controls="consentDialog">자세히보기</button>
|
||||
</div>
|
||||
<input type="hidden" name="mb_marketing_agree_default" value="<?php echo $member['mb_marketing_agree'] ?>">
|
||||
<div id="desc_marketing" class="sound_only">마케팅 목적의 개인정보 수집·이용에 대한 안내입니다. 자세히보기를 눌러 전문을 확인할 수 있습니다.</div>
|
||||
<div class="consent-date"><?php if ($member['mb_marketing_agree'] == 1 && $member['mb_marketing_date'] != "0000-00-00 00:00:00") echo "(동의일자: ".$member['mb_marketing_date'].")"; ?></div>
|
||||
|
||||
<template id="tpl_marketing">
|
||||
* 목적: 서비스 마케팅 및 프로모션<br>
|
||||
* 항목: 이름, 이메일<?php echo ($config['cf_use_hp'] || ($config["cf_cert_use"] && ($config['cf_cert_hp'] || $config['cf_cert_simple']))) ? ", 휴대폰 번호" : "";?><br>
|
||||
* 보유기간: 회원 탈퇴 시까지<br>
|
||||
동의를 거부하셔도 서비스 기본 이용은 가능하나, 맞춤형 혜택 제공은 제한될 수 있습니다.
|
||||
</template>
|
||||
</li>
|
||||
|
||||
<!-- (선택) 광고성 정보 수신 동의 (상위) -->
|
||||
<li class="chk_box consent-group">
|
||||
<div class="consent-line">
|
||||
<input type="checkbox" name="mb_promotion_agree" value="1" id="reg_mb_promotion_agree" aria-describedby="desc_promotion" class="selec_chk marketing-sync parent-promo">
|
||||
<label for="reg_mb_promotion_agree"><span></span><b class="sound_only">(선택) 광고성 정보 수신 동의</b></label>
|
||||
<span class="chk_li">(선택) 광고성 정보 수신 동의</span>
|
||||
<button type="button" class="js-open-consent" data-title="광고성 정보 수신 동의" data-template="#tpl_promotion" data-check="#reg_mb_promotion_agree" data-check-group=".child-promo" aria-controls="consentDialog">자세히보기</button>
|
||||
</div>
|
||||
|
||||
<div id="desc_promotion" class="sound_only">광고성 정보(이메일/SMS·카카오톡) 수신 동의의 상위 항목입니다. 자세히보기를 눌러 전문을 확인할 수 있습니다.</div>
|
||||
|
||||
<!-- 하위 채널(이메일/SMS) -->
|
||||
<ul class="sub-consents">
|
||||
<li class="chk_box is-inline">
|
||||
<input type="checkbox" name="mb_mailling" value="1" id="reg_mb_mailling" <?php echo $member['mb_mailling'] ? 'checked' : ''; ?> class="selec_chk child-promo">
|
||||
<label for="reg_mb_mailling"><span></span><b class="sound_only">광고성 이메일 수신 동의</b></label>
|
||||
<span class="chk_li">광고성 이메일 수신 동의</span>
|
||||
<input type="hidden" name="mb_mailling_default" value="<?php echo $member['mb_mailling']; ?>">
|
||||
<div class="consent-date"><?php if ($w == 'u' && $member['mb_mailling'] == 1 && $member['mb_mailling_date'] != "0000-00-00 00:00:00") echo "(동의일자: ".$member['mb_mailling_date'].")"; ?></div>
|
||||
</li>
|
||||
|
||||
<!-- 휴대폰번호 입력 보이기 or 필수입력일 경우에만 -->
|
||||
<?php if ($config['cf_use_hp'] || $config['cf_req_hp']) { ?>
|
||||
<li class="chk_box is-inline">
|
||||
<input type="checkbox" name="mb_sms" value="1" id="reg_mb_sms" <?php echo $member['mb_sms'] ? 'checked' : ''; ?> class="selec_chk child-promo">
|
||||
<label for="reg_mb_sms"><span></span><b class="sound_only">광고성 SMS/카카오톡 수신 동의</b></label>
|
||||
<span class="chk_li">광고성 SMS/카카오톡 수신 동의</span>
|
||||
<input type="hidden" name="mb_sms_default" value="<?php echo $member['mb_sms']; ?>">
|
||||
<div class="consent-date"><?php if ($w == 'u' && $member['mb_sms'] == 1 && $member['mb_sms_date'] != "0000-00-00 00:00:00") echo "(동의일자: ".$member['mb_sms_date'].")"; ?></div>
|
||||
</li>
|
||||
<?php } ?>
|
||||
</ul>
|
||||
|
||||
<template id="tpl_promotion">
|
||||
수집·이용에 동의한 개인정보를 이용하여 이메일/SMS/카카오톡 등으로 오전 8시~오후 9시에 광고성 정보를 전송할 수 있습니다.<br>
|
||||
동의는 언제든지 마이페이지에서 철회할 수 있습니다.
|
||||
</template>
|
||||
</li>
|
||||
|
||||
<!-- (선택) 개인정보 제3자 제공 동의 -->
|
||||
<!-- SMS 사용시에만 -->
|
||||
<?php
|
||||
$configKeys = ['cf_sms_use'];
|
||||
$companies = ['icode' => '아이코드'];
|
||||
|
||||
$usedCompanies = [];
|
||||
foreach ($configKeys as $key) {
|
||||
if (!empty($config[$key]) && isset($companies[$config[$key]])) {
|
||||
$usedCompanies[] = $companies[$config[$key]];
|
||||
}
|
||||
}
|
||||
?>
|
||||
<?php if (!empty($usedCompanies)) { ?>
|
||||
<li class="chk_box">
|
||||
<div class="consent-line">
|
||||
<input type="checkbox" name="mb_thirdparty_agree" value="1" id="reg_mb_thirdparty_agree" aria-describedby="desc_thirdparty" <?php echo $member['mb_thirdparty_agree'] ? 'checked' : ''; ?> class="selec_chk marketing-sync">
|
||||
<label for="reg_mb_thirdparty_agree"><span></span><b class="sound_only">(선택) 개인정보 제3자 제공 동의</b></label>
|
||||
<span class="chk_li">(선택) 개인정보 제3자 제공 동의</span>
|
||||
<button type="button" class="js-open-consent" data-title="개인정보 제3자 제공 동의" data-template="#tpl_thirdparty" data-check="#reg_mb_thirdparty_agree" aria-controls="consentDialog">자세히보기</button>
|
||||
</div>
|
||||
<input type="hidden" name="mb_thirdparty_agree_default" value="<?php echo $member['mb_thirdparty_agree'] ?>">
|
||||
<div id="desc_thirdparty" class="sound_only">개인정보 제3자 제공 동의에 대한 안내입니다. 자세히보기를 눌러 전문을 확인할 수 있습니다.</div>
|
||||
<div class="consent-date"><?php if ($member['mb_thirdparty_agree'] == 1 && $member['mb_thirdparty_date'] != "0000-00-00 00:00:00") echo "(동의일자: ".$member['mb_thirdparty_date'].")"; ?></div>
|
||||
|
||||
<template id="tpl_thirdparty">
|
||||
* 목적: 상품/서비스, 사은/판촉행사, 이벤트 등의 마케팅 안내(카카오톡 등)<br>
|
||||
* 항목: 이름, 휴대폰 번호<br>
|
||||
* 제공받는 자: <?php echo implode(', ', $usedCompanies);?><br>
|
||||
* 보유기간: 제공 목적 서비스 기간 또는 동의 철회 시까지
|
||||
</template>
|
||||
</li>
|
||||
<?php } ?>
|
||||
</ul>
|
||||
</div>
|
||||
<?php } ?>
|
||||
|
||||
<div class="tbl_frm01 tbl_wrap register_form_inner">
|
||||
<h2>자동등록방지</h2>
|
||||
<ul>
|
||||
<li class="is_captcha_use">
|
||||
자동등록방지
|
||||
<?php echo captcha_html(); ?>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<div class="btn_confirm">
|
||||
<a href="<?php echo G5_URL ?>" class="btn_close">취소</a>
|
||||
@ -302,6 +389,9 @@ gif, jpg, png파일만 가능하며 용량 <?php echo number_format($config['cf_
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
|
||||
<?php include_once(__DIR__ . '/consent_modal.inc.php'); ?>
|
||||
|
||||
<script>
|
||||
$(function() {
|
||||
$("#reg_zip_find").css("display", "inline-block");
|
||||
@ -509,6 +599,30 @@ jQuery(function($){
|
||||
});
|
||||
});
|
||||
|
||||
document.addEventListener('DOMContentLoaded', function () {
|
||||
const parentPromo = document.getElementById('reg_mb_promotion_agree');
|
||||
const childPromo = Array.from(document.querySelectorAll('.child-promo'));
|
||||
if (!parentPromo || childPromo.length === 0) return;
|
||||
|
||||
const syncParentFromChildren = () => {
|
||||
const anyChecked = childPromo.some(cb => cb.checked);
|
||||
parentPromo.checked = anyChecked; // 하나라도 체크되면 부모 체크
|
||||
};
|
||||
|
||||
const syncChildrenFromParent = () => {
|
||||
const isChecked = parentPromo.checked;
|
||||
childPromo.forEach(cb => {
|
||||
cb.checked = isChecked;
|
||||
cb.dispatchEvent(new Event('change', { bubbles: true }));
|
||||
});
|
||||
};
|
||||
|
||||
syncParentFromChildren();
|
||||
|
||||
parentPromo.addEventListener('change', syncChildrenFromParent);
|
||||
childPromo.forEach(cb => cb.addEventListener('change', syncParentFromChildren));
|
||||
});
|
||||
|
||||
</script>
|
||||
|
||||
<!-- } 회원정보 입력/수정 끝 -->
|
||||
@ -13,7 +13,6 @@
|
||||
.mbskin .frm_input {width:100%}
|
||||
.mbskin .btn_submit {width:100%;margin:10px 0 0;height:45px;font-weight:bold;font-size:1.25em}
|
||||
.mbskin h1 {margin:60px 0 30px;font-size:2em}
|
||||
.mbskin .tbl_frm01 th {width:85px}
|
||||
/* ### 기본 스타일 커스터마이징 끝 ### */
|
||||
|
||||
/* 회원가입 약관 */
|
||||
@ -31,12 +30,11 @@
|
||||
#fregister_chkall {position:relative;text-align:center;background:#f5f7fa;line-height:50px;border:1px solid #e5e9f0;border-radius:3px;margin-bottom:15px}
|
||||
#fregister h2 {text-align:left;padding:20px;border-bottom:1px solid #dde7e9;font-size:1.2em}
|
||||
#fregister textarea {display:block;padding:20px;width:100%;height:150px;background:#fff;border:0;line-height:1.6em}
|
||||
#fregister_private {position:relative}
|
||||
#fregister_private div {padding:20px;background:#fff}
|
||||
#fregister_private table {width:100%;border-collapse:collapse;font-size:1em;}
|
||||
#fregister_private table caption {position:absolute;font-size:0;line-height:0;overflow:hidden}
|
||||
#fregister_private table th {background:#f7f7f9;width:33.33%;color:#000;padding:10px;border:1px solid #d8dbdf}
|
||||
#fregister_private table td {border:1px solid #e7e9ec;padding:10px;border-top:0}
|
||||
.fregister_terms div {padding:20px;background:#fff}
|
||||
.fregister_terms table {width:100%;border-collapse:collapse;font-size:1em;}
|
||||
.fregister_terms table caption {position:absolute;font-size:0;line-height:0;overflow:hidden}
|
||||
.fregister_terms table th {background:#f7f7f9;width:33.33%;color:#000;padding:10px;border:1px solid #d8dbdf}
|
||||
.fregister_terms table td {border:1px solid #e7e9ec;padding:10px;border-top:0}
|
||||
|
||||
.fregister_agree {position:absolute;top:0;right:0}
|
||||
.fregister_agree input[type="checkbox"] + label {color:#676e70}
|
||||
@ -70,6 +68,11 @@
|
||||
#fregisterform .captcha {display:block;margin:5px 0 0}
|
||||
#fregisterform .reg_mb_img_file img {max-width:100%;height:auto}
|
||||
#reg_mb_icon, #reg_mb_img {float:right}
|
||||
#fregisterform .consent-line {display: flex; margin: 0 !important;}
|
||||
#fregisterform .consent-line .chk_li {padding-left: 0;}
|
||||
#fregisterform .consent-date { margin: 5px 0 0 20px !important; }
|
||||
#fregisterform .consent-group .sub-consents {padding: 0 20px 0px}
|
||||
#fregisterform .js-open-consent {display: block; margin-left: 10px; font-size: 12px; color: #3f51b5; background: none; border: none; cursor: pointer; text-decoration: underline; }
|
||||
|
||||
/* 회원가입 완료 */
|
||||
#reg_result {padding:40px 30px;text-align:center;background:#edf3fc;border:1px solid #d6e2f4;border-radius:5px}
|
||||
@ -93,7 +96,7 @@
|
||||
|
||||
.tooltip_icon {display:inline-block;vertical-align:baseline;color:#b3b5b8;border:0;font-size:1.4em;background:transparent;cursor:pointer}
|
||||
.tooltip_icon:hover {color:#448bf5}
|
||||
.tooltip {position:relative;width:auto;color:#fff;background:#000;padding:10px;font-size:small;line-height:18px;display:none;position:absolute;z-index:9;font-weight:normal;margin-left:15px;margin-top:10px}
|
||||
.tooltip {position:absolute;width:auto;color:#fff;background:#000;padding:10px;font-size:small;line-height:18px;display:none;z-index:9;font-weight:normal;margin-left:15px;margin-top:10px}
|
||||
.tooltip:before {content:"";position:absolute;top:0;left:-10px;width:0;height:0;border-style:solid;border-top:0px solid transparent;border-bottom:10px solid transparent;border-left:0;border-right:10px solid #000}
|
||||
|
||||
/* 아이디/비밀번호 찾기 */
|
||||
@ -152,12 +155,12 @@
|
||||
#login_info .login_if_lpl {float:right}
|
||||
#login_password_lost {display:inline-block;border:1px solid #d5d9dd;color:#3a8afd;border-radius:2px;padding:2px 5px;line-height:20px}
|
||||
|
||||
#mb_login_notmb {margin:30px auto;padding:20px 30px}
|
||||
#mb_login_notmb {margin:30px auto;padding:20px 30px;border: 1px solid #dde7e9}
|
||||
#mb_login_notmb h2 {font-size:1.25em;margin:20px 0 10px}
|
||||
#guest_privacy {border:1px solid #ccc;text-align:left;line-height:1.6em;color:#666;background:#fafafa;padding:10px;height:150px;margin:10px 0;overflow-y:auto}
|
||||
#mb_login_notmb .btn_submit {display:block;text-align:center;line-height:45px}
|
||||
|
||||
#mb_login_od_wr {margin:30px auto;padding:20px 30px}
|
||||
#mb_login_od_wr {margin:30px auto;padding:20px 30px;border: 1px solid #dde7e9}
|
||||
#mb_login_od_wr h2 {font-size:1.25em;margin:20px 0 10px}
|
||||
#mb_login_od_wr .frm_input {margin:10px 0 0}
|
||||
#mb_login_od_wr p {background:#f3f3f3;margin:20px 0 0;padding:15px 20px;line-height:1.5em}
|
||||
|
||||
@ -59,6 +59,6 @@
|
||||
.chk_box {position:relative}
|
||||
.chk_box input[type="checkbox"] + label {padding-left:20px;color:#676e70}
|
||||
.chk_box input[type="checkbox"] + label:hover{color:#2172f8}
|
||||
.chk_box input[type="checkbox"] + label span {position:absolute;top:2px;left:0;width:15px;height:15px;display:block;margin:0;background:#fff;border:1px solid #d0d4df;border-radius:3px}
|
||||
.chk_box input[type="checkbox"] + label span {position:absolute;top:3px;left:0;width:15px;height:15px;display:block;margin:0;background:#fff;border:1px solid #d0d4df;border-radius:3px}
|
||||
.chk_box input[type="checkbox"]:checked + label {color:#000}
|
||||
.chk_box input[type="checkbox"]:checked + label span {background:url(./img/chk.png) no-repeat 50% 50% #3a8afd;border-color:#1471f6;border-radius:3px}
|
||||
|
||||
85
skin/social/consent_modal.inc.php
Normal file
85
skin/social/consent_modal.inc.php
Normal file
@ -0,0 +1,85 @@
|
||||
<!-- HTML -->
|
||||
<?php if (!defined('_GNUBOARD_')) exit; ?>
|
||||
<dialog id="consentDialog" aria-labelledby="consentDialogTitle" aria-describedby="consentDialogBody">
|
||||
<form method="dialog" class="cd-card">
|
||||
<header class="cd-head">
|
||||
<h3 id="consentDialogTitle" class="cd-title">안내</h3>
|
||||
</header>
|
||||
<div id="consentDialogBody" class="cd-body"></div>
|
||||
<footer class="cd-actions">
|
||||
<button type="button" class="cd-agree">동의합니다</button>
|
||||
<button value="close" class="cd-close">닫기</button>
|
||||
</footer>
|
||||
</form>
|
||||
</dialog>
|
||||
|
||||
<!-- 스타일 -->
|
||||
<style>
|
||||
#consentDialog { padding:0; border:none; border-radius:12px; }
|
||||
#consentDialog::backdrop { background: rgba(0,0,0,.45); backdrop-filter: blur(5px);}
|
||||
.cd-card { min-width: 320px; max-width: 560px; background:#fff; border-radius:12px; }
|
||||
.cd-head { display:flex; align-items:center; justify-content:space-between; padding:16px; }
|
||||
.cd-title { margin:0; font-size:18px; font-weight:bold; }
|
||||
.cd-body { max-height:500px; overflow-y:auto; padding:16px; border-top:1px solid #e6e6e9; border-bottom:1px solid #e6e6e9; line-height:1.6; font-size:14px; color:#222; }
|
||||
.cd-actions { display:flex; gap:8px; justify-content:flex-end; padding:12px 16px 16px; }
|
||||
.cd-actions .cd-agree { padding:8px 14px; border:1px solid #3a8afd; background:#3a8afd; color:#fff; border-radius:8px; }
|
||||
.cd-actions .cd-close { padding:8px 14px; border:1px solid #ccc; background:#fff; color:#111; border-radius:8px; }
|
||||
</style>
|
||||
|
||||
<!-- JS -->
|
||||
<script>
|
||||
(function(){
|
||||
const dlg = document.getElementById('consentDialog');
|
||||
if (!dlg) return;
|
||||
|
||||
const body = document.getElementById('consentDialogBody');
|
||||
const titleE = document.getElementById('consentDialogTitle');
|
||||
let opener = null;
|
||||
|
||||
const openFrom = (btn) => {
|
||||
opener = btn;
|
||||
const tplSel = btn.getAttribute('data-template');
|
||||
const title = btn.getAttribute('data-title') || '안내';
|
||||
const tpl = tplSel ? document.querySelector(tplSel) : null;
|
||||
|
||||
titleE.textContent = title;
|
||||
body.innerHTML = tpl ? tpl.innerHTML : '';
|
||||
|
||||
dlg.dataset.check = btn.getAttribute('data-check') || '';
|
||||
dlg.dataset.checkGroup = btn.getAttribute('data-check-group') || '';
|
||||
|
||||
if (dlg.showModal) dlg.showModal(); else dlg.setAttribute('open','');
|
||||
};
|
||||
|
||||
const closeDialog = () => {
|
||||
if (dlg.close) dlg.close(); else dlg.removeAttribute('open');
|
||||
if (opener) opener.focus();
|
||||
};
|
||||
|
||||
document.addEventListener('click', (e)=>{
|
||||
const trigger = e.target.closest('.js-open-consent');
|
||||
if (trigger) { openFrom(trigger); return; }
|
||||
|
||||
if (e.target.classList.contains('cd-agree')) {
|
||||
const sel = dlg.dataset.check;
|
||||
const groupSel = dlg.dataset.checkGroup;
|
||||
|
||||
if (groupSel) {
|
||||
document.querySelectorAll(groupSel).forEach(cb => {
|
||||
cb.checked = true;
|
||||
cb.dispatchEvent(new Event('change', {bubbles:true}));
|
||||
});
|
||||
}
|
||||
if (sel) {
|
||||
const cb = document.querySelector(sel);
|
||||
if (cb) { cb.checked = true; cb.dispatchEvent(new Event('change', {bubbles:true})); }
|
||||
}
|
||||
closeDialog();
|
||||
e.preventDefault();
|
||||
return;
|
||||
}
|
||||
});
|
||||
|
||||
dlg.addEventListener('cancel', (e)=>{ e.preventDefault(); closeDialog(); });
|
||||
})();
|
||||
</script>
|
||||
@ -44,44 +44,60 @@ add_stylesheet('<link rel="stylesheet" href="'.$member_skin_url.'/style.css">',
|
||||
</li>
|
||||
<li class="rb_reg_sub_title">안녕하세요! <?php echo $config['cf_title'] ?> 에 오신것을 진심으로 환영해요!<br>다양한 이벤트와 풍성한 혜택 받아가세요 :D</li>
|
||||
|
||||
|
||||
<li>
|
||||
<span>회원가입약관</span>
|
||||
<textarea readonly class="textarea"><?php echo get_text($config['cf_stipulation']) ?></textarea>
|
||||
<div class="mt-10">
|
||||
<input type="checkbox" name="agree" value="1" id="agree11">
|
||||
<label for="agree11">회원가입약관의 내용에 동의합니다.</label>
|
||||
</div>
|
||||
</li>
|
||||
<li>
|
||||
<span>개인정보 수집 및 이용정책</span>
|
||||
<textarea readonly class="textarea"><?php echo get_text($config['cf_privacy']) ?></textarea>
|
||||
<div class="mt-10">
|
||||
<input type="checkbox" name="agree2" value="1" id="agree21">
|
||||
<label for="agree21">개인정보 수집 및 이용정책의 내용에 동의합니다.</label>
|
||||
</div>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<div id="fregister_chkall" class="chk_all">
|
||||
<input type="checkbox" name="chk_all" id="chk_all">
|
||||
<label for="chk_all">회원가입 약관에 모두 동의합니다</label>
|
||||
</div>
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
<!-- 새로가입 시작 -->
|
||||
<input type="hidden" name="w" value="<?php echo $w; ?>">
|
||||
<input type="hidden" name="url" value="<?php echo $urlencode; ?>">
|
||||
<input type="hidden" name="provider" value="<?php echo $provider_name; ?>">
|
||||
<input type="hidden" name="action" value="register">
|
||||
<input type="hidden" name="cert_type" value="<?php echo $member['mb_certify']; ?>">
|
||||
<input type="hidden" name="cert_no" value="">
|
||||
<input type="hidden" name="mb_id" value="<?php echo $user_id; ?>" id="reg_mb_id">
|
||||
|
||||
<?php if ($config["cf_cert_use"]) { ?>
|
||||
<input type="hidden" id="reg_mb_name" name="mb_name" value="<?php echo $user_name ? $user_name : $user_nick ?>">
|
||||
<section id="fregister_private" class="fregister_terms">
|
||||
<h2>개인정보 수집 및 이용</h2>
|
||||
<div>
|
||||
<table>
|
||||
<caption>개인정보 수집 및 이용</caption>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>목적</th>
|
||||
<th>항목</th>
|
||||
<th>보유기간</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>이용자 식별 및 본인여부 확인</td>
|
||||
<td>아이디, 이름, 비밀번호<?php echo ($config['cf_cert_use']) ? ", 생년월일, 휴대폰 번호(본인인증 할 때만, 아이핀 제외), 암호화된 개인식별부호(CI)" : ""; ?></td>
|
||||
<td>회원 탈퇴 시까지</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>고객서비스 이용에 관한 통지,<br>CS대응을 위한 이용자 식별</td>
|
||||
<td>연락처 (이메일, 휴대전화번호)</td>
|
||||
<td>회원 탈퇴 시까지</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
<fieldset class="fregister_agree">
|
||||
<input type="checkbox" name="agree2" value="1" id="agree21" class="selec_chk">
|
||||
<label for="agree21"><span></span><b class="sound_only">개인정보 수집 및 이용의 내용에 동의합니다.</b></label>
|
||||
</fieldset>
|
||||
</section>
|
||||
|
||||
<div id="fregister_chkall" class="chk_all fregister_agree">
|
||||
<input type="checkbox" name="chk_all" id="chk_all" class="selec_chk">
|
||||
<label for="chk_all"><span></span>회원가입 약관에 모두 동의합니다</label>
|
||||
</div>
|
||||
<!-- } 회원가입 약관 동의 끝 -->
|
||||
|
||||
<!-- 새로가입 시작 -->
|
||||
<input type="hidden" name="w" value="<?php echo $w; ?>">
|
||||
<input type="hidden" name="url" value="<?php echo $urlencode; ?>">
|
||||
<input type="hidden" name="provider" value="<?php echo $provider_name; ?>">
|
||||
<input type="hidden" name="action" value="register">
|
||||
<input type="hidden" name="cert_type" value="<?php echo $member['mb_certify']; ?>">
|
||||
<input type="hidden" name="cert_no" value="">
|
||||
<input type="hidden" name="mb_id" value="<?php echo $user_id; ?>" id="reg_mb_id">
|
||||
<?php if ($config["cf_cert_use"]) { ?>
|
||||
<input type="hidden" id="reg_mb_name" name="mb_name" value="<?php echo $user_name ? $user_name : $user_nick ?>">
|
||||
<?php } ?>
|
||||
<?php if ($config['cf_use_hp'] || ($config["cf_cert_use"] && ($config['cf_cert_hp'] || $config['cf_cert_simple']))) { ?>
|
||||
<input type="hidden" name="mb_hp" value="<?php echo get_text($user_phone); ?>" id="reg_mb_hp">
|
||||
<?php if ($config['cf_cert_use'] && ($config['cf_cert_hp'] || $config['cf_cert_simple'])) { ?>
|
||||
<input type="hidden" name="old_mb_hp" value="<?php echo get_text($user_phone); ?>">
|
||||
<?php } ?>
|
||||
<?php if ($config['cf_use_hp'] || ($config["cf_cert_use"] && ($config['cf_cert_hp'] || $config['cf_cert_simple']))) { ?>
|
||||
<input type="hidden" name="mb_hp" value="<?php echo get_text($user_phone); ?>" id="reg_mb_hp">
|
||||
@ -138,9 +154,118 @@ add_stylesheet('<link rel="stylesheet" href="'.$member_skin_url.'/style.css">',
|
||||
<div class="btn_confirm">
|
||||
<button type="submit" class="btn_submit font-B" accesskey="s"><?php echo $w == '' ? '회원가입' : '정보수정'; ?></button>
|
||||
</div>
|
||||
<<<<<<< HEAD
|
||||
</li>
|
||||
|
||||
|
||||
=======
|
||||
|
||||
<!-- 회원가입 약관 동의에 광고성 정보 수신 동의 표시 여부가 사용시에만 -->
|
||||
<?php if($config['cf_use_promotion'] == 1) { ?>
|
||||
<div class="tbl_frm01 tbl_wrap register_form_inner">
|
||||
<h2>수신설정</h2>
|
||||
<!-- 수신설정만 팝업 및 체크박스 관련 class 적용 -->
|
||||
<ul>
|
||||
<!-- (선택) 마케팅 목적의 개인정보 수집 및 이용 -->
|
||||
<li class="chk_box">
|
||||
<div class="consent-line">
|
||||
<input type="checkbox" name="mb_marketing_agree" value="1" id="reg_mb_marketing_agree" aria-describedby="desc_marketing" <?php echo $member['mb_marketing_agree'] ? 'checked' : ''; ?> class="selec_chk marketing-sync">
|
||||
<label for="reg_mb_marketing_agree"><span></span><b class="sound_only">(선택) 마케팅 목적의 개인정보 수집 및 이용</b></label>
|
||||
<span class="chk_li">(선택) 마케팅 목적의 개인정보 수집 및 이용</span>
|
||||
<button type="button" class="js-open-consent" data-title="마케팅 목적의 개인정보 수집 및 이용" data-template="#tpl_marketing" data-check="#reg_mb_marketing_agree" aria-controls="consentDialog">자세히보기</button>
|
||||
</div>
|
||||
<input type="hidden" name="mb_marketing_agree_default" value="<?php echo $member['mb_marketing_agree'] ?>">
|
||||
<div id="desc_marketing" class="sound_only">마케팅 목적의 개인정보 수집·이용에 대한 안내입니다. 자세히보기를 눌러 전문을 확인할 수 있습니다.</div>
|
||||
|
||||
<template id="tpl_marketing">
|
||||
* 목적: 서비스 마케팅 및 프로모션<br>
|
||||
* 항목: 이름, 이메일<?php echo ($config['cf_use_hp'] || ($config["cf_cert_use"] && ($config['cf_cert_hp'] || $config['cf_cert_simple']))) ? ", 휴대폰 번호" : "";?><br>
|
||||
* 보유기간: 회원 탈퇴 시까지<br>
|
||||
동의를 거부하셔도 서비스 기본 이용은 가능하나, 맞춤형 혜택 제공은 제한될 수 있습니다.
|
||||
</template>
|
||||
</li>
|
||||
|
||||
<!-- (선택) 광고성 정보 수신 동의 (상위) -->
|
||||
<li class="chk_box consent-group">
|
||||
<div class="consent-line">
|
||||
<input type="checkbox" name="mb_promotion_agree" value="1" id="reg_mb_promotion_agree" aria-describedby="desc_promotion" class="selec_chk marketing-sync parent-promo">
|
||||
<label for="reg_mb_promotion_agree"><span></span><b class="sound_only">(선택) 광고성 정보 수신 동의</b></label>
|
||||
<span class="chk_li">(선택) 광고성 정보 수신 동의</span>
|
||||
<button type="button" class="js-open-consent" data-title="광고성 정보 수신 동의" data-template="#tpl_promotion" data-check="#reg_mb_promotion_agree" data-check-group=".child-promo" aria-controls="consentDialog">자세히보기</button>
|
||||
</div>
|
||||
|
||||
<div id="desc_promotion" class="sound_only">광고성 정보(이메일/SMS·카카오톡) 수신 동의의 상위 항목입니다. 자세히보기를 눌러 전문을 확인할 수 있습니다.</div>
|
||||
|
||||
<!-- 하위 채널(이메일/SMS) -->
|
||||
<ul class="sub-consents">
|
||||
<li class="chk_box is-inline">
|
||||
<input type="checkbox" name="mb_mailling" value="1" id="reg_mb_mailling" <?php echo $member['mb_mailling'] ? 'checked' : ''; ?> class="selec_chk child-promo">
|
||||
<label for="reg_mb_mailling"><span></span><b class="sound_only">광고성 이메일 수신 동의</b></label>
|
||||
<span class="chk_li">광고성 이메일 수신 동의</span>
|
||||
<input type="hidden" name="mb_mailling_default" value="<?php echo $member['mb_mailling']; ?>">
|
||||
</li>
|
||||
|
||||
<!-- 휴대폰번호 입력 보이기 or 필수입력일 경우에만 -->
|
||||
<?php if ($config['cf_use_hp'] || $config['cf_req_hp']) { ?>
|
||||
<li class="chk_box is-inline">
|
||||
<input type="checkbox" name="mb_sms" value="1" id="reg_mb_sms" <?php echo $member['mb_sms'] ? 'checked' : ''; ?> class="selec_chk child-promo">
|
||||
<label for="reg_mb_sms"><span></span><b class="sound_only">광고성 SMS/카카오톡 수신 동의</b></label>
|
||||
<span class="chk_li">광고성 SMS/카카오톡 수신 동의</span>
|
||||
<input type="hidden" name="mb_sms_default" value="<?php echo $member['mb_sms']; ?>">
|
||||
</li>
|
||||
<?php } ?>
|
||||
</ul>
|
||||
|
||||
<template id="tpl_promotion">
|
||||
수집·이용에 동의한 개인정보를 이용하여 이메일/SMS/카카오톡 등으로 오전 8시~오후 9시에 광고성 정보를 전송할 수 있습니다.<br>
|
||||
동의는 언제든지 마이페이지에서 철회할 수 있습니다.
|
||||
</template>
|
||||
</li>
|
||||
|
||||
<!-- (선택) 개인정보 제3자 제공 동의 -->
|
||||
<!-- SMS 사용시에만 -->
|
||||
<?php
|
||||
$configKeys = ['cf_sms_use'];
|
||||
$companies = ['icode' => '아이코드'];
|
||||
|
||||
$usedCompanies = [];
|
||||
foreach ($configKeys as $key) {
|
||||
if (!empty($config[$key]) && isset($companies[$config[$key]])) {
|
||||
$usedCompanies[] = $companies[$config[$key]];
|
||||
}
|
||||
}
|
||||
?>
|
||||
<?php if (!empty($usedCompanies)) { ?>
|
||||
<li class="chk_box">
|
||||
<div class="consent-line">
|
||||
<input type="checkbox" name="mb_thirdparty_agree" value="1" id="reg_mb_thirdparty_agree" aria-describedby="desc_thirdparty" <?php echo $member['mb_thirdparty_agree'] ? 'checked' : ''; ?> class="selec_chk marketing-sync">
|
||||
<label for="reg_mb_thirdparty_agree"><span></span><b class="sound_only">(선택) 개인정보 제3자 제공 동의</b></label>
|
||||
<span class="chk_li">(선택) 개인정보 제3자 제공 동의</span>
|
||||
<button type="button" class="js-open-consent" data-title="개인정보 제3자 제공 동의" data-template="#tpl_thirdparty" data-check="#reg_mb_thirdparty_agree" aria-controls="consentDialog">자세히보기</button>
|
||||
</div>
|
||||
<input type="hidden" name="mb_thirdparty_agree_default" value="<?php echo $member['mb_thirdparty_agree'] ?>">
|
||||
<div id="desc_thirdparty" class="sound_only">개인정보 제3자 제공 동의에 대한 안내입니다. 자세히보기를 눌러 전문을 확인할 수 있습니다.</div>
|
||||
|
||||
<template id="tpl_thirdparty">
|
||||
* 목적: 상품/서비스, 사은/판촉행사, 이벤트 등의 마케팅 안내(카카오톡 등)<br>
|
||||
* 항목: 이름, 휴대폰 번호<br>
|
||||
* 제공받는 자: <?php echo implode(', ', $usedCompanies);?><br>
|
||||
* 보유기간: 제공 목적 서비스 기간 또는 동의 철회 시까지
|
||||
</template>
|
||||
</li>
|
||||
<?php } ?>
|
||||
</ul>
|
||||
</div>
|
||||
<?php } ?>
|
||||
</div>
|
||||
|
||||
<div class="btn_confirm">
|
||||
<a href="<?php echo G5_URL ?>" class="btn_close">취소</a>
|
||||
<button type="submit" id="btn_submit" class="btn_submit" accesskey="s"><?php echo $w == '' ? '회원가입' : '정보수정'; ?></button>
|
||||
</div>
|
||||
|
||||
</form>
|
||||
>>>>>>> 그누보드/master
|
||||
|
||||
|
||||
<li class="join_links">
|
||||
@ -205,7 +330,11 @@ add_stylesheet('<link rel="stylesheet" href="'.$member_skin_url.'/style.css">',
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<<<<<<< HEAD
|
||||
-->
|
||||
=======
|
||||
<?php include_once(__DIR__ . '/consent_modal.inc.php'); ?>
|
||||
>>>>>>> 그누보드/master
|
||||
|
||||
<script>
|
||||
$(function() {
|
||||
@ -346,6 +475,30 @@ add_stylesheet('<link rel="stylesheet" href="'.$member_skin_url.'/style.css">',
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
document.addEventListener('DOMContentLoaded', function () {
|
||||
const parentPromo = document.getElementById('reg_mb_promotion_agree');
|
||||
const childPromo = Array.from(document.querySelectorAll('.child-promo'));
|
||||
if (!parentPromo || childPromo.length === 0) return;
|
||||
|
||||
const syncParentFromChildren = () => {
|
||||
const anyChecked = childPromo.some(cb => cb.checked);
|
||||
parentPromo.checked = anyChecked; // 하나라도 체크되면 부모 체크
|
||||
};
|
||||
|
||||
const syncChildrenFromParent = () => {
|
||||
const isChecked = parentPromo.checked;
|
||||
childPromo.forEach(cb => {
|
||||
cb.checked = isChecked;
|
||||
cb.dispatchEvent(new Event('change', { bubbles: true }));
|
||||
});
|
||||
};
|
||||
|
||||
syncParentFromChildren();
|
||||
|
||||
parentPromo.addEventListener('change', syncChildrenFromParent);
|
||||
childPromo.forEach(cb => cb.addEventListener('change', syncParentFromChildren));
|
||||
});
|
||||
</script>
|
||||
|
||||
<!-- } 회원정보 입력/수정 끝 -->
|
||||
@ -109,12 +109,11 @@
|
||||
#fregister_chkall {position:relative;text-align:center;background:#f5f7fa;line-height:50px;border:1px solid #e5e9f0;border-radius:3px;margin-bottom:15px}
|
||||
#fregisterform h2 {text-align:left;padding:20px;border-bottom:1px solid #dde7e9;font-size:1.2em}
|
||||
#fregisterform textarea {display:block;padding:20px;width:100%;height:150px;background:#fff;border:0;line-height:1.6em}
|
||||
#fregister_private {position:relative}
|
||||
#fregister_private div {padding:20px;background:#fff}
|
||||
#fregister_private table {width:100%;border-collapse:collapse;font-size:1em;}
|
||||
#fregister_private table caption {position:absolute;font-size:0;line-height:0;overflow:hidden}
|
||||
#fregister_private table th {background:#f7f7f9;width:33.33%;color:#000;padding:10px;border:1px solid #d8dbdf}
|
||||
#fregister_private table td {border:1px solid #e7e9ec;padding:10px;border-top:0}
|
||||
.fregister_terms div {padding:20px;background:#fff}
|
||||
.fregister_terms table {width:100%;border-collapse:collapse;font-size:1em;}
|
||||
.fregister_terms table caption {position:absolute;font-size:0;line-height:0;overflow:hidden}
|
||||
.fregister_terms table th {background:#f7f7f9;width:33.33%;color:#000;padding:10px;border:1px solid #d8dbdf}
|
||||
.fregister_terms table td {border:1px solid #e7e9ec;padding:10px;border-top:0}
|
||||
|
||||
.fregister_agree {position:absolute;top:0;right:0}
|
||||
.fregister_agree input[type="checkbox"] + label {color:#676e70}
|
||||
@ -148,6 +147,11 @@
|
||||
#fregisterform .captcha {display:block;margin:5px 0 0}
|
||||
#fregisterform .reg_mb_img_file img {max-width:100%;height:auto}
|
||||
#reg_mb_icon, #reg_mb_img {float:right}
|
||||
#fregisterform .consent-line {display: flex; margin: 0 !important;}
|
||||
#fregisterform .consent-line .chk_li {padding-left: 0;}
|
||||
#fregisterform .consent-date { margin: 5px 0 0 20px !important; }
|
||||
#fregisterform .consent-group .sub-consents {padding: 0 20px 0px}
|
||||
#fregisterform .js-open-consent {display: block; margin-left: 10px; font-size: 12px; color: #3f51b5; background: none; border: none; cursor: pointer; text-decoration: underline; }
|
||||
|
||||
.tooltip_icon {display:inline-block;vertical-align:baseline;color:#b3b5b8;border:0;font-size:1.4em;background:transparent;cursor:pointer}
|
||||
.tooltip_icon:hover {color:#448bf5}
|
||||
|
||||
Reference in New Issue
Block a user