팝빌 알림톡 기능 추가
This commit is contained in:
@ -1,6 +1,7 @@
|
||||
<?php
|
||||
include_once('./_common.php');
|
||||
include_once(G5_LIB_PATH.'/mailer.lib.php');
|
||||
include_once(G5_KAKAO5_PATH.'/kakao5.lib.php');
|
||||
|
||||
$post_p_hash = isset($_POST['P_HASH']) ? $_POST['P_HASH'] : '';
|
||||
$post_enc_data = isset($_POST['enc_data']) ? $_POST['enc_data'] : '';
|
||||
@ -580,6 +581,9 @@ if( !$od_id ){
|
||||
if(function_exists('add_order_post_log')) add_order_post_log('주문번호가 없습니다.');
|
||||
die("주문번호가 없습니다.");
|
||||
}
|
||||
|
||||
// 주문 상품명 및 개수 조회
|
||||
$it_name_str = get_alimtalk_cart_item_name($od_id); // 상품명
|
||||
|
||||
$od_escrow = 0;
|
||||
if(isset($escw_yn) && $escw_yn == 'Y')
|
||||
@ -944,6 +948,19 @@ if($config['cf_sms_use'] && ($default['de_sms_use2'] || $default['de_sms_use3'])
|
||||
}
|
||||
// SMS END --------------------------------------------------------
|
||||
|
||||
// 알림톡 발송 BEGIN: 주문완료[CU-OR01/AD-OR01] / 무통장입금 요청[CU-OR02/AD-OR02] -------------------------
|
||||
if($od_settle_case == '무통장' && $od_misu > 0) {
|
||||
// 무통장 입금일 경우 알림톡 발송 : 주문금액 - 미결제액
|
||||
$conditions = ['od_id' => $od_id, 'od_name' => $od_name, 'it_name' => $it_name_str, 'od_receipt_price' => number_format($od_misu)]; // 변수 치환 정보
|
||||
$cu_atk = send_alimtalk_preset('CU-OR02', ['rcv' => $od_hp ?: $od_tel, 'rcvnm' => $od_name], $conditions); // 회원
|
||||
$ad_atk = send_admin_alimtalk('AD-OR02', 'super', $conditions); // 관리자
|
||||
}else{
|
||||
// 주문 완료
|
||||
$conditions = ['od_id' => $od_id, 'od_name' => $od_name, 'it_name' => $it_name_str, 'od_receipt_price' => number_format($i_price)]; // 변수 치환 정보
|
||||
$cu_atk = send_alimtalk_preset('CU-OR01', ['rcv' => $od_hp ?: $od_tel, 'rcvnm' => $od_name], $conditions); // 회원
|
||||
$ad_atk = send_admin_alimtalk('AD-OR01', 'super', $conditions); // 관리자
|
||||
}
|
||||
// 알림톡 발송 END ---------------------------------------------------------------------------------------------
|
||||
|
||||
// orderview 에서 사용하기 위해 session에 넣고
|
||||
$uid = md5($od_id.G5_TIME_YMDHIS.$REMOTE_ADDR);
|
||||
|
||||
85
mobile/skin/member/basic/consent_modal.inc.php
Normal file
85
mobile/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 { 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; word-break:keep-all; }
|
||||
.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>
|
||||
@ -22,7 +22,7 @@ add_stylesheet('<link rel="stylesheet" href="'.$member_skin_url.'/style.css">',
|
||||
</div>
|
||||
|
||||
<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">
|
||||
@ -31,7 +31,7 @@ add_stylesheet('<link rel="stylesheet" href="'.$member_skin_url.'/style.css">',
|
||||
</section>
|
||||
|
||||
<section id="fregister_private">
|
||||
<h2>개인정보 수집 및 이용</h2>
|
||||
<h2>(필수) 개인정보 수집 및 이용</h2>
|
||||
<div class="tbl_head01 tbl_wrap">
|
||||
<table>
|
||||
<caption>개인정보 수집 및 이용</caption>
|
||||
|
||||
@ -45,8 +45,7 @@ if ($config['cf_cert_use'] && ($config['cf_cert_simple'] || $config['cf_cert_ipi
|
||||
<div class="form_01">
|
||||
<h2>개인정보 입력</h2>
|
||||
<ul>
|
||||
<li>
|
||||
<?php
|
||||
<?php
|
||||
$desc_name = '';
|
||||
$desc_phone = '';
|
||||
if ($config['cf_cert_use']) {
|
||||
@ -56,7 +55,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 btn win_sa_cert" data-type="">간편인증</button>'.PHP_EOL;
|
||||
}
|
||||
@ -67,11 +68,10 @@ if ($config['cf_cert_use'] && ($config['cf_cert_simple'] || $config['cf_cert_ipi
|
||||
|
||||
echo '<span class="cert_req">(필수)</span>';
|
||||
echo '<noscript>본인확인을 위해서는 자바스크립트 사용이 가능해야합니다.</noscript>'.PHP_EOL;
|
||||
}
|
||||
?>
|
||||
<?php
|
||||
if ($config['cf_cert_use'] && $member['mb_certify']) {
|
||||
switch ($member['mb_certify']) {
|
||||
if ($member['mb_certify']) {
|
||||
switch ($member['mb_certify']) {
|
||||
case "simple":
|
||||
$mb_cert = "간편인증";
|
||||
break;
|
||||
@ -86,8 +86,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 class="rgs_name_li">
|
||||
<label for="reg_mb_name" class="sound_only">이름 (필수)<?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 ?>" placeholder="이름 (필수)<?php echo $desc_name ?>">
|
||||
@ -129,7 +130,7 @@ if ($config['cf_cert_use'] && ($config['cf_cert_simple'] || $config['cf_cert_ipi
|
||||
<?php if ($config['cf_use_tel']) { ?>
|
||||
<li>
|
||||
<label for="reg_mb_tel" class="sound_only">전화번호<?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" class="frm_input full_input <?php echo $config['cf_req_tel']?"required":""; ?>" <?php if ($config['cf_cert_use'] && ($config['cf_cert_hp'] || $config['cf_cert_simple']) && $member['mb_certify']) { echo "readonly"; } ?> maxlength="20" <?php echo $config['cf_req_tel']?"required":""; ?> placeholder="전화번호<?php if ($config['cf_req_tel']) { ?> (필수)<?php } ?>">
|
||||
<input type="text" name="mb_tel" value="<?php echo get_text($member['mb_tel']) ?>" id="reg_mb_tel" class="frm_input full_input <?php echo $config['cf_req_tel']?"required":""; ?>" maxlength="20" <?php echo $config['cf_req_tel']?"required":""; ?> placeholder="전화번호<?php if ($config['cf_req_tel']) { ?> (필수)<?php } ?>">
|
||||
</li>
|
||||
<?php } ?>
|
||||
|
||||
@ -218,26 +219,6 @@ if ($config['cf_cert_use'] && ($config['cf_cert_simple'] || $config['cf_cert_ipi
|
||||
</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">
|
||||
<input type="checkbox" name="mb_open" value="1" id="reg_mb_open" <?php echo ($w=='' || $member['mb_open'])?'checked':''; ?> class="selec_chk">
|
||||
@ -246,7 +227,7 @@ if ($config['cf_cert_use'] && ($config['cf_cert_simple'] || $config['cf_cert_ipi
|
||||
<b class="sound_only">정보공개</b>
|
||||
</label>
|
||||
<span class="chk_li">다른분들이 나의 정보를 볼 수 있도록 합니다.</span>
|
||||
<span class="frm_info">
|
||||
<span class="frm_info add_info">
|
||||
정보공개를 바꾸시면 앞으로 <?php echo (int)$config['cf_open_modify'] ?>일 이내에는 변경이 안됩니다.
|
||||
</span>
|
||||
<input type="hidden" name="mb_open_default" value="<?php echo $member['mb_open'] ?>">
|
||||
@ -276,20 +257,174 @@ if ($config['cf_cert_use'] && ($config['cf_cert_simple'] || $config['cf_cert_ipi
|
||||
<input type="text" name="mb_recommend" id="reg_mb_recommend" class="frm_input full_input" placeholder="추천인아이디">
|
||||
</li>
|
||||
<?php } ?>
|
||||
|
||||
<li class="is_captcha_use">
|
||||
<span class="frm_label">자동등록방지</span>
|
||||
<?php echo captcha_html(); ?>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<?php if($config['cf_kakaotalk_use'] != "") { ?>
|
||||
<div class="form_01">
|
||||
<h2>게시판 알림설정</h2>
|
||||
<span class="frm_info add_info">게시판이나 댓글이 등록되면 알림톡으로 안내를 받을 수 있습니다.<br>알림은 등록된 휴대폰 번호로 발송됩니다.</span>
|
||||
|
||||
<ul>
|
||||
<!-- 게시글 알림 -->
|
||||
<li class="chk_box consent-group">
|
||||
<label><b>게시글 알림</b></label>
|
||||
<ul class="sub-consents">
|
||||
<li class="chk_box is-inline">
|
||||
<input type="checkbox" name="mb_board_post" value="1" id="mb_board_post" <?php echo ($w=='' || $member['mb_board_post'])?'checked':''; ?> class="selec_chk">
|
||||
<label for="mb_board_post"><span></span><b class="sound_only">내 게시글 작성 완료 알림</b></label>
|
||||
<span class="chk_li">내 게시글 작성 완료 알림</span>
|
||||
</li>
|
||||
<li class="chk_box is-inline">
|
||||
<input type="checkbox" name="mb_board_reply" value="1" id="mb_board_reply" <?php echo ($w=='' || $member['mb_board_reply'])?'checked':''; ?> class="selec_chk">
|
||||
<label for="mb_board_reply"><span></span><b class="sound_only">내 게시글에 달린 답변 알림</b></label>
|
||||
<span class="chk_li">내 게시글에 달린 답변 알림</span>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
|
||||
<br>
|
||||
|
||||
<!-- 댓글 알림 -->
|
||||
<li class="chk_box consent-group">
|
||||
<label><b>댓글 알림</b></label>
|
||||
<ul class="sub-consents">
|
||||
<li class="chk_box is-inline">
|
||||
<input type="checkbox" name="mb_board_comment" value="1" id="mb_board_comment" <?php echo ($w=='' || $member['mb_board_comment'])?'checked':''; ?> class="selec_chk">
|
||||
<label for="mb_board_comment"><span></span><b class="sound_only">내 게시글에 달린 댓글 알림</b></label>
|
||||
<span class="chk_li">내 게시글에 달린 댓글 알림</span>
|
||||
</li>
|
||||
<li class="chk_box is-inline">
|
||||
<input type="checkbox" name="mb_board_recomment" value="1" id="mb_board_recomment" <?php echo ($w=='' || $member['mb_board_recomment'])?'checked':''; ?> class="selec_chk">
|
||||
<label for="mb_board_recomment"><span></span><b class="sound_only">댓글에 대댓글 알림</b></label>
|
||||
<span class="chk_li">내 댓글에 달린 대댓글 알림</span>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<?php } ?>
|
||||
|
||||
<!-- 회원가입 약관 동의에 광고성 정보 수신 동의 표시 여부가 사용시에만 -->
|
||||
<?php if($config['cf_use_promotion'] == 1) { ?>
|
||||
<div class="form_01">
|
||||
<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', 'cf_kakaotalk_use'];
|
||||
$companies = ['icode' => '아이코드', 'popbill' => '팝빌'];
|
||||
|
||||
$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="form_01">
|
||||
<h2>자동등록방지</h2>
|
||||
<ul>
|
||||
<li class="is_captcha_use">
|
||||
<span class="frm_label">자동등록방지</span>
|
||||
<?php echo captcha_html(); ?>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div class="btn_confirm">
|
||||
<a href="<?php echo G5_URL; ?>/" class="btn_cancel">취소</a>
|
||||
<button type="submit" id="btn_submit" class="btn_submit" accesskey="s"><?php echo $w==''?'회원가입':'정보수정'; ?></button>
|
||||
</div>
|
||||
</form>
|
||||
|
||||
<?php include_once(__DIR__ . '/consent_modal.inc.php'); ?>
|
||||
|
||||
<script>
|
||||
$(function() {
|
||||
$("#reg_zip_find").css("display", "inline-block");
|
||||
@ -513,5 +648,29 @@ if ($config['cf_cert_use'] && ($config['cf_cert_simple'] || $config['cf_cert_ipi
|
||||
}
|
||||
$(this).siblings('.fileName').val(filename);
|
||||
});
|
||||
|
||||
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>
|
||||
</div>
|
||||
@ -5,6 +5,8 @@
|
||||
.mbskin h1 {font-size:1.75em;margin:40px 0 25px}
|
||||
.mbskin p {padding-bottom:20px;border-bottom:1px solid #c8c8c8}
|
||||
.mbskin p strong {color:#4162ff;padding-bottom:5px;display:block;font-size:1.083em}
|
||||
|
||||
/* 버튼 */
|
||||
.mbskin .btn_submit {display:block;width:100%;height:40px;line-height:40px;padding:0 10px;border:0;font-weight:bold;background:#3a8afd;color:#fff;border-radius:3px}
|
||||
/* ### 기본 스타일 커스터마이징 끝 ### */
|
||||
|
||||
@ -68,7 +70,10 @@
|
||||
.fregister_agree input[type="checkbox"]:checked + label {color:#000}
|
||||
.fregister_agree input[type="checkbox"]:checked + label span {background:url('./img/chk.png') no-repeat 50% 50% #3a8afd;border-color:#1471f6;border-radius:3px}
|
||||
.fregister_agree.chk_all input[type="checkbox"] + label span {top:15px}
|
||||
|
||||
#fregisterform .consent-line {display: flex; align-items: baseline;}
|
||||
#fregisterform .consent-date { margin: 5px 0 0 20px !important; }
|
||||
#fregisterform .consent-group .sub-consents {padding: 10px 20px 0;}
|
||||
#fregisterform .js-open-consent {flex:1 0 auto; margin-left: 10px; text-align: right; font-size: 12px; color: #3f51b5; background: none; border: none; cursor: pointer; text-decoration: underline; }
|
||||
|
||||
/* 회원가입 완료 */
|
||||
#reg_result {padding:20px 10px 10px}
|
||||
@ -135,8 +140,9 @@
|
||||
#flogin {background:#fff;margin:20px 0}
|
||||
|
||||
#mb_login_notmb {background:#fff;border-bottom:1px solid #ccc;padding:20px}
|
||||
#mb_login_notmb .chk_box input[type="checkbox"] + label{padding-left:20px}
|
||||
#mb_login_notmb h2 {font-size:1.25em;padding:10px;background:#f3f3f3}
|
||||
#mb_login_notmb p {border:0;padding:0;margin:10px;color:#}
|
||||
#mb_login_notmb p {border:0;padding:0;margin:10px;}
|
||||
#guest_privacy {border:1px solid #ccc;text-align:left;line-height:1.6em;color:#666;background:#fafafa;padding:10px;height:200px;margin:10px 0;overflow-y:auto}
|
||||
#mb_login_notmb .btn_submit {width:100%;display:block;height:40px;line-height:40px}
|
||||
|
||||
@ -154,7 +160,6 @@
|
||||
#mb_login #sns_login .sns-icon:nth-child(odd) {margin-right:2%}
|
||||
#mb_login #sns_login .txt {font-size:0.95em;padding-left:5px !important;border-left:0 !important}
|
||||
|
||||
|
||||
/* 쪽지 */
|
||||
.memo_list {border-top:1px solid #ececec;}
|
||||
.memo_list li {border-bottom:1px solid #ececec;background:#fff;padding:10px 15px;list-style:none;position:relative}
|
||||
@ -198,7 +203,7 @@
|
||||
.memo_from li.memo_view_date {display:block;color:#555;line-height:24px}
|
||||
.memo_from li.memo_op_btn {position:absolute}
|
||||
.memo_from li.list_btn {right:53px;}
|
||||
.memo_from li.del_btn {right:15px;padding}
|
||||
.memo_from li.del_btn {right:15px;}
|
||||
.memo_from:after {display:block;visibility:hidden;clear:both;content:""}
|
||||
|
||||
.memo_btn {width:100%}
|
||||
@ -292,7 +297,6 @@
|
||||
.chk_box input[type="radio"]:checked + label span {border-color:#3a8afd}
|
||||
.chk_box input[type="radio"]:checked + label span:before {width:7px;height:7px;background:#3a8afd;content:'';position:absolute;top:3px;left:3px;border-radius:50%}
|
||||
|
||||
|
||||
/* 자기소개 */
|
||||
#profile section {margin:10px}
|
||||
#profile h2 {margin:0}
|
||||
|
||||
@ -545,11 +545,11 @@ function popup_item_recommend(it_id)
|
||||
}
|
||||
}
|
||||
|
||||
// 재입고SMS 알림
|
||||
// 재입고 알림
|
||||
function popup_stocksms(it_id)
|
||||
{
|
||||
url = "<?php echo G5_SHOP_URL; ?>/itemstocksms.php?it_id=" + it_id;
|
||||
opt = "scrollbars=yes,width=616,height=420,top=10,left=10";
|
||||
opt = "scrollbars=yes,width=616,height=500,top=10,left=10";
|
||||
popup_window(url, "itemstocksms", opt);
|
||||
}
|
||||
|
||||
|
||||
85
mobile/skin/social/consent_modal.inc.php
Normal file
85
mobile/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 { 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; word-break:keep-all; }
|
||||
.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>
|
||||
@ -145,6 +145,108 @@ $email_msg = $is_exists_email ? '등록할 이메일이 중복되었습니다.
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<!-- 회원가입 약관 동의에 광고성 정보 수신 동의 표시 여부가 사용시에만 -->
|
||||
<?php if($config['cf_use_promotion'] == 1) { ?>
|
||||
<div class="form_01">
|
||||
<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>
|
||||
<?php if ($member['mb_marketing_agree'] == 1 && $member['mb_marketing_date'] != "0000-00-00 00:00:00") echo "<br>(동의일자: ".$member['mb_marketing_date'].")"; ?>
|
||||
|
||||
<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']; ?>">
|
||||
<?php if ($w == 'u' && $member['mb_mailling'] == 1 && $member['mb_mailling_date'] != "0000-00-00 00:00:00") echo "<br>(동의일자: ".$member['mb_mailling_date'].")"; ?>
|
||||
</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']; ?>">
|
||||
<?php if ($w == 'u' && $member['mb_sms'] == 1 && $member['mb_sms_date'] != "0000-00-00 00:00:00") echo "<br>(동의일자: ".$member['mb_sms_date'].")"; ?>
|
||||
</li>
|
||||
<?php } ?>
|
||||
</ul>
|
||||
|
||||
<template id="tpl_promotion">
|
||||
수집·이용에 동의한 개인정보를 이용하여 이메일/SMS/카카오톡 등으로 오전 8시~오후 9시에 광고성 정보를 전송할 수 있습니다.<br>
|
||||
동의는 언제든지 마이페이지에서 철회할 수 있습니다.
|
||||
</template>
|
||||
</li>
|
||||
|
||||
<!-- (선택) 개인정보 제3자 제공 동의 -->
|
||||
<!-- SMS 및 카카오톡 사용시에만 -->
|
||||
<?php
|
||||
$configKeys = ['cf_sms_use', 'cf_kakaotalk_use'];
|
||||
$companies = ['icode' => '아이코드', 'popbill' => '팝빌'];
|
||||
|
||||
$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>
|
||||
<?php if ($member['mb_thirdparty_agree'] == 1 && $member['mb_thirdparty_date'] != "0000-00-00 00:00:00") echo "<br>(동의일자: ".$member['mb_thirdparty_date'].")"; ?>
|
||||
|
||||
<template id="tpl_thirdparty">
|
||||
* 목적: 상품/서비스, 사은/판촉행사, 이벤트 등의 마케팅 안내(카카오톡 등)<br>
|
||||
* 항목: 이름, 휴대폰 번호<br>
|
||||
* 제공받는 자: <?php echo implode(', ', $usedCompanies);?><br>
|
||||
* 보유기간: 제공 목적 서비스 기간 또는 동의 철회 시까지
|
||||
</template>
|
||||
</li>
|
||||
<?php } ?>
|
||||
</ul>
|
||||
</div>
|
||||
<?php } ?>
|
||||
|
||||
<div class="btn_confirm">
|
||||
<a href="<?php echo G5_URL ?>" class="btn_cancel">취소</a>
|
||||
<button type="submit" id="btn_submit" class="btn_submit" accesskey="s"><?php echo $w == '' ? '회원가입' : '정보수정'; ?></button>
|
||||
@ -196,6 +298,8 @@ $email_msg = $is_exists_email ? '등록할 이메일이 중복되었습니다.
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<?php include_once(__DIR__ . '/consent_modal.inc.php'); ?>
|
||||
|
||||
<script>
|
||||
$(function() {
|
||||
// 모두선택
|
||||
@ -335,6 +439,30 @@ $email_msg = $is_exists_email ? '등록할 이메일이 중복되었습니다.
|
||||
|
||||
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>
|
||||
|
||||
<!-- } 회원정보 입력/수정 끝 -->
|
||||
@ -130,6 +130,9 @@
|
||||
#fregisterform .rgs_name_li button {margin:5px 0 0;width:auto}
|
||||
#fregisterform .reg_mb_img_file {margin-bottom:30px}
|
||||
#fregisterform .reg_mb_img_file img {max-width:100%;height:auto}
|
||||
#fregisterform .consent-line {display: flex; align-items: baseline;}
|
||||
#fregisterform .consent-group .sub-consents {padding: 10px 20px 0;}
|
||||
#fregisterform .js-open-consent {flex:1 0 auto; margin-left: 10px; text-align: right; font-size: 12px; color: #3f51b5; background: none; border: none; cursor: pointer; text-decoration: underline; }
|
||||
|
||||
.filebox .fileName {display:inline-block;position:relative;width:100%;height:45px;padding-left:10px;margin-right:5px;line-height:30px;border: 1px solid #d0d3db;background-color:#fff;color:red;vertical-align:middle}
|
||||
.filebox .btn_file {display:inline-block;position:absolute;right:8px;top:8px;border:1px solid #3a8afd;border-radius:3px;width:70px;height:30px;color:#3a8afd;font-size:1em;line-height:30px;font-weight:bold;text-align:center;vertical-align:middle}
|
||||
|
||||
Reference in New Issue
Block a user