최초 커밋
This commit is contained in:
@@ -0,0 +1,20 @@
|
||||
<?php
|
||||
//if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가
|
||||
include_once("../../../common.php");
|
||||
|
||||
extract($_REQUEST);
|
||||
|
||||
//아이디 중복체크
|
||||
if( $ActionKind =="dupl_check" && isset($reg_mb_id) ){
|
||||
$sql = "select count(*) cnt from g5_member where mb_id = TRIM('$reg_mb_id')";
|
||||
$mb = sql_fetch($sql);
|
||||
|
||||
echo $mb["cnt"];
|
||||
exit();
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
?>
|
||||
|
||||
@@ -0,0 +1,23 @@
|
||||
<?php
|
||||
if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가
|
||||
|
||||
if (!function_exists('egbim_img_url')) {
|
||||
function egbim_img_url($path = '')
|
||||
{
|
||||
$baseUrl = '/egbim/img';
|
||||
// Cloudflare 대시보드 URL이 아니라 실제 공개 호스트를 넣어야 합니다.
|
||||
// 예: https://cdn.eg-bim.com
|
||||
$cdnOrigin = '';
|
||||
$cdnPathPrefix = '/egbim_img/egbim';
|
||||
|
||||
// 현재 버킷 디렉토리 구성은 egbim/img/* 와 동일하므로
|
||||
// 공개 호스트만 정해지면 /egbim_img/egbim/<파일명> 으로 바로 매핑합니다.
|
||||
if ($cdnOrigin !== '') {
|
||||
$baseUrl = rtrim($cdnOrigin, '/') . $cdnPathPrefix;
|
||||
}
|
||||
|
||||
$path = ltrim((string) $path, '/');
|
||||
|
||||
return $path === '' ? $baseUrl : $baseUrl . '/' . $path;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,407 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<!-- Google tag (gtag.js) -->
|
||||
<script async src="https://www.googletagmanager.com/gtag/js?id=G-STZ2R5Q7HG"></script>
|
||||
<script>
|
||||
window.dataLayer = window.dataLayer || [];
|
||||
function gtag(){dataLayer.push(arguments);}
|
||||
gtag('js', new Date());
|
||||
|
||||
gtag('config', 'G-STZ2R5Q7HG');
|
||||
</script>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>구매하기</title>
|
||||
<link rel="stylesheet" href="../css/reset.css"/>
|
||||
<link rel="stylesheet" href="../css/font.css"/>
|
||||
<link rel="stylesheet" href="../css/style.css"/>
|
||||
<link rel="stylesheet" href="https://unpkg.com/aos@2.3.1/dist/aos.css" type="text/css"/>
|
||||
<script src="https://unpkg.com/aos@2.3.1/dist/aos.js"></script>
|
||||
<script src="https://unpkg.com/lenis@1.1.9/dist/lenis.min.js"></script>
|
||||
<link rel="stylesheet" href="https://unpkg.com/lenis@1.1.9/dist/lenis.css">
|
||||
<script type="text/javascript" src="../js/jquery-3.6.1.min.js"></script>
|
||||
<script type="text/javascript" src="../js/jquery.mousewheel.min.js"></script>
|
||||
<script src="https://cdn.jsdelivr.net/npm/gsap@3.12.5/dist/gsap.min.js"></script>
|
||||
<script src="https://cdn.jsdelivr.net/npm/gsap@3.12.5/dist/ScrollTrigger.min.js"></script>
|
||||
<script src="https://cdn.jsdelivr.net/npm/gsap@3.12.5/dist/ScrollToPlugin.min.js"></script>
|
||||
<script type="text/javascript" src="../js/common.js"></script>
|
||||
<script type="text/javascript" src="../js/popup.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
<div class="wrapper">
|
||||
<input id="hid_mb_id" name="hid_mb_id" type="hidden" value="<?echo $_SESSION['session_id'];?>">
|
||||
<!-- HEADER -->
|
||||
<?php include_once($member_skin_path.'/main_header.skin.php'); ?>
|
||||
<!-- //Header -->
|
||||
|
||||
<!-- 모든 팝업페이지 경로 -->
|
||||
<?php
|
||||
include_once($member_skin_path.'/login.skin.php');
|
||||
include_once($member_skin_path.'/mypage01.skin.php');
|
||||
include_once($member_skin_path.'/register.skin.php');
|
||||
include_once($member_skin_path.'/register_form.skin.php');
|
||||
include_once($member_skin_path.'/mypage02.skin.php');
|
||||
include_once($member_skin_path.'/mypage03.skin.php');
|
||||
include_once($member_skin_path.'/sitemap.skin.php');
|
||||
include_once($member_skin_path.'/privacy.skin.php');
|
||||
include_once($member_skin_path.'/password_lost.skin.php');
|
||||
?>
|
||||
<!-- //모든 팝업페이지 경로 -->
|
||||
<!-- 컨텐츠 시작 -->
|
||||
|
||||
<div class="container buy">
|
||||
<section class="intro">
|
||||
<div class="top js__dark">
|
||||
<h2 data-aos="fade-down" data-aos-duration="1000">구매하기</h2>
|
||||
<span>EG-BIM 구매문의 및 제품 안내</span>
|
||||
</div>
|
||||
</section>
|
||||
<section class="contents_wrap">
|
||||
|
||||
<div class="ask_area">
|
||||
<div class="ask_l">
|
||||
<span class="mid_tit"><font class="egbim k">EG-BIM S/W</font>으로<br><b>신개념 S/W</b> 직접 경험하세요</span>
|
||||
</div>
|
||||
<div class="ask_r">
|
||||
<span class="sub_text"><em>라이선스 중복 시 <font style="color: var(--color-orange)">이용이 제한</font></em>될 수 있습니다.</span>
|
||||
<div class="ask_btn">
|
||||
<a href="/egbim/bbs/descope_qa_list.php" class="btn_ask" ><i></i>EG-BIM 구매 문의</a>
|
||||
<!-- <a href="#" onclick="alert('문의 게시판은 준비중입니다.'); return false;" class="btn_ask" ><i></i>EG-BIM 구매 문의</a> -->
|
||||
<a href="../download/EGBIM_leaflet_v01.pdf" download class="btn_brochure"><i></i>브로슈어</a>
|
||||
<a href="../download/EGBIM_manual.pdf" download class="btn_manual"><i></i>매뉴얼</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="video_area" data-aos="fade-right" data-aos-duration="1000">
|
||||
<div class="vod_wrap"><video autoplay muted loop playsinline><source src="../img/EGBIM_buy.mp4"></video></div>
|
||||
<div class="contact_area">
|
||||
<p>
|
||||
<span class="mid_tit">구매 상담</span>
|
||||
<span class="sub_text">EG-BIM 담당자에게 직접 문의하기</span>
|
||||
</p>
|
||||
<div class="line"></div>
|
||||
<ul>
|
||||
<li class="tel"><i></i><a href="tel:0214147434">02 - 2141 - 7434</a></li>
|
||||
<li class="mail"><i></i>baroncs@baroncs.co.kr</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
</div>
|
||||
|
||||
<!-- //컨텐츠 시작 -->
|
||||
<!-- FOOTER -->
|
||||
<?php include_once($member_skin_path.'/main_footer.skin.php'); ?>
|
||||
<!-- //FOOTER -->
|
||||
</div>
|
||||
<script>
|
||||
AOS.init();
|
||||
|
||||
const lenis = new Lenis()
|
||||
lenis.on('scroll', (e) => {
|
||||
// console.log(e)
|
||||
})
|
||||
lenis.on('scroll', ScrollTrigger.update)
|
||||
gsap.ticker.add((time)=>{
|
||||
lenis.raf(time * 1000)
|
||||
})
|
||||
gsap.ticker.lagSmoothing(0)
|
||||
</script>
|
||||
</body>
|
||||
|
||||
<script>
|
||||
$(function(){
|
||||
// footer family site toggle
|
||||
$('.family_btn').click(function(e){
|
||||
e.stopPropagation();
|
||||
$('.family_list, .family_btn').toggleClass('family_on');
|
||||
});
|
||||
$(document).click(function(e){
|
||||
if(!$(e.target).closest('.family_wrap').length){
|
||||
$('.family_list, .family_btn').removeClass('family_on');
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
// 회원 탈퇴
|
||||
function member_leave() {
|
||||
if (confirm("회원에서 탈퇴 하시겠습니까?"))
|
||||
location.href = '<?php echo G5_BBS_URL ?>/member_leave.php';
|
||||
}
|
||||
// 회원 탈퇴
|
||||
|
||||
|
||||
let x = document.cookie;
|
||||
if(x.includes("tmp_1=John")){
|
||||
deleteCookie("tmp_1");
|
||||
$('#pop_mypage02').show();
|
||||
}
|
||||
|
||||
function deleteCookie(name) {
|
||||
document.cookie = name + "=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/egbim;";
|
||||
document.cookie = name + "=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/egbim/bbs;";
|
||||
document.cookie = name + "=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/egbim/faq;";
|
||||
document.cookie = name + "=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/egbim/qa;";
|
||||
}
|
||||
function getCookie(cname) {
|
||||
let name = cname + "=";
|
||||
let decodedCookie = decodeURIComponent(document.cookie);
|
||||
let ca = decodedCookie.split(';');
|
||||
for(let i = 0; i <ca.length; i++) {
|
||||
let c = ca[i];
|
||||
while (c.charAt(0) == ' ') {
|
||||
c = c.substring(1);
|
||||
}
|
||||
if (c.indexOf(name) == 0) {
|
||||
return c.substring(name.length, c.length);
|
||||
}
|
||||
}
|
||||
return "";
|
||||
}
|
||||
|
||||
//descope 로그인, 로그아웃 js
|
||||
function updateHeaderMenu() {
|
||||
var isLoggedIn = !!sessionStorage.getItem("sessionJwt");
|
||||
// role 체크 예시 (로그인 시 저장해놓은 값)
|
||||
var isAdmin = sessionStorage.getItem('userRole') === 'super';
|
||||
|
||||
if (isLoggedIn) {
|
||||
$('.my_join2, .my_login2').show();
|
||||
$('.my_join, .my_login').hide();
|
||||
|
||||
// 마이페이지/관리자 메뉴 동적 출력
|
||||
if (isAdmin) {
|
||||
$('#my_join2').html("<a href='http://eg-bim.com/egbim/adm/index.php' target='_blank'>관리페이지</a>");
|
||||
} else {
|
||||
$('#my_join2').html("<a href='javascript:mypage03();'>마이페이지</a>");
|
||||
}
|
||||
} else {
|
||||
$('.my_join2, .my_login2').hide();
|
||||
$('.my_join, .my_login').show();
|
||||
$('#my_join2').html(""); // 혹시모를 내용 초기화
|
||||
}
|
||||
}
|
||||
|
||||
function descopeLogout() {
|
||||
fetch('/egbim/skin/member/basic/descope_logout.php', {
|
||||
method: 'POST',
|
||||
credentials: 'include' // PHPSESSID 쿠키 전송
|
||||
})
|
||||
.then(res => {
|
||||
if (!res.ok) throw new Error('서버 로그아웃 실패');
|
||||
// 1) 로컬 저장소 정리
|
||||
// sessionStorage.removeItem("refreshJwt");
|
||||
// sessionStorage.removeItem("sessionJwt");
|
||||
// sessionStorage.removeItem("userRole");
|
||||
// sessionStorage.removeItem("userName");
|
||||
// sessionStorage.removeItem("loginId");
|
||||
|
||||
sessionStorage.clear();
|
||||
localStorage.clear();
|
||||
// 2) UI 갱신
|
||||
updateHeaderMenu();
|
||||
// 3) 로그인 페이지로 이동
|
||||
window.location.href = '/egbim/index.php';
|
||||
})
|
||||
.catch(err => {
|
||||
console.error(err);
|
||||
alert('로그아웃 중 오류가 발생했습니다.');
|
||||
});
|
||||
}
|
||||
|
||||
$(document).ready(function() {
|
||||
// 기존에 있던 updateHeaderMenu() 호출 뒤에
|
||||
$('#my_login2 a').off('click').on('click', function(e){
|
||||
e.preventDefault();
|
||||
descopeLogout();
|
||||
});
|
||||
});
|
||||
|
||||
$(document).ready(function() {
|
||||
updateHeaderMenu();
|
||||
// (필요하다면, 로그인 성공 후에도 항상 updateHeaderMenu(); 호출)
|
||||
});
|
||||
|
||||
//descope login
|
||||
$('#flogin button[type=submit]').click(function(e){
|
||||
e.preventDefault();
|
||||
let mb_id = $('#login_id').val();
|
||||
let mb_password = $('#login_pw').val();
|
||||
|
||||
$.ajax({
|
||||
url : '/egbim/skin/member/basic/descope_login.php',
|
||||
data : {
|
||||
'mb_id' : mb_id,
|
||||
'mb_password' : mb_password
|
||||
},
|
||||
type : "POST",
|
||||
dataType : "json",
|
||||
success : function(res){
|
||||
if(res.status === "ok") {
|
||||
// 토큰 저장
|
||||
// sessionStorage.setItem("refreshJwt", res.refreshJwt);
|
||||
sessionStorage.setItem("sessionJwt", res.sessionJwt);
|
||||
|
||||
// ✅ 사용자 정보 저장
|
||||
if (res.user) {
|
||||
sessionStorage.setItem("loginId", res.user.loginIds?.[0] || '');
|
||||
sessionStorage.setItem("userName", res.user.name || '');
|
||||
sessionStorage.setItem("company", res.user.customAttributes?.company || '');
|
||||
sessionStorage.setItem("familyCompany", res.user.customAttributes?.familyCompany || '');
|
||||
sessionStorage.setItem("position", res.user.customAttributes?.position || '');
|
||||
sessionStorage.setItem("team", res.user.customAttributes?.team || '');
|
||||
sessionStorage.setItem("familyUniqueKey", res.user.customAttributes?.familyUniqueKey || '');
|
||||
sessionStorage.setItem("phone", res.user.phone || '');
|
||||
}
|
||||
|
||||
// ✅ 추가: 관리자 등 정보 저장
|
||||
if(res.user && res.user.roleNames && res.user.roleNames[0])
|
||||
sessionStorage.setItem("userRole", res.user.roleNames[0]);
|
||||
else
|
||||
sessionStorage.removeItem("userRole");
|
||||
|
||||
// ✅ 로그인 후 메뉴 갱신
|
||||
updateHeaderMenu();
|
||||
|
||||
// UI 처리
|
||||
$('.popup_wrap').hide();
|
||||
$('body').css('overflow', '');
|
||||
lenis.start();
|
||||
// alert('로그인 하셨습니다.');
|
||||
} else {
|
||||
alert(res.message || "로그인 실패");
|
||||
|
||||
// 🔴 실패 횟수에 따라 안내 배너 교체
|
||||
if (res.failCount && res.failCount >= 8) {
|
||||
updateLoginBanner("fail");
|
||||
}
|
||||
}
|
||||
},
|
||||
error : function(err){
|
||||
alert(err.statusText || "통신 오류");
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
// ✅ 배너 교체 함수
|
||||
function updateLoginBanner(type = "default") {
|
||||
const $banner = $('#login_notice_banner');
|
||||
if (!$banner.length) return;
|
||||
|
||||
if (type === "default") {
|
||||
$banner.css({ background: "#063e01ff", color: "#fff" });
|
||||
$banner.find("strong").text("[로그인 시스템 변경 안내]");
|
||||
$banner.find("p.left").html(`
|
||||
더 나은 보안을 위해 2025년 8월 8일부터 로그인 시스템이 변경되었습니다.<br>
|
||||
기존 회원 또한 신규 시스템에 맞춰 재가입을 진행해주시기 바랍니다.
|
||||
`);
|
||||
$banner.find("p:last").html(`※ 로그인 및 가입 관련 문의: <strong>010-8721-7453</strong>`);
|
||||
}
|
||||
|
||||
if (type === "fail") {
|
||||
$banner.css({ background: "#6a0202ff", color: "#faf6f6ff" });
|
||||
$banner.find("strong").text("[로그인 시도 제한 안내]");
|
||||
$banner.find("p.left").html(`
|
||||
비밀번호 입력을 <strong>7회 이상 연속 실패</strong>하셨습니다.<br>
|
||||
<strong>8번째 시도부터 3분 대기</strong>가 적용됩니다.<br>
|
||||
10회 이상 실패 시 계정이 잠금 처리됩니다.
|
||||
`);
|
||||
$banner.find("p:last").text("");
|
||||
}
|
||||
}
|
||||
//회원가입 약관동의
|
||||
// $('#fregister button[type=submit]').click(function(e){
|
||||
// e.preventDefault();
|
||||
// let agree11 = $('#agree11').val();
|
||||
// let agree21 = $('#agree21').val();
|
||||
// $.ajax({
|
||||
// url : '<?php echo G5_URL ?>/bbs/register_form.php',
|
||||
// type : "POST",
|
||||
// datatype : "json",
|
||||
// contentType: 'application/json; charset=utf-8',
|
||||
// data : {
|
||||
// 'agree11' : agree11,
|
||||
// 'agree21' : agree21
|
||||
// },
|
||||
// success : function(data){
|
||||
// var ss='';
|
||||
// for(i=0; i<data.length; i++){
|
||||
// ss=ss + data[i];
|
||||
// }
|
||||
// },
|
||||
// error : function(err){
|
||||
// alert(err);
|
||||
// }
|
||||
// });
|
||||
// });
|
||||
|
||||
// 이지빔 프로그램 회원가입 url 쿼리스트링 파싱 함수
|
||||
function getQueryString(name) {
|
||||
const intro = document.querySelector('.intro_wrap');
|
||||
intro.style.display = "none";
|
||||
const mainMask = document.querySelector('.main_mask');
|
||||
mainMask.classList.add('skip');
|
||||
// mainMask.style.aimation = 'none';
|
||||
const urlParams = new URLSearchParams(window.location.search);
|
||||
return urlParams.get(name);
|
||||
}
|
||||
|
||||
$(document).ready(function() {
|
||||
const popupParam = getQueryString('popup');
|
||||
|
||||
if (popupParam === 'signup') {
|
||||
console.log('쿼리 감지: signup → 회원가입 팝업 자동 오픈 시도');
|
||||
$('#pop_agreement').show(); // 팝업 보여주기
|
||||
|
||||
// 스크롤 잠금 (사용 중이면)
|
||||
$('body').css('overflow', 'hidden');
|
||||
if (typeof lenis !== 'undefined') {
|
||||
lenis.stop();
|
||||
}
|
||||
}
|
||||
|
||||
// 팝업 닫기 버튼 이벤트 연결
|
||||
$('#pop_agreement .btn_close').on('click', function() {
|
||||
$('#pop_agreement').hide();
|
||||
$('body').css('overflow', '');
|
||||
if (typeof lenis !== 'undefined') {
|
||||
lenis.start();
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
//이지빔 프로그램 비밀번호 재설정 url 쿼리스트링 파싱 함수
|
||||
$(document).ready(function() {
|
||||
const urlParams = new URLSearchParams(window.location.search);
|
||||
const popup = urlParams.get('popup');
|
||||
const token = urlParams.get('t');
|
||||
|
||||
if (popup === 'pwreset') {
|
||||
// 팝업 전체 열기
|
||||
$('#pop_search').show();
|
||||
$('body').css('overflow', 'hidden');
|
||||
|
||||
// 내부 컨텐츠 모두 숨기기
|
||||
$('#pop_search .popup_contents_wrap').hide();
|
||||
|
||||
if (token) {
|
||||
// 토큰이 있으면 비밀번호 재설정 단계
|
||||
if (!sessionStorage.getItem('pwreset_shown')) {
|
||||
$('#password_reset').show();
|
||||
sessionStorage.setItem('pwreset_shown', '1');
|
||||
}
|
||||
} else {
|
||||
// 토큰이 없으면 아이디 입력 단계 (첫 번째 .popup_contents_wrap)
|
||||
$('#pop_search .popup_contents_wrap').first().show();
|
||||
}
|
||||
}
|
||||
|
||||
// 닫기 버튼
|
||||
$('#pop_search .btn_close').on('click', function() {
|
||||
$('#pop_search').hide();
|
||||
$('body').css('overflow', '');
|
||||
});
|
||||
});
|
||||
</script>
|
||||
@@ -0,0 +1,603 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<!-- Google tag (gtag.js) -->
|
||||
<!-- Google tag (gtag.js) -->
|
||||
<script async src="https://www.googletagmanager.com/gtag/js?id=G-STZ2R5Q7HG"></script>
|
||||
<script>
|
||||
window.dataLayer = window.dataLayer || [];
|
||||
function gtag(){dataLayer.push(arguments);}
|
||||
gtag('js', new Date());
|
||||
|
||||
gtag('config', 'G-STZ2R5Q7HG');
|
||||
</script>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>구매하기</title>
|
||||
<link rel="stylesheet" href="../css/reset.css"/>
|
||||
<link rel="stylesheet" href="../css/font.css"/>
|
||||
<link rel="stylesheet" href="../css/style.css"/>
|
||||
<link rel="stylesheet" href="https://unpkg.com/aos@2.3.1/dist/aos.css" type="text/css"/>
|
||||
<script src="https://unpkg.com/aos@2.3.1/dist/aos.js"></script>
|
||||
<script src="https://unpkg.com/lenis@1.1.9/dist/lenis.min.js"></script>
|
||||
<link rel="stylesheet" href="https://unpkg.com/lenis@1.1.9/dist/lenis.css">
|
||||
<script type="text/javascript" src="../js/jquery-3.6.1.min.js"></script>
|
||||
<script type="text/javascript" src="../js/jquery.mousewheel.min.js"></script>
|
||||
<script src="https://cdn.jsdelivr.net/npm/gsap@3.12.5/dist/gsap.min.js"></script>
|
||||
<script src="https://cdn.jsdelivr.net/npm/gsap@3.12.5/dist/ScrollTrigger.min.js"></script>
|
||||
<script src="https://cdn.jsdelivr.net/npm/gsap@3.12.5/dist/ScrollToPlugin.min.js"></script>
|
||||
<script type="text/javascript" src="../js/common.js"></script>
|
||||
<script type="text/javascript" src="../js/popup.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
<div class="wrapper">
|
||||
<input id="hid_mb_id" name="hid_mb_id" type="hidden" value="<?echo $_SESSION['session_id'];?>">
|
||||
<!-- HEADER -->
|
||||
<header class="js__header">
|
||||
<?php include_once($member_skin_path.'/main_header.skin.php'); ?>
|
||||
</header>
|
||||
<!-- //Header -->
|
||||
<!-- floating_menu -->
|
||||
<div class="floating_menu">
|
||||
<ul>
|
||||
<li class="floating_faq"><a href="<?php echo G5_BBS_URL ?>/faq.php">
|
||||
<i></i>
|
||||
<span>FAQ</span>
|
||||
</a></li>
|
||||
<li class="floating_buy"><a href="<?php echo G5_BBS_URL ?>/buy.php">
|
||||
<i></i>
|
||||
<span>구매하기</span>
|
||||
</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<!-- //floating_menu -->
|
||||
<!-- 모든 팝업페이지 경로 -->
|
||||
<?php
|
||||
include_once($member_skin_path.'/login.skin.php');
|
||||
include_once($member_skin_path.'/mypage01.skin.php');
|
||||
include_once($member_skin_path.'/register.skin.php');
|
||||
include_once($member_skin_path.'/register_form.skin.php');
|
||||
include_once($member_skin_path.'/mypage02.skin.php');
|
||||
include_once($member_skin_path.'/mypage03.skin.php');
|
||||
include_once($member_skin_path.'/sitemap.skin.php');
|
||||
include_once($member_skin_path.'/privacy.skin.php');
|
||||
include_once($member_skin_path.'/password_lost.skin.php');
|
||||
?>
|
||||
<!-- //모든 팝업페이지 경로 -->
|
||||
<!-- 컨텐츠 시작 -->
|
||||
|
||||
<div class="container buy">
|
||||
<section class="intro">
|
||||
<div class="top js__dark">
|
||||
<h2 data-aos="fade-down" data-aos-duration="1000">구매하기</h2>
|
||||
<span>EG-BIM 구매문의 및 제품 안내</span>
|
||||
</div>
|
||||
</section>
|
||||
<section class="contents_wrap">
|
||||
|
||||
<div class="ask_area">
|
||||
<div class="ask_l">
|
||||
<span class="mid_tit"><font class="egbim k">EG-BIM S/W</font>으로<br><b>신개념 S/W</b> 직접 경험하세요</span>
|
||||
</div>
|
||||
<div class="ask_r">
|
||||
<span class="sub_text"><em>라이선스 중복 시 <font style="color: var(--color-orange)">이용이 제한</font></em>될 수 있습니다.</span>
|
||||
<div class="ask_btn">
|
||||
<a href="<?php echo G5_BBS_URL ?>/qalist.php" class="btn_ask" ><i></i>EG-BIM 구매 문의</a>
|
||||
<a href="../download/EGBIM_leaflet.pdf" download class="btn_brochure"><i></i>브로슈어</a>
|
||||
<a href="../download/EGBIM_manual.pdf" download class="btn_manual"><i></i>매뉴얼</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="video_area" data-aos="fade-right" data-aos-duration="1000">
|
||||
<video autoplay muted loop >
|
||||
<source src="../img/EGBIM_buy.mp4">
|
||||
</video>
|
||||
<div class="contact_area">
|
||||
<span class="mid_tit">구매 상담</span>
|
||||
<span class="sub_text"><em>EG-BIM 담당자에게 직접 문의하기</em></span>
|
||||
<ul>
|
||||
<li class="tel"><i></i>02 - 2141 - 7434</li>
|
||||
<li class="mail"><i></i>baroncs@baroncs.co.kr</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
</div>
|
||||
|
||||
<!-- //컨텐츠 시작 -->
|
||||
<!-- FOOTER -->
|
||||
<button class="btn_top js__top" onclick="window.scrollTo(0,0);"><div class="arrow"></div></button>
|
||||
<footer class="footer_off">
|
||||
<?php include_once($member_skin_path.'/main_footer.skin.php'); ?>
|
||||
</footer>
|
||||
<!-- //FOOTER -->
|
||||
</div>
|
||||
<script>
|
||||
AOS.init();
|
||||
|
||||
const lenis = new Lenis()
|
||||
lenis.on('scroll', (e) => {
|
||||
// console.log(e)
|
||||
})
|
||||
lenis.on('scroll', ScrollTrigger.update)
|
||||
gsap.ticker.add((time)=>{
|
||||
lenis.raf(time * 1000)
|
||||
})
|
||||
gsap.ticker.lagSmoothing(0)
|
||||
</script>
|
||||
</body>
|
||||
|
||||
<script>
|
||||
// 회원 탈퇴
|
||||
function member_leave() {
|
||||
if (confirm("회원에서 탈퇴 하시겠습니까?"))
|
||||
location.href = '<?php echo G5_BBS_URL ?>/member_leave.php';
|
||||
}
|
||||
// 회원 탈퇴
|
||||
|
||||
if($('#hid_mb_id').val()==''){
|
||||
document.getElementById('my_join2').style.display = 'none';
|
||||
document.getElementById('my_login2').style.display = 'none';
|
||||
document.getElementById('my_join').style.display = '';
|
||||
document.getElementById('my_login').style.display = '';
|
||||
}else{
|
||||
document.getElementById('my_join2').style.display = '';
|
||||
document.getElementById('my_login2').style.display = '';
|
||||
document.getElementById('my_join').style.display = 'none';
|
||||
document.getElementById('my_login').style.display = 'none';
|
||||
}
|
||||
let x = document.cookie;
|
||||
if(x.includes("tmp_1=John")){
|
||||
deleteCookie("tmp_1");
|
||||
$('#pop_mypage02').show();
|
||||
}
|
||||
function deleteCookie(name) {
|
||||
document.cookie = name + "=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/egbim/bbs;";
|
||||
}
|
||||
function getCookie(cname) {
|
||||
let name = cname + "=";
|
||||
let decodedCookie = decodeURIComponent(document.cookie);
|
||||
let ca = decodedCookie.split(';');
|
||||
for(let i = 0; i <ca.length; i++) {
|
||||
let c = ca[i];
|
||||
while (c.charAt(0) == ' ') {
|
||||
c = c.substring(1);
|
||||
}
|
||||
if (c.indexOf(name) == 0) {
|
||||
return c.substring(name.length, c.length);
|
||||
}
|
||||
}
|
||||
return "";
|
||||
}
|
||||
//alert(getCookie("tmp_1"));
|
||||
//로그인
|
||||
$('#flogin button[type=submit]').click(function(e){
|
||||
e.preventDefault();
|
||||
let mb_id = $('#login_id').val();
|
||||
let mb_password = $('#login_pw').val();
|
||||
//alert('<?php echo G5_URL ?>/bbs/login.php');
|
||||
$.ajax({
|
||||
url : '<?php echo G5_URL ?>/bbs/login_check_tova.php',
|
||||
data : {
|
||||
'mb_id' : mb_id,
|
||||
'mb_password' : mb_password
|
||||
},
|
||||
type : "POST",
|
||||
datatype : "json",
|
||||
success : function(data){
|
||||
var ss='';
|
||||
for(i=0; i<data.length; i++){
|
||||
ss=ss + data[i];
|
||||
}
|
||||
//alert(ss.replace('"','').replace('"',''));
|
||||
if(ss.replace('"','').replace('"','') == "success" || ss.replace('"','').replace('"','') == "super"){
|
||||
//$(".popup_wrap").show();
|
||||
$('.btn_close').hide();
|
||||
$('#pop_login').hide();
|
||||
$('#hid_mb_id').val(mb_id);
|
||||
document.getElementById('my_join2').style.display = '';
|
||||
document.getElementById('my_login2').style.display = '';
|
||||
document.getElementById('my_join').style.display = 'none';
|
||||
document.getElementById('my_login').style.display = 'none';
|
||||
//location.href="<?php echo G5_URL ?>/bbs/session.php?id="+mb_id;
|
||||
if(ss.replace('"','').replace('"','') == "super"){
|
||||
$('#my_join2').html("<a href='http://eg-bim.com/egbim/adm/index.php' target='_blank'>관리페이지</a>");
|
||||
}else{
|
||||
$('#my_join2').html("<a href='javascript:mypage01();'>마이페이지</a>");
|
||||
}
|
||||
}else
|
||||
{
|
||||
alert(trim(ss));
|
||||
}
|
||||
},
|
||||
error : function(err){
|
||||
//alert(err);
|
||||
alert(err.status);
|
||||
alert(err.statusText);
|
||||
}
|
||||
});
|
||||
});
|
||||
//회원가입 약관동의
|
||||
$('#fregister button[type=submit]').click(function(e){
|
||||
e.preventDefault();
|
||||
let agree11 = $('#agree11').val();
|
||||
let agree21 = $('#agree21').val();
|
||||
$.ajax({
|
||||
url : '<?php echo G5_URL ?>/bbs/register_form.php',
|
||||
type : "POST",
|
||||
datatype : "json",
|
||||
contentType: 'application/json; charset=utf-8',
|
||||
data : {
|
||||
'agree11' : agree11,
|
||||
'agree21' : agree21
|
||||
},
|
||||
success : function(data){
|
||||
var ss='';
|
||||
for(i=0; i<data.length; i++){
|
||||
ss=ss + data[i];
|
||||
}
|
||||
},
|
||||
error : function(err){
|
||||
alert(err);
|
||||
}
|
||||
});
|
||||
});
|
||||
//회원가입 정보입력
|
||||
$('#fregisterform button[type=submit]').click(function(e){
|
||||
e.preventDefault();
|
||||
|
||||
let mb_id = $('#reg_mb_id').val();
|
||||
let mb_password = $('#reg_mb_password').val();
|
||||
let mb_password_re = $('#reg_mb_password_re').val();
|
||||
let mb_name = $('#reg_mb_name').val();
|
||||
let mb_email1 = $('#reg_mb_email1').val();
|
||||
let mb_email2 = $('#mb_email2').val();
|
||||
let reg_domain2 = $('#register_domain2').val();
|
||||
let mb_hp = $('#reg_mb_hp').val();
|
||||
let mb_comp = $('#reg_mb_comp').val();
|
||||
let mb_comp_team = $('#reg_mb_comp_team').val();
|
||||
//alert(mb_password+' '+mb_password_re+' '+mb_name+' '+mb_email1+' '+mb_email2+' '+mb_hp+' '+mb_comp+' '+mb_comp_team);
|
||||
if (mb_id.length < 4) {
|
||||
alert("아이디를 4글자 이상 입력하십시오.");
|
||||
mb_id.focus();
|
||||
return false;
|
||||
}
|
||||
var special_pattern = /[`~!@#$%^&*|\\\'\";:\/?]/gi
|
||||
if (special_pattern.test(mb_id) == true) {
|
||||
alert("아이디는 특수문자를 사용할수 없습니다.");
|
||||
mb_id.focus();
|
||||
return false;
|
||||
}
|
||||
|
||||
// 비밀번호 검사
|
||||
if(!/^(?=.*[a-zA-Z])(?=.*[!@#$%^*+=-])(?=.*[0-9]).{8,25}$/.test(mb_password)){
|
||||
alert('비밀번호는 숫자+영문자+특수문자 조합으로 8자리 이상 사용해야 합니다.');
|
||||
mb_password.focus();
|
||||
return false;
|
||||
}
|
||||
// if (mb_password_re.length < 8 || mb_password.length < 8) {
|
||||
// alert("비밀번호를 8글자 이상 입력하십시오.");
|
||||
// mb_password.focus();
|
||||
// return false;
|
||||
// }
|
||||
|
||||
// 비밀번호 & 2차비밀번호 검사
|
||||
if (mb_password != mb_password_re) {
|
||||
alert("비밀번호가 같지 않습니다.");
|
||||
mb_password_re.focus();
|
||||
return false;
|
||||
}
|
||||
|
||||
// 이름 검사
|
||||
if (mb_name == "") {
|
||||
if (mb_name.length < 1) {
|
||||
alert("이름을 입력하십시오.");
|
||||
mb_name.focus();
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
// 메일 검사
|
||||
if (mb_email1 == "") {
|
||||
if (mb_email1.length < 1) {
|
||||
alert("메일 주소를 입력하십시오.");
|
||||
mb_email1.focus();
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
if (mb_email2 == "type"){
|
||||
mb_email2 = '@' + reg_domain2;
|
||||
}
|
||||
|
||||
// 핸드폰 번호 검사
|
||||
if (mb_hp.length < 11) {
|
||||
alert("휴대전화번호 11자리를 입력하십시오.");
|
||||
mb_hp.focus();
|
||||
return false;
|
||||
}
|
||||
if(isNaN(mb_hp)){
|
||||
alert("휴대전화번호는 숫자만 입력가능합니다.");
|
||||
mb_hp.focus();
|
||||
return false;
|
||||
}
|
||||
// 회사명 검사
|
||||
if (mb_comp == "") {
|
||||
if (mb_comp.length < 1) {
|
||||
alert("회사명을 입력하십시오");
|
||||
mb_comp.focus();
|
||||
return false;
|
||||
}
|
||||
}
|
||||
// 팀명 검사
|
||||
if (mb_comp_team == "") {
|
||||
if (mb_comp_team.length < 1) {
|
||||
alert("팀명을 입력하십시오");
|
||||
mb_comp_team.focus();
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
$.ajax({
|
||||
url : '<?php echo G5_URL ?>/bbs/register_form_update.php',
|
||||
data : {
|
||||
'mb_id' : mb_id,
|
||||
'mb_password' : mb_password,
|
||||
'mb_password_re' : mb_password_re,
|
||||
'mb_name' : mb_name,
|
||||
'mb_email1' : mb_email1,
|
||||
'mb_email2' : mb_email2,
|
||||
'mb_hp' : mb_hp,
|
||||
'mb_comp' : mb_comp,
|
||||
'mb_comp_team' : mb_comp_team,
|
||||
},
|
||||
type : "POST",
|
||||
datatype : "json",
|
||||
success : function(data){
|
||||
var ss='';
|
||||
for(i=0; i<data.length; i++){
|
||||
ss=ss + data[i];
|
||||
}
|
||||
if(ss){
|
||||
// $(".popup_wrap").show();
|
||||
$('.btn_close').hide();
|
||||
$('#pop_login').hide();
|
||||
$('#pop_agreement').hide();
|
||||
$('#pop_join').hide();
|
||||
$('#pop_mypage01').hide();
|
||||
$('#pop_search').hide();
|
||||
$('#pop_mypage02').hide();
|
||||
$('#pop_mypage03').hide();
|
||||
$('#pop_privacy').hide();
|
||||
// $('.register_fs').hide();
|
||||
// $('.join_progress .join_step').removeClass('on');
|
||||
// $('.join_progress .join_step').eq(2).addClass('on');
|
||||
// $('.messages').show();
|
||||
alert('회원가입이 완료됐습니다.\n다시 로그인 해주세요');
|
||||
$('#reg_mb_id').val('');
|
||||
$('#reg_mb_password').val('');
|
||||
$('#reg_mb_password_re').val('');
|
||||
$('#reg_mb_name').val('');
|
||||
$('#reg_mb_email1').val('');
|
||||
$('#reg_mb_hp').val('');
|
||||
$('#reg_mb_comp').val('');
|
||||
$('#reg_mb_comp_team').val('');
|
||||
$('#dupl_check_yn').val('N');
|
||||
|
||||
}else{
|
||||
alert('실패했습니다.');
|
||||
}
|
||||
},
|
||||
error : function(err){
|
||||
alert('에러');
|
||||
alert(err);
|
||||
alert(err.status);
|
||||
alert(err.statusText);
|
||||
}
|
||||
});
|
||||
// $.removeCookie(mb_id,{path:'<?php //echo G5_URL ?>/bbs/register_form_update.php'});
|
||||
});
|
||||
|
||||
//회원정보 수정
|
||||
$('#fregisterform_up button[type=submit]').click(function(e){
|
||||
e.preventDefault();
|
||||
let mb_id = $('#update_mb_id').val();
|
||||
let mb_password = $('#update_mb_password').val();
|
||||
let mb_password_re = $('#update_mb_password_re').val();
|
||||
let mb_name = $('#update_mb_name').val();
|
||||
let mb_email1 = $('#update_mb_email1').val();
|
||||
let mb_email2 = $('#update_mb_email2').val();
|
||||
let update_domain2 = $('#update_domain2').val();
|
||||
if (mb_email2 == "type"){
|
||||
mb_email2 = '@' + update_domain2;
|
||||
}
|
||||
let mb_hp = $('#update_mb_hp').val();
|
||||
let mb_comp = $('#update_mb_comp').val();
|
||||
let mb_comp_team = $('#update_mb_comp_team').val();
|
||||
|
||||
//alert(mb_password+' '+mb_password_re+' '+mb_name+' '+mb_email1+' '+mb_email2+' '+mb_hp+' '+mb_comp+' '+mb_comp_team);
|
||||
if (mb_id.length < 4) {
|
||||
alert('1');
|
||||
alert("아이디를 4글자 이상 입력하십시오.");
|
||||
mb_id.focus();
|
||||
return false;
|
||||
}
|
||||
var special_pattern = /[`~!@#$%^&*|\\\'\";:\/?]/gi
|
||||
if (special_pattern.test(mb_id) == true) {
|
||||
alert("아이디는 특수문자를 사용할수 없습니다.");
|
||||
mb_id.focus();
|
||||
return false;
|
||||
}
|
||||
|
||||
// 비밀번호 검사
|
||||
if(!/^(?=.*[a-zA-Z])(?=.*[!@#$%^*+=-])(?=.*[0-9]).{8,25}$/.test(mb_password)){
|
||||
alert('비밀번호는 숫자+영문자+특수문자 조합으로 8자리 이상 사용해야 합니다.');
|
||||
mb_password.focus();
|
||||
return false;
|
||||
}
|
||||
// if (mb_password_re.length < 8 || mb_password.length < 8) {
|
||||
// alert("비밀번호를 8글자 이상 입력하십시오.");
|
||||
// mb_password.focus();
|
||||
// return false;
|
||||
// }
|
||||
|
||||
// 비밀번호 & 2차비밀번호 검사
|
||||
if (mb_password != mb_password_re) {
|
||||
alert(mb_password_re);
|
||||
alert("비밀번호가 같지 않습니다.");
|
||||
mb_password_re.focus();
|
||||
return false;
|
||||
}
|
||||
|
||||
// 이름 검사
|
||||
if (mb_name == "") {
|
||||
if (mb_name.length < 1) {
|
||||
alert("이름을 입력하십시오.");
|
||||
mb_name.focus();
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
// 메일 검사
|
||||
if (mb_email1 == "") {
|
||||
if (mb_email1.length < 1) {
|
||||
alert("메일 주소를 입력하십시오.");
|
||||
mb_email1.focus();
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
// 핸드폰 번호 검사
|
||||
if (mb_hp.length < 11) {
|
||||
alert("휴대전화번호 11자리를 입력하십시오.");
|
||||
mb_hp.focus();
|
||||
return false;
|
||||
}
|
||||
if(isNaN(mb_hp)){
|
||||
alert("휴대전화번호는 숫자만 입력가능합니다.");
|
||||
mb_hp.focus();
|
||||
return false;
|
||||
}
|
||||
// 회사명 검사
|
||||
if (mb_comp == "") {
|
||||
if (mb_comp.length < 1) {
|
||||
alert("회사명을 입력하십시오");
|
||||
mb_comp.focus();
|
||||
return false;
|
||||
}
|
||||
}
|
||||
// 팀명 검사
|
||||
if (mb_comp_team == "") {
|
||||
if (mb_comp_team.length < 1) {
|
||||
alert("팀명을 입력하십시오");
|
||||
mb_comp_team.focus();
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
$.ajax({
|
||||
url : '<?php echo G5_URL ?>/bbs/mypage03.php',
|
||||
data : {
|
||||
'mb_id' : mb_id,
|
||||
'mb_password' : mb_password,
|
||||
'mb_password_re' : mb_password_re,
|
||||
'mb_name' : mb_name,
|
||||
'mb_email1' : mb_email1,
|
||||
'mb_email2' : mb_email2,
|
||||
'mb_hp' : mb_hp,
|
||||
'mb_comp' : mb_comp,
|
||||
'mb_comp_team' : mb_comp_team,
|
||||
},
|
||||
type : "POST",
|
||||
datatype : "json",
|
||||
success : function(data){
|
||||
var ss='';
|
||||
for(i=0; i<data.length; i++){
|
||||
ss=ss + data[i];
|
||||
}
|
||||
|
||||
if(ss.replace('"','').replace('"','') == "success"){
|
||||
|
||||
// $(".popup_wrap").show();
|
||||
$('.btn_close').show();
|
||||
$('#pop_login').hide();
|
||||
$('#pop_agreement').hide();
|
||||
$('#pop_join').hide();
|
||||
$('#pop_mypage01').hide();
|
||||
$('#pop_search').hide();
|
||||
$('#pop_mypage02').show();
|
||||
$('#pop_mypage03').hide();
|
||||
$('#pop_privacy').hide();
|
||||
// $('.register_fs').hide();
|
||||
// $('.join_progress .join_step').removeClass('on');
|
||||
// $('.join_progress .join_step').eq(2).addClass('on');
|
||||
// $('.messages').show();
|
||||
alert('회원정보 수정이 완료됐습니다.');
|
||||
document.getElementById("span_email").innerText=mb_email1+mb_email2;
|
||||
document.getElementById("span_hp").innerText=mb_hp;
|
||||
document.getElementById("span_comp").innerText=mb_comp;
|
||||
document.getElementById("span_comp_team").innerText=mb_comp_team;
|
||||
// $('#update_mb_id').val('');
|
||||
// $('#update_mb_password').val('');
|
||||
// $('#update_mb_password_re').val('');
|
||||
// $('#update_mb_name').val('');
|
||||
// $('#update_mb_email1').val('');
|
||||
// $('#update_mb_hp').val('');
|
||||
// $('#update_mb_comp').val('');
|
||||
// $('#update_mb_comp_team').val('');
|
||||
// $('#dupl_check_yn').val('N');
|
||||
|
||||
}else{
|
||||
alert('실패했습니다.');
|
||||
}
|
||||
},
|
||||
error : function(err){
|
||||
alert('에러');
|
||||
alert(err);
|
||||
alert(err.status);
|
||||
alert(err.statusText);
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
$('#fmyconfirmpw button[type=submit]').click(function(e){
|
||||
e.preventDefault();
|
||||
|
||||
let l_mb_password = $('#password_mypage').val();
|
||||
let l_mb_id = $('#hid_mb_id').val();
|
||||
|
||||
$.ajax({
|
||||
url : '<?php echo G5_URL ?>/bbs/mypage02.php',
|
||||
data : {
|
||||
'mb_id' : l_mb_id,
|
||||
'mb_password' : l_mb_password,
|
||||
},
|
||||
type : "POST",
|
||||
datatype : "json",
|
||||
success : function(data){
|
||||
var ss='';
|
||||
for(i=0; i<data.length; i++){
|
||||
ss=ss + data[i];
|
||||
}
|
||||
//alert(ss.replace('"','').replace('"',''));
|
||||
if(ss.replace('"','').replace('"','') == "success"){
|
||||
$('#password_mypage').val('');
|
||||
//mypage02();
|
||||
document.cookie = "tmp_1=John";
|
||||
location.href="<?php echo G5_URL ?>/bbs/buy.php";
|
||||
}else
|
||||
{
|
||||
alert(trim(ss));
|
||||
$('#password_mypage').select();
|
||||
}
|
||||
},
|
||||
error : function(err){
|
||||
alert(err);
|
||||
alert(err.status);
|
||||
alert(err.statusText);
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
</script>
|
||||
@@ -0,0 +1,159 @@
|
||||
<?php
|
||||
// header('Content-Type: application/json; charset=utf-8');
|
||||
// ini_set('display_errors', 1);
|
||||
// error_reporting(E_ALL);
|
||||
|
||||
// // 수신
|
||||
// $email = trim($_POST['email'] ?? '');
|
||||
// // $email = 'sdi9429@naver.com';
|
||||
// if (!$email) {
|
||||
// echo json_encode([
|
||||
// 'status' => 'error',
|
||||
// 'message' => '이메일이 전달되지 않았습니다.'
|
||||
// ]);
|
||||
// exit;
|
||||
// }
|
||||
|
||||
// // Descope 설정
|
||||
// $management_key = 'K32l5ORmzy32OvaaPvpdZsMY3JmKQb7a3vvrl10PgjlJUGk3K7EssMH3uW5VGQSbrgtEdPj'; // 예: P2w0N5fY1K...
|
||||
// $project_id = 'P2wON5fy1K6kyia269VpeIzYP8oP'; // 예: PRJ-xxxx
|
||||
|
||||
// // API URL
|
||||
// $url = 'https://api.descope.com/v1/mgmt/user?loginId=' . urlencode($email);
|
||||
|
||||
// // CURL 호출
|
||||
// $ch = curl_init($url);
|
||||
// curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
|
||||
// curl_setopt($ch, CURLOPT_HTTPHEADER, [
|
||||
// "Authorization: Bearer {$project_id}:{$management_key}",
|
||||
// "Content-Type: application/json"
|
||||
// ]);
|
||||
|
||||
// // curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, true);
|
||||
|
||||
// $response = curl_exec($ch);
|
||||
// $http_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
|
||||
// $curl_error = curl_error($ch);
|
||||
// curl_close($ch);
|
||||
|
||||
// $response_json = json_decode($response, true);
|
||||
|
||||
// // 처리 로직
|
||||
// if ($http_code === 200 && isset($response_json['user'])) {
|
||||
// // 아이디가 이미 존재 (중복)
|
||||
// echo json_encode([
|
||||
// 'status' => 'duplicate',
|
||||
// 'message' => '이미 등록된 이메일입니다.'
|
||||
// ]);
|
||||
// } elseif ($http_code === 404) {
|
||||
// // 아이디가 존재하지 않음 (사용 가능)
|
||||
// echo json_encode([
|
||||
// 'status' => 'ok',
|
||||
// 'message' => '사용 가능한 이메일입니다.'
|
||||
// ]);
|
||||
// } else {
|
||||
// // 기타 오류
|
||||
// echo json_encode([
|
||||
// 'status' => 'error',
|
||||
// 'message' => 'Descope API 호출 실패',
|
||||
// 'http_code' => $http_code,
|
||||
// 'error_detail' => $response_json,
|
||||
// 'curl_error' => $curl_error
|
||||
// ]);
|
||||
// }
|
||||
// exit;
|
||||
?>
|
||||
<?php
|
||||
header('Content-Type: application/json; charset=utf-8');
|
||||
ini_set('display_errors', 1);
|
||||
error_reporting(E_ALL);
|
||||
|
||||
// 수신
|
||||
$email = trim($_POST['email'] ?? '');
|
||||
if (!$email) {
|
||||
echo json_encode([
|
||||
'status' => 'error',
|
||||
'message' => '이메일이 전달되지 않았습니다.'
|
||||
]);
|
||||
exit;
|
||||
}
|
||||
|
||||
// Descope 설정
|
||||
$management_key = 'K32l5ORmzy32OvaaPvpdZsMY3JmKQb7a3vvrl10PgjlJUGk3K7EssMH3uW5VGQSbrgtEdPj';
|
||||
$project_id = 'P2wON5fy1K6kyia269VpeIzYP8oP';
|
||||
|
||||
// API URL
|
||||
$url = 'https://api.descope.com/v1/mgmt/user?loginId=' . urlencode($email);
|
||||
|
||||
// CURL 호출
|
||||
$ch = curl_init($url);
|
||||
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
|
||||
curl_setopt($ch, CURLOPT_HTTPHEADER, [
|
||||
"Authorization: Bearer {$project_id}:{$management_key}",
|
||||
"Content-Type: application/json"
|
||||
]);
|
||||
|
||||
$response = curl_exec($ch);
|
||||
$http_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
|
||||
$curl_error = curl_error($ch);
|
||||
curl_close($ch);
|
||||
|
||||
$response_json = json_decode($response, true);
|
||||
|
||||
// ================================
|
||||
// 존재하는 사용자일 때
|
||||
// ================================
|
||||
if ($http_code === 200 && isset($response_json['user'])) {
|
||||
|
||||
$user = $response_json["user"];
|
||||
|
||||
// 비밀번호 여부
|
||||
$hasPassword = $user["providerInfo"]["email"]["password"] ?? false;
|
||||
|
||||
// 추가정보 입력 여부 (completeForm)
|
||||
$completeForm = $user["customAttributes"]["completeForm"] ?? false;
|
||||
|
||||
// -------------------------
|
||||
// 미완성 사용자 감지!!
|
||||
// -------------------------
|
||||
if (!$hasPassword && !$completeForm) {
|
||||
|
||||
echo json_encode([
|
||||
'status' => 'incomplete',
|
||||
'message' => '미완성 사용자입니다. 추가정보 입력이 필요합니다.',
|
||||
'email' => $email
|
||||
]);
|
||||
exit;
|
||||
}
|
||||
|
||||
// 완성된 사용자 → 재가입 불가
|
||||
echo json_encode([
|
||||
'status' => 'duplicate',
|
||||
'message' => '이미 등록된 이메일입니다.'
|
||||
]);
|
||||
exit;
|
||||
}
|
||||
|
||||
// ================================
|
||||
// 신규 사용자 (404)
|
||||
// ================================
|
||||
if ($http_code === 404) {
|
||||
echo json_encode([
|
||||
'status' => 'ok',
|
||||
'message' => '사용 가능한 이메일입니다.'
|
||||
]);
|
||||
exit;
|
||||
}
|
||||
|
||||
// ================================
|
||||
// 기타 오류
|
||||
// ================================
|
||||
echo json_encode([
|
||||
'status' => 'error',
|
||||
'message' => 'Descope API 호출 실패',
|
||||
'http_code' => $http_code,
|
||||
'error_detail' => $response_json,
|
||||
'curl_error' => $curl_error
|
||||
]);
|
||||
exit;
|
||||
?>
|
||||
@@ -0,0 +1,131 @@
|
||||
<?php
|
||||
session_start();
|
||||
|
||||
function set_descope_session_cookies(array $user): void {
|
||||
$expire = time() + 86400;
|
||||
$cookieOptions = [
|
||||
'expires' => $expire,
|
||||
'path' => '/',
|
||||
'samesite' => 'Lax',
|
||||
];
|
||||
|
||||
$customAttributes = $user['customAttributes'] ?? [];
|
||||
$roleNames = $user['roleNames'] ?? [];
|
||||
|
||||
setcookie('descope_login_id', (string)($user['loginIds'][0] ?? ''), $cookieOptions);
|
||||
setcookie('descope_user_id', (string)($user['userId'] ?? ''), $cookieOptions);
|
||||
setcookie('descope_user_name', (string)($user['name'] ?? ''), $cookieOptions);
|
||||
setcookie('descope_user_email', (string)($user['email'] ?? ''), $cookieOptions);
|
||||
setcookie('descope_user_phone', (string)($user['phone'] ?? ''), $cookieOptions);
|
||||
setcookie('descope_custom_attributes', base64_encode(json_encode($customAttributes, JSON_UNESCAPED_UNICODE)), $cookieOptions);
|
||||
setcookie('descope_role_names', base64_encode(json_encode($roleNames, JSON_UNESCAPED_UNICODE)), $cookieOptions);
|
||||
}
|
||||
|
||||
$email = trim($_POST['mb_id'] ?? '');
|
||||
$password = trim($_POST['mb_password'] ?? '');
|
||||
|
||||
|
||||
if (!$email || !$password) {
|
||||
echo json_encode(['status'=>'fail', 'message'=>'아이디와 비밀번호는 필수입력입니다.']);
|
||||
exit;
|
||||
}
|
||||
|
||||
$descope_project_id = "P2wON5fy1K6kyia269VpeIzYP8oP";
|
||||
|
||||
$api_url = "https://api.descope.com/v1/auth/password/signin";
|
||||
|
||||
$data = [
|
||||
"loginId" => $email,
|
||||
"password" => $password,
|
||||
// "loginOptions" => [ ... ] // 옵션 필요시
|
||||
];
|
||||
$headers = [
|
||||
'Content-Type: application/json',
|
||||
'Authorization: Bearer ' . $descope_project_id,
|
||||
];
|
||||
|
||||
$ch = curl_init($api_url);
|
||||
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
|
||||
curl_setopt($ch, CURLOPT_POST, true);
|
||||
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
|
||||
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
|
||||
|
||||
$response = curl_exec($ch);
|
||||
$http_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
|
||||
curl_close($ch);
|
||||
|
||||
$res_data = json_decode($response, true);
|
||||
|
||||
if ($http_code === 200 && isset($res_data['sessionJwt'])) {
|
||||
// 로그인 성공 → 실패횟수 초기화
|
||||
$_SESSION['login_fail_count'] = 0;
|
||||
//session으로도 저장
|
||||
$_SESSION['user'] = $res_data['user']; // userId, email 등
|
||||
$_SESSION['sessionJwt'] = $res_data['sessionJwt'];
|
||||
$_SESSION['refreshJwt'] = $res_data['refreshJwt'];
|
||||
set_descope_session_cookies($res_data['user'] ?? []);
|
||||
|
||||
echo json_encode([
|
||||
'status' => 'ok',
|
||||
'sessionJwt' => $res_data['sessionJwt'] ?? '',
|
||||
// 'refreshJwt' => $res_data['refreshJwt'] ?? '',
|
||||
'user' => $res_data['user'] ?? [],
|
||||
'session' => $_SESSION,
|
||||
]);
|
||||
// } else {
|
||||
// // $msg = $res_data['errorDescription'] ?? '로그인 실패';
|
||||
// // echo json_encode(['status'=>'fail', 'message'=>$msg]);
|
||||
// // Descope 에러 메시지
|
||||
// $errorMsg = $res_data['errorDescription']
|
||||
// ?? $res_data['errorMessage']
|
||||
// ?? '로그인에 실패했습니다.';
|
||||
|
||||
// // 2) 한글 매핑
|
||||
// if (stripos($errorMsg, 'invalid signin credentials') !== false) {
|
||||
// $msg = '비밀번호가 일치하지 않습니다.';
|
||||
// } elseif (stripos($errorMsg, 'user not found') !== false) {
|
||||
// $msg = "계정을 찾을 수 없습니다.\n로그인에 문제가 있으신 경우 010-8721-7453으로 문의해 주세요.";
|
||||
// } else {
|
||||
// $msg = $errorMsg;
|
||||
// }
|
||||
|
||||
|
||||
// echo json_encode([
|
||||
// 'status' => 'fail',
|
||||
// 'message' => $msg
|
||||
// ]);
|
||||
// }
|
||||
} else {
|
||||
// 실패 → 카운트 증가
|
||||
if (!isset($_SESSION['login_fail_count'])) {
|
||||
$_SESSION['login_fail_count'] = 0;
|
||||
}
|
||||
$_SESSION['login_fail_count']++;
|
||||
$failCount = $_SESSION['login_fail_count'];
|
||||
|
||||
// 에러 메시지 가공
|
||||
$errorMsg = $res_data['errorDescription']
|
||||
?? $res_data['errorMessage']
|
||||
?? '로그인에 실패했습니다.';
|
||||
|
||||
// 한글 매핑
|
||||
if (stripos($errorMsg, 'Login is temporarily locked') !== false) {
|
||||
$msg = "로그인이 일시적으로 잠겼습니다. 잠시 후 다시 시도해 주세요.";
|
||||
} elseif (stripos($errorMsg, 'account locked') !== false) {
|
||||
$msg = "로그인 시도가 너무 많아 계정이 잠겼습니다. 관리자에게 문의해 주세요.";
|
||||
} elseif (stripos($errorMsg, 'invalid signin credentials') !== false) {
|
||||
$msg = "비밀번호가 일치하지 않습니다.";
|
||||
} elseif (stripos($errorMsg, 'user not found') !== false) {
|
||||
$msg = "계정을 찾을 수 없습니다.\n로그인에 문제가 있으신 경우 02-2141-7434으로 문의해 주세요.";
|
||||
} else {
|
||||
$msg = $errorMsg;
|
||||
}
|
||||
|
||||
echo json_encode([
|
||||
'status' => 'fail',
|
||||
'message' => $msg,
|
||||
'failCount' => $failCount
|
||||
]);
|
||||
}
|
||||
exit;
|
||||
?>
|
||||
@@ -0,0 +1,35 @@
|
||||
<?php
|
||||
// descope_logout.php
|
||||
// session_start();
|
||||
// $_SESSION = [];
|
||||
// if (ini_get("session.use_cookies")) {
|
||||
// $p = session_get_cookie_params();
|
||||
// setcookie(session_name(), '', time()-42000,
|
||||
// $p['path'], $p['domain'], $p['secure'], $p['httponly']
|
||||
// );
|
||||
// }
|
||||
// session_destroy();
|
||||
|
||||
// // ✅ 그누보드 세션 변수도 제거
|
||||
// unset($_SESSION['ss_mb_id'], $_SESSION['ss_mb_level']);
|
||||
|
||||
// http_response_code(200);
|
||||
// echo json_encode(['status'=>'ok']);
|
||||
// exit;
|
||||
session_start();
|
||||
$_SESSION = [];
|
||||
|
||||
foreach (['PHPSESSID', 'G5sessphp', 'descope_login_id', 'descope_user_id', 'descope_user_name', 'descope_user_email', 'descope_user_phone', 'descope_custom_attributes', 'descope_role_names'] as $cookieName) {
|
||||
setcookie($cookieName, '', [
|
||||
'expires' => time() - 42000,
|
||||
'path' => '/',
|
||||
'samesite' => 'Lax',
|
||||
]);
|
||||
}
|
||||
|
||||
session_destroy();
|
||||
|
||||
http_response_code(200);
|
||||
echo json_encode(['status'=>'ok']);
|
||||
exit;
|
||||
?>
|
||||
@@ -0,0 +1,108 @@
|
||||
<?php
|
||||
// ini_set('display_errors', 1);
|
||||
// ini_set('display_startup_errors', 1);
|
||||
// error_reporting(E_ALL);
|
||||
|
||||
// header('Content-Type: application/json');
|
||||
// // require_once './descope_config.php';
|
||||
|
||||
// $email = trim($_POST['email'] ?? '');
|
||||
// $password = trim($_POST['password'] ?? '');
|
||||
// $refreshJwt = trim($_POST['refreshJwt'] ?? '');
|
||||
|
||||
// if (!$email || !$password || !$refreshJwt) {
|
||||
// echo json_encode(['status' => 'fail', 'message' => '필수값 없음']);
|
||||
// exit;
|
||||
// }
|
||||
|
||||
// // Descope API - 비밀번호 변경 엔드포인트 사용
|
||||
// $url = "https://api.descope.com/v1/auth/password/update";
|
||||
// $data = [
|
||||
// // "loginId" => $email,
|
||||
// "newPassword" => $password,
|
||||
// ];
|
||||
|
||||
// $ch = curl_init($url);
|
||||
// curl_setopt($ch, CURLOPT_HTTPHEADER, [
|
||||
// "Authorization: Bearer " . $refreshJwt,
|
||||
// "Content-Type: application/json"
|
||||
// ]);
|
||||
// curl_setopt($ch, CURLOPT_POST, 1);
|
||||
// curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
|
||||
// curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
|
||||
|
||||
// $response = curl_exec($ch);
|
||||
// $code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
|
||||
// curl_close($ch);
|
||||
|
||||
// if ($code == 200) {
|
||||
// echo json_encode(['status' => 'ok']);
|
||||
// } else {
|
||||
// $resData = json_decode($response, true);
|
||||
// $msg = $resData['errorDescription'] ?? '비밀번호 변경 실패';
|
||||
// echo json_encode(['status' => 'fail', 'message' => $msg, 'raw' => $response]);
|
||||
// }
|
||||
|
||||
// ini_set('display_errors', 1);
|
||||
// ini_set('display_startup_errors', 1);
|
||||
// error_reporting(E_ALL);
|
||||
|
||||
ini_set('display_errors', 1);
|
||||
ini_set('display_startup_errors', 1);
|
||||
error_reporting(E_ALL);
|
||||
|
||||
header('Content-Type: application/json');
|
||||
// require_once './descope_config.php';
|
||||
|
||||
$projectId = 'P2wON5fy1K6kyia269VpeIzYP8oP';
|
||||
$email = trim($_POST['email'] ?? '');
|
||||
$password = trim($_POST['password'] ?? '');
|
||||
$refreshJwt = trim($_POST['refreshJwt'] ?? '');
|
||||
|
||||
// if (!$email || !$password || !$refreshJwt) {
|
||||
// echo json_encode(['status' => 'fail', 'message' => '필수값 없음']);
|
||||
// exit;
|
||||
// }
|
||||
|
||||
if (!$email || !$password || !$refreshJwt) {
|
||||
echo json_encode([
|
||||
'status' => 'fail',
|
||||
'message' => '필수값 없음',
|
||||
'debug' => [
|
||||
'email' => $email,
|
||||
'password' => $password,
|
||||
'refreshJwt' => $refreshJwt // <<< 확인!
|
||||
]
|
||||
]);
|
||||
exit;
|
||||
}
|
||||
|
||||
// Descope API - 비밀번호 변경 엔드포인트 사용
|
||||
$url = "https://api.descope.com/v1/auth/password/update";
|
||||
$data = [
|
||||
"loginId" => $email,
|
||||
"newPassword" => $password,
|
||||
];
|
||||
|
||||
$ch = curl_init($url);
|
||||
curl_setopt($ch, CURLOPT_HTTPHEADER, [
|
||||
"Authorization: Bearer {$projectId}:{$refreshJwt}",
|
||||
"Content-Type: application/json",
|
||||
// "x-descope-project-id: $projectId"
|
||||
]);
|
||||
curl_setopt($ch, CURLOPT_POST, 1);
|
||||
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
|
||||
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
|
||||
|
||||
$response = curl_exec($ch);
|
||||
$code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
|
||||
curl_close($ch);
|
||||
|
||||
if ($code == 200) {
|
||||
echo json_encode(['status' => 'ok']);
|
||||
} else {
|
||||
$resData = json_decode($response, true);
|
||||
$msg = $resData['errorDescription'] ?? '비밀번호 변경 실패';
|
||||
echo json_encode(['status' => 'fail', 'message' => $msg, 'raw' => $response]);
|
||||
}
|
||||
?>
|
||||
@@ -0,0 +1,54 @@
|
||||
<?php
|
||||
session_start();
|
||||
|
||||
header('Content-Type: application/json; charset=UTF-8');
|
||||
|
||||
function set_descope_session_cookies(array $user): void {
|
||||
$expire = time() + 86400;
|
||||
$cookieOptions = [
|
||||
'expires' => $expire,
|
||||
'path' => '/',
|
||||
'samesite' => 'Lax',
|
||||
];
|
||||
|
||||
setcookie('descope_login_id', (string)($user['loginIds'][0] ?? ''), $cookieOptions);
|
||||
setcookie('descope_user_id', (string)($user['userId'] ?? ''), $cookieOptions);
|
||||
setcookie('descope_user_name', (string)($user['name'] ?? ''), $cookieOptions);
|
||||
setcookie('descope_user_email', (string)($user['email'] ?? ''), $cookieOptions);
|
||||
setcookie('descope_user_phone', (string)($user['phone'] ?? ''), $cookieOptions);
|
||||
setcookie('descope_custom_attributes', base64_encode(json_encode($user['customAttributes'] ?? [], JSON_UNESCAPED_UNICODE)), $cookieOptions);
|
||||
setcookie('descope_role_names', base64_encode(json_encode($user['roleNames'] ?? [], JSON_UNESCAPED_UNICODE)), $cookieOptions);
|
||||
}
|
||||
|
||||
$loginId = trim((string)($_POST['loginId'] ?? ''));
|
||||
$sessionJwt = trim((string)($_POST['sessionJwt'] ?? ''));
|
||||
|
||||
if ($loginId === '' || substr_count($sessionJwt, '.') !== 2) {
|
||||
http_response_code(400);
|
||||
echo json_encode(['status' => 'fail', 'message' => 'invalid session payload']);
|
||||
exit;
|
||||
}
|
||||
|
||||
$user = [
|
||||
'userId' => trim((string)($_POST['userId'] ?? $loginId)),
|
||||
'loginIds' => [$loginId],
|
||||
'name' => trim((string)($_POST['userName'] ?? $loginId)),
|
||||
'email' => trim((string)($_POST['email'] ?? $loginId)),
|
||||
'phone' => trim((string)($_POST['phone'] ?? '')),
|
||||
'customAttributes' => [
|
||||
'company' => trim((string)($_POST['company'] ?? '')),
|
||||
'familyCompany' => trim((string)($_POST['familyCompany'] ?? '')),
|
||||
'position' => trim((string)($_POST['position'] ?? '')),
|
||||
'team' => trim((string)($_POST['team'] ?? '')),
|
||||
'familyUniqueKey' => trim((string)($_POST['familyUniqueKey'] ?? '')),
|
||||
],
|
||||
'roleNames' => array_values(array_filter([trim((string)($_POST['userRole'] ?? ''))])),
|
||||
];
|
||||
|
||||
$_SESSION['user'] = $user;
|
||||
$_SESSION['sessionJwt'] = $sessionJwt;
|
||||
set_descope_session_cookies($user);
|
||||
|
||||
echo json_encode(['status' => 'ok']);
|
||||
exit;
|
||||
?>
|
||||
@@ -0,0 +1,81 @@
|
||||
<?php
|
||||
// header('Content-Type: application/json');
|
||||
|
||||
// require_once './descope_config.php'; // Descope API 키 등 공통설정
|
||||
|
||||
// $email = trim($_POST['email'] ?? '');
|
||||
|
||||
// if (!$email) {
|
||||
// echo json_encode(['status' => 'fail', 'message' => '이메일 없음']);
|
||||
// exit;
|
||||
// }
|
||||
|
||||
// // Descope OTP 메일 전송 (예: signup/send/otp)
|
||||
// $url = 'https://api.descope.com/v1/auth/magiclink/email/send'; // API 버전에 맞게!
|
||||
// $data = [
|
||||
// "loginId" => $email,
|
||||
// "user" => ["email" => $email]
|
||||
// ];
|
||||
|
||||
// $ch = curl_init($url);
|
||||
// curl_setopt($ch, CURLOPT_HTTPHEADER, [
|
||||
// "Authorization: Bearer " . $DESCOPE_API_KEY,
|
||||
// "Content-Type: application/json"
|
||||
// ]);
|
||||
// curl_setopt($ch, CURLOPT_POST, 1);
|
||||
// curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
|
||||
// curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
|
||||
|
||||
// $response = curl_exec($ch);
|
||||
// $code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
|
||||
// curl_close($ch);
|
||||
|
||||
// if ($code == 200) {
|
||||
// echo json_encode(['status' => 'ok']);
|
||||
// } else {
|
||||
// echo json_encode(['status' => 'fail', 'message' => 'OTP 발송 실패', 'raw' => $response]);
|
||||
// }
|
||||
?>
|
||||
|
||||
<?php
|
||||
header('Content-Type: application/json; charset=utf-8');
|
||||
$email = $_POST['email'] ?? '';
|
||||
// $email = 'sdi9429@naver.com';
|
||||
// $redirectUrl = 'https://eg-bim.com/egbim/index.php?popup=pwreset';
|
||||
if (!$email) exit(json_encode(['status'=>'fail', 'message'=>'이메일 누락']));
|
||||
$api_key = "P2wON5fy1K6kyia269VpeIzYP8oP";
|
||||
$url = "https://api.descope.com/v1/auth/password/reset";
|
||||
$data = [
|
||||
"loginId" => $email,
|
||||
"redirectUrl" => 'https://eg-bim.com/egbim/index.php?popup=pwreset'
|
||||
];
|
||||
$ch = curl_init($url);
|
||||
curl_setopt($ch, CURLOPT_HTTPHEADER, [
|
||||
"Authorization: Bearer {$api_key}",
|
||||
"Content-Type: application/json"
|
||||
]);
|
||||
curl_setopt($ch, CURLOPT_POST, true);
|
||||
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
|
||||
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
|
||||
$res = curl_exec($ch);
|
||||
$http_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
|
||||
curl_close($ch);
|
||||
if ($http_code == 200) {
|
||||
$res_data = json_decode($res, true); // 응답 파싱
|
||||
$linkId = $res_data['linkId'] ?? '';
|
||||
echo json_encode([
|
||||
'status'=>'ok',
|
||||
'linkId'=>$linkId,
|
||||
'raw_response'=>$res_data // (디버깅용 전체도 같이 보고 싶으면)
|
||||
]);
|
||||
} else {
|
||||
$error_info = json_decode($res, true);
|
||||
echo json_encode([
|
||||
'status' => 'fail',
|
||||
'message' => '발송 실패',
|
||||
'http_code' => $http_code, // 예: 400, 401, 403 등
|
||||
'error_detail' => $error_info, // Descope에서 보낸 상세 에러 메시지
|
||||
'curl_error' => curl_error($ch) // 네트워크 문제일 경우 확인용
|
||||
]);
|
||||
}
|
||||
?>
|
||||
@@ -0,0 +1,148 @@
|
||||
<?php
|
||||
// // descope_session.php
|
||||
|
||||
// // 1) 에러 출력 (개발용)
|
||||
// // ini_set('display_errors', 1);
|
||||
// // error_reporting(E_ALL);
|
||||
|
||||
// // 2) 세션 시작 (중복 호출 방지)
|
||||
// if (session_status() === PHP_SESSION_NONE) {
|
||||
// session_start();
|
||||
// }
|
||||
|
||||
// // 3) 로그인 검사
|
||||
// // 로그인 시 $_SESSION['user']['userId'] 와 $_SESSION['user']['loginIds'][0] 를 설정해 두었다면
|
||||
// // if (empty($_SESSION['user']['userId'])) {
|
||||
// // // 로그인 필요 알림 후 로그인 페이지로 이동
|
||||
// // echo <<<HTML
|
||||
// // <script>
|
||||
// // alert('Q&A를 이용하시려면 로그인이 필요합니다.');
|
||||
// // window.location.href = '/egbim/index.php';
|
||||
// // </script>
|
||||
// // HTML;
|
||||
// // exit;
|
||||
// // }
|
||||
|
||||
// // ✅ Descope 로그인 성공 시 g5_member 세션 동기화
|
||||
// $loginId = $_SESSION['user']['loginIds'][0] ?? '';
|
||||
// if ($loginId === 'b24014@hanmaceng.co.kr') {
|
||||
// // g5_member 계정이 이미 존재한다고 가정
|
||||
// $_SESSION['ss_mb_id'] = $loginId;
|
||||
// $_SESSION['ss_mb_level'] = 10;
|
||||
|
||||
// $is_member = true;
|
||||
// $is_admin = 'super';
|
||||
|
||||
// $member = [
|
||||
// 'mb_id' => $loginId,
|
||||
// 'mb_name' => $_SESSION['user']['name'] ?? '관리자',
|
||||
// 'mb_email' => $_SESSION['user']['email'] ?? '',
|
||||
// 'mb_level' => 10,
|
||||
// 'mb_nick' => '관리자',
|
||||
// ];
|
||||
// }
|
||||
// // Descope 로그인 성공 시 (예: descope_session.php 내부)
|
||||
// if (!empty($_SESSION['user']['loginIds'][0])) {
|
||||
// $loginId = $_SESSION['user']['loginIds'][0];
|
||||
|
||||
// // g5_member 테이블에 계정이 존재한다고 가정
|
||||
// $_SESSION['ss_mb_id'] = $loginId;
|
||||
// $_SESSION['ss_mb_level'] = 10; // 관리자 레벨
|
||||
|
||||
// // 그누보드 전역 변수 보정
|
||||
// $is_member = true;
|
||||
// $is_admin = 'super';
|
||||
|
||||
// $member = [
|
||||
// 'mb_id' => $loginId,
|
||||
// 'mb_name' => $_SESSION['user']['name'] ?? '관리자',
|
||||
// 'mb_email' => $_SESSION['user']['email'] ?? '',
|
||||
// 'mb_level' => 10,
|
||||
// 'mb_nick' => '관리자',
|
||||
// ];
|
||||
// }
|
||||
// descope_session.php
|
||||
|
||||
// 1) 세션 시작
|
||||
if (session_status() === PHP_SESSION_NONE) {
|
||||
session_start();
|
||||
}
|
||||
|
||||
if (empty($_SESSION['user']['userId']) && !empty($_COOKIE['descope_login_id'])) {
|
||||
$customAttributes = json_decode(base64_decode($_COOKIE['descope_custom_attributes'] ?? ''), true);
|
||||
$roleNames = json_decode(base64_decode($_COOKIE['descope_role_names'] ?? ''), true);
|
||||
$loginIdFromCookie = trim((string)($_COOKIE['descope_login_id'] ?? ''));
|
||||
|
||||
$_SESSION['user'] = [
|
||||
'userId' => trim((string)($_COOKIE['descope_user_id'] ?? $loginIdFromCookie)),
|
||||
'loginIds' => $loginIdFromCookie !== '' ? [$loginIdFromCookie] : [],
|
||||
'name' => trim((string)($_COOKIE['descope_user_name'] ?? '')),
|
||||
'email' => trim((string)($_COOKIE['descope_user_email'] ?? '')),
|
||||
'phone' => trim((string)($_COOKIE['descope_user_phone'] ?? '')),
|
||||
'customAttributes' => is_array($customAttributes) ? $customAttributes : [],
|
||||
'roleNames' => is_array($roleNames) ? $roleNames : [],
|
||||
];
|
||||
}
|
||||
|
||||
// 2) 로그인 검사 (비로그인 차단)
|
||||
// if (empty($_SESSION['user']['userId'])) {
|
||||
// // 세션 없으면 바로 차단
|
||||
// session_destroy();
|
||||
// echo "<script>
|
||||
// alert('로그인이 필요합니다.');
|
||||
// // 로그인 팝업 자동 오픈 플래그 전달
|
||||
// window.location.href = '/egbim/index.php?popup=login';
|
||||
// </script>";
|
||||
// exit;
|
||||
// }
|
||||
|
||||
// 3) 로그인 정보 추출
|
||||
$loginIds = $_SESSION['user']['loginIds'] ?? [];
|
||||
$loginId = (is_array($loginIds) && !empty($loginIds)) ? $loginIds[0] : '';
|
||||
|
||||
$userName = $_SESSION['user']['name'] ?? '';
|
||||
$userEmail = $_SESSION['user']['email'] ?? '';
|
||||
|
||||
// 4) 관리자/일반 사용자 구분
|
||||
$ADMIN_EMAILS = [
|
||||
'kjy0426@hanmaceng.co.kr',
|
||||
'b24014@hanmaceng.co.kr',
|
||||
'b23065@hanmaceng.co.kr',
|
||||
'shyeom1@samaneng.com',
|
||||
'cjy627@hanmaceng.co.kr',
|
||||
'b23072@hanmaceng.co.kr',
|
||||
'cozyjin@hanmaceng.co.kr',
|
||||
'm24031@hanmaceng.co.kr',
|
||||
'b24051@hanmaceng.co.kr',
|
||||
'rmsgud1202@hanmaceng.co.kr',
|
||||
'm21318@hanmaceng.co.kr',
|
||||
'b25023@hanmaceng.co.kr',
|
||||
'sdi9429@naver.com',
|
||||
'junsuy@hanmail.net',
|
||||
'ilphilo92@gmail.com'
|
||||
];
|
||||
// $isAdmin = in_array($loginId, $ADMIN_EMAILS, true);
|
||||
$isAdmin = $loginId && in_array($loginId, $ADMIN_EMAILS, true);
|
||||
|
||||
// ✅ 그누보드 전역 세션 동기화
|
||||
if ($loginId) {
|
||||
$_SESSION['ss_mb_id'] = $loginId;
|
||||
$_SESSION['ss_mb_level'] = $isAdmin ? 10 : 2;
|
||||
|
||||
$is_member = true;
|
||||
$is_admin = $isAdmin ? 'super' : '';
|
||||
|
||||
$member = [
|
||||
'mb_id' => $loginId,
|
||||
'mb_name' => $userName ?: $loginId,
|
||||
'mb_email' => $userEmail,
|
||||
'mb_level' => $_SESSION['ss_mb_level'],
|
||||
'mb_nick' => $userName ?: $loginId,
|
||||
];
|
||||
} else {
|
||||
// ✅ 비회원: 로그인 세션 없음
|
||||
$is_member = false;
|
||||
$is_admin = '';
|
||||
$member = [];
|
||||
}
|
||||
?>
|
||||
@@ -0,0 +1,205 @@
|
||||
<?php
|
||||
// header('Content-Type: application/json; charset=utf-8');
|
||||
// ini_set('display_errors', 1);
|
||||
// error_reporting(E_ALL);
|
||||
|
||||
// $email = trim($_POST['email'] ?? '');
|
||||
// $password = trim($_POST['password'] ?? '');
|
||||
|
||||
// if (!$email || !$password) {
|
||||
// echo json_encode(['status' => 'error', 'message' => '이메일 또는 비밀번호가 없습니다.']);
|
||||
// exit;
|
||||
// }
|
||||
|
||||
// $project_id = 'P2wON5fy1K6kyia269VpeIzYP8oP'; // 너의 Descope 프로젝트 ID
|
||||
|
||||
// $url = 'https://api.descope.com/v1/auth/password/signup';
|
||||
// $data = [
|
||||
// "email" => $email,
|
||||
// "password" => $password
|
||||
// ];
|
||||
// $ch = curl_init($url);
|
||||
// curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
|
||||
// curl_setopt($ch, CURLOPT_POST, true);
|
||||
// curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode([
|
||||
// "loginId" => $email,
|
||||
// "user" => [
|
||||
// "loginId" => $email,
|
||||
// "email" => $email
|
||||
// ],
|
||||
// "password" => $password
|
||||
// ]));
|
||||
// curl_setopt($ch, CURLOPT_HTTPHEADER, [
|
||||
// "Content-Type: application/json",
|
||||
// "Authorization: Bearer $project_id"
|
||||
// ]);
|
||||
// $response = curl_exec($ch);
|
||||
// $err = curl_error($ch);
|
||||
// $http_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
|
||||
// curl_close($ch);
|
||||
|
||||
// if ($http_code === 200) {
|
||||
// echo json_encode(['status' => 'ok']);
|
||||
// } else {
|
||||
// $response_json = json_decode($response, true);
|
||||
// echo json_encode([
|
||||
// 'status' => 'error',
|
||||
// 'message' => $response_json['errorDescription'] ?? 'Descope API 호출 실패',
|
||||
// 'code' => $http_code,
|
||||
// 'error' => $err
|
||||
// ]);
|
||||
// }
|
||||
|
||||
// exit;
|
||||
?>
|
||||
<?php
|
||||
// ini_set('display_errors', 1);
|
||||
// ini_set('display_startup_errors', 1);
|
||||
// error_reporting(E_ALL);
|
||||
// header('Content-Type: application/json; charset=utf-8');
|
||||
|
||||
// // $email = trim($_POST['email'] ?? '');
|
||||
// // $password = trim($_POST['password'] ?? '');
|
||||
// $email = 'sdi9429@gmail.com';
|
||||
|
||||
// // if (!$email || !$password) {
|
||||
// // echo json_encode(['status' => 'error', 'message' => '이메일 또는 비밀번호가 없습니다.']);
|
||||
// // exit;
|
||||
// // }
|
||||
// if (!$email) {
|
||||
// echo json_encode(['status' => 'error', 'message' => '이메일이 없습니다.']);
|
||||
// exit;
|
||||
// }
|
||||
|
||||
// $project_id = 'P2wON5fy1K6kyia269VpeIzYP8oP'; // Descope 프로젝트 ID
|
||||
|
||||
// // // 1. 비밀번호 회원가입 (Password Signup)
|
||||
// // $url_signup = 'https://api.descope.com/v1/auth/password/signup';
|
||||
// // $signup_data = [
|
||||
// // "loginId" => $email,
|
||||
// // "user" => [
|
||||
// // "loginId" => $email,
|
||||
// // "email" => $email
|
||||
// // ],
|
||||
// // "password" => $password
|
||||
// // ];
|
||||
|
||||
// // $ch = curl_init($url_signup);
|
||||
// // curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
|
||||
// // curl_setopt($ch, CURLOPT_POST, true);
|
||||
// // curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($signup_data));
|
||||
// // curl_setopt($ch, CURLOPT_HTTPHEADER, [
|
||||
// // "Content-Type: application/json",
|
||||
// // "Authorization: Bearer $project_id"
|
||||
// // ]);
|
||||
// // $response_signup = curl_exec($ch);
|
||||
// // $err_signup = curl_error($ch);
|
||||
// // $http_code_signup = curl_getinfo($ch, CURLINFO_HTTP_CODE);
|
||||
// // curl_close($ch);
|
||||
|
||||
// // if ($http_code_signup !== 200) {
|
||||
// // $response_json = json_decode($response_signup, true);
|
||||
// // echo json_encode([
|
||||
// // 'status' => 'error',
|
||||
// // 'message' => $response_json['errorDescription'] ?? 'Descope 회원가입 API 호출 실패',
|
||||
// // 'code' => $http_code_signup,
|
||||
// // 'error' => $err_signup
|
||||
// // ]);
|
||||
// // exit;
|
||||
// // }
|
||||
|
||||
// // 2. OTP 이메일 전송
|
||||
// $url = "https://api.descope.com/v1/auth/otp/signup/email";
|
||||
// $data = [
|
||||
// "loginId" => $email, // 이메일 주소
|
||||
// "email" => $email
|
||||
// ];
|
||||
|
||||
// $ch = curl_init($url);
|
||||
// curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
|
||||
// curl_setopt($ch, CURLOPT_POST, true);
|
||||
// curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
|
||||
// curl_setopt($ch, CURLOPT_HTTPHEADER, [
|
||||
// "Content-Type: application/json",
|
||||
// "Authorization: Bearer $project_id"
|
||||
// ]);
|
||||
// $response = curl_exec($ch);
|
||||
// $http_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
|
||||
// curl_close($ch);
|
||||
|
||||
// // if ($http_code === 200) {
|
||||
// // echo json_encode(['status' => 'ok']);
|
||||
// // } else {
|
||||
// // $response_json = json_decode($response, true);
|
||||
// // echo json_encode([
|
||||
// // 'status' => 'error',
|
||||
// // 'message' => $response_json['errorDescription'] ?? 'Descope API 호출 실패',
|
||||
// // 'code' => $http_code
|
||||
// // ]);
|
||||
// // }
|
||||
|
||||
// // sessionJwt는 반드시 프론트에 넘겨야 함!
|
||||
// if ($http_code === 200 && !empty($res_data['sessionJwt'])) {
|
||||
// echo json_encode(['status'=>'ok', 'sessionJwt'=>$res_data['sessionJwt']]);
|
||||
// } else {
|
||||
// $msg = $res_data['errorDescription'] ?? 'Descope OTP 발송 실패';
|
||||
// echo json_encode(['status'=>'fail', 'message'=>$msg, 'debug'=>$res_data]);
|
||||
// }
|
||||
|
||||
// echo json_encode([
|
||||
// 'status'=>'debug',
|
||||
// 'raw'=> $response, // $response: curl_exec 결과
|
||||
// 'php_error'=> error_get_last()
|
||||
// ]);
|
||||
|
||||
// exit;
|
||||
?>
|
||||
<?php
|
||||
header('Content-Type: application/json; charset=utf-8');
|
||||
ini_set('display_errors', 1);
|
||||
error_reporting(E_ALL);
|
||||
|
||||
$email = trim($_POST['email'] ?? '');
|
||||
|
||||
// 생략 가능: $email = 'test123@test.com';
|
||||
|
||||
$project_id = 'P2wON5fy1K6kyia269VpeIzYP8oP'; // 실제 프로젝트 ID로 변경
|
||||
|
||||
$url = "https://api.descope.com/v1/auth/otp/signup/email";
|
||||
$data = [
|
||||
"loginId" => $email,
|
||||
"email" => $email
|
||||
];
|
||||
|
||||
$ch = curl_init($url);
|
||||
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
|
||||
curl_setopt($ch, CURLOPT_POST, true);
|
||||
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
|
||||
curl_setopt($ch, CURLOPT_HTTPHEADER, [
|
||||
"Content-Type: application/json",
|
||||
"Authorization: Bearer $project_id"
|
||||
]);
|
||||
$response = curl_exec($ch);
|
||||
$http_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
|
||||
curl_close($ch);
|
||||
|
||||
$res_data = json_decode($response, true); // 항상 선언
|
||||
|
||||
if ($http_code === 200 && isset($res_data['maskedEmail'])) {
|
||||
// 성공 케이스
|
||||
echo json_encode(['status' => 'ok', 'maskedEmail' => $res_data['maskedEmail']]);
|
||||
} else {
|
||||
// 실패 케이스
|
||||
$msg = $res_data['errorDescription'] ?? 'Descope OTP 발송 실패';
|
||||
echo json_encode([
|
||||
'status' => 'fail',
|
||||
'message' => $msg,
|
||||
'debug' => $res_data
|
||||
]);
|
||||
}
|
||||
exit;
|
||||
|
||||
?>
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,32 @@
|
||||
<?php
|
||||
header('Content-Type: application/json; charset=utf-8');
|
||||
|
||||
$email = $_POST['email'] ?? '';
|
||||
if (!$email) exit(json_encode(['status'=>'fail', 'message'=>'이메일 누락']));
|
||||
|
||||
// 아래 내용은 실제 사용중인 Descope OTP 전송 API와 맞게 수정해야 함
|
||||
$api_key = "P2wON5fy1K6kyia269VpeIzYP8oP";
|
||||
$url = "https://api.descope.com/v1/auth/otp/signup/email";
|
||||
|
||||
$data = [
|
||||
"loginId" => $email,
|
||||
];
|
||||
|
||||
$ch = curl_init($url);
|
||||
curl_setopt($ch, CURLOPT_HTTPHEADER, [
|
||||
"Authorization: Bearer {$api_key}",
|
||||
"Content-Type: application/json"
|
||||
]);
|
||||
curl_setopt($ch, CURLOPT_POST, true);
|
||||
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
|
||||
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
|
||||
$res = curl_exec($ch);
|
||||
$http_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
|
||||
curl_close($ch);
|
||||
|
||||
if ($http_code == 200) {
|
||||
echo json_encode(['status'=>'ok']);
|
||||
} else {
|
||||
echo json_encode(['status'=>'fail','message'=>'OTP 재전송 실패']);
|
||||
}
|
||||
?>
|
||||
@@ -0,0 +1,217 @@
|
||||
<?php
|
||||
session_start();
|
||||
// -- JSON 응답 보장 --
|
||||
header('Content-Type: application/json; charset=UTF-8');
|
||||
|
||||
// -- 실서비스 전에는 환경변수 사용 권장 --
|
||||
$projectId = 'P2wON5fy1K6kyia269VpeIzYP8oP';
|
||||
$managementKey = 'K32l5ORmzy32OvaaPvpdZsMY3JmKQb7a3vvrl10PgjlJUGk3K7EssMH3uW5VGQSbrgtEdPj';
|
||||
|
||||
// -- POST 입력값 (여기서 name 값 등 반드시 필수체크 필요!) --
|
||||
$email = trim($_POST['email'] ?? '');
|
||||
$name = trim($_POST['name'] ?? '');
|
||||
$password = trim($_POST['password'] ?? '');
|
||||
$family = trim($_POST['familyCompany'] ?? ''); // Machine Name: familycompany
|
||||
$familyUniqueKey = trim($_POST['familyUniqueKey'] ?? ''); // Machine Name: familyUniqueKey
|
||||
$team = trim($_POST['team'] ?? ''); // Machine Name: team
|
||||
$position = trim($_POST['position'] ?? ''); // Machine Name: position
|
||||
$hp = trim($_POST['phone'] ?? ''); // phone
|
||||
// $completeForm = ($_POST['completeForm'] ?? '') ? true : false; // Boolean 처리
|
||||
$completeForm = filter_var($_POST['completeForm'] ?? false, FILTER_VALIDATE_BOOLEAN);
|
||||
$refreshJwt = trim($_POST['refreshJwt']);
|
||||
// $refreshJwt = $_SESSION['refreshJwt'] ?? '';
|
||||
$company = trim($_POST['company'] ?? ''); // Machine Name: company 외부사용자 회사명
|
||||
|
||||
// if (!$refreshJwt) {
|
||||
// // 필수 값 누락시 에러 반환
|
||||
// echo json_encode(["error" => "refreshJWT is missing"]);
|
||||
// exit;
|
||||
// }
|
||||
|
||||
// if (!$refreshJwt) {
|
||||
// echo json_encode([
|
||||
// "status" => "fail",
|
||||
// "message" => "세션이 만료되었습니다. 다시 로그인해 주세요."
|
||||
// ]);
|
||||
// exit;
|
||||
// }
|
||||
|
||||
// 비밀번호 변경 요청일 때만 refreshJwt 필수
|
||||
if ($password && !$refreshJwt) {
|
||||
echo json_encode([
|
||||
"status" => "fail",
|
||||
"step" => "password",
|
||||
"message" => "세션이 만료되었습니다. 다시 로그인해 주세요."
|
||||
]);
|
||||
exit;
|
||||
}
|
||||
|
||||
$internalDomains = [
|
||||
"hanmaceng.co.kr",
|
||||
"samaneng.com",
|
||||
"jangheon.co.kr",
|
||||
"hallasanup.com",
|
||||
"pre-cast.co.kr",
|
||||
"baroncs.co.kr"
|
||||
];
|
||||
|
||||
$TENANT_INTERNAL = "T2wQcWCBhUfJgUWHWgNwLg4iUDVY"; // Hanmac Family
|
||||
$TENANT_CUSTOMER = "T2x4TDzxasp7auPCPcN8uOrxXchh"; // Customer
|
||||
$TENANT_EGBIM = "T2yGFrGSnFX601G22JOMojJX7OMd"; // egBIM
|
||||
$TENANT_EDU = "T31ZmUcwOZbwk0y3YmMxrPCpzpQR"; // egBIM-edu
|
||||
|
||||
// $domain = explode('@', $email)[1] ?? '';
|
||||
$domain = strtolower(explode('@', $email)[1] ?? '');
|
||||
|
||||
// if (in_array($domain, $internalDomains)) {
|
||||
// $tenantId = "T2wQcWCBhUfJgUWHWgNwLg4iUDVY"; //내부
|
||||
// } else {
|
||||
// $tenantId = "T2x4TDzxasp7auPCPcN8uOrxXchh"; //외부
|
||||
// }
|
||||
|
||||
// if (in_array($domain, $internalDomains)) {
|
||||
// // 내부 사용자 → 내부 tenant 하나만
|
||||
// $userTenants = [
|
||||
// [
|
||||
// "tenantId" => "T2wQcWCBhUfJgUWHWgNwLg4iUDVY" // 내부 tenantId
|
||||
// ]
|
||||
// ];
|
||||
// } else {
|
||||
// // 외부 사용자 → customer + egbim 두 개 tenant 자동 등록
|
||||
// $userTenants = [
|
||||
// [
|
||||
// "tenantId" => "T2x4TDzxasp7auPCPcN8uOrxXchh" // customer tenantId
|
||||
// ],
|
||||
// [
|
||||
// "tenantId" => "T2yGFrGSnFX601G22JOMojJX7OMd" // egbim tenantId
|
||||
// ]
|
||||
// ];
|
||||
// }
|
||||
|
||||
if (in_array($domain, $internalDomains, true)) {
|
||||
|
||||
// 1️⃣ 내부 사용자
|
||||
$userTenants = [
|
||||
[ "tenantId" => $TENANT_INTERNAL ]
|
||||
];
|
||||
|
||||
} elseif (str_ends_with($domain, '.ac.kr')) {
|
||||
|
||||
// 2️⃣ 학교 사용자 (egBIM-edu)
|
||||
$userTenants = [
|
||||
[ "tenantId" => $TENANT_EDU ]
|
||||
];
|
||||
|
||||
} else {
|
||||
|
||||
// 3️⃣ 외부 일반 사용자
|
||||
$userTenants = [
|
||||
[ "tenantId" => $TENANT_CUSTOMER ],
|
||||
[ "tenantId" => $TENANT_EGBIM ]
|
||||
];
|
||||
}
|
||||
|
||||
//라이센스 만료일 계산
|
||||
$now = new DateTime('now', new DateTimeZone('Asia/Seoul'));
|
||||
$expiry = (clone $now)->modify('+90 days')->format(DateTime::ATOM);
|
||||
|
||||
// -- Custom Attribute 실제 Machine Name에 맞춰서 할당 (Descope 콘솔 기준) --
|
||||
$custom = [
|
||||
"familyCompany" => $family, // 소속 가족사
|
||||
"familyUniqueKey" => $familyUniqueKey, // 사번
|
||||
"team" => $team, // 소속팀
|
||||
"position" => $position, // 직위
|
||||
"completeForm" => $completeForm, // 정보입력완료 (Boolean)
|
||||
// "egBimLExpiryDate" => $expiry //egbim 라이센스 만료일
|
||||
// 필요하면 추가로 다른 Machine Name도 사용 가능
|
||||
];
|
||||
|
||||
if (! in_array($domain, $internalDomains, true)) {
|
||||
$custom["egBimLExpiryDate"] = $expiry;
|
||||
}
|
||||
|
||||
if ($company) {
|
||||
$custom["company"] = $company; // 외부사용자 회사명 추가
|
||||
}
|
||||
|
||||
// -- 1. 사용자 정보 업데이트 --
|
||||
$update_body = [
|
||||
"loginId" => $email,
|
||||
"email" => $email,
|
||||
"name" => $name,
|
||||
"phone" => $hp,
|
||||
"verifiedPhone" => false,
|
||||
"customAttributes" => $custom,
|
||||
// "roleNames" => [ "Default User" ],
|
||||
"userTenants" => $userTenants
|
||||
];
|
||||
|
||||
$ch = curl_init('https://api.descope.com/v1/mgmt/user/update');
|
||||
curl_setopt_array($ch, [
|
||||
CURLOPT_RETURNTRANSFER => true,
|
||||
CURLOPT_CUSTOMREQUEST => "POST",
|
||||
CURLOPT_HTTPHEADER => [
|
||||
"Content-Type: application/json",
|
||||
"Authorization: Bearer {$projectId}:{$managementKey}"
|
||||
],
|
||||
CURLOPT_POSTFIELDS => json_encode($update_body),
|
||||
]);
|
||||
$response = curl_exec($ch);
|
||||
$http_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
|
||||
curl_close($ch);
|
||||
|
||||
$res_data = json_decode($response, true);
|
||||
|
||||
// -- 1-1. 사용자 정보 업데이트 실패시 --
|
||||
if ($http_code !== 200) {
|
||||
$msg = $res_data['errorDescription'] ?? 'Descope 정보 업데이트 실패';
|
||||
echo json_encode([
|
||||
'status' => 'fail',
|
||||
'step' => 'info',
|
||||
'message' => $msg,
|
||||
'raw' => $response
|
||||
]);
|
||||
exit;
|
||||
}
|
||||
|
||||
// -- 2. 비밀번호 변경 (입력값이 있을 경우) --
|
||||
if ($password) {
|
||||
$pw_body = [
|
||||
"loginId" => $email,
|
||||
"newPassword" => $password
|
||||
];
|
||||
|
||||
error_log("Descope password update payload: " . json_encode($pw_body));
|
||||
error_log("Using refreshJwt for password update: " . $refreshJwt);
|
||||
|
||||
$ch2 = curl_init('https://api.descope.com/v1/auth/password/update');
|
||||
curl_setopt_array($ch2, [
|
||||
CURLOPT_RETURNTRANSFER => true,
|
||||
CURLOPT_CUSTOMREQUEST => "POST",
|
||||
CURLOPT_HTTPHEADER => [
|
||||
"Content-Type: application/json",
|
||||
"Authorization: Bearer {$projectId}:{$refreshJwt}"
|
||||
],
|
||||
CURLOPT_POSTFIELDS => json_encode($pw_body),
|
||||
]);
|
||||
$response2 = curl_exec($ch2);
|
||||
$http_code2 = curl_getinfo($ch2, CURLINFO_HTTP_CODE);
|
||||
curl_close($ch2);
|
||||
|
||||
$res_data2 = json_decode($response2, true);
|
||||
|
||||
if ($http_code2 !== 200) {
|
||||
$msg2 = $res_data2['errorDescription'] ?? 'Descope 비밀번호 변경 실패';
|
||||
echo json_encode([
|
||||
'status' => 'fail',
|
||||
'step' => 'password',
|
||||
'message' => $msg2,
|
||||
'raw' => $response2
|
||||
]);
|
||||
exit;
|
||||
}
|
||||
}
|
||||
|
||||
// -- 3. 모두 성공 --
|
||||
echo json_encode(['status' => 'ok']);
|
||||
?>
|
||||
@@ -0,0 +1,45 @@
|
||||
<?php
|
||||
ini_set('display_errors', 1);
|
||||
ini_set('display_startup_errors', 1);
|
||||
error_reporting(E_ALL);
|
||||
|
||||
header('Content-Type: application/json');
|
||||
require_once './descope_config.php';
|
||||
|
||||
$email = trim($_POST['email'] ?? '');
|
||||
$password = trim($_POST['password'] ?? '');
|
||||
$refreshJwt = trim($_POST['refreshJwt'] ?? '');
|
||||
|
||||
if (!$email || !$password || !$refreshJwt) {
|
||||
echo json_encode(['status' => 'fail', 'message' => '필수값 없음']);
|
||||
exit;
|
||||
}
|
||||
|
||||
// Descope API - 비밀번호 변경 엔드포인트 사용
|
||||
$url = "https://api.descope.com/v1/auth/password/update";
|
||||
$data = [
|
||||
"loginId" => $email,
|
||||
"newPassword" => $password,
|
||||
];
|
||||
|
||||
$ch = curl_init($url);
|
||||
curl_setopt($ch, CURLOPT_HTTPHEADER, [
|
||||
"Authorization: Bearer " . $refreshJwt,
|
||||
"Content-Type: application/json"
|
||||
]);
|
||||
curl_setopt($ch, CURLOPT_POST, 1);
|
||||
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
|
||||
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
|
||||
|
||||
$response = curl_exec($ch);
|
||||
$code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
|
||||
curl_close($ch);
|
||||
|
||||
if ($code == 200) {
|
||||
echo json_encode(['status' => 'ok']);
|
||||
} else {
|
||||
$resData = json_decode($response, true);
|
||||
$msg = $resData['errorDescription'] ?? '비밀번호 변경 실패';
|
||||
echo json_encode(['status' => 'fail', 'message' => $msg, 'raw' => $response]);
|
||||
}
|
||||
?>
|
||||
@@ -0,0 +1,32 @@
|
||||
<?php
|
||||
$projectId = 'P2wON5fy1K6kyia269VpeIzYP8oP';
|
||||
$managementKey = 'K32l5ORmzy32OvaaPvpdZsMY3JmKQb7a3vvrl10PgjlJUGk3K7EssMH3uW5VGQSbrgtEdPj';
|
||||
$loginId = 'sdi9429@gmail.com'; // 테스트할 사용자
|
||||
$status = 'disabled'; // 또는 'enabled'
|
||||
|
||||
$headers = [
|
||||
"Content-Type: application/json",
|
||||
"Authorization: Bearer {$projectId}:{$managementKey}"
|
||||
];
|
||||
|
||||
$body = [
|
||||
"loginId" => $loginId,
|
||||
"status" => $status
|
||||
];
|
||||
|
||||
$ch = curl_init('https://api.descope.com/v1/mgmt/user/update/status');
|
||||
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
|
||||
curl_setopt($ch, CURLOPT_POST, true);
|
||||
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($body));
|
||||
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
|
||||
|
||||
$response = curl_exec($ch);
|
||||
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
|
||||
curl_close($ch);
|
||||
|
||||
// 결과 출력
|
||||
header('Content-Type: application/json');
|
||||
echo json_encode([
|
||||
'httpCode' => $httpCode,
|
||||
'response' => json_decode($response, true)
|
||||
]);
|
||||
@@ -0,0 +1,95 @@
|
||||
<?php
|
||||
// header('Content-Type: application/json');
|
||||
|
||||
// $management_key = 'P2wON5fy1K6kyia269VpeIzYP8oP:K2ycqpjeh1voPBdxXxzB3ScZOQ6v9aiLmU2cIj70X1H8Kcoz0KWfCWmofUwAsAkJroXA8QC';
|
||||
|
||||
// // userId 또는 loginId 사용 가능
|
||||
// $userId = $_POST['userId'] ?? '';
|
||||
// $loginId = $_POST['loginId'] ?? '';
|
||||
|
||||
// if (!$userId && !$loginId) {
|
||||
// echo json_encode(['status' => 'fail', 'message' => 'userId 또는 loginId 누락']);
|
||||
// exit;
|
||||
// }
|
||||
|
||||
// $url = "https://api.descope.com/v1/mgmt/user/delete";
|
||||
|
||||
// $payload = json_encode([
|
||||
// "userId" => $userId,
|
||||
// "loginId" => $loginId
|
||||
// ]);
|
||||
|
||||
// $headers = [
|
||||
// "Authorization: Bearer $management_key",
|
||||
// "Content-Type: application/json"
|
||||
// ];
|
||||
|
||||
// $ch = curl_init($url);
|
||||
// curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
|
||||
// curl_setopt($ch, CURLOPT_POSTFIELDS, $payload);
|
||||
// curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
|
||||
|
||||
// $response = curl_exec($ch);
|
||||
// $http_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
|
||||
// curl_close($ch);
|
||||
|
||||
// if ($http_code === 200) {
|
||||
// echo json_encode(['status' => 'ok', 'message' => '탈퇴 성공']);
|
||||
// } else {
|
||||
// echo json_encode([
|
||||
// 'status' => 'fail',
|
||||
// 'message' => '탈퇴 실패',
|
||||
// 'code' => $http_code,
|
||||
// 'response' => $response
|
||||
// ]);
|
||||
// }
|
||||
?>
|
||||
<?php
|
||||
header('Content-Type: application/json');
|
||||
|
||||
// TODO: 환경변수/별도 설정파일에서 읽어오세요.
|
||||
$management_key = 'P2wON5fy1K6kyia269VpeIzYP8oP:K32l5ORmzy32OvaaPvpdZsMY3JmKQb7a3vvrl10PgjlJUGk3K7EssMH3uW5VGQSbrgtEdPj';
|
||||
|
||||
$userId = $_POST['userId'] ?? '';
|
||||
$loginId = $_POST['loginId'] ?? '';
|
||||
|
||||
if (!$userId && !$loginId) {
|
||||
echo json_encode(['status' => 'fail', 'message' => 'userId 또는 loginId가 필요합니다.']);
|
||||
exit;
|
||||
}
|
||||
|
||||
$url = "https://api.descope.com/v1/mgmt/user/delete";
|
||||
$payload = [];
|
||||
if ($userId) $payload['userId'] = $userId;
|
||||
if ($loginId) $payload['loginId'] = $loginId;
|
||||
|
||||
$ch = curl_init($url);
|
||||
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
|
||||
curl_setopt($ch, CURLOPT_POST, true);
|
||||
curl_setopt($ch, CURLOPT_HTTPHEADER, [
|
||||
"Authorization: Bearer {$management_key}",
|
||||
"Content-Type: application/json"
|
||||
]);
|
||||
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($payload));
|
||||
|
||||
$response = curl_exec($ch);
|
||||
$http_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
|
||||
$err = curl_error($ch);
|
||||
curl_close($ch);
|
||||
|
||||
if ($err) {
|
||||
echo json_encode(['status' => 'fail', 'message' => 'cURL error', 'error' => $err]);
|
||||
exit;
|
||||
}
|
||||
|
||||
if ($http_code === 200) {
|
||||
echo json_encode(['status' => 'ok', 'message' => '탈퇴 처리 완료']);
|
||||
} else {
|
||||
echo json_encode([
|
||||
'status' => 'fail',
|
||||
'message' => 'Descope delete 실패',
|
||||
'code' => $http_code,
|
||||
'res' => $response
|
||||
]);
|
||||
}
|
||||
?>
|
||||
@@ -0,0 +1,347 @@
|
||||
<?php
|
||||
require_once $_SERVER['DOCUMENT_ROOT'].'/egbim/skin/member/basic/descope_session.php';
|
||||
require_once $_SERVER['DOCUMENT_ROOT'].'/egbim/bbs/userlist_admin_guard.php';
|
||||
?>
|
||||
<!DOCTYPE html>
|
||||
<html lang="ko">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<title>Descope 유저 리스트</title>
|
||||
<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
|
||||
<script src="https://cdn.tailwindcss.com"></script>
|
||||
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/flatpickr/dist/flatpickr.min.css">
|
||||
<script src="https://cdn.jsdelivr.net/npm/flatpickr"></script>
|
||||
<style>
|
||||
#tableContainer { max-height: 80vh; overflow-y: auto; overflow-x: hidden; }
|
||||
#floatingScroll {
|
||||
position: sticky; bottom: 0; left: 0; right: 0;
|
||||
height: 16px; overflow-x: auto; overflow-y: hidden;
|
||||
background: #f9f9f9; border-top: 1px solid #ccc; z-index: 50;
|
||||
}
|
||||
#floatingScrollInner { height: 1px; }
|
||||
thead th { position: sticky; top: 0; z-index: 60; background: #e5e7eb; }
|
||||
</style>
|
||||
</head>
|
||||
<body class="bg-gray-100 p-6">
|
||||
<div class="max-w-[1800px] mx-auto pb-10 bg-white shadow rounded-lg pl-5 pt-5 pr-5">
|
||||
<h1 class="text-2xl font-bold mb-4">Descope 유저 리스트</h1>
|
||||
|
||||
<!-- ✅ 검색 영역 -->
|
||||
<div class="flex items-center gap-2 mb-4">
|
||||
<select id="mode" class="border px-2 py-1 rounded">
|
||||
<option value="created">가입일 기준</option>
|
||||
<option value="lastSignIn">마지막 로그인 기준</option>
|
||||
<option value="license">라이센스 만료일 기준</option>
|
||||
<option value="serverLogin">최근 로그인 기준 (EGBIM)</option> <!-- ✅ 추가 -->
|
||||
</select>
|
||||
<input type="text" id="startDate" placeholder="시작일" class="border px-2 py-1 rounded">
|
||||
<span>~</span>
|
||||
<input type="text" id="endDate" placeholder="종료일" class="border px-2 py-1 rounded">
|
||||
<button id="filterBtn" class="bg-blue-500 text-white px-4 py-1 rounded">검색</button>
|
||||
<button id="resetBtn" class="bg-gray-400 text-white px-4 py-1 rounded">초기화</button>
|
||||
|
||||
<!-- ✅ 테넌트 체크박스 -->
|
||||
<div id="tenantFilter" class="flex items-center gap-2 ml-4">
|
||||
<label><input type="checkbox" name="tenant" value="Hanmac Family"> Hanmac Family</label>
|
||||
<label><input type="checkbox" name="tenant" value="Customer"> Customer</label>
|
||||
<label><input type="checkbox" name="tenant" value="egBIM-edu"> egBIM-edu</label>
|
||||
</div>
|
||||
|
||||
|
||||
<!-- ✅ CSV 대량 생성 버튼 -->
|
||||
<button id="btn-import-descope" class="bg-green-600 text-white px-4 py-1 rounded hover:bg-green-700">계정 일괄 생성</button>
|
||||
|
||||
<!-- ✅ CSV Import 팝업 -->
|
||||
<div id="importModal" class="fixed inset-0 bg-black bg-opacity-40 flex items-center justify-center hidden z-50">
|
||||
<div class="bg-white rounded-lg shadow-lg p-6 w-[590px] max-w-[90%] relative">
|
||||
<h2 class="text-lg font-semibold mb-4">Descope 대량 생성</h2>
|
||||
|
||||
<label class="block text-sm font-medium mb-1">Google Sheet CSV URL</label>
|
||||
<input id="csvUrl" type="url"
|
||||
class="w-full border px-3 py-2 rounded mb-3"
|
||||
placeholder="https://docs.google.com/spreadsheets/d/.../export?format=csv&gid=..." />
|
||||
|
||||
<label class="block text-sm font-medium mb-1">egBIM 라이선스 만료일</label>
|
||||
<input id="expiry" type="date" class="w-full border px-3 py-2 rounded mb-3" />
|
||||
|
||||
<!-- <label class="inline-flex items-center mb-4">
|
||||
<input id="sendReset" type="checkbox" class="mr-2" checked>
|
||||
<span>비밀번호 재설정 메일 발송</span>
|
||||
</label> -->
|
||||
|
||||
<!-- ✅ Tenant Type 선택 -->
|
||||
<label class="block text-sm font-medium mb-1">소속 테넌트 선택</label>
|
||||
<div class="flex gap-4 mb-3">
|
||||
<label class="flex items-center gap-1">
|
||||
<input type="radio" name="tenant_type" value="customer" checked />
|
||||
<span>Customer (외부)</span>
|
||||
</label>
|
||||
<label class="flex items-center gap-1">
|
||||
<input type="radio" name="tenant_type" value="family" />
|
||||
<span>Hanmac Family (내부)</span>
|
||||
</label>
|
||||
<label class="flex items-center gap-1">
|
||||
<input type="radio" name="tenant_type" value="edu" />
|
||||
<span>egBIM-edu (교육용)</span>
|
||||
</label>
|
||||
</div>
|
||||
|
||||
<div id="importMsg" class="text-gray-500 text-sm mb-4"></div>
|
||||
|
||||
<div class="flex justify-end gap-2">
|
||||
<button id="importCancel" class="px-4 py-1 bg-gray-400 text-white rounded">취소</button>
|
||||
<button id="importRun" class="px-4 py-1 bg-blue-600 text-white rounded">실행</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- ✅ 우측 검색창 -->
|
||||
<div class="flex justify-end flex-1">
|
||||
<input type="text" id="keyword" placeholder="소속 가족사 / 외부회사 검색"
|
||||
class="border px-2 py-1 rounded w-72">
|
||||
<button id="keywordBtn"
|
||||
class="ml-2 bg-blue-500 text-white px-4 py-1 rounded">검색</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- ✅ 테이블 -->
|
||||
<div id="tableContainer" class="w-full pb-10 bg-white shadow rounded-lg overflow-x-auto">
|
||||
<table id="userTableWrapper"
|
||||
class="min-w-[2500px] text-sm text-center text-gray-700 border table-fixed">
|
||||
<thead class="bg-gray-200 text-xs uppercase">
|
||||
<tr>
|
||||
<th class="px-4 py-2 w-12">#</th>
|
||||
<th class="px-4 py-2 min-w-[150px]">Login ID</th>
|
||||
<th class="px-4 py-2 min-w-[160px]">Display Name</th>
|
||||
<th class="px-4 py-2 min-w-[140px]">직위</th>
|
||||
<th class="px-4 py-2 min-w-[180px]">Phone</th>
|
||||
<th class="px-4 py-2 min-w-[250px]">Created Time</th>
|
||||
<th class="px-4 py-2 min-w-[220px]">Tenants</th>
|
||||
<th class="px-4 py-2 min-w-[160px]">소속 가족사</th>
|
||||
<th class="px-4 py-2 min-w-[200px]">소속회사(외부용)</th>
|
||||
<th class="px-4 py-2 min-w-[100px]">Status</th>
|
||||
<th class="px-4 py-2 min-w-[220px]">Email</th>
|
||||
<th class="px-4 py-2 min-w-[140px]">정보입력완료</th>
|
||||
<th class="px-4 py-2 min-w-[200px]">egBIM 라이센스 만료일</th>
|
||||
<th class="px-4 py-2 min-w-[120px]">사번</th>
|
||||
<th class="px-4 py-2 min-w-[180px]">마지막 접속 IP</th>
|
||||
<th class="px-4 py-2 min-w-[200px]">Beps 마지막 로그인날짜</th>
|
||||
<th class="px-4 py-2 min-w-[210px]">egBIM 최근 로그인</th>
|
||||
<th class="px-4 py-2 min-w-[200px]">소속센터/부/실</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody id="userTable" class="divide-y"></tbody>
|
||||
</table>
|
||||
</div>
|
||||
<div id="floatingScroll"><div id="floatingScrollInner"></div></div>
|
||||
</div>
|
||||
|
||||
<script>
|
||||
function formatDate(value) {
|
||||
if (!value) return "";
|
||||
let ts = parseInt(value, 10);
|
||||
if (isNaN(ts)) return value;
|
||||
if (ts < 1e12) ts *= 1000; // 초 단위 → 밀리초 보정
|
||||
return new Date(ts).toLocaleString("ko-KR");
|
||||
}
|
||||
|
||||
// ✅ EGBIM DB에서 오는 VARCHAR (ex: "2025-09-16 18:49:48") 전용 포맷터
|
||||
function formatServerLogin(value) {
|
||||
if (!value) return "-";
|
||||
// "2025-09-16 18:49:48"
|
||||
const parts = value.split(" ");
|
||||
if (parts.length < 2) return value;
|
||||
|
||||
const datePart = parts[0].replace(/-/g, ". "); // "2025. 09. 16"
|
||||
const timePart = parts[1]; // "18:49:48"
|
||||
|
||||
let [h, m, s] = timePart.split(":").map(Number);
|
||||
const meridiem = h >= 12 ? "오후" : "오전";
|
||||
if (h === 0) h = 12;
|
||||
else if (h > 12) h -= 12;
|
||||
|
||||
return `${datePart}. ${meridiem} ${h}:${String(m).padStart(2,"0")}:${String(s).padStart(2,"0")}`;
|
||||
}
|
||||
|
||||
function loadUserList(start=null, end=null, mode="created") {
|
||||
let url = "/egbim/bbs/descope_user_list.php";
|
||||
const params = [];
|
||||
if (start) params.push("start=" + encodeURIComponent(start));
|
||||
if (end) params.push("end=" + encodeURIComponent(end));
|
||||
if (mode) params.push("mode=" + encodeURIComponent(mode));
|
||||
|
||||
const keyword = $("#keyword").val().trim();
|
||||
if (keyword) params.push("keyword=" + encodeURIComponent(keyword));
|
||||
|
||||
const tenants = $("input[name='tenant']:checked")
|
||||
.map(function(){ return this.value; })
|
||||
.get();
|
||||
if (tenants.length) {
|
||||
params.push("tenants=" + encodeURIComponent(tenants.join(",")));
|
||||
}
|
||||
if (params.length) url += "?" + params.join("&");
|
||||
|
||||
$.getJSON(url, function(data) {
|
||||
let rows = "";
|
||||
if (data.status === "ok" && data.users) {
|
||||
data.users.forEach((u, idx) => {
|
||||
let tenantInfo = "";
|
||||
if (u.userTenants && Array.isArray(u.userTenants)) {
|
||||
tenantInfo = u.userTenants.map(t => t.tenantName || "").join("<br>");
|
||||
}
|
||||
rows += `
|
||||
<tr class="hover:bg-gray-50">
|
||||
<td class="px-4 py-2 text-center">${idx+1}</td>
|
||||
<td class="px-4 py-2">${u.loginIds?.[0] || "-"}</td>
|
||||
<td class="px-4 py-2">${u.name || "-"}</td>
|
||||
<td class="px-4 py-2">${u.customAttributes?.position || "-"}</td>
|
||||
<td class="px-4 py-2">${u.phone || "-"}</td>
|
||||
<td class="px-4 py-2">${formatDate(u.createdTime) || "-"}</td>
|
||||
<td class="px-4 py-2">${tenantInfo || "-"}</td>
|
||||
<td class="px-4 py-2">${u.customAttributes?.familyCompany || "-"}</td>
|
||||
<td class="px-4 py-2">${u.customAttributes?.company || "-"}</td>
|
||||
<td class="px-4 py-2">${u.status || "-"}</td>
|
||||
<td class="px-4 py-2">${u.email || "-"}</td>
|
||||
<td class="px-4 py-2">${u.customAttributes?.completeForm ? "완료" : "미완료"}</td>
|
||||
<td class="px-4 py-2">${formatDate(u.customAttributes?.egBimLExpiryDate) || "-"}</td>
|
||||
<td class="px-4 py-2">${u.customAttributes?.familyUniqueKey || "-"}</td>
|
||||
<td class="px-4 py-2">${u.customAttributes?.lastAccessIp || "-"}</td>
|
||||
<td class="px-4 py-2">${formatDate(u.customAttributes?.lastSignInDate) || "-"}</td>
|
||||
<!-- ✅ EGBIM 최근 로그인 표시 -->
|
||||
<td class="px-4 py-2">${formatServerLogin(u.customAttributes?.serverLastLogin) || "-"}</td>
|
||||
<td class="px-4 py-2">${u.customAttributes?.team || "-"}</td>
|
||||
</tr>`;
|
||||
});
|
||||
} else {
|
||||
rows = `<tr><td colspan="18" class="text-center text-red-500">데이터 없음</td></tr>`;
|
||||
}
|
||||
$("#userTable").html(rows);
|
||||
|
||||
const $tableContainer = $("#tableContainer");
|
||||
const $scroll = $("#floatingScroll");
|
||||
const $scrollInner = $("#floatingScrollInner");
|
||||
|
||||
function syncWidth() {
|
||||
const tableWidth = $("#userTableWrapper").outerWidth();
|
||||
const containerWidth = $tableContainer.width();
|
||||
$scrollInner.width(Math.max(tableWidth, containerWidth));
|
||||
}
|
||||
|
||||
$scroll.off("scroll").on("scroll", () =>
|
||||
$tableContainer.scrollLeft($scroll.scrollLeft())
|
||||
);
|
||||
$tableContainer.off("scroll").on("scroll", () =>
|
||||
$scroll.scrollLeft($tableContainer.scrollLeft())
|
||||
);
|
||||
|
||||
setTimeout(syncWidth, 500);
|
||||
$(window).off("resize.syncScroll").on("resize.syncScroll", syncWidth);
|
||||
});
|
||||
}
|
||||
|
||||
// ✅ 체크박스 클릭 시 즉시 필터링
|
||||
$(document).on("change", "input[name='tenant']", function() {
|
||||
loadUserList($("#startDate").val(), $("#endDate").val(), $("#mode").val());
|
||||
});
|
||||
|
||||
$(document).ready(function() {
|
||||
flatpickr("#startDate", { dateFormat: "Y-m-d" });
|
||||
flatpickr("#endDate", { dateFormat: "Y-m-d" });
|
||||
|
||||
$("#filterBtn").on("click", function() {
|
||||
loadUserList($("#startDate").val(), $("#endDate").val(), $("#mode").val());
|
||||
});
|
||||
|
||||
$("#resetBtn").on("click", function() {
|
||||
$("#startDate").val("");
|
||||
$("#endDate").val("");
|
||||
$("#mode").val("created");
|
||||
$("input[name='tenant']").prop("checked", false);
|
||||
$("#keyword").val(""); // ✅ 검색창 초기화
|
||||
loadUserList();
|
||||
});
|
||||
|
||||
$("#keywordBtn").on("click", function() {
|
||||
loadUserList($("#startDate").val(), $("#endDate").val(), $("#mode").val());
|
||||
});
|
||||
$("#keyword").on("keypress", function(e) {
|
||||
if (e.which === 13) {
|
||||
loadUserList($("#startDate").val(), $("#endDate").val(), $("#mode").val());
|
||||
}
|
||||
});
|
||||
|
||||
loadUserList();
|
||||
});
|
||||
</script>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
<script>
|
||||
$(function(){
|
||||
// ✅ 모달 열기
|
||||
$("#btn-import-descope").on("click", () => {
|
||||
$("#importModal").removeClass("hidden");
|
||||
$("#importMsg").text("");
|
||||
$("#importRun").prop("disabled", false).text("실행");
|
||||
});
|
||||
|
||||
// ✅ 모달 닫기 (밖 클릭 포함)
|
||||
$("#importCancel, #importModal").on("click", (e) => {
|
||||
if (e.target.id === "importCancel" || e.target.id === "importModal") {
|
||||
$("#importModal").addClass("hidden");
|
||||
}
|
||||
});
|
||||
|
||||
// ✅ 실행 버튼 클릭
|
||||
$("#importRun").on("click", async () => {
|
||||
const csvUrl = $("#csvUrl").val().trim();
|
||||
const expiry = $("#expiry").val().trim();
|
||||
const tenantType = $('input[name="tenant_type"]:checked').val(); // ✅ 올바른 name 참조
|
||||
|
||||
if (!csvUrl) {
|
||||
$("#importMsg").text("❗ CSV URL을 입력하세요.");
|
||||
return;
|
||||
}
|
||||
|
||||
$("#importRun").prop("disabled", true).text("실행 중...");
|
||||
$("#importMsg").html("<span class='text-blue-600'>처리 중입니다... 잠시만 기다려주세요.</span>");
|
||||
|
||||
try {
|
||||
const res = await fetch("/egbim/bbs/descope_import.php", {
|
||||
method: "POST",
|
||||
headers: { "Content-Type": "application/json" },
|
||||
body: JSON.stringify({
|
||||
csv_url: csvUrl,
|
||||
expiry: expiry,
|
||||
tenant_type: tenantType // ✅ 서버로 전달
|
||||
})
|
||||
});
|
||||
|
||||
const data = await res.json();
|
||||
console.log("📦 응답:", data);
|
||||
|
||||
if (data.status === "ok") {
|
||||
$("#importMsg").html(`
|
||||
✅ 완료: <b>${data.created}</b> 생성 /
|
||||
<b>${data.updated}</b> 갱신 /
|
||||
<b>${data.failed}</b> 실패
|
||||
`);
|
||||
|
||||
if (data.failed > 0 && data.errors?.length) {
|
||||
console.warn("실패 목록:", data.errors);
|
||||
$("#importMsg").append(`<br><span class='text-gray-600'>일부 실패 로그는 콘솔에서 확인하세요.</span>`);
|
||||
}
|
||||
|
||||
} else {
|
||||
$("#importMsg").html(`❌ 실패: ${data.message || "서버 오류"}`);
|
||||
console.error("서버 응답:", data);
|
||||
}
|
||||
} catch (err) {
|
||||
console.error("통신 오류:", err);
|
||||
$("#importMsg").html("<span class='text-red-600'>❌ 통신 오류가 발생했습니다.</span>");
|
||||
} finally {
|
||||
$("#importRun").prop("disabled", false).text("실행");
|
||||
}
|
||||
});
|
||||
});
|
||||
</script>
|
||||
@@ -0,0 +1,350 @@
|
||||
<?php
|
||||
require_once $_SERVER['DOCUMENT_ROOT'].'/egbim/skin/member/basic/descope_session.php';
|
||||
require_once $_SERVER['DOCUMENT_ROOT'].'/egbim/bbs/userlist_admin_guard.php';
|
||||
?>
|
||||
<!DOCTYPE html>
|
||||
<html lang="ko">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<title>Descope 유저 리스트</title>
|
||||
<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
|
||||
<script src="https://cdn.tailwindcss.com"></script>
|
||||
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/flatpickr/dist/flatpickr.min.css">
|
||||
|
||||
<link rel="stylesheet" type="text/css" href="https://rawgit.com/vitmalina/w2ui/master/dist/w2ui.min.css">
|
||||
|
||||
<script src="https://cdn.jsdelivr.net/npm/flatpickr"></script>
|
||||
<style>
|
||||
#tableContainer { max-height: 80vh; overflow-y: auto; overflow-x: hidden; }
|
||||
#floatingScroll {
|
||||
position: sticky; bottom: 0; left: 0; right: 0;
|
||||
height: 16px; overflow-x: auto; overflow-y: hidden;
|
||||
background: #f9f9f9; border-top: 1px solid #ccc; z-index: 50;
|
||||
}
|
||||
#floatingScrollInner { height: 1px; }
|
||||
thead th { position: sticky; top: 0; z-index: 60; background: #e5e7eb; }
|
||||
</style>
|
||||
|
||||
|
||||
</head>
|
||||
<body class="bg-gray-100 p-6">
|
||||
<div class="max-w-[1800px] mx-auto pb-10 bg-white shadow rounded-lg pl-5 pt-5 pr-5">
|
||||
<h1 class="text-2xl font-bold mb-4">Descope 유저 리스트</h1>
|
||||
|
||||
<!-- ✅ 검색 영역 -->
|
||||
<div class="flex items-center gap-2 mb-4">
|
||||
<select id="mode" class="border px-2 py-1 rounded">
|
||||
<option value="created">가입일 기준</option>
|
||||
<option value="lastSignIn">마지막 로그인 기준</option>
|
||||
<option value="license">라이센스 만료일 기준</option>
|
||||
<option value="serverLogin">최근 로그인 기준 (EGBIM)</option> <!-- ✅ 추가 -->
|
||||
</select>
|
||||
<input type="text" id="startDate" placeholder="시작일" class="border px-2 py-1 rounded">
|
||||
<span>~</span>
|
||||
<input type="text" id="endDate" placeholder="종료일" class="border px-2 py-1 rounded">
|
||||
<button id="filterBtn" class="bg-blue-500 text-white px-4 py-1 rounded">검색</button>
|
||||
<button id="resetBtn" class="bg-gray-400 text-white px-4 py-1 rounded">초기화</button>
|
||||
|
||||
<!-- ✅ 테넌트 체크박스 -->
|
||||
<div id="tenantFilter" class="flex items-center gap-2 ml-4">
|
||||
<label><input type="checkbox" name="tenant" value="Hanmac Family"> Hanmac Family</label>
|
||||
<label><input type="checkbox" name="tenant" value="Customer"> Customer</label>
|
||||
<label><input type="checkbox" name="tenant" value="egBIM-edu"> egBIM-edu</label>
|
||||
</div>
|
||||
|
||||
|
||||
<!-- ✅ CSV 대량 생성 버튼 -->
|
||||
<button id="btn-import-descope" class="bg-green-600 text-white px-4 py-1 rounded hover:bg-green-700">계정 일괄 생성</button>
|
||||
|
||||
<!-- ✅ CSV Import 팝업 -->
|
||||
<div id="importModal" class="fixed inset-0 bg-black bg-opacity-40 flex items-center justify-center hidden z-50">
|
||||
<div class="bg-white rounded-lg shadow-lg p-6 w-[590px] max-w-[90%] relative">
|
||||
<h2 class="text-lg font-semibold mb-4">Descope 대량 생성</h2>
|
||||
|
||||
<label class="block text-sm font-medium mb-1">Google Sheet CSV URL</label>
|
||||
<input id="csvUrl" type="url"
|
||||
class="w-full border px-3 py-2 rounded mb-3"
|
||||
placeholder="https://docs.google.com/spreadsheets/d/.../export?format=csv&gid=..." />
|
||||
|
||||
<label class="block text-sm font-medium mb-1">egBIM 라이선스 만료일</label>
|
||||
<input id="expiry" type="date" class="w-full border px-3 py-2 rounded mb-3" />
|
||||
|
||||
<!-- <label class="inline-flex items-center mb-4">
|
||||
<input id="sendReset" type="checkbox" class="mr-2" checked>
|
||||
<span>비밀번호 재설정 메일 발송</span>
|
||||
</label> -->
|
||||
|
||||
<!-- ✅ Tenant Type 선택 -->
|
||||
<label class="block text-sm font-medium mb-1">소속 테넌트 선택</label>
|
||||
<div class="flex gap-4 mb-3">
|
||||
<label class="flex items-center gap-1">
|
||||
<input type="radio" name="tenant_type" value="customer" checked />
|
||||
<span>Customer (외부)</span>
|
||||
</label>
|
||||
<label class="flex items-center gap-1">
|
||||
<input type="radio" name="tenant_type" value="family" />
|
||||
<span>Hanmac Family (내부)</span>
|
||||
</label>
|
||||
<label class="flex items-center gap-1">
|
||||
<input type="radio" name="tenant_type" value="edu" />
|
||||
<span>egBIM-edu (교육용)</span>
|
||||
</label>
|
||||
</div>
|
||||
|
||||
<div id="importMsg" class="text-gray-500 text-sm mb-4"></div>
|
||||
|
||||
<div class="flex justify-end gap-2">
|
||||
<button id="importCancel" class="px-4 py-1 bg-gray-400 text-white rounded">취소</button>
|
||||
<button id="importRun" class="px-4 py-1 bg-blue-600 text-white rounded">실행</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- ✅ 우측 검색창 -->
|
||||
<div class="flex justify-end flex-1">
|
||||
<input type="text" id="keyword" placeholder="소속 가족사 / 외부회사 검색"
|
||||
class="border px-2 py-1 rounded w-72">
|
||||
<button id="keywordBtn"
|
||||
class="ml-2 bg-blue-500 text-white px-4 py-1 rounded">검색</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="grid" style="width: 1700px; height: 500px; overflow: hidden;"></div>
|
||||
<br>
|
||||
<button class="w2ui-btn" onclick="loadData()">Load Data</button>
|
||||
<!-- <button class="w2ui-btn" onclick="loadData('data/list.json')">Load Data</button> -->
|
||||
<script type="module">
|
||||
import { w2grid } from 'https://rawgit.com/vitmalina/w2ui/master/dist/w2ui.es6.min.js'
|
||||
|
||||
let grid = new w2grid({
|
||||
name: 'grid',
|
||||
box: '#grid',
|
||||
show: {
|
||||
header: true,
|
||||
footer: true,
|
||||
toolbar: true,
|
||||
lineNumbers: true
|
||||
},
|
||||
columns: [
|
||||
{ field: 'loginIds', text: '아이디', size: '30%', searchable: true, sortable: true },
|
||||
{ field: 'name', text: '이름', size: '100px', searchable: true, sortable: true },
|
||||
{ field: 'email', text: '이메일', size: '40%', searchable: true, sortable: true },
|
||||
{ field: 'phone', text: '연락처', size: '100px', searchable: true, sortable: true },
|
||||
{ field: 'createdTime', text: '가입일', size: '150px', searchable: true, sortable: true },
|
||||
{ field: 'customAttributes.position', text: '직위', size: '80px', searchable: true, sortable: true },
|
||||
{ field: 'customAttributes.familyCompany', text: '가족사', size: '250px', searchable: true, sortable: true },
|
||||
{ field: 'customAttributes.company', text: '회사', size: '250px', searchable: true, sortable: true },
|
||||
{ field: 'customAttributes.serverLastLogin', text: '최종로그인시간', size: '150px', searchable: true, sortable: true },
|
||||
{ field: 'customAttributes.team', text: '소속센터/부/실', size: '150px', searchable: true, sortable: true },
|
||||
{ field: 'customAttributes.egBimLExpiryDate', text: 'egBIM 라이센스 만료일', size: '150px', searchable: true, sortable: true },
|
||||
{ field: 'tenantText', text: '테넌트', size: '150px', searchable: true, sortable: true },
|
||||
{ field: 'customAttributes.familyUniqueKey', text: '사번', size: '150px', searchable: true, sortable: true },
|
||||
{ field: 'customAttributes.completeForm', text: '정보입력완료', size: '150px', searchable: true, sortable: true },
|
||||
]
|
||||
})
|
||||
|
||||
window.loadData = function() {
|
||||
let start=null, end=null, mode="created";
|
||||
let l_url = "/egbim/bbs/descope_user_list_w2.php";
|
||||
const params = [];
|
||||
if (start) params.push("start=" + encodeURIComponent(start));
|
||||
if (end) params.push("end=" + encodeURIComponent(end));
|
||||
if (mode) params.push("mode=" + encodeURIComponent(mode));
|
||||
|
||||
const keyword = $("#keyword").val().trim();
|
||||
if (keyword) params.push("keyword=" + encodeURIComponent(keyword));
|
||||
|
||||
const tenants = $("input[name='tenant']:checked")
|
||||
.map(function(){ return this.value; })
|
||||
.get();
|
||||
if (tenants.length) {
|
||||
params.push("tenants=" + encodeURIComponent(tenants.join(",")));
|
||||
}
|
||||
if (params.length) l_url += "?" + params.join("&");
|
||||
|
||||
// console.error(l_url);
|
||||
grid.load(l_url)
|
||||
}
|
||||
</script>
|
||||
|
||||
<script>
|
||||
|
||||
function formatDate(value) {
|
||||
if (!value) return "";
|
||||
let ts = parseInt(value, 10);
|
||||
if (isNaN(ts)) return value;
|
||||
if (ts < 1e12) ts *= 1000; // 초 단위 → 밀리초 보정
|
||||
return new Date(ts).toLocaleString("ko-KR");
|
||||
}
|
||||
|
||||
// ✅ EGBIM DB에서 오는 VARCHAR (ex: "2025-09-16 18:49:48") 전용 포맷터
|
||||
function formatServerLogin(value) {
|
||||
if (!value) return "-";
|
||||
// "2025-09-16 18:49:48"
|
||||
const parts = value.split(" ");
|
||||
if (parts.length < 2) return value;
|
||||
|
||||
const datePart = parts[0].replace(/-/g, ". "); // "2025. 09. 16"
|
||||
const timePart = parts[1]; // "18:49:48"
|
||||
|
||||
let [h, m, s] = timePart.split(":").map(Number);
|
||||
const meridiem = h >= 12 ? "오후" : "오전";
|
||||
if (h === 0) h = 12;
|
||||
else if (h > 12) h -= 12;
|
||||
|
||||
return `${datePart}. ${meridiem} ${h}:${String(m).padStart(2,"0")}:${String(s).padStart(2,"0")}`;
|
||||
}
|
||||
|
||||
function loadUserList(start=null, end=null, mode="created") {
|
||||
let url = "/egbim/bbs/descope_user_list.php";
|
||||
const params = [];
|
||||
if (start) params.push("start=" + encodeURIComponent(start));
|
||||
if (end) params.push("end=" + encodeURIComponent(end));
|
||||
if (mode) params.push("mode=" + encodeURIComponent(mode));
|
||||
|
||||
const keyword = $("#keyword").val().trim();
|
||||
if (keyword) params.push("keyword=" + encodeURIComponent(keyword));
|
||||
|
||||
const tenants = $("input[name='tenant']:checked")
|
||||
.map(function(){ return this.value; })
|
||||
.get();
|
||||
if (tenants.length) {
|
||||
params.push("tenants=" + encodeURIComponent(tenants.join(",")));
|
||||
}
|
||||
if (params.length) url += "?" + params.join("&");
|
||||
|
||||
$.getJSON(url, function(data) {
|
||||
let rows = "";
|
||||
if (data.status === "ok" && data.users) {
|
||||
try{
|
||||
data.users.forEach((u, idx) => {
|
||||
let tenantInfo = "";
|
||||
if (u.userTenants && Array.isArray(u.userTenants)) {
|
||||
tenantInfo = u.userTenants.map(t => t.tenantName || "").join("<br>");
|
||||
}
|
||||
if (idx == 2){
|
||||
throw new Error("stop");
|
||||
}
|
||||
});
|
||||
} catch (error){
|
||||
console.error("오류 상세:" + error);
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
//grid.render('#main');
|
||||
|
||||
}
|
||||
|
||||
// ✅ 체크박스 클릭 시 즉시 필터링
|
||||
$(document).on("change", "input[name='tenant']", function() {
|
||||
loadUserList($("#startDate").val(), $("#endDate").val(), $("#mode").val());
|
||||
});
|
||||
|
||||
$(document).ready(function() {
|
||||
|
||||
flatpickr("#startDate", { dateFormat: "Y-m-d" });
|
||||
flatpickr("#endDate", { dateFormat: "Y-m-d" });
|
||||
|
||||
$("#filterBtn").on("click", function() {
|
||||
loadUserList($("#startDate").val(), $("#endDate").val(), $("#mode").val());
|
||||
});
|
||||
|
||||
$("#resetBtn").on("click", function() {
|
||||
$("#startDate").val("");
|
||||
$("#endDate").val("");
|
||||
$("#mode").val("created");
|
||||
$("input[name='tenant']").prop("checked", false);
|
||||
$("#keyword").val(""); // ✅ 검색창 초기화
|
||||
loadUserList();
|
||||
});
|
||||
|
||||
$("#keywordBtn").on("click", function() {
|
||||
loadUserList($("#startDate").val(), $("#endDate").val(), $("#mode").val());
|
||||
});
|
||||
$("#keyword").on("keypress", function(e) {
|
||||
if (e.which === 13) {
|
||||
loadUserList($("#startDate").val(), $("#endDate").val(), $("#mode").val());
|
||||
}
|
||||
});
|
||||
|
||||
loadUserList();
|
||||
});
|
||||
|
||||
</script>
|
||||
|
||||
|
||||
|
||||
</body>
|
||||
</html>
|
||||
<script>
|
||||
$(function(){
|
||||
// ✅ 모달 열기
|
||||
$("#btn-import-descope").on("click", () => {
|
||||
$("#importModal").removeClass("hidden");
|
||||
$("#importMsg").text("");
|
||||
$("#importRun").prop("disabled", false).text("실행");
|
||||
});
|
||||
|
||||
// ✅ 모달 닫기 (밖 클릭 포함)
|
||||
$("#importCancel, #importModal").on("click", (e) => {
|
||||
if (e.target.id === "importCancel" || e.target.id === "importModal") {
|
||||
$("#importModal").addClass("hidden");
|
||||
}
|
||||
});
|
||||
|
||||
// ✅ 실행 버튼 클릭
|
||||
$("#importRun").on("click", async () => {
|
||||
const csvUrl = $("#csvUrl").val().trim();
|
||||
const expiry = $("#expiry").val().trim();
|
||||
const tenantType = $('input[name="tenant_type"]:checked').val(); // ✅ 올바른 name 참조
|
||||
|
||||
if (!csvUrl) {
|
||||
$("#importMsg").text("❗ CSV URL을 입력하세요.");
|
||||
return;
|
||||
}
|
||||
|
||||
$("#importRun").prop("disabled", true).text("실행 중...");
|
||||
$("#importMsg").html("<span class='text-blue-600'>처리 중입니다... 잠시만 기다려주세요.</span>");
|
||||
|
||||
try {
|
||||
const res = await fetch("/egbim/bbs/descope_import.php", {
|
||||
method: "POST",
|
||||
headers: { "Content-Type": "application/json" },
|
||||
body: JSON.stringify({
|
||||
csv_url: csvUrl,
|
||||
expiry: expiry,
|
||||
tenant_type: tenantType // ✅ 서버로 전달
|
||||
})
|
||||
});
|
||||
|
||||
const data = await res.json();
|
||||
console.log("📦 응답:", data);
|
||||
|
||||
if (data.status === "ok") {
|
||||
$("#importMsg").html(`
|
||||
✅ 완료: <b>${data.created}</b> 생성 /
|
||||
<b>${data.updated}</b> 갱신 /
|
||||
<b>${data.failed}</b> 실패
|
||||
`);
|
||||
|
||||
if (data.failed > 0 && data.errors?.length) {
|
||||
console.warn("실패 목록:", data.errors);
|
||||
$("#importMsg").append(`<br><span class='text-gray-600'>일부 실패 로그는 콘솔에서 확인하세요.</span>`);
|
||||
}
|
||||
|
||||
} else {
|
||||
$("#importMsg").html(`❌ 실패: ${data.message || "서버 오류"}`);
|
||||
console.error("서버 응답:", data);
|
||||
}
|
||||
} catch (err) {
|
||||
console.error("통신 오류:", err);
|
||||
$("#importMsg").html("<span class='text-red-600'>❌ 통신 오류가 발생했습니다.</span>");
|
||||
} finally {
|
||||
$("#importRun").prop("disabled", false).text("실행");
|
||||
}
|
||||
});
|
||||
});
|
||||
</script>
|
||||
|
||||
|
||||
@@ -0,0 +1,465 @@
|
||||
<?php
|
||||
require_once $_SERVER['DOCUMENT_ROOT'].'/egbim/skin/member/basic/descope_session.php';
|
||||
require_once $_SERVER['DOCUMENT_ROOT'].'/egbim/bbs/userlist_admin_guard.php';
|
||||
?>
|
||||
<!DOCTYPE html>
|
||||
<html lang="ko">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<title>Descope 유저 리스트</title>
|
||||
<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
|
||||
<script src="https://cdn.tailwindcss.com"></script>
|
||||
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/flatpickr/dist/flatpickr.min.css">
|
||||
<link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/gh/vitmalina/w2ui@master/dist/w2ui.min.css"/>
|
||||
<script src="https://cdn.jsdelivr.net/npm/flatpickr"></script>
|
||||
|
||||
<!-- ✅ w2ui 최신 버전 (ORB 차단 방지용) -->
|
||||
<!-- <link rel="stylesheet" type="text/css" href="https://rawgit.com/vitmalina/w2ui/master/dist/w2ui.min.css"> -->
|
||||
<!-- <script type="module" src="https://unpkg.com/w2ui/dist/w2ui.es6.min.js"></script> -->
|
||||
<style>
|
||||
/* ✅ 헤더 텍스트만 가운데 정렬 */
|
||||
.w2ui-grid-columns td.w2ui-head > div {
|
||||
text-align: center !important;
|
||||
}
|
||||
/* ✅ w2ui 그리드 전체 폰트 크기 조정 */
|
||||
.w2ui-grid * {
|
||||
font-family: 'Pretendard', 'Noto Sans KR', sans-serif !important;
|
||||
font-size: 15px !important;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
|
||||
<body class="bg-gray-100 p-6">
|
||||
<div class="max-w-[1900px] mx-auto pb-10 bg-white shadow rounded-lg pl-5 pt-5 pr-5">
|
||||
<h1 class="text-2xl font-bold mb-4">EG-BIM 사용자 리스트</h1>
|
||||
|
||||
<!-- ✅ 검색 영역 -->
|
||||
<div class="flex items-center gap-2 mb-4">
|
||||
<select id="mode" class="border px-2 py-1 rounded">
|
||||
<option value="created">가입일 기준</option>
|
||||
<!-- <option value="lastSignIn">마지막 로그인 기준</option> -->
|
||||
<option value="license">라이센스 만료일 기준</option>
|
||||
<option value="serverLogin" selected>최종 로그인 시간 기준</option>
|
||||
</select>
|
||||
<input type="text" id="startDate" placeholder="시작일" class="border px-2 py-1 rounded">
|
||||
<span>~</span>
|
||||
<input type="text" id="endDate" placeholder="종료일" class="border px-2 py-1 rounded">
|
||||
<button id="filterBtn" class="bg-blue-500 text-white px-4 py-1 rounded">검색</button>
|
||||
<button id="resetBtn" class="bg-gray-400 text-white px-4 py-1 rounded">초기화</button>
|
||||
|
||||
<!-- ✅ 테넌트 체크박스 -->
|
||||
<div id="tenantFilter" class="flex items-center gap-2 ml-4">
|
||||
<label><input type="checkbox" name="tenant" value="Hanmac Family"> Hanmac Family</label>
|
||||
<label><input type="checkbox" name="tenant" value="Customer"> Customer</label>
|
||||
<label><input type="checkbox" name="tenant" value="egBIM-edu"> egBIM-edu</label>
|
||||
</div>
|
||||
<div class="flex-grow"></div>
|
||||
<!-- ✅ CSV 버튼 -->
|
||||
<div>
|
||||
<button id="btn-import-descope" class="bg-green-600 text-white px-4 py-1 rounded hover:bg-green-700 ml-auto">CSV 일괄 생성</button>
|
||||
<button id="btn-import-descope" class="bg-blue-600 text-white px-4 py-1 rounded hover:bg-blue-700 ml-auto" onclick="location.href='/egbim/skin/sales/sales_schedules.skin.php'">영업 관리</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- ✅ w2ui Grid -->
|
||||
<div id="grid" style="width: 100%; height: 720px;"></div>
|
||||
</div>
|
||||
|
||||
<!-- ✅ CSV Import Modal -->
|
||||
<div id="importModal" class="fixed inset-0 bg-black bg-opacity-40 flex items-center justify-center hidden z-50">
|
||||
<div class="bg-white rounded-lg shadow-lg p-6 w-[590px] max-w-[90%] relative">
|
||||
<h2 class="text-lg font-semibold mb-4">Descope 대량 생성</h2>
|
||||
<label class="block text-sm font-medium mb-1">Google Sheet CSV URL</label>
|
||||
<input id="csvUrl" type="url"
|
||||
class="w-full border px-3 py-2 rounded mb-3"
|
||||
placeholder="https://docs.google.com/spreadsheets/d/.../export?format=csv&gid=..." />
|
||||
|
||||
<label class="block text-sm font-medium mb-1">egBIM 라이선스 만료일</label>
|
||||
<input id="expiry" type="date" class="w-full border px-3 py-2 rounded mb-3" />
|
||||
|
||||
<label class="block text-sm font-medium mb-1">소속 테넌트 선택</label>
|
||||
<div class="flex gap-4 mb-3">
|
||||
<label class="flex items-center gap-1">
|
||||
<input type="radio" name="tenant_type" value="customer" checked />
|
||||
<span>Customer (외부)</span>
|
||||
</label>
|
||||
<label class="flex items-center gap-1">
|
||||
<input type="radio" name="tenant_type" value="family" />
|
||||
<span>Hanmac Family (내부)</span>
|
||||
</label>
|
||||
<label class="flex items-center gap-1">
|
||||
<input type="radio" name="tenant_type" value="edu" />
|
||||
<span>egBIM-edu (교육용)</span>
|
||||
</label>
|
||||
</div>
|
||||
|
||||
<div id="importMsg" class="text-gray-500 text-sm mb-4"></div>
|
||||
|
||||
<div class="flex justify-end gap-2">
|
||||
<button id="importCancel" class="px-4 py-1 bg-gray-400 text-white rounded">취소</button>
|
||||
<button id="importRun" class="px-4 py-1 bg-blue-600 text-white rounded">실행</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script type="module">
|
||||
import { w2grid, w2utils } from 'https://cdn.jsdelivr.net/gh/vitmalina/w2ui@master/dist/w2ui.es6.min.js'
|
||||
|
||||
// ✅ Grid 생성
|
||||
let grid = new w2grid({
|
||||
name: 'descope_users',
|
||||
box: '#grid',
|
||||
show: {
|
||||
toolbar: true,
|
||||
footer: true,
|
||||
toolbarSearch: true,
|
||||
toolbarReload: true,
|
||||
toolbarColumns: true,
|
||||
lineNumbers: true
|
||||
},
|
||||
multiSearch: true,
|
||||
reorderColumns: true,
|
||||
searches: [
|
||||
{ field: 'loginIds', label: '아이디', type: 'text' },
|
||||
{ field: 'name', label: '이름', type: 'text' },
|
||||
{ field: 'email', label: '이메일', type: 'text' },
|
||||
{ field: 'phone', label: '연락처', type: 'text' },
|
||||
{ field: 'createdTime', label: '가입일', type: 'date' },
|
||||
{ field: 'customAttributes.position', label: '직위', type: 'text' },
|
||||
{ field: 'customAttributes.familyCompany', label: '가족사', type: 'text' },
|
||||
{ field: 'customAttributes.company', label: '회사명', type: 'text', operator: 'contains' },
|
||||
{ field: 'customAttributes.serverLastLogin', label: 'EGBIM 로그인일', type: 'date' },
|
||||
{ field: 'customAttributes.recentLoginCount1m', label: '최근 1개월 로그인 횟수', type: 'int' },
|
||||
{ field: 'customAttributes.recentLoginDays1m', label: '최근 1개월 로그인 일수', type: 'int' },
|
||||
{ field: 'customAttributes.team', label: '소속센터/부/실', type: 'text' },
|
||||
{ field: 'customAttributes.egBimLExpiryDate', label: '라이선스 만료일', type: 'date' },
|
||||
{ field: 'tenantText', label: '테넌트', type: 'list', options: { items: ['Hanmac Family', 'Customer, egBIM', 'egBIM-edu'] } },
|
||||
{ field: 'customAttributes.familyUniqueKey', label: '사번', type: 'text' },
|
||||
{ field: 'customAttributes.completeForm', label: '정보입력완료', type: 'list', options: { items: ['완료', '미완료'] } },
|
||||
],
|
||||
columns: [
|
||||
{ field: 'loginIds', text: '아이디', size: '200px', searchable: true, sortable: true },
|
||||
{ field: 'name', text: '이름', size: '90px', searchable: true, sortable: true },
|
||||
{ field: 'email', text: '이메일', size: '200px', searchable: true, sortable: true },
|
||||
{ field: 'phone', text: '연락처', size: '140px', searchable: true, sortable: true },
|
||||
{
|
||||
field: 'createdTime',
|
||||
text: '가입일',
|
||||
size: '170px',
|
||||
sortable: true,
|
||||
render: (rec) => {
|
||||
const v = rec.createdTime
|
||||
if (!v) return '-'
|
||||
|
||||
let ts = Number(v)
|
||||
let date = null
|
||||
|
||||
// ✅ 숫자 형태일 경우
|
||||
if (!isNaN(ts) && ts > 0) {
|
||||
// 10자리면 초 단위, 13자리면 밀리초 단위
|
||||
if (ts < 1e12) ts *= 1000
|
||||
date = new Date(ts)
|
||||
}
|
||||
// ✅ 문자열일 경우 (ex: "2025-11-03T02:28:51Z", "2025-11-03 11:37:11")
|
||||
else {
|
||||
date = new Date(String(v).replace(' ', 'T'))
|
||||
}
|
||||
|
||||
// ✅ Invalid Date 방지
|
||||
if (isNaN(date.getTime())) return '-'
|
||||
|
||||
// ✅ 한국시간(KST)으로 변환 (Descope는 UTC 반환)
|
||||
const local = new Date(date.getTime() + (9 * 60 * 60 * 1000))
|
||||
|
||||
const y = local.getFullYear()
|
||||
const m = String(local.getMonth() + 1).padStart(2, '0')
|
||||
const d = String(local.getDate()).padStart(2, '0')
|
||||
const hh = String(local.getHours()).padStart(2, '0')
|
||||
const mm = String(local.getMinutes()).padStart(2, '0')
|
||||
const ss = String(local.getSeconds()).padStart(2, '0')
|
||||
|
||||
return `${y}-${m}-${d} ${hh}:${mm}:${ss}`
|
||||
}
|
||||
},
|
||||
{ field: 'customAttributes.position', text: '직위', size: '80px', searchable: true, sortable: true },
|
||||
{ field: 'customAttributes.familyCompany', text: '가족사', size: '80px', searchable: true, sortable: true },
|
||||
{
|
||||
field: 'customAttributes.company',
|
||||
text: '회사명',
|
||||
size: '200px',
|
||||
sortable: true,
|
||||
render: (record) => {
|
||||
if (record?.w2ui?.summary) {
|
||||
// ✅ summary row 전용 렌더링
|
||||
return record?.customAttributes?.company || ''
|
||||
}
|
||||
return record?.customAttributes?.company || '-'
|
||||
}
|
||||
},
|
||||
{
|
||||
field: 'customAttributes.serverLastLogin',
|
||||
text: '최종로그인시간',
|
||||
size: '170px',
|
||||
sortable: true,
|
||||
render: (rec) => formatDateTimeLocal(rec?.customAttributes?.serverLastLogin)
|
||||
},
|
||||
{
|
||||
field: 'customAttributes.recentLoginCount1m',
|
||||
text: '최근 1개월 로그인 횟수',
|
||||
size: '130px',
|
||||
sortable: true,
|
||||
render: (rec) => `${Number(rec?.customAttributes?.recentLoginCount1m || 0)}회`
|
||||
},
|
||||
{
|
||||
field: 'customAttributes.recentLoginDays1m',
|
||||
text: '최근 1개월 로그인 일수',
|
||||
size: '130px',
|
||||
sortable: true,
|
||||
render: (rec) => `${Number(rec?.customAttributes?.recentLoginDays1m || 0)}일`
|
||||
},
|
||||
{ field: 'customAttributes.team', text: '소속센터/부/실', size: '150px', searchable: true, sortable: true },
|
||||
{
|
||||
field: 'customAttributes.egBimLExpiryDate',
|
||||
text: 'egBIM 라이센스 만료일',
|
||||
size: '170px',
|
||||
sortable: true,
|
||||
render: (rec) => formatDateTime(rec?.customAttributes?.egBimLExpiryDate)
|
||||
},
|
||||
{ field: 'tenantText', text: '테넌트', size: '130px', searchable: true, sortable: true },
|
||||
{ field: 'customAttributes.familyUniqueKey', text: '사번', size: '80px', searchable: true, sortable: true },
|
||||
{ field: 'customAttributes.completeForm', text: '정보입력완료', size: '130px', searchable: true, sortable: true },
|
||||
]
|
||||
});
|
||||
|
||||
// ✅ 회사 고유 개수 계산 함수
|
||||
function countUniqueCompanies(records) {
|
||||
const set = new Set()
|
||||
records.forEach(r => {
|
||||
const company = r?.customAttributes?.company || ''
|
||||
if (company.trim() !== '') set.add(company.trim())
|
||||
})
|
||||
return set.size
|
||||
}
|
||||
|
||||
// ✅ 데이터 로드
|
||||
async function loadDescopeUsers() {
|
||||
try {
|
||||
grid.lock('데이터 불러오는 중...', true); // ✅ 수정
|
||||
|
||||
const params = [];
|
||||
const start = $("#startDate").val();
|
||||
const end = $("#endDate").val();
|
||||
const mode = $("#mode").val();
|
||||
const tenants = $("input[name='tenant']:checked").map(function(){ return this.value }).get();
|
||||
|
||||
if (start) params.push("start=" + encodeURIComponent(start));
|
||||
if (end) params.push("end=" + encodeURIComponent(end));
|
||||
if (mode) params.push("mode=" + encodeURIComponent(mode));
|
||||
if (tenants.length) params.push("tenants=" + encodeURIComponent(tenants.join(",")));
|
||||
|
||||
const url = "/egbim/bbs/descope_user_list_w2.php" + (params.length ? "?" + params.join("&") : "");
|
||||
const res = await fetch(url);
|
||||
const data = await res.json();
|
||||
|
||||
if (data.status === "success" || data.status === "ok") {
|
||||
grid.records = data.records.map((u, i) => ({ recid: i + 1, ...u }));
|
||||
grid.total = data.total || grid.records.length;
|
||||
|
||||
const companyCount = countUniqueCompanies(grid.records);
|
||||
grid.summary = [
|
||||
{
|
||||
recid: 'S-1',
|
||||
name: '<span style="float:right;font-weight:bold;">총 회사 수</span>',
|
||||
customAttributes: { company: `<b>${companyCount}</b> 개` }
|
||||
}
|
||||
];
|
||||
|
||||
grid.refresh();
|
||||
} else {
|
||||
console.error("❌ 서버 응답 오류:", data);
|
||||
w2alert("데이터를 불러오는 중 오류가 발생했습니다.");
|
||||
}
|
||||
} catch (err) {
|
||||
console.error("❌ 통신 오류:", err);
|
||||
w2alert("서버와의 통신에 실패했습니다.");
|
||||
} finally {
|
||||
grid.unlock(); // ✅ 수정
|
||||
}
|
||||
}
|
||||
|
||||
// ✅ refresh 시 summary 자동 갱신
|
||||
grid.on('refresh', () => {
|
||||
if (!grid.records.length) return
|
||||
const visible = grid.records.filter(r => !r.hidden)
|
||||
const companyCount = countUniqueCompanies(visible)
|
||||
grid.summary = [
|
||||
{
|
||||
recid: 'S-1',
|
||||
name: '<span style="float:right;font-weight:bold;">총 회사 수</span>',
|
||||
customAttributes: { company: `<b>${companyCount}</b> 개` }
|
||||
}
|
||||
]
|
||||
})
|
||||
|
||||
// ✅ 초기 실행
|
||||
$(function() {
|
||||
flatpickr("#startDate", { dateFormat: "Y-m-d" });
|
||||
flatpickr("#endDate", { dateFormat: "Y-m-d" });
|
||||
|
||||
// 최초 진입은 날짜 제한 없이 최종 로그인 순으로 조회
|
||||
$("#mode").val("serverLogin");
|
||||
|
||||
$("#filterBtn").on("click", loadDescopeUsers);
|
||||
$("#resetBtn").on("click", function(){
|
||||
$("#startDate").val(""); $("#endDate").val("");
|
||||
$("input[name='tenant']").prop("checked", false);
|
||||
$("#mode").val("created");
|
||||
loadDescopeUsers();
|
||||
});
|
||||
|
||||
$("input[name='tenant']").on("change", loadDescopeUsers);
|
||||
loadDescopeUsers();
|
||||
});
|
||||
|
||||
// ✅ KST로 이미 저장된 날짜 포맷 함수 (UTC 변환 없음 - serverLastLogin, egBimLExpiryDate 전용)
|
||||
function formatDateTimeLocal(value) {
|
||||
if (!value || value === 'null' || value === 'undefined') return '-'
|
||||
|
||||
let date
|
||||
|
||||
if (/^\d+$/.test(value)) {
|
||||
let ts = parseInt(value, 10)
|
||||
if (ts < 1e12) ts *= 1000
|
||||
date = new Date(ts)
|
||||
} else {
|
||||
const str = value.replace(' ', 'T')
|
||||
date = new Date(str)
|
||||
}
|
||||
|
||||
if (isNaN(date.getTime()) || date.getFullYear() < 2000) return '-'
|
||||
|
||||
const y = date.getFullYear()
|
||||
const m = String(date.getMonth() + 1).padStart(2, '0')
|
||||
const d = String(date.getDate()).padStart(2, '0')
|
||||
const hh = String(date.getHours()).padStart(2, '0')
|
||||
const mm = String(date.getMinutes()).padStart(2, '0')
|
||||
const ss = String(date.getSeconds()).padStart(2, '0')
|
||||
|
||||
return `${y}-${m}-${d} ${hh}:${mm}:${ss}`
|
||||
}
|
||||
|
||||
// ✅ 공통 날짜 포맷 함수 (UTC → KST 변환, Descope 전용)
|
||||
function formatDateTime(value) {
|
||||
if (!value || value === 'null' || value === 'undefined') return '-'
|
||||
|
||||
let date
|
||||
|
||||
// ✅ 숫자형 timestamp
|
||||
if (/^\d+$/.test(value)) {
|
||||
let ts = parseInt(value, 10)
|
||||
if (ts < 1e12) ts *= 1000
|
||||
date = new Date(ts)
|
||||
} else {
|
||||
const str = value.replace(' ', 'T')
|
||||
date = new Date(str)
|
||||
}
|
||||
|
||||
if (isNaN(date.getTime()) || date.getFullYear() < 2000) return '-'
|
||||
|
||||
// ✅ 한국시간(KST)으로 변환 (Descope는 UTC 반환)
|
||||
const local = new Date(date.getTime() + (9 * 60 * 60 * 1000))
|
||||
|
||||
const y = local.getFullYear()
|
||||
const m = String(local.getMonth() + 1).padStart(2, '0')
|
||||
const d = String(local.getDate()).padStart(2, '0')
|
||||
const hh = String(local.getHours()).padStart(2, '0')
|
||||
const mm = String(local.getMinutes()).padStart(2, '0')
|
||||
const ss = String(local.getSeconds()).padStart(2, '0')
|
||||
|
||||
return `${y}-${m}-${d} ${hh}:${mm}:${ss}`
|
||||
}
|
||||
|
||||
|
||||
// ✅ CSV 모달 동작
|
||||
$(function(){
|
||||
$("#btn-import-descope").on("click", () => {
|
||||
$("#importModal").removeClass("hidden");
|
||||
$("#importMsg").text("");
|
||||
});
|
||||
$("#importCancel, #importModal").on("click", (e) => {
|
||||
if (e.target.id === "importCancel" || e.target.id === "importModal") {
|
||||
$("#importModal").addClass("hidden");
|
||||
}
|
||||
});
|
||||
|
||||
$("#importRun").on("click", async () => {
|
||||
const csvUrl = $("#csvUrl").val().trim();
|
||||
const expiry = $("#expiry").val().trim();
|
||||
const tenantType = $('input[name="tenant_type"]:checked').val();
|
||||
|
||||
if (!csvUrl) { $("#importMsg").text("❗ CSV URL을 입력하세요."); return; }
|
||||
|
||||
$("#importRun").prop("disabled", true).text("실행 중...");
|
||||
$("#importMsg").html("<span class='text-blue-600'>처리 중입니다...</span>");
|
||||
|
||||
try {
|
||||
const res = await fetch("/egbim/bbs/descope_import.php", {
|
||||
method: "POST",
|
||||
headers: { "Content-Type": "application/json" },
|
||||
body: JSON.stringify({ csv_url: csvUrl, expiry: expiry, tenant_type: tenantType })
|
||||
});
|
||||
const data = await res.json();
|
||||
if (data.status === "ok") {
|
||||
|
||||
let msg = `✅ 완료: 생성 ${data.created}, 갱신 ${data.updated}, 실패 ${data.failed}<br>`;
|
||||
|
||||
if (data.failed > 0 && data.errors && data.errors.length) {
|
||||
|
||||
msg += "<div class='mt-2 text-red-600 text-sm'>";
|
||||
msg += "<b>중복 또는 오류 계정:</b><br>";
|
||||
|
||||
data.errors.forEach(err => {
|
||||
|
||||
let errorMsg = '알 수 없는 오류입니다';
|
||||
|
||||
if (err.error) {
|
||||
try {
|
||||
const parsed = JSON.parse(err.error.replace(/^create:\d+\s*/, ''));
|
||||
const rawMsg = parsed.errorMessage || parsed.errorDescription || err.error;
|
||||
|
||||
// 🔥 영어 → 한글 변환
|
||||
if (rawMsg.includes("existing user")) {
|
||||
errorMsg = "이미 존재하는 계정입니다";
|
||||
} else if (rawMsg.includes("Failed to create user")) {
|
||||
errorMsg = "계정 생성에 실패했습니다";
|
||||
} else if (rawMsg.includes("Invalid")) {
|
||||
errorMsg = "잘못된 형식의 데이터입니다";
|
||||
} else {
|
||||
errorMsg = rawMsg; // 기타는 그대로
|
||||
}
|
||||
|
||||
} catch (e) {
|
||||
errorMsg = "계정 생성 중 오류가 발생했습니다";
|
||||
}
|
||||
}
|
||||
|
||||
msg += `• ${err.loginId || err.login_id} → ${errorMsg}<br>`;
|
||||
});
|
||||
|
||||
msg += "</div>";
|
||||
}
|
||||
|
||||
$("#importMsg").html(msg);
|
||||
} else {
|
||||
$("#importMsg").html(`❌ 실패: ${data.message}`);
|
||||
}
|
||||
} catch (err) {
|
||||
$("#importMsg").html("❌ 통신 오류 발생");
|
||||
} finally {
|
||||
$("#importRun").prop("disabled", false).text("실행");
|
||||
}
|
||||
});
|
||||
});
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,93 @@
|
||||
<?php
|
||||
// header('Content-Type: application/json');
|
||||
|
||||
// $management_key = 'P2wON5fy1K6kyia269VpeIzYP8oP:K2ycqpjeh1voPBdxXxzB3ScZOQ6v9aiLmU2cIj70X1H8Kcoz0KWfCWmofUwAsAkJroXA8QC';
|
||||
// $loginId = $_POST['loginId'] ?? '';
|
||||
|
||||
// $url = "https://api.descope.com/v2/mgmt/user/search";
|
||||
// $payload = json_encode([
|
||||
// "loginId" => $loginId,
|
||||
// "limit" => 1
|
||||
// ]);
|
||||
|
||||
// $headers = [
|
||||
// "Authorization: Bearer $management_key",
|
||||
// "Content-Type: application/json"
|
||||
// ];
|
||||
|
||||
// $ch = curl_init($url);
|
||||
// curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
|
||||
// curl_setopt($ch, CURLOPT_POSTFIELDS, $payload);
|
||||
// curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
|
||||
// $response = curl_exec($ch);
|
||||
// $http_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
|
||||
// curl_close($ch);
|
||||
|
||||
// if ($http_code === 200) {
|
||||
// $res = json_decode($response, true);
|
||||
|
||||
// if (!empty($res['users'][0])) {
|
||||
// // ✅ 먼저 $user에 복사
|
||||
// $user = $res['users'][0];
|
||||
|
||||
// // ✅ 값이 없으면 테스트용 기본값 삽입
|
||||
// $user['name'] = $user['name'] ?: '홍길동';
|
||||
// $user['phone'] = $user['phone'] ?: '01012345678';
|
||||
// $user['customAttributes']['company'] = $user['customAttributes']['company'] ?? '한맥ENG';
|
||||
// $user['customAttributes']['team'] = $user['customAttributes']['team'] ?? '설계팀';
|
||||
// $user['customAttributes']['employeeId'] = $user['customAttributes']['employeeId'] ?? 'HM2024';
|
||||
|
||||
// // ✅ 수정된 $user 사용
|
||||
// echo json_encode(['status' => 'ok', 'user' => $user]);
|
||||
// } else {
|
||||
// echo json_encode(['status' => 'fail', 'message' => '사용자를 찾을 수 없음']);
|
||||
// }
|
||||
// } else {
|
||||
// echo json_encode(['status' => 'fail', 'message' => 'Descope API 오류', 'code' => $http_code]);
|
||||
// }
|
||||
?>
|
||||
<?php
|
||||
header('Content-Type: application/json');
|
||||
|
||||
$management_key = 'P2wON5fy1K6kyia269VpeIzYP8oP:K32l5ORmzy32OvaaPvpdZsMY3JmKQb7a3vvrl10PgjlJUGk3K7EssMH3uW5VGQSbrgtEdPj';
|
||||
$loginId = $_POST['loginId'] ?? '';
|
||||
|
||||
$url = "https://api.descope.com/v2/mgmt/user/search";
|
||||
$payload = json_encode([
|
||||
"loginId" => $loginId,
|
||||
"limit" => 1
|
||||
]);
|
||||
|
||||
$headers = [
|
||||
"Authorization: Bearer $management_key",
|
||||
"Content-Type: application/json"
|
||||
];
|
||||
|
||||
$ch = curl_init($url);
|
||||
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
|
||||
curl_setopt($ch, CURLOPT_POSTFIELDS, $payload);
|
||||
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
|
||||
$response = curl_exec($ch);
|
||||
$http_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
|
||||
curl_close($ch);
|
||||
|
||||
if ($http_code === 200) {
|
||||
$res = json_decode($response, true);
|
||||
|
||||
if (!empty($res['users'][0])) {
|
||||
$user = $res['users'][0];
|
||||
|
||||
// ✅ 실제 값이 있으면 그대로 사용, 없으면 빈 문자열
|
||||
$user['name'] = $user['name'] ?? '';
|
||||
$user['phone'] = $user['phone'] ?? '';
|
||||
$user['customAttributes']['company'] = $user['customAttributes']['company'] ?? '';
|
||||
$user['customAttributes']['team'] = $user['customAttributes']['team'] ?? '';
|
||||
$user['customAttributes']['employeeId'] = $user['customAttributes']['employeeId'] ?? '';
|
||||
|
||||
echo json_encode(['status' => 'ok', 'user' => $user]);
|
||||
} else {
|
||||
echo json_encode(['status' => 'fail', 'message' => '사용자를 찾을 수 없음']);
|
||||
}
|
||||
} else {
|
||||
echo json_encode(['status' => 'fail', 'message' => 'Descope API 오류', 'code' => $http_code]);
|
||||
}
|
||||
@@ -0,0 +1,88 @@
|
||||
<?php
|
||||
// descope_verify.php
|
||||
|
||||
// _GNUBOARD_ 등 시스템 상수 포함 필요
|
||||
include_once('../../common.php');
|
||||
|
||||
// POST 데이터 받기
|
||||
$otp_code = trim($_POST['otp_code'] ?? '');
|
||||
$email = trim($_POST['email'] ?? '');
|
||||
|
||||
// $email = 'sdi9429@gmail.com'; // ★ 실제 인증번호 메일 받은 주소
|
||||
// $otp_code = '378484';
|
||||
|
||||
if (strlen($otp_code) !== 6) {
|
||||
echo json_encode(['status'=>'fail', 'message'=>'잘못된 인증번호']);
|
||||
exit;
|
||||
}
|
||||
|
||||
// 1. Descope API에 검증 요청 (curl 또는 file_get_contents)
|
||||
$descope_project_id = "P2wON5fy1K6kyia269VpeIzYP8oP";
|
||||
$descope_api_url = "https://api.descope.com/v1/auth/otp/verify/email"; // email 인증 기준
|
||||
|
||||
// $data = [
|
||||
// 'loginId' => $email, // 이메일 아이디
|
||||
// 'code' => $otp_code, // 입력받은 6자리 코드
|
||||
// ];
|
||||
|
||||
// $headers = [
|
||||
// 'Content-Type: application/json',
|
||||
// 'Accept: application/json',
|
||||
// "x-descope-project-id: $descope_project_id"
|
||||
// ];
|
||||
|
||||
// $ch = curl_init();
|
||||
// curl_setopt($ch, CURLOPT_URL, $descope_api_url);
|
||||
// curl_setopt($ch, CURLOPT_POST, true);
|
||||
// curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
|
||||
// curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
|
||||
// curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
|
||||
|
||||
// $response = curl_exec($ch);
|
||||
// $http_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
|
||||
// curl_close($ch);
|
||||
|
||||
// $res_data = json_decode($response, true);
|
||||
|
||||
// if ($http_code === 200 && isset($res_data['user'])) {
|
||||
// // 인증 성공
|
||||
// echo json_encode(['status'=>'ok']);
|
||||
// } else {
|
||||
// // 실패, 에러 메시지 출력
|
||||
// $msg = $res_data['errorDescription'] ?? '인증 실패';
|
||||
// echo json_encode(['status'=>'fail', 'message'=>$msg]);
|
||||
// }
|
||||
|
||||
|
||||
|
||||
$data = [
|
||||
'loginId' => $email,
|
||||
'code' => $otp_code,
|
||||
];
|
||||
$headers = [
|
||||
'Content-Type: application/json',
|
||||
'Authorization: Bearer ' . $descope_project_id,
|
||||
];
|
||||
$ch = curl_init('https://api.descope.com/v1/auth/otp/verify/email');
|
||||
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
|
||||
curl_setopt($ch, CURLOPT_POST, true);
|
||||
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
|
||||
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
|
||||
$response = curl_exec($ch);
|
||||
$http_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
|
||||
curl_close($ch);
|
||||
|
||||
$res_data = json_decode($response, true);
|
||||
if ($http_code === 200 && isset($res_data['sessionJwt'])) {
|
||||
// 인증 성공
|
||||
echo json_encode([
|
||||
'status'=>'ok',
|
||||
'refreshJwt' => $res_data['refreshJwt'] ?? '',
|
||||
]);
|
||||
} else {
|
||||
// 인증 실패
|
||||
$msg = $res_data['errorDescription'] ?? '인증 실패';
|
||||
echo json_encode(['status'=>'fail', 'message'=>$msg]);
|
||||
}
|
||||
exit;
|
||||
?>
|
||||
@@ -0,0 +1,204 @@
|
||||
<?php
|
||||
// // descope_verify.php
|
||||
|
||||
// // _GNUBOARD_ 등 시스템 상수 포함 필요
|
||||
// include_once('../../common.php');
|
||||
|
||||
// // POST 데이터 받기
|
||||
// $otp_code = trim($_POST['otp_code'] ?? '');
|
||||
// $email = trim($_POST['email'] ?? '');
|
||||
|
||||
// // $email = 'sdi9429@gmail.com'; // ★ 실제 인증번호 메일 받은 주소
|
||||
// // $otp_code = '378484';
|
||||
|
||||
// if (strlen($otp_code) !== 6) {
|
||||
// echo json_encode(['status'=>'fail', 'message'=>'잘못된 인증번호']);
|
||||
// exit;
|
||||
// }
|
||||
|
||||
// // 1. Descope API에 검증 요청 (curl 또는 file_get_contents)
|
||||
// $descope_project_id = "P2wON5fy1K6kyia269VpeIzYP8oP";
|
||||
// $descope_api_url = "https://api.descope.com/v1/auth/otp/verify/email"; // email 인증 기준
|
||||
|
||||
// // $data = [
|
||||
// // 'loginId' => $email, // 이메일 아이디
|
||||
// // 'code' => $otp_code, // 입력받은 6자리 코드
|
||||
// // ];
|
||||
|
||||
// // $headers = [
|
||||
// // 'Content-Type: application/json',
|
||||
// // 'Accept: application/json',
|
||||
// // "x-descope-project-id: $descope_project_id"
|
||||
// // ];
|
||||
|
||||
// // $ch = curl_init();
|
||||
// // curl_setopt($ch, CURLOPT_URL, $descope_api_url);
|
||||
// // curl_setopt($ch, CURLOPT_POST, true);
|
||||
// // curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
|
||||
// // curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
|
||||
// // curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
|
||||
|
||||
// // $response = curl_exec($ch);
|
||||
// // $http_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
|
||||
// // curl_close($ch);
|
||||
|
||||
// // $res_data = json_decode($response, true);
|
||||
|
||||
// // if ($http_code === 200 && isset($res_data['user'])) {
|
||||
// // // 인증 성공
|
||||
// // echo json_encode(['status'=>'ok']);
|
||||
// // } else {
|
||||
// // // 실패, 에러 메시지 출력
|
||||
// // $msg = $res_data['errorDescription'] ?? '인증 실패';
|
||||
// // echo json_encode(['status'=>'fail', 'message'=>$msg]);
|
||||
// // }
|
||||
|
||||
|
||||
|
||||
// $data = [
|
||||
// 'loginId' => $email,
|
||||
// 'code' => $otp_code,
|
||||
// ];
|
||||
// $headers = [
|
||||
// 'Content-Type: application/json',
|
||||
// 'Authorization: Bearer ' . $descope_project_id,
|
||||
// ];
|
||||
// $ch = curl_init('https://api.descope.com/v1/auth/otp/verify/email');
|
||||
// curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
|
||||
// curl_setopt($ch, CURLOPT_POST, true);
|
||||
// curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
|
||||
// curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
|
||||
// $response = curl_exec($ch);
|
||||
// $http_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
|
||||
// curl_close($ch);
|
||||
|
||||
// $res_data = json_decode($response, true);
|
||||
// if ($http_code === 200 && isset($res_data['sessionJwt'])) {
|
||||
// // 인증 성공
|
||||
// echo json_encode([
|
||||
// 'status'=>'ok',
|
||||
// 'refreshJwt' => $res_data['refreshJwt'] ?? '',
|
||||
// ]);
|
||||
// } else {
|
||||
// // 인증 실패
|
||||
// $msg = $res_data['errorDescription'] ?? '인증 실패';
|
||||
// echo json_encode(['status'=>'fail', 'message'=>$msg]);
|
||||
// }
|
||||
// exit;
|
||||
?>
|
||||
<?php
|
||||
// descope_verify.php
|
||||
|
||||
header('Content-Type: application/json; charset=UTF-8');
|
||||
|
||||
$commonPath = dirname(__DIR__, 3) . '/common.php';
|
||||
if (file_exists($commonPath)) {
|
||||
include_once($commonPath);
|
||||
}
|
||||
|
||||
// POST 데이터 받기
|
||||
$otp_code = trim($_POST['otp_code'] ?? '');
|
||||
$email = trim($_POST['email'] ?? '');
|
||||
|
||||
if (strlen($otp_code) !== 6 || !$email) {
|
||||
echo json_encode(['status'=>'fail', 'message'=>'잘못된 입력']);
|
||||
exit;
|
||||
}
|
||||
|
||||
// Descope 설정
|
||||
$projectId = 'P2wON5fy1K6kyia269VpeIzYP8oP';
|
||||
$managementKey = 'K32l5ORmzy32OvaaPvpdZsMY3JmKQb7a3vvrl10PgjlJUGk3K7EssMH3uW5VGQSbrgtEdPj'; // baron Access Key
|
||||
|
||||
// 1. OTP 인증 요청
|
||||
$data = [
|
||||
'loginId' => $email,
|
||||
'code' => $otp_code,
|
||||
];
|
||||
|
||||
$headers = [
|
||||
'Content-Type: application/json',
|
||||
'Authorization: Bearer ' . $projectId,
|
||||
];
|
||||
|
||||
$ch = curl_init('https://api.descope.com/v1/auth/otp/verify/email');
|
||||
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
|
||||
curl_setopt($ch, CURLOPT_POST, true);
|
||||
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
|
||||
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
|
||||
$response = curl_exec($ch);
|
||||
$http_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
|
||||
curl_close($ch);
|
||||
|
||||
// 응답 파싱
|
||||
$res_data = json_decode($response, true);
|
||||
|
||||
if ($http_code === 200 && isset($res_data['user'])) {
|
||||
$user = $res_data['user'];
|
||||
$userId = $user['userId'] ?? '';
|
||||
$email = $user['email'] ?? '';
|
||||
$refreshJwt = $res_data['refreshJwt'] ?? '';
|
||||
|
||||
// 도메인 분리
|
||||
$domain = explode('@', $email)[1];
|
||||
$internalDomains = [
|
||||
"hanmaceng.co.kr",
|
||||
"samaneng.com",
|
||||
"jangheon.co.kr",
|
||||
"hallasanup.com",
|
||||
"pre-cast.co.kr",
|
||||
"baroncs.co.kr"
|
||||
];
|
||||
|
||||
// 테넌트 결정
|
||||
if (in_array($domain, $internalDomains)) {
|
||||
$tenantId = "T2wQcWCBhUfJgUWHWgNwLg4iUDVY"; // 내부
|
||||
$isInternal = true;
|
||||
} else {
|
||||
$tenantId = "T2x4TDzxasp7auPCPcN8uOrxXchh"; // 외부
|
||||
$isInternal = false;
|
||||
}
|
||||
|
||||
// 2. 테넌트 연결 요청
|
||||
$tenantPayload = [
|
||||
"identifier" => $userId,
|
||||
"tenantId" => $tenantId,
|
||||
"roleNames" => ["Default User"]
|
||||
];
|
||||
|
||||
$ch2 = curl_init('https://api.descope.com/v1/mgmt/user/update/tenant/add');
|
||||
curl_setopt($ch2, CURLOPT_RETURNTRANSFER, true);
|
||||
curl_setopt($ch2, CURLOPT_POST, true);
|
||||
curl_setopt($ch2, CURLOPT_POSTFIELDS, json_encode($tenantPayload));
|
||||
curl_setopt($ch2, CURLOPT_HTTPHEADER, [
|
||||
"Authorization: Bearer {$projectId}:{$managementKey}",
|
||||
"Content-Type: application/json"
|
||||
]);
|
||||
$tenantRes = curl_exec($ch2);
|
||||
$tenantHttpCode = curl_getinfo($ch2, CURLINFO_HTTP_CODE);
|
||||
curl_close($ch2);
|
||||
|
||||
// if ($tenantHttpCode !== 200) {
|
||||
// echo json_encode(['status'=>'fail', 'message'=>'테넌트 연결 실패', 'descope_response' => $tenantRes]);
|
||||
|
||||
// exit;
|
||||
// }
|
||||
|
||||
// ✅ 중복 연결은 오류로 간주하지 않음
|
||||
if ($tenantHttpCode !== 200 && !str_contains($tenantRes, 'Tenant already exists')) {
|
||||
echo json_encode(['status'=>'fail', 'message'=>'테넌트 연결 실패', 'descope_response' => $tenantRes]);
|
||||
exit;
|
||||
}
|
||||
|
||||
// 성공 응답
|
||||
echo json_encode([
|
||||
'status' => 'ok',
|
||||
'refreshJwt' => $refreshJwt,
|
||||
'loginId' => $email,
|
||||
'isInternal' => $isInternal
|
||||
]);
|
||||
} else {
|
||||
$msg = $res_data['errorDescription'] ?? '인증 실패';
|
||||
echo json_encode(['status'=>'fail', 'message'=>$msg]);
|
||||
}
|
||||
exit;
|
||||
?>
|
||||
@@ -0,0 +1,37 @@
|
||||
<?php
|
||||
// descope_verify_magiclink.php
|
||||
header('Content-Type: application/json');
|
||||
|
||||
$api_key = "P2wON5fy1K6kyia269VpeIzYP8oP"; // 본인 Descope API Key로 교체
|
||||
$token = $_POST['token'] ?? '';
|
||||
if (!$token) exit(json_encode(['status'=>'fail', 'message'=>'토큰 없음']));
|
||||
|
||||
$url = "https://api.descope.com/v1/auth/magiclink/verify";
|
||||
$data = [ "token" => $token ];
|
||||
$ch = curl_init($url);
|
||||
curl_setopt($ch, CURLOPT_HTTPHEADER, [
|
||||
"Authorization: Bearer $api_key",
|
||||
"Content-Type: application/json"
|
||||
]);
|
||||
curl_setopt($ch, CURLOPT_POST, 1);
|
||||
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
|
||||
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
|
||||
|
||||
$response = curl_exec($ch);
|
||||
$code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
|
||||
curl_close($ch);
|
||||
|
||||
$resData = json_decode($response, true);
|
||||
|
||||
if ($code == 200 && !empty($resData['refreshJwt'])) {
|
||||
echo json_encode([
|
||||
'status' => 'ok',
|
||||
'refreshJwt' => $resData['refreshJwt'],
|
||||
'email' => $resData['user']['email'] ?? ($resData['user']['loginIds'][0] ?? '')
|
||||
]);
|
||||
} else {
|
||||
$msg = $resData['errorDescription'] ?? '인증 실패';
|
||||
echo json_encode(['status'=>'fail', 'message'=>$msg, 'raw'=>$resData]);
|
||||
}
|
||||
|
||||
?>
|
||||
@@ -0,0 +1,43 @@
|
||||
<?php
|
||||
header('Content-Type: application/json');
|
||||
require_once './descope_config.php';
|
||||
|
||||
$email = trim($_POST['email'] ?? '');
|
||||
$otp_code = trim($_POST['otp_code'] ?? '');
|
||||
|
||||
if (!$email || !$otp_code) {
|
||||
echo json_encode(['status' => 'fail', 'message' => '이메일/OTP 없음']);
|
||||
exit;
|
||||
}
|
||||
|
||||
// Descope OTP 인증 (verify)
|
||||
$url = 'https://api.descope.com/v1/auth/otp/verify/email';
|
||||
$data = [
|
||||
"loginId" => $email,
|
||||
"code" => $otp_code
|
||||
];
|
||||
|
||||
$ch = curl_init($url);
|
||||
curl_setopt($ch, CURLOPT_HTTPHEADER, [
|
||||
"Authorization: Bearer " . $DESCOPE_API_KEY,
|
||||
"Content-Type: application/json"
|
||||
]);
|
||||
curl_setopt($ch, CURLOPT_POST, 1);
|
||||
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
|
||||
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
|
||||
|
||||
$response = curl_exec($ch);
|
||||
$code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
|
||||
curl_close($ch);
|
||||
|
||||
$resData = json_decode($response, true);
|
||||
|
||||
if ($code == 200 && isset($resData['refreshJwt'])) {
|
||||
echo json_encode([
|
||||
'status' => 'ok',
|
||||
'refreshJwt' => $resData['refreshJwt'],
|
||||
]);
|
||||
} else {
|
||||
$msg = $resData['errorDescription'] ?? 'OTP 인증 실패';
|
||||
echo json_encode(['status' => 'fail', 'message' => $msg, 'raw' => $response]);
|
||||
}
|
||||
@@ -0,0 +1,671 @@
|
||||
<?php include_once __DIR__ . '/asset_urls.php'; ?>
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
|
||||
<head>
|
||||
<!-- Google tag (gtag.js) -->
|
||||
<script async src="https://www.googletagmanager.com/gtag/js?id=G-STZ2R5Q7HG"></script>
|
||||
<script>
|
||||
window.dataLayer = window.dataLayer || [];
|
||||
|
||||
function gtag() {
|
||||
dataLayer.push(arguments);
|
||||
}
|
||||
gtag('js', new Date());
|
||||
|
||||
gtag('config', 'G-STZ2R5Q7HG');
|
||||
</script>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>도면관리</title>
|
||||
<link rel="stylesheet" href="../css/reset.css" />
|
||||
<link rel="stylesheet" href="../css/font.css" />
|
||||
<link rel="stylesheet" href="../css/style.css" />
|
||||
<link rel="stylesheet" href="https://unpkg.com/aos@2.3.1/dist/aos.css" type="text/css" />
|
||||
<script src="https://unpkg.com/aos@2.3.1/dist/aos.js"></script>
|
||||
<script src="https://unpkg.com/lenis@1.1.9/dist/lenis.min.js"></script>
|
||||
<link rel="stylesheet" href="https://unpkg.com/lenis@1.1.9/dist/lenis.css">
|
||||
<script type="text/javascript" src="../js/jquery-3.6.1.min.js"></script>
|
||||
<script type="text/javascript" src="../js/jquery.mousewheel.min.js"></script>
|
||||
<script src="https://cdn.jsdelivr.net/npm/gsap@3.12.5/dist/gsap.min.js"></script>
|
||||
<script src="https://cdn.jsdelivr.net/npm/gsap@3.12.5/dist/ScrollTrigger.min.js"></script>
|
||||
<script src="https://cdn.jsdelivr.net/npm/gsap@3.12.5/dist/ScrollToPlugin.min.js"></script>
|
||||
|
||||
<script type="text/javascript" src="../js/common.js"></script>
|
||||
<script type="text/javascript" src="../js/popup.js"></script>
|
||||
<script type="text/javascript" src="../js/floorplan.js"></script>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<!-- "js__"로 시작하는 클래스는 only 자바스크립트용입니다. -->
|
||||
<!-- XXXX js__넣어서 css 작성 금지 XXXX -->
|
||||
<div class="wrapper">
|
||||
<input id="hid_mb_id" type="hidden" value="<?echo $_SESSION['session_id'];?>"></input>
|
||||
<!-- HEADER -->
|
||||
<?php include_once($member_skin_path.'/main_header.skin.php'); ?>
|
||||
<!-- //Header -->
|
||||
|
||||
<!-- 모든 팝업페이지 경로 -->
|
||||
<?php
|
||||
include_once($member_skin_path.'/login.skin.php');
|
||||
include_once($member_skin_path.'/mypage01.skin.php');
|
||||
include_once($member_skin_path.'/register.skin.php');
|
||||
include_once($member_skin_path.'/register_form.skin.php');
|
||||
include_once($member_skin_path.'/mypage02.skin.php');
|
||||
include_once($member_skin_path.'/mypage03.skin.php');
|
||||
include_once($member_skin_path.'/sitemap.skin.php');
|
||||
include_once($member_skin_path.'/privacy.skin.php');
|
||||
include_once($member_skin_path.'/password_lost.skin.php');
|
||||
?>
|
||||
<!-- //모든 팝업페이지 경로 -->
|
||||
<div class="container floorplan">
|
||||
<section class="intro">
|
||||
<div class="top js__dark">
|
||||
<h2 data-aos="fade-down" data-aos-duration="1000">도면관리</h2>
|
||||
<span>대량의 설계도면의 효율적 관리</span>
|
||||
</div>
|
||||
<div class="keyword">
|
||||
<i class="egbim_obj k"></i>
|
||||
<span>도면을 열지 않고도 도면을 쉽게 찾고 확인하며,<br> 쉽게 수정하고, 쉽게 출력하는 도면관리 기능 제공</span>
|
||||
<p>도면안에 기입되는 공사명, 도면명, 도면번호 등의 도면정보를 통하여<br>
|
||||
도면을 쉽게 찾고 쉽게 수정, 편리하게 인쇄하면서 <br class="brk">대량의 설계도면을 효율적으로 관리하는 기능을 제공합니다.</p>
|
||||
</div>
|
||||
<div class="diagram_wrap" data-aos="fade-up" data-aos-duration="1000">
|
||||
<div class="dia_elements_wrap">
|
||||
<div class="dia_element dia_element01">
|
||||
<i></i>
|
||||
<span class="dia_tit">편리한<br><em>도면탐색 및 도면정보열람</em></span>
|
||||
<div class="line"></div>
|
||||
</div>
|
||||
<div class="dia_element dia_element02">
|
||||
<i></i>
|
||||
<span class="dia_tit">도면정보<br><em>일괄수정</em></span>
|
||||
<div class="line"></div>
|
||||
</div>
|
||||
<div class="dia_element dia_element03">
|
||||
<i></i>
|
||||
<span class="dia_tit">여러도면<br><em>일괄출력</em></span>
|
||||
<div class="line"></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="dia_circles_wrap">
|
||||
<div class="circle_dash"></div>
|
||||
<div class="circle_belt"></div>
|
||||
<div class="circle_core">
|
||||
<span>효율적인</span>
|
||||
<span>도면관리</span>
|
||||
</div>
|
||||
<div class="circle_dots move">
|
||||
<div class="dot"></div>
|
||||
<div class="dot"></div>
|
||||
<div class="dot"></div>
|
||||
</div>
|
||||
<div class="circle_dots">
|
||||
<div class="dot"></div>
|
||||
<div class="dot"></div>
|
||||
<div class="dot"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</section>
|
||||
<section class="key find layout_fix_left">
|
||||
<div class="left">
|
||||
<div class="mid_tit">
|
||||
<span data-aos="fade-right" data-aos-duration="600">도면탐색과<br> <em>도면정보열람</em></span>
|
||||
</div>
|
||||
<ul data-aos="fade-right" data-aos-duration="1000" data-aos-delay="300" class="js__fixLeft_tit">
|
||||
<li class="on"><span><em>01</em>사용자 지정 폴더</span></li>
|
||||
<li><span><em>02</em>도면정보 열람</span></li>
|
||||
<li><span><em>03</em>도면 미리보기</span></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="right js__fixLeft_secs">
|
||||
<div id="content1" class="find01">
|
||||
<span class="sub_tit">사용자 지정폴더</span>
|
||||
<div class="sub_text">
|
||||
폴더 탐색에서 자주 사용하는 폴더를 드래그 앤 드랍하여 사용자 지정 폴더함에 추가하면,<br> 해당 폴더를 빠르게 찾아갈 수 있습니다.
|
||||
</div>
|
||||
<div class="sub_figs">
|
||||
<div class="imgs">
|
||||
<object data="<?php echo egbim_img_url('find_img_01_01.svg'); ?>" alt="" class="apx"></object>
|
||||
<img src="<?php echo egbim_img_url('find_img_01.png'); ?>" alt="">
|
||||
</div>
|
||||
<div class="text">
|
||||
<div class="top">
|
||||
자주 사용하는 폴더를<br>
|
||||
<b>사용자 지정 폴더함에 추가</b>
|
||||
</div>
|
||||
<div class="line">
|
||||
<img src="<?php echo egbim_img_url('ico_find_tri.svg'); ?>" alt="">
|
||||
</div>
|
||||
<div class="bottom">
|
||||
<img src="<?php echo egbim_img_url('ico_find_01.svg'); ?>" alt="">
|
||||
<div class="bottom_txt">
|
||||
<b>폴더 탐색시간을 줄여</b><br>
|
||||
효율적인 작업 가능
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="content2" class="find02">
|
||||
<span class="sub_tit">도면정보 열람</span>
|
||||
<div class="sub_text">
|
||||
공사명,도면명, 도면번호 등의 원하는 도면정보를 불러와 확인 할 수 있습니다.
|
||||
</div>
|
||||
<div class="sub_figs">
|
||||
<div class="imgs">
|
||||
<img src="<?php echo egbim_img_url('find_img_02_01.png'); ?>" alt="" class="apx">
|
||||
<img src="<?php echo egbim_img_url('find_img_02.png'); ?>" alt="">
|
||||
</div>
|
||||
<div class="text">
|
||||
<div class="top">
|
||||
<b>내가 원하는 도면정보 확인</b>
|
||||
</div>
|
||||
<div class="line">
|
||||
<img src="<?php echo egbim_img_url('ico_find_tri.svg'); ?>" alt="">
|
||||
</div>
|
||||
<div class="bottom">
|
||||
<img src="<?php echo egbim_img_url('ico_find_02.svg'); ?>" alt="">
|
||||
<div class="bottom_txt">
|
||||
<b>도면 정보를</b><br>
|
||||
<b>빠르게 확인하여</b><br><br class="brk">
|
||||
정확성과 효율성 향상
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="content3" class="find03">
|
||||
<span class="sub_tit">도면 미리보기</span>
|
||||
<div class="sub_text">
|
||||
듀얼 모드에서 도면 미리보기 창을 분리하여 사용할 수 있습니다. <br>
|
||||
미리보기 창을 각각 다른 모니터에 배치하여 도면을 직접 열지 않고도 미리보기를 통해 편리하게 확인할 수 있습니다.
|
||||
</div>
|
||||
<div class="sub_figs">
|
||||
<div class="imgs">
|
||||
<img src="<?php echo egbim_img_url('find_img_03_02.png'); ?>" alt="" class="apx">
|
||||
<div class="find_03_move">
|
||||
<img src="<?php echo egbim_img_url('find_img_03_03.png'); ?>" alt="">
|
||||
<img src="<?php echo egbim_img_url('find_img_03_01.png'); ?>" alt="" class="element">
|
||||
<img src="<?php echo egbim_img_url('find_img_03.png'); ?>" alt="">
|
||||
</div>
|
||||
</div>
|
||||
<div class="text">
|
||||
<div class="top">
|
||||
듀얼 모드로<br>
|
||||
<b>도면 미리보기 창을 분리</b>
|
||||
</div>
|
||||
<div class="line">
|
||||
<img src="<?php echo egbim_img_url('ico_find_tri.svg'); ?>" alt="">
|
||||
</div>
|
||||
<div class="bottom">
|
||||
<img src="<?php echo egbim_img_url('ico_find_03.svg'); ?>" alt="">
|
||||
<div class="bottom_txt">
|
||||
<b>도면을 열지 않고</b><br>
|
||||
편리한 도면 확인
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
<section class="key info layout_fix_left">
|
||||
<div class="left">
|
||||
<div class="mid_tit">
|
||||
<span data-aos="fade-right" data-aos-duration="600">도면정보 선택<br> <em>및 정보수정</em></span>
|
||||
</div>
|
||||
<ul data-aos="fade-right" data-aos-duration="1000" data-aos-delay="300" class="js__fixLeft_tit">
|
||||
<li class=" on"><span><em>01</em>도면정보 수정</span></li>
|
||||
<li><span><em>02</em>열람하고자 하는 도면정보 선택 </span></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="right js__fixLeft_secs">
|
||||
<div id="content4" class="info01">
|
||||
<span class="sub_tit">도면정보 수정</span>
|
||||
<div class="sub_text">
|
||||
원하는 도면정보를 선택하여 여러도면을 일괄적으로 수정 할 수있으며, <br>
|
||||
엑셀처럼 드래그방식으로 수정이 가능합니다.
|
||||
</div>
|
||||
<div class="sub_figs">
|
||||
<div class="imgs">
|
||||
<img src="<?php echo egbim_img_url('info_img_01_01.svg'); ?>" alt="" class="apx">
|
||||
<img src="<?php echo egbim_img_url('info_img_01.png'); ?>" alt="">
|
||||
</div>
|
||||
<div class="text">
|
||||
<div class="top">
|
||||
<b>엑셀 드래그 방식</b>으로<br>
|
||||
<b>일괄 수정 가능</b>
|
||||
</div>
|
||||
<div class="line">
|
||||
<img src="<?php echo egbim_img_url('ico_find_tri.svg'); ?>" alt="">
|
||||
</div>
|
||||
<div class="bottom">
|
||||
<img src="<?php echo egbim_img_url('ico_info_01.svg'); ?>" alt="">
|
||||
<div class="bottom_txt">
|
||||
<b>단순반복 작업을 줄여</b><br>
|
||||
정확하고 빠른 수정 가능
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="content5" class="info02">
|
||||
<span class="sub_tit">열람하고자 하는 도면정보 선택</span>
|
||||
<div class="sub_text">
|
||||
표시하고자 하는 도면정보를 선택하여 도면목록에 추가 및 삭제 할 수 있으며, <br>
|
||||
어떤 정보가 수정중인지 표시하여 알려줍니다.
|
||||
</div>
|
||||
<div class="sub_figs">
|
||||
<div class="imgs">
|
||||
<img src="<?php echo egbim_img_url('info_img_02_01.png'); ?>" alt="" class="apx">
|
||||
<img src="<?php echo egbim_img_url('info_img_02.png'); ?>" alt="">
|
||||
</div>
|
||||
<div class="text">
|
||||
<div class="top">
|
||||
도면정보를 선택하여<br>
|
||||
<b>도면목록 추가및 삭제</b>
|
||||
</div>
|
||||
<div class="line">
|
||||
<img src="<?php echo egbim_img_url('ico_find_tri.svg'); ?>" alt="">
|
||||
</div>
|
||||
<div class="bottom">
|
||||
<img src="<?php echo egbim_img_url('ico_info_02.svg'); ?>" alt="">
|
||||
<div class="bottom_txt">
|
||||
<b>유연한 도면관리로</b><br>
|
||||
효율적인 작업 가능
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
<section class="key print layout_fix_left">
|
||||
<div class="left">
|
||||
<div class="mid_tit">
|
||||
<span data-aos="fade-right" data-aos-duration="600">인쇄옵션 설정과<br> <em>일괄출력</em></span>
|
||||
</div>
|
||||
<ul data-aos="fade-right" data-aos-duration="1000" data-aos-delay="300" class="js__fixLeft_tit">
|
||||
<li class="on"><span><em>01</em>인쇄 파일 선택 및 인쇄설정값 표시</span></li>
|
||||
<li><span><em>02</em>출력옵션 설정 및 미리보기</span></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="right js__fixLeft_secs">
|
||||
<div id="content6" class="print01">
|
||||
<span class="sub_tit">인쇄 파일 선택 및 인쇄설정값 표시</span>
|
||||
<div class="sub_text">
|
||||
탐색창에서 선택한 폴더의 도면목록이 표시되며 출력도면을 선택 할 수 있습니다.
|
||||
</div>
|
||||
<div class="sub_figs">
|
||||
<div class="imgs">
|
||||
<img src="<?php echo egbim_img_url('print_img_01.png'); ?>" alt="">
|
||||
</div>
|
||||
<div class="text">
|
||||
<div class="top">
|
||||
도면목록이 표시되어<br>
|
||||
<b>다중선택및 인쇄설정값 확인</b>
|
||||
</div>
|
||||
<div class="line">
|
||||
<img src="<?php echo egbim_img_url('ico_find_tri.svg'); ?>" alt="">
|
||||
</div>
|
||||
<div class="bottom">
|
||||
<img src="<?php echo egbim_img_url('ico_print_01.svg'); ?>" alt="">
|
||||
<div class="bottom_txt">
|
||||
<b>도면을 한눈에 확인하고 </b><br><br class="brk">
|
||||
다중출력 작업을 <br>
|
||||
손쉽게 처리 가능
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="content7" class="print02">
|
||||
<span class="sub_tit">출력옵션 설정 및 미리보기</span>
|
||||
<div class="sub_text">
|
||||
인쇄옵션을 개별 또는 일괄로 변경 가능하며 출력전 미리보기가 가능합니다.
|
||||
</div>
|
||||
<div class="sub_figs">
|
||||
<div class="imgs">
|
||||
<img src="<?php echo egbim_img_url('print_img_02.png'); ?>" alt="">
|
||||
</div>
|
||||
<div class="text">
|
||||
<div class="top">
|
||||
인쇄옵션<br>
|
||||
<b>개별 또는 일괄 변경</b> 및<br>
|
||||
<b>출력 전 미리보기</b>
|
||||
</div>
|
||||
<div class="line">
|
||||
<img src="<?php echo egbim_img_url('ico_find_tri.svg'); ?>" alt="">
|
||||
</div>
|
||||
<div class="bottom">
|
||||
<img src="<?php echo egbim_img_url('ico_print_02.svg'); ?>" alt="">
|
||||
<div class="bottom_txt">
|
||||
<b>인쇄 옵션을 미리 확인하여</b><br><br class="brk">
|
||||
출력 오류를 줄이고<br>
|
||||
작업의 정확도 향상
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
</div>
|
||||
<!-- footer -->
|
||||
<?php include_once($member_skin_path.'/main_footer.skin.php'); ?>
|
||||
<!-- //footer -->
|
||||
</div>
|
||||
<script>
|
||||
AOS.init();
|
||||
|
||||
const lenis = new Lenis()
|
||||
lenis.on('scroll', (e) => {
|
||||
//console.log(e)
|
||||
})
|
||||
lenis.on('scroll', ScrollTrigger.update)
|
||||
gsap.ticker.add((time) => {
|
||||
lenis.raf(time * 1000)
|
||||
})
|
||||
gsap.ticker.lagSmoothing(0)
|
||||
</script>
|
||||
</body>
|
||||
|
||||
<script>
|
||||
$(function(){
|
||||
// footer family site toggle
|
||||
$('.family_btn').click(function(e){
|
||||
e.stopPropagation();
|
||||
$('.family_list, .family_btn').toggleClass('family_on');
|
||||
});
|
||||
$(document).click(function(e){
|
||||
if(!$(e.target).closest('.family_wrap').length){
|
||||
$('.family_list, .family_btn').removeClass('family_on');
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
// 회원 탈퇴
|
||||
function member_leave() {
|
||||
if (confirm("회원에서 탈퇴 하시겠습니까?"))
|
||||
location.href = '<?php echo G5_BBS_URL ?>/member_leave.php';
|
||||
}
|
||||
// 회원 탈퇴
|
||||
|
||||
|
||||
let x = document.cookie;
|
||||
if(x.includes("tmp_1=John")){
|
||||
deleteCookie("tmp_1");
|
||||
$('#pop_mypage02').show();
|
||||
}
|
||||
|
||||
function deleteCookie(name) {
|
||||
document.cookie = name + "=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/egbim;";
|
||||
document.cookie = name + "=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/egbim/bbs;";
|
||||
document.cookie = name + "=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/egbim/faq;";
|
||||
document.cookie = name + "=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/egbim/qa;";
|
||||
}
|
||||
function getCookie(cname) {
|
||||
let name = cname + "=";
|
||||
let decodedCookie = decodeURIComponent(document.cookie);
|
||||
let ca = decodedCookie.split(';');
|
||||
for(let i = 0; i <ca.length; i++) {
|
||||
let c = ca[i];
|
||||
while (c.charAt(0) == ' ') {
|
||||
c = c.substring(1);
|
||||
}
|
||||
if (c.indexOf(name) == 0) {
|
||||
return c.substring(name.length, c.length);
|
||||
}
|
||||
}
|
||||
return "";
|
||||
}
|
||||
|
||||
//descope 로그인, 로그아웃 js
|
||||
function updateHeaderMenu() {
|
||||
var isLoggedIn = !!sessionStorage.getItem("sessionJwt");
|
||||
// role 체크 예시 (로그인 시 저장해놓은 값)
|
||||
var isAdmin = sessionStorage.getItem('userRole') === 'super';
|
||||
|
||||
if (isLoggedIn) {
|
||||
$('.my_join2, .my_login2').show();
|
||||
$('.my_join, .my_login').hide();
|
||||
|
||||
// 마이페이지/관리자 메뉴 동적 출력
|
||||
if (isAdmin) {
|
||||
$('#my_join2').html("<a href='http://eg-bim.com/egbim/adm/index.php' target='_blank'>관리페이지</a>");
|
||||
} else {
|
||||
$('#my_join2').html("<a href='javascript:mypage03();'>마이페이지</a>");
|
||||
}
|
||||
} else {
|
||||
$('.my_join2, .my_login2').hide();
|
||||
$('.my_join, .my_login').show();
|
||||
$('#my_join2').html(""); // 혹시모를 내용 초기화
|
||||
}
|
||||
}
|
||||
|
||||
function descopeLogout() {
|
||||
fetch('/egbim/skin/member/basic/descope_logout.php', {
|
||||
method: 'POST',
|
||||
credentials: 'include' // PHPSESSID 쿠키 전송
|
||||
})
|
||||
.then(res => {
|
||||
if (!res.ok) throw new Error('서버 로그아웃 실패');
|
||||
// 1) 로컬 저장소 정리
|
||||
// sessionStorage.removeItem("refreshJwt");
|
||||
// sessionStorage.removeItem("sessionJwt");
|
||||
// sessionStorage.removeItem("userRole");
|
||||
// sessionStorage.removeItem("userName");
|
||||
// sessionStorage.removeItem("loginId");
|
||||
|
||||
sessionStorage.clear();
|
||||
localStorage.clear();
|
||||
// 2) UI 갱신
|
||||
updateHeaderMenu();
|
||||
// 3) 로그인 페이지로 이동
|
||||
window.location.href = '/egbim/index.php';
|
||||
})
|
||||
.catch(err => {
|
||||
console.error(err);
|
||||
alert('로그아웃 중 오류가 발생했습니다.');
|
||||
});
|
||||
}
|
||||
|
||||
$(document).ready(function() {
|
||||
// 기존에 있던 updateHeaderMenu() 호출 뒤에
|
||||
$('#my_login2 a').off('click').on('click', function(e){
|
||||
e.preventDefault();
|
||||
descopeLogout();
|
||||
});
|
||||
});
|
||||
|
||||
$(document).ready(function() {
|
||||
updateHeaderMenu();
|
||||
// (필요하다면, 로그인 성공 후에도 항상 updateHeaderMenu(); 호출)
|
||||
});
|
||||
|
||||
//descope login
|
||||
$('#flogin button[type=submit]').click(function(e){
|
||||
e.preventDefault();
|
||||
let mb_id = $('#login_id').val();
|
||||
let mb_password = $('#login_pw').val();
|
||||
|
||||
$.ajax({
|
||||
url : '/egbim/skin/member/basic/descope_login.php',
|
||||
data : {
|
||||
'mb_id' : mb_id,
|
||||
'mb_password' : mb_password
|
||||
},
|
||||
type : "POST",
|
||||
dataType : "json",
|
||||
success : function(res){
|
||||
if(res.status === "ok") {
|
||||
// 토큰 저장
|
||||
// sessionStorage.setItem("refreshJwt", res.refreshJwt);
|
||||
sessionStorage.setItem("sessionJwt", res.sessionJwt);
|
||||
|
||||
// ✅ 사용자 정보 저장
|
||||
if (res.user) {
|
||||
sessionStorage.setItem("loginId", res.user.loginIds?.[0] || '');
|
||||
sessionStorage.setItem("userName", res.user.name || '');
|
||||
sessionStorage.setItem("company", res.user.customAttributes?.company || '');
|
||||
sessionStorage.setItem("familyCompany", res.user.customAttributes?.familyCompany || '');
|
||||
sessionStorage.setItem("position", res.user.customAttributes?.position || '');
|
||||
sessionStorage.setItem("team", res.user.customAttributes?.team || '');
|
||||
sessionStorage.setItem("familyUniqueKey", res.user.customAttributes?.familyUniqueKey || '');
|
||||
sessionStorage.setItem("phone", res.user.phone || '');
|
||||
}
|
||||
|
||||
// ✅ 추가: 관리자 등 정보 저장
|
||||
if(res.user && res.user.roleNames && res.user.roleNames[0])
|
||||
sessionStorage.setItem("userRole", res.user.roleNames[0]);
|
||||
else
|
||||
sessionStorage.removeItem("userRole");
|
||||
|
||||
// ✅ 로그인 후 메뉴 갱신
|
||||
updateHeaderMenu();
|
||||
|
||||
// UI 처리
|
||||
$('.popup_wrap').hide();
|
||||
$('body').css('overflow', '');
|
||||
lenis.start();
|
||||
// alert('로그인 하셨습니다.');
|
||||
} else {
|
||||
alert(res.message || "로그인 실패");
|
||||
|
||||
// 🔴 실패 횟수에 따라 안내 배너 교체
|
||||
if (res.failCount && res.failCount >= 8) {
|
||||
updateLoginBanner("fail");
|
||||
}
|
||||
}
|
||||
},
|
||||
error : function(err){
|
||||
alert(err.statusText || "통신 오류");
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
// ✅ 배너 교체 함수
|
||||
function updateLoginBanner(type = "default") {
|
||||
const $banner = $('#login_notice_banner');
|
||||
if (!$banner.length) return;
|
||||
|
||||
if (type === "default") {
|
||||
$banner.css({ background: "#063e01ff", color: "#fff" });
|
||||
$banner.find("strong").text("[로그인 시스템 변경 안내]");
|
||||
$banner.find("p.left").html(`
|
||||
더 나은 보안을 위해 2025년 8월 8일부터 로그인 시스템이 변경되었습니다.<br>
|
||||
기존 회원 또한 신규 시스템에 맞춰 재가입을 진행해주시기 바랍니다.
|
||||
`);
|
||||
$banner.find("p:last").html(`※ 로그인 및 가입 관련 문의: <strong>010-8721-7453</strong>`);
|
||||
}
|
||||
|
||||
if (type === "fail") {
|
||||
$banner.css({ background: "#6a0202ff", color: "#faf6f6ff" });
|
||||
$banner.find("strong").text("[로그인 시도 제한 안내]");
|
||||
$banner.find("p.left").html(`
|
||||
비밀번호 입력을 <strong>7회 이상 연속 실패</strong>하셨습니다.<br>
|
||||
<strong>8번째 시도부터 3분 대기</strong>가 적용됩니다.<br>
|
||||
10회 이상 실패 시 계정이 잠금 처리됩니다.
|
||||
`);
|
||||
$banner.find("p:last").text("");
|
||||
}
|
||||
}
|
||||
|
||||
//회원가입 약관동의
|
||||
// $('#fregister button[type=submit]').click(function(e){
|
||||
// e.preventDefault();
|
||||
// let agree11 = $('#agree11').val();
|
||||
// let agree21 = $('#agree21').val();
|
||||
// $.ajax({
|
||||
// url : '<?php echo G5_URL ?>/bbs/register_form.php',
|
||||
// type : "POST",
|
||||
// datatype : "json",
|
||||
// contentType: 'application/json; charset=utf-8',
|
||||
// data : {
|
||||
// 'agree11' : agree11,
|
||||
// 'agree21' : agree21
|
||||
// },
|
||||
// success : function(data){
|
||||
// var ss='';
|
||||
// for(i=0; i<data.length; i++){
|
||||
// ss=ss + data[i];
|
||||
// }
|
||||
// },
|
||||
// error : function(err){
|
||||
// alert(err);
|
||||
// }
|
||||
// });
|
||||
// });
|
||||
|
||||
// 이지빔 프로그램 회원가입 url 쿼리스트링 파싱 함수
|
||||
function getQueryString(name) {
|
||||
const intro = document.querySelector('.intro_wrap');
|
||||
intro.style.display = "none";
|
||||
const mainMask = document.querySelector('.main_mask');
|
||||
mainMask.classList.add('skip');
|
||||
// mainMask.style.aimation = 'none';
|
||||
const urlParams = new URLSearchParams(window.location.search);
|
||||
return urlParams.get(name);
|
||||
}
|
||||
|
||||
$(document).ready(function() {
|
||||
const popupParam = getQueryString('popup');
|
||||
|
||||
if (popupParam === 'signup') {
|
||||
console.log('쿼리 감지: signup → 회원가입 팝업 자동 오픈 시도');
|
||||
$('#pop_agreement').show(); // 팝업 보여주기
|
||||
|
||||
// 스크롤 잠금 (사용 중이면)
|
||||
$('body').css('overflow', 'hidden');
|
||||
if (typeof lenis !== 'undefined') {
|
||||
lenis.stop();
|
||||
}
|
||||
}
|
||||
|
||||
// 팝업 닫기 버튼 이벤트 연결
|
||||
$('#pop_agreement .btn_close').on('click', function() {
|
||||
$('#pop_agreement').hide();
|
||||
$('body').css('overflow', '');
|
||||
if (typeof lenis !== 'undefined') {
|
||||
lenis.start();
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
//이지빔 프로그램 비밀번호 재설정 url 쿼리스트링 파싱 함수
|
||||
$(document).ready(function() {
|
||||
const urlParams = new URLSearchParams(window.location.search);
|
||||
const popup = urlParams.get('popup');
|
||||
const token = urlParams.get('t');
|
||||
|
||||
if (popup === 'pwreset') {
|
||||
// 팝업 전체 열기
|
||||
$('#pop_search').show();
|
||||
$('body').css('overflow', 'hidden');
|
||||
|
||||
// 내부 컨텐츠 모두 숨기기
|
||||
$('#pop_search .popup_contents_wrap').hide();
|
||||
|
||||
if (token) {
|
||||
// 토큰이 있으면 비밀번호 재설정 단계
|
||||
if (!sessionStorage.getItem('pwreset_shown')) {
|
||||
$('#password_reset').show();
|
||||
sessionStorage.setItem('pwreset_shown', '1');
|
||||
}
|
||||
} else {
|
||||
// 토큰이 없으면 아이디 입력 단계 (첫 번째 .popup_contents_wrap)
|
||||
$('#pop_search .popup_contents_wrap').first().show();
|
||||
}
|
||||
}
|
||||
|
||||
// 닫기 버튼
|
||||
$('#pop_search .btn_close').on('click', function() {
|
||||
$('#pop_search').hide();
|
||||
$('body').css('overflow', '');
|
||||
});
|
||||
});
|
||||
</script>
|
||||
@@ -0,0 +1,874 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<!-- Google tag (gtag.js) -->
|
||||
<script async src="https://www.googletagmanager.com/gtag/js?id=G-STZ2R5Q7HG"></script>
|
||||
<script>
|
||||
window.dataLayer = window.dataLayer || [];
|
||||
function gtag(){dataLayer.push(arguments);}
|
||||
gtag('js', new Date());
|
||||
|
||||
gtag('config', 'G-STZ2R5Q7HG');
|
||||
</script>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>도면관리</title>
|
||||
<link rel="stylesheet" href="../css/reset.css"/>
|
||||
<link rel="stylesheet" href="../css/font.css"/>
|
||||
<link rel="stylesheet" href="../css/style.css"/>
|
||||
<link rel="stylesheet" href="https://unpkg.com/aos@2.3.1/dist/aos.css" type="text/css"/>
|
||||
<script src="https://unpkg.com/aos@2.3.1/dist/aos.js"></script>
|
||||
<script src="https://unpkg.com/lenis@1.1.9/dist/lenis.min.js"></script>
|
||||
<link rel="stylesheet" href="https://unpkg.com/lenis@1.1.9/dist/lenis.css">
|
||||
<script type="text/javascript" src="../js/jquery-3.6.1.min.js"></script>
|
||||
<script type="text/javascript" src="../js/jquery.mousewheel.min.js"></script>
|
||||
<script src="https://cdn.jsdelivr.net/npm/gsap@3.12.5/dist/gsap.min.js"></script>
|
||||
<script src="https://cdn.jsdelivr.net/npm/gsap@3.12.5/dist/ScrollTrigger.min.js"></script>
|
||||
<script src="https://cdn.jsdelivr.net/npm/gsap@3.12.5/dist/ScrollToPlugin.min.js"></script>
|
||||
|
||||
<script type="text/javascript" src="../js/common.js"></script>
|
||||
<script type="text/javascript" src="../js/popup.js"></script>
|
||||
<script type="text/javascript" src="../js/floorplan.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
<!-- "js__"로 시작하는 클래스는 only 자바스크립트용입니다. -->
|
||||
<!-- XXXX js__넣어서 css 작성 금지 XXXX -->
|
||||
<div class="wrapper">
|
||||
<input id="hid_mb_id" type="hidden" value="<?echo $_SESSION['session_id'];?>"></input>
|
||||
<!-- HEADER -->
|
||||
<header class="js__header">
|
||||
<?php include_once($member_skin_path.'/main_header.skin.php'); ?>
|
||||
</header>
|
||||
<!-- //Header -->
|
||||
<!-- floating_menu -->
|
||||
<div class="floating_menu">
|
||||
<ul>
|
||||
<li class="floating_faq"><a href="<?php echo G5_BBS_URL ?>/faq.php">
|
||||
<i></i>
|
||||
<span>FAQ</span>
|
||||
</a></li>
|
||||
<li class="floating_buy"><a href="<?php echo G5_BBS_URL ?>/buy.php">
|
||||
<i></i>
|
||||
<span>구매하기</span>
|
||||
</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<!-- //floating_menu -->
|
||||
<!-- 모든 팝업페이지 경로 -->
|
||||
<?php
|
||||
include_once($member_skin_path.'/login.skin.php');
|
||||
include_once($member_skin_path.'/mypage01.skin.php');
|
||||
include_once($member_skin_path.'/register.skin.php');
|
||||
include_once($member_skin_path.'/register_form.skin.php');
|
||||
include_once($member_skin_path.'/mypage02.skin.php');
|
||||
include_once($member_skin_path.'/mypage03.skin.php');
|
||||
include_once($member_skin_path.'/sitemap.skin.php');
|
||||
include_once($member_skin_path.'/privacy.skin.php');
|
||||
include_once($member_skin_path.'/password_lost.skin.php');
|
||||
?>
|
||||
<!-- //모든 팝업페이지 경로 -->
|
||||
<div class="container floorplan">
|
||||
<section class="intro">
|
||||
<div class="top js__dark">
|
||||
<h2 data-aos="fade-down" data-aos-duration="1000">도면관리</h2>
|
||||
<span>대량의 설계도면의 효율적 관리</span>
|
||||
</div>
|
||||
<div class="keyword">
|
||||
<i class="egbim_obj k"></i>
|
||||
<span>도면을 열지 않고도 도면을 쉽게 찾고 확인하며,<br>
|
||||
쉽게 수정하고, 쉽게 출력하는 도면관리 기능 제공</span>
|
||||
<p>도면안에 기입되는 공사명, 도면명, 도면번호 등의 도면정보를 통하여<br>
|
||||
도면을 쉽게 찾고 쉽게 수정, 편리하게 인쇄하면서 대량의 설계도면을 효율적으로 관리하는 기능을 제공합니다.</p>
|
||||
</div>
|
||||
<div class="condition">
|
||||
<div class="diagram_wrap" data-aos="fade-up" data-aos-duration="1000">
|
||||
<div class="dia_element_top">
|
||||
<div class="dia_element dia_element01">
|
||||
<i></i>
|
||||
<span class="dia_tit">편리한<br><em>도면탐색 및 도면정보열람</em></span>
|
||||
<div class="line"></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="dia_circles_wrap">
|
||||
<div class="circle_dash"></div>
|
||||
<div class="circle_belt"></div>
|
||||
<div class="circle_core">
|
||||
<span>효율적인</span>
|
||||
<span>도면관리</span>
|
||||
</div>
|
||||
<div class="circle_dots move">
|
||||
<div class="dot"></div>
|
||||
<div class="dot"></div>
|
||||
<div class="dot"></div>
|
||||
</div>
|
||||
<div class="circle_dots">
|
||||
<div class="dot"></div>
|
||||
<div class="dot"></div>
|
||||
<div class="dot"></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="dia_element_bottom">
|
||||
<div class="dia_element dia_element02">
|
||||
<i></i>
|
||||
<span class="dia_tit">도면정보<br><em>일괄수정</em></span>
|
||||
<div class="line"></div>
|
||||
</div>
|
||||
<div class="dia_element dia_element03">
|
||||
<i></i>
|
||||
<span class="dia_tit">여러도면<br><em>일괄출력</em></span>
|
||||
<div class="line"></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section class="key find layout_fix_left">
|
||||
<div class="left">
|
||||
<div class="mid_tit">
|
||||
<span data-aos="fade-right" data-aos-duration="600">도면탐색 과<br><em>도면정보열람</em></span>
|
||||
</div>
|
||||
<ul data-aos="fade-right" data-aos-duration="1000" data-aos-delay="300" class="js__fixLeft_tit">
|
||||
<li class="on"><span><em>01</em>사용자 지정폴더</span></li>
|
||||
<li><span><em>02</em>도면정보 열람</span></li>
|
||||
<li><span><em>03</em>도면 미리보기</span></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="right js__fixLeft_secs">
|
||||
<div class="find01">
|
||||
<span class="sub_tit">사용자 지정폴더</span>
|
||||
<div class="sub_text">
|
||||
폴더 탐색에서 자주 사용하는 폴더를 드래그 앤 드랍하여 사용자 지정 폴더함에 추가하면,<br> 해당 폴더를 빠르게 찾아갈 수 있습니다.
|
||||
</div>
|
||||
<div class="sub_figs">
|
||||
<div class="imgs">
|
||||
<img src="../img/find_img_01_01.svg" alt="" class="apx">
|
||||
<img src="../img/find_img_01.png" alt="">
|
||||
</div>
|
||||
<div class="text">
|
||||
<div class="top">
|
||||
자주 사용하는 폴더를<br>
|
||||
<b>사용자 지정 폴더함에 추가</b>
|
||||
</div>
|
||||
<div class="line">
|
||||
<img src="../img/ico_find_tri.svg" alt="">
|
||||
</div>
|
||||
<div class="bottom">
|
||||
<img src="../img/ico_find_01.svg" alt="">
|
||||
<div class="bottom_txt">
|
||||
<b>폴더 탐색시간을 줄여</b><br>
|
||||
효율적인 작업 가능
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="find02">
|
||||
<span class="sub_tit">도면정보 열람</span>
|
||||
<div class="sub_text">
|
||||
공사명,도면명, 도면번호 등의 원하는 도면정보를 불러와 확인 할 수 있습니다.
|
||||
</div>
|
||||
<div class="sub_figs">
|
||||
<div class="imgs">
|
||||
<img src="../img/find_img_02_01.png" alt="" class="apx">
|
||||
<img src="../img/find_img_02.png" alt="">
|
||||
</div>
|
||||
<div class="text">
|
||||
<div class="top">
|
||||
<b>내가 원하는 도면정보 확인</b>
|
||||
</div>
|
||||
<div class="line">
|
||||
<img src="../img/ico_find_tri.svg" alt="">
|
||||
</div>
|
||||
<div class="bottom">
|
||||
<img src="../img/ico_find_02.svg" alt="">
|
||||
<div class="bottom_txt">
|
||||
<b>도면 정보</b><br>
|
||||
<b>빠르게 확인하여</b><br>
|
||||
정확성과 효율성 향상
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="find03">
|
||||
<span class="sub_tit">도면 미리보기</span>
|
||||
<div class="sub_text">
|
||||
듀얼 모드에서 도면 미리보기 창을 분리하여 사용할 수 있습니다. <br>
|
||||
미리보기 창을 각각 다른 모니터에 배치하여 도면을 직접 열지 않고도 미리보기를 통해 편리하게 확인할 수 있습니다.
|
||||
</div>
|
||||
<div class="sub_figs">
|
||||
<div class="imgs">
|
||||
<img src="../img/find_img_03_02.png" alt="" class="apx">
|
||||
<div class="find_03_move">
|
||||
<div><img src="../img/find_img_03.png" alt=""></div>
|
||||
<div><img src="../img/find_img_03_01.png" alt="" class="element"></div>
|
||||
<div><img src="../img/find_img_03_03.png" alt=""></div>
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
<div class="text">
|
||||
<div class="top">
|
||||
듀얼 모드로<br>
|
||||
<b>도면 미리보기 창을 분리</b>
|
||||
</div>
|
||||
<div class="line">
|
||||
<img src="../img/ico_find_tri.svg" alt="">
|
||||
</div>
|
||||
<div class="bottom">
|
||||
<img src="../img/ico_find_03.svg" alt="">
|
||||
<div class="bottom_txt">
|
||||
<b>도면을 열지 않고</b><br>
|
||||
편리한 도면 확인
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
<section class="key info layout_fix_left">
|
||||
<div class="left">
|
||||
<div class="mid_tit">
|
||||
<span data-aos="fade-right" data-aos-duration="600">도면정보 선택<br><em>및 정보수정</em></span>
|
||||
</div>
|
||||
<ul data-aos="fade-right" data-aos-duration="1000" data-aos-delay="300" class="js__fixLeft_tit">
|
||||
<li class=" on"><span><em>01</em>도면정보 수정</span></li>
|
||||
<li><span><em>02</em>열람하고자 하는 도면정보 선택 </span></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="right js__fixLeft_secs">
|
||||
<div class="info01">
|
||||
<span class="sub_tit">도면정보 수정</span>
|
||||
<div class="sub_text">
|
||||
원하는 도면정보를 선택하여 여러도면을 일괄적으로 수정 할 수있으며, <br>
|
||||
엑셀처럼 드래그방식으로 수정이 가능합니다.
|
||||
</div>
|
||||
<div class="sub_figs">
|
||||
<div class="imgs">
|
||||
<img src="../img/info_img_01_01.svg" alt="" class="apx">
|
||||
<img src="../img/info_img_01.png" alt="">
|
||||
</div>
|
||||
<div class="text">
|
||||
<div class="top">
|
||||
<b>엑셀 드래그 방식</b>으로<br>
|
||||
<b>일괄 수정 가능</b>
|
||||
</div>
|
||||
<div class="line">
|
||||
<img src="../img/ico_find_tri.svg" alt="">
|
||||
</div>
|
||||
<div class="bottom">
|
||||
<img src="../img/ico_info_01.svg" alt="">
|
||||
<div class="bottom_txt">
|
||||
<b>단순반복 작업을 줄여</b><br>
|
||||
정확하고 빠른 수정 가능
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="info02">
|
||||
<span class="sub_tit">열람하고자 하는 도면정보 선택</span>
|
||||
<div class="sub_text">
|
||||
표시하고자 하는 도면정보를 선택하여 도면목록에 추가 및 삭제 할 수 있으며, <br>
|
||||
어떤 정보가 수정중인지 표시하여 알려줍니다.
|
||||
</div>
|
||||
<div class="sub_figs">
|
||||
<div class="imgs">
|
||||
<img src="../img/info_img_02_01.png" alt="" class="apx">
|
||||
<img src="../img/info_img_02.png" alt="">
|
||||
</div>
|
||||
<div class="text">
|
||||
<div class="top">
|
||||
도면정보를 선택하여<br>
|
||||
<b>도면목록 추가및 삭제</b>
|
||||
</div>
|
||||
<div class="line">
|
||||
<img src="../img/ico_find_tri.svg" alt="">
|
||||
</div>
|
||||
<div class="bottom">
|
||||
<img src="../img/ico_info_02.svg" alt="">
|
||||
<div class="bottom_txt">
|
||||
<b>유연한 도면관리로</b><br>
|
||||
효율적인 작업 가능
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
<section class="key print layout_fix_left">
|
||||
<div class="left">
|
||||
<div class="mid_tit">
|
||||
<span data-aos="fade-right" data-aos-duration="600">인쇄옵션 설정과<br><em>일괄출력</em></span>
|
||||
</div>
|
||||
<ul data-aos="fade-right" data-aos-duration="1000" data-aos-delay="300" class="js__fixLeft_tit">
|
||||
<li class="on"><span><em>01</em>인쇄 파일 선택 및 인쇄설정값 표시</span></li>
|
||||
<li><span><em>02</em>출력옵션 설정 및 미리보기</span></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="right js__fixLeft_secs">
|
||||
<div class="print01">
|
||||
<span class="sub_tit">인쇄 파일 선택 및 인쇄설정값 표시</span>
|
||||
<div class="sub_text">
|
||||
탐색창에서 선택한 폴더의 도면목록이 표시되며 출력도면을 선택 할 수 있습니다.
|
||||
</div>
|
||||
<div class="sub_figs">
|
||||
<div class="imgs">
|
||||
<img src="../img/print_img_01.png" alt="">
|
||||
</div>
|
||||
<div class="text">
|
||||
<div class="top">
|
||||
도면목록이 표시되어<br>
|
||||
<b>다중선택및 인쇄설정값 확인</b>
|
||||
</div>
|
||||
<div class="line">
|
||||
<img src="../img/ico_find_tri.svg" alt="">
|
||||
</div>
|
||||
<div class="bottom">
|
||||
<img src="../img/ico_print_01.svg" alt="">
|
||||
<div class="bottom_txt">
|
||||
<b>도면을 한눈에 확인하고 </b><br>
|
||||
다중출력 작업을 <br>
|
||||
손쉽게 처리가능
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="print02">
|
||||
<span class="sub_tit">출력옵션 설정 및 미리보기</span>
|
||||
<div class="sub_text">
|
||||
인쇄옵션을 개별 또는 일괄로 변경 가능 하며 출력전 미리보기가 가능합니다.
|
||||
</div>
|
||||
<div class="sub_figs">
|
||||
<div class="imgs">
|
||||
<img src="../img/print_img_02.png" alt="">
|
||||
</div>
|
||||
<div class="text">
|
||||
<div class="top">
|
||||
인쇄옵션<br>
|
||||
<b>개별 또는 일괄 변경</b> 및<br>
|
||||
<b>출력 전 미리보기</b>
|
||||
</div>
|
||||
<div class="line">
|
||||
<img src="../img/ico_find_tri.svg" alt="">
|
||||
</div>
|
||||
<div class="bottom">
|
||||
<img src="../img/ico_print_02.svg" alt="">
|
||||
<div class="bottom_txt">
|
||||
<b>인쇄 옵션을 미리 확인하여</b><br>
|
||||
출력 오류를 줄이고<br>
|
||||
작업의 정확도 향상
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
</div>
|
||||
<!-- footer -->
|
||||
<button class="btn_top js__top" onclick="window.scrollTo(0,0);"><div class="arrow"></div></button>
|
||||
<footer class="footer_off">
|
||||
<?php include_once($member_skin_path.'/main_footer.skin.php'); ?>
|
||||
</footer>
|
||||
<!-- //footer -->
|
||||
</div>
|
||||
<script>
|
||||
AOS.init();
|
||||
|
||||
const lenis = new Lenis()
|
||||
lenis.on('scroll', (e) => {
|
||||
//console.log(e)
|
||||
})
|
||||
lenis.on('scroll', ScrollTrigger.update)
|
||||
gsap.ticker.add((time)=>{
|
||||
lenis.raf(time * 1000)
|
||||
})
|
||||
gsap.ticker.lagSmoothing(0)
|
||||
</script>
|
||||
</body>
|
||||
|
||||
<script>
|
||||
// 회원 탈퇴
|
||||
function member_leave() {
|
||||
if (confirm("회원에서 탈퇴 하시겠습니까?"))
|
||||
location.href = '<?php echo G5_BBS_URL ?>/member_leave.php';
|
||||
}
|
||||
// 회원 탈퇴
|
||||
|
||||
if($('#hid_mb_id').val()==''){
|
||||
document.getElementById('my_join2').style.display = 'none';
|
||||
document.getElementById('my_login2').style.display = 'none';
|
||||
document.getElementById('my_join').style.display = '';
|
||||
document.getElementById('my_login').style.display = '';
|
||||
}else{
|
||||
document.getElementById('my_join2').style.display = '';
|
||||
document.getElementById('my_login2').style.display = '';
|
||||
document.getElementById('my_join').style.display = 'none';
|
||||
document.getElementById('my_login').style.display = 'none';
|
||||
}
|
||||
let x = document.cookie;
|
||||
if(x == "tmp_1=John"){
|
||||
deleteCookie("tmp_1");
|
||||
$('#pop_mypage02').show();
|
||||
}
|
||||
function deleteCookie(name) {
|
||||
document.cookie = name + "=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/egbim;";
|
||||
document.cookie = name + "=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/egbim/bbs;";
|
||||
document.cookie = name + "=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/egbim/faq;";
|
||||
document.cookie = name + "=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/egbim/qa;";
|
||||
}
|
||||
function getCookie(cname) {
|
||||
let name = cname + "=";
|
||||
let decodedCookie = decodeURIComponent(document.cookie);
|
||||
let ca = decodedCookie.split(';');
|
||||
for(let i = 0; i <ca.length; i++) {
|
||||
let c = ca[i];
|
||||
while (c.charAt(0) == ' ') {
|
||||
c = c.substring(1);
|
||||
}
|
||||
if (c.indexOf(name) == 0) {
|
||||
return c.substring(name.length, c.length);
|
||||
}
|
||||
}
|
||||
return "";
|
||||
}
|
||||
//alert(getCookie("tmp_1"));
|
||||
//로그인
|
||||
$('#flogin button[type=submit]').click(function(e){
|
||||
e.preventDefault();
|
||||
let mb_id = $('#login_id').val();
|
||||
let mb_password = $('#login_pw').val();
|
||||
//alert('<?php echo G5_URL ?>/bbs/login.php');
|
||||
$.ajax({
|
||||
url : '<?php echo G5_URL ?>/bbs/login_check_tova.php',
|
||||
data : {
|
||||
'mb_id' : mb_id,
|
||||
'mb_password' : mb_password
|
||||
},
|
||||
type : "POST",
|
||||
datatype : "json",
|
||||
success : function(data){
|
||||
var ss='';
|
||||
for(i=0; i<data.length; i++){
|
||||
ss=ss + data[i];
|
||||
}
|
||||
//alert(ss.replace('"','').replace('"',''));
|
||||
if(ss.replace('"','').replace('"','') == "success" || ss.replace('"','').replace('"','') == "super"){
|
||||
//$(".popup_wrap").show();
|
||||
$('.btn_close').hide();
|
||||
$('#pop_login').hide();
|
||||
$('#hid_mb_id').val(mb_id);
|
||||
document.getElementById('my_join2').style.display = '';
|
||||
document.getElementById('my_login2').style.display = '';
|
||||
document.getElementById('my_join').style.display = 'none';
|
||||
document.getElementById('my_login').style.display = 'none';
|
||||
//location.href="<?php echo G5_URL ?>/bbs/session.php?id="+mb_id;
|
||||
if(ss.replace('"','').replace('"','') == "super"){
|
||||
$('#my_join2').html("<a href='http://eg-bim.com/egbim/adm/index.php' target='_blank'>관리페이지</a>");
|
||||
}else{
|
||||
$('#my_join2').html("<a href='javascript:mypage01();'>마이페이지</a>");
|
||||
$('.btn_close').show();
|
||||
}
|
||||
}else
|
||||
{
|
||||
alert(trim(ss));
|
||||
}
|
||||
},
|
||||
error : function(err){
|
||||
//alert(err);
|
||||
alert(err.status);
|
||||
alert(err.statusText);
|
||||
}
|
||||
});
|
||||
});
|
||||
//회원가입 약관동의
|
||||
$('#fregister button[type=submit]').click(function(e){
|
||||
e.preventDefault();
|
||||
let agree11 = $('#agree11').val();
|
||||
let agree21 = $('#agree21').val();
|
||||
$.ajax({
|
||||
url : '<?php echo G5_URL ?>/bbs/register_form.php',
|
||||
type : "POST",
|
||||
datatype : "json",
|
||||
contentType: 'application/json; charset=utf-8',
|
||||
data : {
|
||||
'agree11' : agree11,
|
||||
'agree21' : agree21
|
||||
},
|
||||
success : function(data){
|
||||
var ss='';
|
||||
for(i=0; i<data.length; i++){
|
||||
ss=ss + data[i];
|
||||
}
|
||||
},
|
||||
error : function(err){
|
||||
alert(err);
|
||||
}
|
||||
});
|
||||
});
|
||||
//회원가입 정보입력
|
||||
$('#fregisterform button[type=submit]').click(function(e){
|
||||
e.preventDefault();
|
||||
|
||||
let mb_id = $('#reg_mb_id').val();
|
||||
let mb_password = $('#reg_mb_password').val();
|
||||
let mb_password_re = $('#reg_mb_password_re').val();
|
||||
let mb_name = $('#reg_mb_name').val();
|
||||
let mb_email1 = $('#reg_mb_email1').val();
|
||||
let mb_email2 = $('#mb_email2').val();
|
||||
let reg_domain2 = $('#register_domain2').val();
|
||||
let mb_hp = $('#reg_mb_hp').val();
|
||||
let mb_comp = $('#reg_mb_comp').val();
|
||||
let mb_comp_team = $('#reg_mb_comp_team').val();
|
||||
//alert(mb_password+' '+mb_password_re+' '+mb_name+' '+mb_email1+' '+mb_email2+' '+mb_hp+' '+mb_comp+' '+mb_comp_team);
|
||||
if (mb_id.length < 4) {
|
||||
alert("아이디를 4글자 이상 입력하십시오.");
|
||||
mb_id.focus();
|
||||
return false;
|
||||
}
|
||||
var special_pattern = /[`~!@#$%^&*|\\\'\";:\/?]/gi
|
||||
if (special_pattern.test(mb_id) == true) {
|
||||
alert("아이디는 특수문자를 사용할수 없습니다.");
|
||||
mb_id.focus();
|
||||
return false;
|
||||
}
|
||||
|
||||
// 비밀번호 검사
|
||||
if(!/^(?=.*[a-zA-Z])(?=.*[!@#$%^*+=-])(?=.*[0-9]).{8,25}$/.test(mb_password)){
|
||||
alert('비밀번호는 숫자+영문자+특수문자 조합으로 8자리 이상 사용해야 합니다.');
|
||||
mb_password.focus();
|
||||
return false;
|
||||
}
|
||||
// if (mb_password_re.length < 8 || mb_password.length < 8) {
|
||||
// alert("비밀번호를 8글자 이상 입력하십시오.");
|
||||
// mb_password.focus();
|
||||
// return false;
|
||||
// }
|
||||
|
||||
// 비밀번호 & 2차비밀번호 검사
|
||||
if (mb_password != mb_password_re) {
|
||||
alert("비밀번호가 같지 않습니다.");
|
||||
mb_password_re.focus();
|
||||
return false;
|
||||
}
|
||||
|
||||
// 이름 검사
|
||||
if (mb_name == "") {
|
||||
if (mb_name.length < 1) {
|
||||
alert("이름을 입력하십시오.");
|
||||
mb_name.focus();
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
// 메일 검사
|
||||
if (mb_email1 == "") {
|
||||
if (mb_email1.length < 1) {
|
||||
alert("메일 주소를 입력하십시오.");
|
||||
mb_email1.focus();
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
if (mb_email2 == "type"){
|
||||
mb_email2 = '@' + reg_domain2;
|
||||
}
|
||||
|
||||
// 핸드폰 번호 검사
|
||||
if (mb_hp.length < 11) {
|
||||
alert("휴대전화번호 11자리를 입력하십시오.");
|
||||
mb_hp.focus();
|
||||
return false;
|
||||
}
|
||||
if(isNaN(mb_hp)){
|
||||
alert("휴대전화번호는 숫자만 입력가능합니다.");
|
||||
mb_hp.focus();
|
||||
return false;
|
||||
}
|
||||
// 회사명 검사
|
||||
if (mb_comp == "") {
|
||||
if (mb_comp.length < 1) {
|
||||
alert("회사명을 입력하십시오");
|
||||
mb_comp.focus();
|
||||
return false;
|
||||
}
|
||||
}
|
||||
// 팀명 검사
|
||||
if (mb_comp_team == "") {
|
||||
if (mb_comp_team.length < 1) {
|
||||
alert("팀명을 입력하십시오");
|
||||
mb_comp_team.focus();
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
$.ajax({
|
||||
url : '<?php echo G5_URL ?>/bbs/register_form_update.php',
|
||||
data : {
|
||||
'mb_id' : mb_id,
|
||||
'mb_password' : mb_password,
|
||||
'mb_password_re' : mb_password_re,
|
||||
'mb_name' : mb_name,
|
||||
'mb_email1' : mb_email1,
|
||||
'mb_email2' : mb_email2,
|
||||
'mb_hp' : mb_hp,
|
||||
'mb_comp' : mb_comp,
|
||||
'mb_comp_team' : mb_comp_team,
|
||||
},
|
||||
type : "POST",
|
||||
datatype : "json",
|
||||
success : function(data){
|
||||
var ss='';
|
||||
for(i=0; i<data.length; i++){
|
||||
ss=ss + data[i];
|
||||
}
|
||||
if(ss){
|
||||
// $(".popup_wrap").show();
|
||||
$('.btn_close').hide();
|
||||
$('#pop_login').hide();
|
||||
$('#pop_agreement').hide();
|
||||
$('#pop_join').hide();
|
||||
$('#pop_mypage01').hide();
|
||||
$('#pop_search').hide();
|
||||
$('#pop_mypage02').hide();
|
||||
$('#pop_mypage03').hide();
|
||||
$('#pop_privacy').hide();
|
||||
// $('.register_fs').hide();
|
||||
// $('.join_progress .join_step').removeClass('on');
|
||||
// $('.join_progress .join_step').eq(2).addClass('on');
|
||||
// $('.messages').show();
|
||||
alert('회원가입이 완료됐습니다.\n다시 로그인 해주세요');
|
||||
$('#reg_mb_id').val('');
|
||||
$('#reg_mb_password').val('');
|
||||
$('#reg_mb_password_re').val('');
|
||||
$('#reg_mb_name').val('');
|
||||
$('#reg_mb_email1').val('');
|
||||
$('#reg_mb_hp').val('');
|
||||
$('#reg_mb_comp').val('');
|
||||
$('#reg_mb_comp_team').val('');
|
||||
$('#dupl_check_yn').val('N');
|
||||
|
||||
}else{
|
||||
alert('실패했습니다.');
|
||||
}
|
||||
},
|
||||
error : function(err){
|
||||
alert('에러');
|
||||
alert(err);
|
||||
alert(err.status);
|
||||
alert(err.statusText);
|
||||
}
|
||||
});
|
||||
// $.removeCookie(mb_id,{path:'<?php //echo G5_URL ?>/bbs/register_form_update.php'});
|
||||
});
|
||||
|
||||
//회원정보 수정
|
||||
$('#fregisterform_up button[type=submit]').click(function(e){
|
||||
e.preventDefault();
|
||||
let mb_id = $('#update_mb_id').val();
|
||||
let mb_password = $('#update_mb_password').val();
|
||||
let mb_password_re = $('#update_mb_password_re').val();
|
||||
let mb_name = $('#update_mb_name').val();
|
||||
let mb_email1 = $('#update_mb_email1').val();
|
||||
let mb_email2 = $('#update_mb_email2').val();
|
||||
let update_domain2 = $('#update_domain2').val();
|
||||
if (mb_email2 == "type"){
|
||||
mb_email2 = '@' + update_domain2;
|
||||
}
|
||||
let mb_hp = $('#update_mb_hp').val();
|
||||
let mb_comp = $('#update_mb_comp').val();
|
||||
let mb_comp_team = $('#update_mb_comp_team').val();
|
||||
alert($('#update_mb_password_re').val());
|
||||
//alert(mb_password+' '+mb_password_re+' '+mb_name+' '+mb_email1+' '+mb_email2+' '+mb_hp+' '+mb_comp+' '+mb_comp_team);
|
||||
if (mb_id.length < 4) {
|
||||
alert('1');
|
||||
alert("아이디를 4글자 이상 입력하십시오.");
|
||||
mb_id.focus();
|
||||
return false;
|
||||
}
|
||||
var special_pattern = /[`~!@#$%^&*|\\\'\";:\/?]/gi
|
||||
if (special_pattern.test(mb_id) == true) {
|
||||
alert("아이디는 특수문자를 사용할수 없습니다.");
|
||||
mb_id.focus();
|
||||
return false;
|
||||
}
|
||||
|
||||
// 비밀번호 검사
|
||||
if(!/^(?=.*[a-zA-Z])(?=.*[!@#$%^*+=-])(?=.*[0-9]).{8,25}$/.test(mb_password)){
|
||||
alert('비밀번호는 숫자+영문자+특수문자 조합으로 8자리 이상 사용해야 합니다.');
|
||||
mb_password.focus();
|
||||
return false;
|
||||
}
|
||||
// if (mb_password_re.length < 8 || mb_password.length < 8) {
|
||||
// alert("비밀번호를 8글자 이상 입력하십시오.");
|
||||
// mb_password.focus();
|
||||
// return false;
|
||||
// }
|
||||
|
||||
// 비밀번호 & 2차비밀번호 검사
|
||||
if (mb_password != mb_password_re) {
|
||||
alert(mb_password_re);
|
||||
alert("비밀번호가 같지 않습니다.");
|
||||
mb_password_re.focus();
|
||||
return false;
|
||||
}
|
||||
|
||||
// 이름 검사
|
||||
if (mb_name == "") {
|
||||
if (mb_name.length < 1) {
|
||||
alert("이름을 입력하십시오.");
|
||||
mb_name.focus();
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
// 메일 검사
|
||||
if (mb_email1 == "") {
|
||||
if (mb_email1.length < 1) {
|
||||
alert("메일 주소를 입력하십시오.");
|
||||
mb_email1.focus();
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
// 핸드폰 번호 검사
|
||||
if (mb_hp.length < 11) {
|
||||
alert("휴대전화번호 11자리를 입력하십시오.");
|
||||
mb_hp.focus();
|
||||
return false;
|
||||
}
|
||||
if(isNaN(mb_hp)){
|
||||
alert("휴대전화번호는 숫자만 입력가능합니다.");
|
||||
mb_hp.focus();
|
||||
return false;
|
||||
}
|
||||
// 회사명 검사
|
||||
if (mb_comp == "") {
|
||||
if (mb_comp.length < 1) {
|
||||
alert("회사명을 입력하십시오");
|
||||
mb_comp.focus();
|
||||
return false;
|
||||
}
|
||||
}
|
||||
// 팀명 검사
|
||||
if (mb_comp_team == "") {
|
||||
if (mb_comp_team.length < 1) {
|
||||
alert("팀명을 입력하십시오");
|
||||
mb_comp_team.focus();
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
$.ajax({
|
||||
url : '<?php echo G5_URL ?>/bbs/mypage03.php',
|
||||
data : {
|
||||
'mb_id' : mb_id,
|
||||
'mb_password' : mb_password,
|
||||
'mb_password_re' : mb_password_re,
|
||||
'mb_name' : mb_name,
|
||||
'mb_email1' : mb_email1,
|
||||
'mb_email2' : mb_email2,
|
||||
'mb_hp' : mb_hp,
|
||||
'mb_comp' : mb_comp,
|
||||
'mb_comp_team' : mb_comp_team,
|
||||
},
|
||||
type : "POST",
|
||||
datatype : "json",
|
||||
success : function(data){
|
||||
var ss='';
|
||||
for(i=0; i<data.length; i++){
|
||||
ss=ss + data[i];
|
||||
}
|
||||
|
||||
if(ss.replace('"','').replace('"','') == "success"){
|
||||
alert('1');
|
||||
// $(".popup_wrap").show();
|
||||
$('.btn_close').show();
|
||||
$('#pop_login').hide();
|
||||
$('#pop_agreement').hide();
|
||||
$('#pop_join').hide();
|
||||
$('#pop_mypage01').hide();
|
||||
$('#pop_search').hide();
|
||||
$('#pop_mypage02').show();
|
||||
$('#pop_mypage03').hide();
|
||||
$('#pop_privacy').hide();
|
||||
// $('.register_fs').hide();
|
||||
// $('.join_progress .join_step').removeClass('on');
|
||||
// $('.join_progress .join_step').eq(2).addClass('on');
|
||||
// $('.messages').show();
|
||||
alert('회원정보 수정이 완료됐습니다.');
|
||||
document.getElementById("span_email").innerText=mb_email1+mb_email2;
|
||||
document.getElementById("span_hp").innerText=mb_hp;
|
||||
document.getElementById("span_comp").innerText=mb_comp;
|
||||
document.getElementById("span_comp_team").innerText=mb_comp_team;
|
||||
// $('#update_mb_id').val('');
|
||||
// $('#update_mb_password').val('');
|
||||
// $('#update_mb_password_re').val('');
|
||||
// $('#update_mb_name').val('');
|
||||
// $('#update_mb_email1').val('');
|
||||
// $('#update_mb_hp').val('');
|
||||
// $('#update_mb_comp').val('');
|
||||
// $('#update_mb_comp_team').val('');
|
||||
// $('#dupl_check_yn').val('N');
|
||||
|
||||
}else{
|
||||
alert('실패했습니다.');
|
||||
}
|
||||
},
|
||||
error : function(err){
|
||||
alert('에러');
|
||||
alert(err);
|
||||
alert(err.status);
|
||||
alert(err.statusText);
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
$('#fmyconfirmpw button[type=submit]').click(function(e){
|
||||
e.preventDefault();
|
||||
|
||||
let l_mb_password = $('#password_mypage').val();
|
||||
let l_mb_id = $('#hid_mb_id').val();
|
||||
|
||||
$.ajax({
|
||||
url : '<?php echo G5_URL ?>/bbs/mypage02.php',
|
||||
data : {
|
||||
'mb_id' : l_mb_id,
|
||||
'mb_password' : l_mb_password,
|
||||
},
|
||||
type : "POST",
|
||||
datatype : "json",
|
||||
success : function(data){
|
||||
var ss='';
|
||||
for(i=0; i<data.length; i++){
|
||||
ss=ss + data[i];
|
||||
}
|
||||
//alert(ss.replace('"','').replace('"',''));
|
||||
if(ss.replace('"','').replace('"','') == "success"){
|
||||
$('#password_mypage').val('');
|
||||
//mypage02();
|
||||
document.cookie = "tmp_1=John";
|
||||
location.href="<?php echo G5_URL ?>/bbs/floorplan.php";
|
||||
}else
|
||||
{
|
||||
alert(trim(ss));
|
||||
$('#password_mypage').select();
|
||||
}
|
||||
},
|
||||
error : function(err){
|
||||
alert(err);
|
||||
alert(err.status);
|
||||
alert(err.statusText);
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
</script>
|
||||
@@ -0,0 +1,875 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<!-- Google tag (gtag.js) -->
|
||||
<script async src="https://www.googletagmanager.com/gtag/js?id=G-STZ2R5Q7HG"></script>
|
||||
<script>
|
||||
window.dataLayer = window.dataLayer || [];
|
||||
function gtag(){dataLayer.push(arguments);}
|
||||
gtag('js', new Date());
|
||||
|
||||
gtag('config', 'G-STZ2R5Q7HG');
|
||||
</script>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>도면관리</title>
|
||||
<link rel="stylesheet" href="../css/reset.css"/>
|
||||
<link rel="stylesheet" href="../css/font.css"/>
|
||||
<link rel="stylesheet" href="../css/style.css"/>
|
||||
<link rel="stylesheet" href="https://unpkg.com/aos@2.3.1/dist/aos.css" type="text/css"/>
|
||||
<script src="https://unpkg.com/aos@2.3.1/dist/aos.js"></script>
|
||||
<script src="https://unpkg.com/lenis@1.1.9/dist/lenis.min.js"></script>
|
||||
<link rel="stylesheet" href="https://unpkg.com/lenis@1.1.9/dist/lenis.css">
|
||||
<script type="text/javascript" src="../js/jquery-3.6.1.min.js"></script>
|
||||
<script type="text/javascript" src="../js/jquery.mousewheel.min.js"></script>
|
||||
<script src="https://cdn.jsdelivr.net/npm/gsap@3.12.5/dist/gsap.min.js"></script>
|
||||
<script src="https://cdn.jsdelivr.net/npm/gsap@3.12.5/dist/ScrollTrigger.min.js"></script>
|
||||
<script src="https://cdn.jsdelivr.net/npm/gsap@3.12.5/dist/ScrollToPlugin.min.js"></script>
|
||||
|
||||
<script type="text/javascript" src="../js/common.js"></script>
|
||||
<script type="text/javascript" src="../js/popup.js"></script>
|
||||
<script type="text/javascript" src="../js/floorplan.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
<!-- "js__"로 시작하는 클래스는 only 자바스크립트용입니다. -->
|
||||
<!-- XXXX js__넣어서 css 작성 금지 XXXX -->
|
||||
<div class="wrapper">
|
||||
<input id="hid_mb_id" type="hidden" value="<?echo $_SESSION['session_id'];?>"></input>
|
||||
<!-- HEADER -->
|
||||
<header class="js__header">
|
||||
<?php include_once($member_skin_path.'/main_header.skin.php'); ?>
|
||||
</header>
|
||||
<!-- //Header -->
|
||||
<!-- floating_menu -->
|
||||
<div class="floating_menu">
|
||||
<ul>
|
||||
<li class="floating_faq"><a href="<?php echo G5_BBS_URL ?>/faq.php">
|
||||
<i></i>
|
||||
<span>FAQ</span>
|
||||
</a></li>
|
||||
<li class="floating_buy"><a href="<?php echo G5_BBS_URL ?>/buy.php">
|
||||
<i></i>
|
||||
<span>구매하기</span>
|
||||
</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<!-- //floating_menu -->
|
||||
<!-- 모든 팝업페이지 경로 -->
|
||||
<?php
|
||||
include_once($member_skin_path.'/login.skin.php');
|
||||
include_once($member_skin_path.'/mypage01.skin.php');
|
||||
include_once($member_skin_path.'/register.skin.php');
|
||||
include_once($member_skin_path.'/register_form.skin.php');
|
||||
include_once($member_skin_path.'/mypage02.skin.php');
|
||||
include_once($member_skin_path.'/mypage03.skin.php');
|
||||
include_once($member_skin_path.'/sitemap.skin.php');
|
||||
include_once($member_skin_path.'/privacy.skin.php');
|
||||
include_once($member_skin_path.'/password_lost.skin.php');
|
||||
?>
|
||||
<!-- //모든 팝업페이지 경로 -->
|
||||
<div class="container floorplan">
|
||||
<section class="intro">
|
||||
<div class="top js__dark">
|
||||
<h2 data-aos="fade-down" data-aos-duration="1000">도면관리</h2>
|
||||
<span>대량의 설계도면의 효율적 관리</span>
|
||||
</div>
|
||||
<div class="keyword">
|
||||
<i class="egbim_obj k"></i>
|
||||
<span>도면을 열지 않고도 도면을 쉽게 찾고 확인하며,<br> 쉽게 수정하고, 쉽게 출력하는 도면관리 기능 제공</span>
|
||||
<p>도면안에 기입되는 공사명, 도면명, 도면번호 등의 도면정보를 통하여<br>
|
||||
도면을 쉽게 찾고 쉽게 수정, 편리하게 인쇄하면서 <br class="brk">대량의 설계도면을 효율적으로 관리하는 기능을 제공합니다.</p>
|
||||
</div>
|
||||
<div class="diagram_wrap" data-aos="fade-up" data-aos-duration="1000">
|
||||
<div class="dia_elements_wrap">
|
||||
<div class="dia_element dia_element01">
|
||||
<i></i>
|
||||
<span class="dia_tit">편리한<br><em>도면탐색 및 도면정보열람</em></span>
|
||||
<div class="line"></div>
|
||||
</div>
|
||||
<div class="dia_element dia_element02">
|
||||
<i></i>
|
||||
<span class="dia_tit">도면정보<br><em>일괄수정</em></span>
|
||||
<div class="line"></div>
|
||||
</div>
|
||||
<div class="dia_element dia_element03">
|
||||
<i></i>
|
||||
<span class="dia_tit">여러도면<br><em>일괄출력</em></span>
|
||||
<div class="line"></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="dia_circles_wrap">
|
||||
<div class="circle_dash"></div>
|
||||
<div class="circle_belt"></div>
|
||||
<div class="circle_core">
|
||||
<span>효율적인</span>
|
||||
<span>도면관리</span>
|
||||
</div>
|
||||
<div class="circle_dots move">
|
||||
<div class="dot"></div>
|
||||
<div class="dot"></div>
|
||||
<div class="dot"></div>
|
||||
</div>
|
||||
<div class="circle_dots">
|
||||
<div class="dot"></div>
|
||||
<div class="dot"></div>
|
||||
<div class="dot"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</section>
|
||||
<section class="key find layout_fix_left">
|
||||
<div class="left">
|
||||
<div class="mid_tit">
|
||||
<span data-aos="fade-right" data-aos-duration="600">도면탐색과<br> <em>도면정보열람</em></span>
|
||||
</div>
|
||||
<ul data-aos="fade-right" data-aos-duration="1000" data-aos-delay="300" class="js__fixLeft_tit">
|
||||
<li class="on"><span><em>01</em>사용자 지정 폴더</span></li>
|
||||
<li><span><em>02</em>도면정보 열람</span></li>
|
||||
<li><span><em>03</em>도면 미리보기</span></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="right js__fixLeft_secs">
|
||||
<div class="find01">
|
||||
<span class="sub_tit">사용자 지정폴더</span>
|
||||
<div class="sub_text">
|
||||
폴더 탐색에서 자주 사용하는 폴더를 드래그 앤 드랍하여 사용자 지정 폴더함에 추가하면,<br> 해당 폴더를 빠르게 찾아갈 수 있습니다.
|
||||
</div>
|
||||
<div class="sub_figs">
|
||||
<div class="imgs">
|
||||
<object data="../img/find_img_01_01.svg" alt="" class="apx"></object>
|
||||
<img src="../img/find_img_01.png" alt="">
|
||||
</div>
|
||||
<div class="text">
|
||||
<div class="top">
|
||||
자주 사용하는 폴더를<br>
|
||||
<b>사용자 지정 폴더함에 추가</b>
|
||||
</div>
|
||||
<div class="line">
|
||||
<img src="../img/ico_find_tri.svg" alt="">
|
||||
</div>
|
||||
<div class="bottom">
|
||||
<img src="../img/ico_find_01.svg" alt="">
|
||||
<div class="bottom_txt">
|
||||
<b>폴더 탐색시간을 줄여</b><br>
|
||||
효율적인 작업 가능
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="find02">
|
||||
<span class="sub_tit">도면정보 열람</span>
|
||||
<div class="sub_text">
|
||||
공사명,도면명, 도면번호 등의 원하는 도면정보를 불러와 확인 할 수 있습니다.
|
||||
</div>
|
||||
<div class="sub_figs">
|
||||
<div class="imgs">
|
||||
<img src="../img/find_img_02_01.png" alt="" class="apx">
|
||||
<img src="../img/find_img_02.png" alt="">
|
||||
</div>
|
||||
<div class="text">
|
||||
<div class="top">
|
||||
<b>내가 원하는 도면정보 확인</b>
|
||||
</div>
|
||||
<div class="line">
|
||||
<img src="../img/ico_find_tri.svg" alt="">
|
||||
</div>
|
||||
<div class="bottom">
|
||||
<img src="../img/ico_find_02.svg" alt="">
|
||||
<div class="bottom_txt">
|
||||
<b>도면 정보를</b><br>
|
||||
<b>빠르게 확인하여</b><br><br class="brk">
|
||||
정확성과 효율성 향상
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="find03">
|
||||
<span class="sub_tit">도면 미리보기</span>
|
||||
<div class="sub_text">
|
||||
듀얼 모드에서 도면 미리보기 창을 분리하여 사용할 수 있습니다. <br>
|
||||
미리보기 창을 각각 다른 모니터에 배치하여 도면을 직접 열지 않고도 미리보기를 통해 편리하게 확인할 수 있습니다.
|
||||
</div>
|
||||
<div class="sub_figs">
|
||||
<div class="imgs">
|
||||
<img src="../img/find_img_03_02.png" alt="" class="apx">
|
||||
<div class="find_03_move">
|
||||
<img src="../img/find_img_03_03.png" alt="">
|
||||
<img src="../img/find_img_03_01.png" alt="" class="element">
|
||||
<img src="../img/find_img_03.png" alt="">
|
||||
</div>
|
||||
</div>
|
||||
<div class="text">
|
||||
<div class="top">
|
||||
듀얼 모드로<br>
|
||||
<b>도면 미리보기 창을 분리</b>
|
||||
</div>
|
||||
<div class="line">
|
||||
<img src="../img/ico_find_tri.svg" alt="">
|
||||
</div>
|
||||
<div class="bottom">
|
||||
<img src="../img/ico_find_03.svg" alt="">
|
||||
<div class="bottom_txt">
|
||||
<b>도면을 열지 않고</b><br>
|
||||
편리한 도면 확인
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
<section class="key info layout_fix_left">
|
||||
<div class="left">
|
||||
<div class="mid_tit">
|
||||
<span data-aos="fade-right" data-aos-duration="600">도면정보 선택<br> <em>및 정보수정</em></span>
|
||||
</div>
|
||||
<ul data-aos="fade-right" data-aos-duration="1000" data-aos-delay="300" class="js__fixLeft_tit">
|
||||
<li class=" on"><span><em>01</em>도면정보 수정</span></li>
|
||||
<li><span><em>02</em>열람하고자 하는 도면정보 선택 </span></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="right js__fixLeft_secs">
|
||||
<div class="info01">
|
||||
<span class="sub_tit">도면정보 수정</span>
|
||||
<div class="sub_text">
|
||||
원하는 도면정보를 선택하여 여러도면을 일괄적으로 수정 할 수있으며, <br>
|
||||
엑셀처럼 드래그방식으로 수정이 가능합니다.
|
||||
</div>
|
||||
<div class="sub_figs">
|
||||
<div class="imgs">
|
||||
<img src="../img/info_img_01_01.svg" alt="" class="apx">
|
||||
<img src="../img/info_img_01.png" alt="">
|
||||
</div>
|
||||
<div class="text">
|
||||
<div class="top">
|
||||
<b>엑셀 드래그 방식</b>으로<br>
|
||||
<b>일괄 수정 가능</b>
|
||||
</div>
|
||||
<div class="line">
|
||||
<img src="../img/ico_find_tri.svg" alt="">
|
||||
</div>
|
||||
<div class="bottom">
|
||||
<img src="../img/ico_info_01.svg" alt="">
|
||||
<div class="bottom_txt">
|
||||
<b>단순반복 작업을 줄여</b><br>
|
||||
정확하고 빠른 수정 가능
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="info02">
|
||||
<span class="sub_tit">열람하고자 하는 도면정보 선택</span>
|
||||
<div class="sub_text">
|
||||
표시하고자 하는 도면정보를 선택하여 도면목록에 추가 및 삭제 할 수 있으며, <br>
|
||||
어떤 정보가 수정중인지 표시하여 알려줍니다.
|
||||
</div>
|
||||
<div class="sub_figs">
|
||||
<div class="imgs">
|
||||
<img src="../img/info_img_02_01.png" alt="" class="apx">
|
||||
<img src="../img/info_img_02.png" alt="">
|
||||
</div>
|
||||
<div class="text">
|
||||
<div class="top">
|
||||
도면정보를 선택하여<br>
|
||||
<b>도면목록 추가및 삭제</b>
|
||||
</div>
|
||||
<div class="line">
|
||||
<img src="../img/ico_find_tri.svg" alt="">
|
||||
</div>
|
||||
<div class="bottom">
|
||||
<img src="../img/ico_info_02.svg" alt="">
|
||||
<div class="bottom_txt">
|
||||
<b>유연한 도면관리로</b><br>
|
||||
효율적인 작업 가능
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
<section class="key print layout_fix_left">
|
||||
<div class="left">
|
||||
<div class="mid_tit">
|
||||
<span data-aos="fade-right" data-aos-duration="600">인쇄옵션 설정과<br> <em>일괄출력</em></span>
|
||||
</div>
|
||||
<ul data-aos="fade-right" data-aos-duration="1000" data-aos-delay="300" class="js__fixLeft_tit">
|
||||
<li class="on"><span><em>01</em>인쇄 파일 선택 및 인쇄설정값 표시</span></li>
|
||||
<li><span><em>02</em>출력옵션 설정 및 미리보기</span></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="right js__fixLeft_secs">
|
||||
<div class="print01">
|
||||
<span class="sub_tit">인쇄 파일 선택 및 인쇄설정값 표시</span>
|
||||
<div class="sub_text">
|
||||
탐색창에서 선택한 폴더의 도면목록이 표시되며 출력도면을 선택 할 수 있습니다.
|
||||
</div>
|
||||
<div class="sub_figs">
|
||||
<div class="imgs">
|
||||
<img src="../img/print_img_01.png" alt="">
|
||||
</div>
|
||||
<div class="text">
|
||||
<div class="top">
|
||||
도면목록이 표시되어<br>
|
||||
<b>다중선택및 인쇄설정값 확인</b>
|
||||
</div>
|
||||
<div class="line">
|
||||
<img src="../img/ico_find_tri.svg" alt="">
|
||||
</div>
|
||||
<div class="bottom">
|
||||
<img src="../img/ico_print_01.svg" alt="">
|
||||
<div class="bottom_txt">
|
||||
<b>도면을 한눈에 확인하고 </b><br><br class="brk">
|
||||
다중출력 작업을 <br>
|
||||
손쉽게 처리 가능
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="print02">
|
||||
<span class="sub_tit">출력옵션 설정 및 미리보기</span>
|
||||
<div class="sub_text">
|
||||
인쇄옵션을 개별 또는 일괄로 변경 가능하며 출력전 미리보기가 가능합니다.
|
||||
</div>
|
||||
<div class="sub_figs">
|
||||
<div class="imgs">
|
||||
<img src="../img/print_img_02.png" alt="">
|
||||
</div>
|
||||
<div class="text">
|
||||
<div class="top">
|
||||
인쇄옵션<br>
|
||||
<b>개별 또는 일괄 변경</b> 및<br>
|
||||
<b>출력 전 미리보기</b>
|
||||
</div>
|
||||
<div class="line">
|
||||
<img src="../img/ico_find_tri.svg" alt="">
|
||||
</div>
|
||||
<div class="bottom">
|
||||
<img src="../img/ico_print_02.svg" alt="">
|
||||
<div class="bottom_txt">
|
||||
<b>인쇄 옵션을 미리 확인하여</b><br><br class="brk">
|
||||
출력 오류를 줄이고<br>
|
||||
작업의 정확도 향상
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
</div>
|
||||
<!-- footer -->
|
||||
<button class="btn_top js__top" onclick="window.scrollTo(0,0);"><div class="arrow"></div></button>
|
||||
<footer class="footer_off">
|
||||
<?php include_once($member_skin_path.'/main_footer.skin.php'); ?>
|
||||
</footer>
|
||||
<!-- //footer -->
|
||||
</div>
|
||||
<script>
|
||||
AOS.init();
|
||||
|
||||
const lenis = new Lenis()
|
||||
lenis.on('scroll', (e) => {
|
||||
//console.log(e)
|
||||
})
|
||||
lenis.on('scroll', ScrollTrigger.update)
|
||||
gsap.ticker.add((time)=>{
|
||||
lenis.raf(time * 1000)
|
||||
})
|
||||
gsap.ticker.lagSmoothing(0)
|
||||
</script>
|
||||
</body>
|
||||
|
||||
<script>
|
||||
// 회원 탈퇴
|
||||
function member_leave() {
|
||||
if (confirm("회원에서 탈퇴 하시겠습니까?"))
|
||||
location.href = '<?php echo G5_BBS_URL ?>/member_leave.php';
|
||||
}
|
||||
// 회원 탈퇴
|
||||
|
||||
if($('#hid_mb_id').val()==''){
|
||||
document.getElementById('my_join2').style.display = 'none';
|
||||
document.getElementById('my_login2').style.display = 'none';
|
||||
document.getElementById('my_join').style.display = '';
|
||||
document.getElementById('my_login').style.display = '';
|
||||
}else{
|
||||
document.getElementById('my_join2').style.display = '';
|
||||
document.getElementById('my_login2').style.display = '';
|
||||
document.getElementById('my_join').style.display = 'none';
|
||||
document.getElementById('my_login').style.display = 'none';
|
||||
}
|
||||
let x = document.cookie;
|
||||
if(x.includes("tmp_1=John")){
|
||||
deleteCookie("tmp_1");
|
||||
$('#pop_mypage02').show();
|
||||
}
|
||||
function deleteCookie(name) {
|
||||
document.cookie = name + "=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/egbim;";
|
||||
document.cookie = name + "=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/egbim/bbs;";
|
||||
document.cookie = name + "=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/egbim/faq;";
|
||||
document.cookie = name + "=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/egbim/qa;";
|
||||
}
|
||||
function getCookie(cname) {
|
||||
let name = cname + "=";
|
||||
let decodedCookie = decodeURIComponent(document.cookie);
|
||||
let ca = decodedCookie.split(';');
|
||||
for(let i = 0; i <ca.length; i++) {
|
||||
let c = ca[i];
|
||||
while (c.charAt(0) == ' ') {
|
||||
c = c.substring(1);
|
||||
}
|
||||
if (c.indexOf(name) == 0) {
|
||||
return c.substring(name.length, c.length);
|
||||
}
|
||||
}
|
||||
return "";
|
||||
}
|
||||
//alert(getCookie("tmp_1"));
|
||||
//로그인
|
||||
$('#flogin button[type=submit]').click(function(e){
|
||||
e.preventDefault();
|
||||
let mb_id = $('#login_id').val();
|
||||
let mb_password = $('#login_pw').val();
|
||||
//alert('<?php echo G5_URL ?>/bbs/login.php');
|
||||
$.ajax({
|
||||
url : '<?php echo G5_URL ?>/bbs/login_check_tova.php',
|
||||
data : {
|
||||
'mb_id' : mb_id,
|
||||
'mb_password' : mb_password
|
||||
},
|
||||
type : "POST",
|
||||
datatype : "json",
|
||||
success : function(data){
|
||||
var ss='';
|
||||
for(i=0; i<data.length; i++){
|
||||
ss=ss + data[i];
|
||||
}
|
||||
//alert(ss.replace('"','').replace('"',''));
|
||||
if(ss.replace('"','').replace('"','') == "success" || ss.replace('"','').replace('"','') == "super"){
|
||||
//$(".popup_wrap").show();
|
||||
// $('.btn_close').hide();
|
||||
// $('#pop_login').hide();
|
||||
// ------유나 추가
|
||||
$('.popup_wrap').hide();
|
||||
$('body').css('overflow', ''); // 기본 스크롤 상태로 복귀
|
||||
lenis.start();
|
||||
console.log('로그인 완료 및 lenis 재시작/유나 추가')
|
||||
$('#hid_mb_id').val(mb_id);
|
||||
document.getElementById('my_join2').style.display = '';
|
||||
document.getElementById('my_login2').style.display = '';
|
||||
document.getElementById('my_join').style.display = 'none';
|
||||
document.getElementById('my_login').style.display = 'none';
|
||||
//location.href="<?php echo G5_URL ?>/bbs/session.php?id="+mb_id;
|
||||
if(ss.replace('"','').replace('"','') == "super"){
|
||||
$('#my_join2').html("<a href='http://eg-bim.com/egbim/adm/index.php' target='_blank'>관리페이지</a>");
|
||||
}else{
|
||||
$('#my_join2').html("<a href='javascript:mypage01();'>마이페이지</a>");
|
||||
$('.btn_close').show();
|
||||
}
|
||||
}else
|
||||
{
|
||||
alert(trim(ss));
|
||||
}
|
||||
},
|
||||
error : function(err){
|
||||
//alert(err);
|
||||
alert(err.status);
|
||||
alert(err.statusText);
|
||||
}
|
||||
});
|
||||
});
|
||||
//회원가입 약관동의
|
||||
$('#fregister button[type=submit]').click(function(e){
|
||||
e.preventDefault();
|
||||
let agree11 = $('#agree11').val();
|
||||
let agree21 = $('#agree21').val();
|
||||
$.ajax({
|
||||
url : '<?php echo G5_URL ?>/bbs/register_form.php',
|
||||
type : "POST",
|
||||
datatype : "json",
|
||||
contentType: 'application/json; charset=utf-8',
|
||||
data : {
|
||||
'agree11' : agree11,
|
||||
'agree21' : agree21
|
||||
},
|
||||
success : function(data){
|
||||
var ss='';
|
||||
for(i=0; i<data.length; i++){
|
||||
ss=ss + data[i];
|
||||
}
|
||||
},
|
||||
error : function(err){
|
||||
alert(err);
|
||||
}
|
||||
});
|
||||
});
|
||||
//회원가입 정보입력
|
||||
$('#fregisterform button[type=submit]').click(function(e){
|
||||
e.preventDefault();
|
||||
|
||||
let mb_id = $('#reg_mb_id').val();
|
||||
let mb_password = $('#reg_mb_password').val();
|
||||
let mb_password_re = $('#reg_mb_password_re').val();
|
||||
let mb_name = $('#reg_mb_name').val();
|
||||
let mb_email1 = $('#reg_mb_email1').val();
|
||||
let mb_email2 = $('#mb_email2').val();
|
||||
let reg_domain2 = $('#register_domain2').val();
|
||||
let mb_hp = $('#reg_mb_hp').val();
|
||||
let mb_comp = $('#reg_mb_comp').val();
|
||||
let mb_comp_team = $('#reg_mb_comp_team').val();
|
||||
//alert(mb_password+' '+mb_password_re+' '+mb_name+' '+mb_email1+' '+mb_email2+' '+mb_hp+' '+mb_comp+' '+mb_comp_team);
|
||||
if (mb_id.length < 4) {
|
||||
alert("아이디를 4글자 이상 입력하십시오.");
|
||||
mb_id.focus();
|
||||
return false;
|
||||
}
|
||||
var special_pattern = /[`~!@#$%^&*|\\\'\";:\/?]/gi
|
||||
if (special_pattern.test(mb_id) == true) {
|
||||
alert("아이디는 특수문자를 사용할수 없습니다.");
|
||||
mb_id.focus();
|
||||
return false;
|
||||
}
|
||||
|
||||
// 비밀번호 검사
|
||||
if(!/^(?=.*[a-zA-Z])(?=.*[!@#$%^*+=-])(?=.*[0-9]).{8,25}$/.test(mb_password)){
|
||||
alert('비밀번호는 숫자+영문자+특수문자 조합으로 8자리 이상 사용해야 합니다.');
|
||||
mb_password.focus();
|
||||
return false;
|
||||
}
|
||||
// if (mb_password_re.length < 8 || mb_password.length < 8) {
|
||||
// alert("비밀번호를 8글자 이상 입력하십시오.");
|
||||
// mb_password.focus();
|
||||
// return false;
|
||||
// }
|
||||
|
||||
// 비밀번호 & 2차비밀번호 검사
|
||||
if (mb_password != mb_password_re) {
|
||||
alert("비밀번호가 같지 않습니다.");
|
||||
mb_password_re.focus();
|
||||
return false;
|
||||
}
|
||||
|
||||
// 이름 검사
|
||||
if (mb_name == "") {
|
||||
if (mb_name.length < 1) {
|
||||
alert("이름을 입력하십시오.");
|
||||
mb_name.focus();
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
// 메일 검사
|
||||
if (mb_email1 == "") {
|
||||
if (mb_email1.length < 1) {
|
||||
alert("메일 주소를 입력하십시오.");
|
||||
mb_email1.focus();
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
if (mb_email2 == "type"){
|
||||
mb_email2 = '@' + reg_domain2;
|
||||
}
|
||||
|
||||
// 핸드폰 번호 검사
|
||||
if (mb_hp.length < 11) {
|
||||
alert("휴대전화번호 11자리를 입력하십시오.");
|
||||
mb_hp.focus();
|
||||
return false;
|
||||
}
|
||||
if(isNaN(mb_hp)){
|
||||
alert("휴대전화번호는 숫자만 입력가능합니다.");
|
||||
mb_hp.focus();
|
||||
return false;
|
||||
}
|
||||
// 회사명 검사
|
||||
if (mb_comp == "") {
|
||||
if (mb_comp.length < 1) {
|
||||
alert("회사명을 입력하십시오");
|
||||
mb_comp.focus();
|
||||
return false;
|
||||
}
|
||||
}
|
||||
// 팀명 검사
|
||||
if (mb_comp_team == "") {
|
||||
if (mb_comp_team.length < 1) {
|
||||
alert("팀명을 입력하십시오");
|
||||
mb_comp_team.focus();
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
$.ajax({
|
||||
url : '<?php echo G5_URL ?>/bbs/register_form_update.php',
|
||||
data : {
|
||||
'mb_id' : mb_id,
|
||||
'mb_password' : mb_password,
|
||||
'mb_password_re' : mb_password_re,
|
||||
'mb_name' : mb_name,
|
||||
'mb_email1' : mb_email1,
|
||||
'mb_email2' : mb_email2,
|
||||
'mb_hp' : mb_hp,
|
||||
'mb_comp' : mb_comp,
|
||||
'mb_comp_team' : mb_comp_team,
|
||||
},
|
||||
type : "POST",
|
||||
datatype : "json",
|
||||
success : function(data){
|
||||
var ss='';
|
||||
for(i=0; i<data.length; i++){
|
||||
ss=ss + data[i];
|
||||
}
|
||||
if(ss){
|
||||
// $(".popup_wrap").show();
|
||||
// $('.btn_close').hide();
|
||||
// $('#pop_login').hide();
|
||||
// $('#pop_agreement').hide();
|
||||
// $('#pop_join').hide();
|
||||
// $('#pop_mypage01').hide();
|
||||
// $('#pop_search').hide();
|
||||
// $('#pop_mypage02').hide();
|
||||
// $('#pop_mypage03').hide();
|
||||
// $('#pop_privacy').hide();
|
||||
// $('.register_fs').hide();
|
||||
// $('.join_progress .join_step').removeClass('on');
|
||||
// $('.join_progress .join_step').eq(2).addClass('on');
|
||||
// $('.messages').show();
|
||||
alert('회원가입이 완료됐습니다.\n다시 로그인 해주세요');
|
||||
$('#reg_mb_id').val('');
|
||||
$('#reg_mb_password').val('');
|
||||
$('#reg_mb_password_re').val('');
|
||||
$('#reg_mb_name').val('');
|
||||
$('#reg_mb_email1').val('');
|
||||
$('#reg_mb_hp').val('');
|
||||
$('#reg_mb_comp').val('');
|
||||
$('#reg_mb_comp_team').val('');
|
||||
$('#dupl_check_yn').val('N');
|
||||
// ------유나 추가
|
||||
$('.popup_wrap').hide();
|
||||
$('body').css('overflow', ''); // 기본 스크롤 상태로 복귀
|
||||
lenis.start();
|
||||
console.log('로그인 완료 및 lenis 재시작/유나 추가')
|
||||
|
||||
}else{
|
||||
alert('실패했습니다.');
|
||||
}
|
||||
},
|
||||
error : function(err){
|
||||
alert('에러');
|
||||
alert(err);
|
||||
alert(err.status);
|
||||
alert(err.statusText);
|
||||
}
|
||||
});
|
||||
// $.removeCookie(mb_id,{path:'<?php //echo G5_URL ?>/bbs/register_form_update.php'});
|
||||
});
|
||||
|
||||
//회원정보 수정
|
||||
$('#fregisterform_up button[type=submit]').click(function(e){
|
||||
e.preventDefault();
|
||||
let mb_id = $('#update_mb_id').val();
|
||||
let mb_password = $('#update_mb_password').val();
|
||||
let mb_password_re = $('#update_mb_password_re').val();
|
||||
let mb_name = $('#update_mb_name').val();
|
||||
let mb_email1 = $('#update_mb_email1').val();
|
||||
let mb_email2 = $('#update_mb_email2').val();
|
||||
let update_domain2 = $('#update_domain2').val();
|
||||
if (mb_email2 == "type"){
|
||||
mb_email2 = '@' + update_domain2;
|
||||
}
|
||||
let mb_hp = $('#update_mb_hp').val();
|
||||
let mb_comp = $('#update_mb_comp').val();
|
||||
let mb_comp_team = $('#update_mb_comp_team').val();
|
||||
alert($('#update_mb_password_re').val());
|
||||
//alert(mb_password+' '+mb_password_re+' '+mb_name+' '+mb_email1+' '+mb_email2+' '+mb_hp+' '+mb_comp+' '+mb_comp_team);
|
||||
if (mb_id.length < 4) {
|
||||
alert('1');
|
||||
alert("아이디를 4글자 이상 입력하십시오.");
|
||||
mb_id.focus();
|
||||
return false;
|
||||
}
|
||||
var special_pattern = /[`~!@#$%^&*|\\\'\";:\/?]/gi
|
||||
if (special_pattern.test(mb_id) == true) {
|
||||
alert("아이디는 특수문자를 사용할수 없습니다.");
|
||||
mb_id.focus();
|
||||
return false;
|
||||
}
|
||||
|
||||
// 비밀번호 검사
|
||||
if(!/^(?=.*[a-zA-Z])(?=.*[!@#$%^*+=-])(?=.*[0-9]).{8,25}$/.test(mb_password)){
|
||||
alert('비밀번호는 숫자+영문자+특수문자 조합으로 8자리 이상 사용해야 합니다.');
|
||||
mb_password.focus();
|
||||
return false;
|
||||
}
|
||||
// if (mb_password_re.length < 8 || mb_password.length < 8) {
|
||||
// alert("비밀번호를 8글자 이상 입력하십시오.");
|
||||
// mb_password.focus();
|
||||
// return false;
|
||||
// }
|
||||
|
||||
// 비밀번호 & 2차비밀번호 검사
|
||||
if (mb_password != mb_password_re) {
|
||||
alert(mb_password_re);
|
||||
alert("비밀번호가 같지 않습니다.");
|
||||
mb_password_re.focus();
|
||||
return false;
|
||||
}
|
||||
|
||||
// 이름 검사
|
||||
if (mb_name == "") {
|
||||
if (mb_name.length < 1) {
|
||||
alert("이름을 입력하십시오.");
|
||||
mb_name.focus();
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
// 메일 검사
|
||||
if (mb_email1 == "") {
|
||||
if (mb_email1.length < 1) {
|
||||
alert("메일 주소를 입력하십시오.");
|
||||
mb_email1.focus();
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
// 핸드폰 번호 검사
|
||||
if (mb_hp.length < 11) {
|
||||
alert("휴대전화번호 11자리를 입력하십시오.");
|
||||
mb_hp.focus();
|
||||
return false;
|
||||
}
|
||||
if(isNaN(mb_hp)){
|
||||
alert("휴대전화번호는 숫자만 입력가능합니다.");
|
||||
mb_hp.focus();
|
||||
return false;
|
||||
}
|
||||
// 회사명 검사
|
||||
if (mb_comp == "") {
|
||||
if (mb_comp.length < 1) {
|
||||
alert("회사명을 입력하십시오");
|
||||
mb_comp.focus();
|
||||
return false;
|
||||
}
|
||||
}
|
||||
// 팀명 검사
|
||||
if (mb_comp_team == "") {
|
||||
if (mb_comp_team.length < 1) {
|
||||
alert("팀명을 입력하십시오");
|
||||
mb_comp_team.focus();
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
$.ajax({
|
||||
url : '<?php echo G5_URL ?>/bbs/mypage03.php',
|
||||
data : {
|
||||
'mb_id' : mb_id,
|
||||
'mb_password' : mb_password,
|
||||
'mb_password_re' : mb_password_re,
|
||||
'mb_name' : mb_name,
|
||||
'mb_email1' : mb_email1,
|
||||
'mb_email2' : mb_email2,
|
||||
'mb_hp' : mb_hp,
|
||||
'mb_comp' : mb_comp,
|
||||
'mb_comp_team' : mb_comp_team,
|
||||
},
|
||||
type : "POST",
|
||||
datatype : "json",
|
||||
success : function(data){
|
||||
var ss='';
|
||||
for(i=0; i<data.length; i++){
|
||||
ss=ss + data[i];
|
||||
}
|
||||
|
||||
if(ss.replace('"','').replace('"','') == "success"){
|
||||
alert('1');
|
||||
// $(".popup_wrap").show();
|
||||
$('.btn_close').show();
|
||||
$('#pop_login').hide();
|
||||
$('#pop_agreement').hide();
|
||||
$('#pop_join').hide();
|
||||
$('#pop_mypage01').hide();
|
||||
$('#pop_search').hide();
|
||||
$('#pop_mypage02').show();
|
||||
$('#pop_mypage03').hide();
|
||||
$('#pop_privacy').hide();
|
||||
// $('.register_fs').hide();
|
||||
// $('.join_progress .join_step').removeClass('on');
|
||||
// $('.join_progress .join_step').eq(2).addClass('on');
|
||||
// $('.messages').show();
|
||||
alert('회원정보 수정이 완료됐습니다.');
|
||||
document.getElementById("span_email").innerText=mb_email1+mb_email2;
|
||||
document.getElementById("span_hp").innerText=mb_hp;
|
||||
document.getElementById("span_comp").innerText=mb_comp;
|
||||
document.getElementById("span_comp_team").innerText=mb_comp_team;
|
||||
// $('#update_mb_id').val('');
|
||||
// $('#update_mb_password').val('');
|
||||
// $('#update_mb_password_re').val('');
|
||||
// $('#update_mb_name').val('');
|
||||
// $('#update_mb_email1').val('');
|
||||
// $('#update_mb_hp').val('');
|
||||
// $('#update_mb_comp').val('');
|
||||
// $('#update_mb_comp_team').val('');
|
||||
// $('#dupl_check_yn').val('N');
|
||||
|
||||
}else{
|
||||
alert('실패했습니다.');
|
||||
}
|
||||
},
|
||||
error : function(err){
|
||||
alert('에러');
|
||||
alert(err);
|
||||
alert(err.status);
|
||||
alert(err.statusText);
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
$('#fmyconfirmpw button[type=submit]').click(function(e){
|
||||
e.preventDefault();
|
||||
|
||||
let l_mb_password = $('#password_mypage').val();
|
||||
let l_mb_id = $('#hid_mb_id').val();
|
||||
|
||||
$.ajax({
|
||||
url : '<?php echo G5_URL ?>/bbs/mypage02.php',
|
||||
data : {
|
||||
'mb_id' : l_mb_id,
|
||||
'mb_password' : l_mb_password,
|
||||
},
|
||||
type : "POST",
|
||||
datatype : "json",
|
||||
success : function(data){
|
||||
var ss='';
|
||||
for(i=0; i<data.length; i++){
|
||||
ss=ss + data[i];
|
||||
}
|
||||
//alert(ss.replace('"','').replace('"',''));
|
||||
if(ss.replace('"','').replace('"','') == "success"){
|
||||
$('#password_mypage').val('');
|
||||
//mypage02();
|
||||
document.cookie = "tmp_1=John";
|
||||
location.href="<?php echo G5_URL ?>/bbs/floorplan.php";
|
||||
}else
|
||||
{
|
||||
alert(trim(ss));
|
||||
$('#password_mypage').select();
|
||||
}
|
||||
},
|
||||
error : function(err){
|
||||
alert(err);
|
||||
alert(err.status);
|
||||
alert(err.statusText);
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
</script>
|
||||
@@ -0,0 +1,505 @@
|
||||
<?php include_once __DIR__ . '/asset_urls.php'; ?>
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
|
||||
<head>
|
||||
<!-- Google tag (gtag.js) -->
|
||||
<script async src="https://www.googletagmanager.com/gtag/js?id=G-STZ2R5Q7HG"></script>
|
||||
<script>
|
||||
window.dataLayer = window.dataLayer || [];
|
||||
|
||||
function gtag() {
|
||||
dataLayer.push(arguments);
|
||||
}
|
||||
gtag('js', new Date());
|
||||
|
||||
gtag('config', 'G-STZ2R5Q7HG');
|
||||
</script>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>for BIM</title>
|
||||
<link rel="stylesheet" href="../css/reset.css" />
|
||||
<link rel="stylesheet" href="../css/font.css" />
|
||||
<link rel="stylesheet" href="../css/style.css" />
|
||||
<link rel="stylesheet" href="https://unpkg.com/aos@2.3.1/dist/aos.css" type="text/css" />
|
||||
<script src="https://unpkg.com/aos@2.3.1/dist/aos.js"></script>
|
||||
<script src="https://unpkg.com/lenis@1.1.9/dist/lenis.min.js"></script>
|
||||
<link rel="stylesheet" href="https://unpkg.com/lenis@1.1.9/dist/lenis.css">
|
||||
<script type="text/javascript" src="../js/jquery-3.6.1.min.js"></script>
|
||||
<script type="text/javascript" src="../js/jquery.mousewheel.min.js"></script>
|
||||
<script src="https://cdn.jsdelivr.net/npm/gsap@3.12.5/dist/gsap.min.js"></script>
|
||||
<script src="https://cdn.jsdelivr.net/npm/gsap@3.12.5/dist/ScrollTrigger.min.js"></script>
|
||||
<script src="https://cdn.jsdelivr.net/npm/gsap@3.12.5/dist/ScrollToPlugin.min.js"></script>
|
||||
|
||||
<script type="text/javascript" src="../js/common.js"></script>
|
||||
<script type="text/javascript" src="../js/popup.js"></script>
|
||||
<script type="text/javascript" src="../js/forbim.js"></script>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<!-- "js__"로 시작하는 클래스는 only 자바스크립트용입니다. -->
|
||||
<!-- XXXX js__넣어서 css 작성 금지 XXXX -->
|
||||
<div class="wrapper">
|
||||
<input id="hid_mb_id" type="hidden" value="<?echo $_SESSION['session_id'];?>"></input>
|
||||
<!-- HEADER -->
|
||||
<?php include_once($member_skin_path.'/main_header.skin.php'); ?>
|
||||
<!-- //Header -->
|
||||
|
||||
<!-- 모든 팝업페이지 경로 -->
|
||||
<?php
|
||||
include_once($member_skin_path.'/login.skin.php');
|
||||
include_once($member_skin_path.'/mypage01.skin.php');
|
||||
include_once($member_skin_path.'/register.skin.php');
|
||||
include_once($member_skin_path.'/register_form.skin.php');
|
||||
include_once($member_skin_path.'/mypage02.skin.php');
|
||||
include_once($member_skin_path.'/mypage03.skin.php');
|
||||
include_once($member_skin_path.'/sitemap.skin.php');
|
||||
include_once($member_skin_path.'/privacy.skin.php');
|
||||
include_once($member_skin_path.'/password_lost.skin.php');
|
||||
?>
|
||||
<!-- 컨텐츠 시작 -->
|
||||
<div class="container forbim">
|
||||
<section class="intro">
|
||||
<div class="top js__dark">
|
||||
<h2 data-aos="fade-down" data-aos-duration="1000">for BIM</h2>
|
||||
<span>디지털전환시대, 도면과 BIM모델을 동시에 본다</span>
|
||||
</div>
|
||||
<div class="keyword">
|
||||
<i class="egbim_obj k"></i>
|
||||
<span>
|
||||
더블클릭 한번으로<br>
|
||||
도면과 함께 3D BIM모델을 볼 수 있습니다
|
||||
</span>
|
||||
<p>EG-BIM은 도면만으로 확인하기 어려운 많은 설계정보를 <br>
|
||||
3D Viewer 를 통하여 BIM모델과 함께 쉽게 확인할 수 있는 기능을 제공합니다.</p>
|
||||
</div>
|
||||
<div class="visual" data-aos="fade-up" data-aos-duration="1000">
|
||||
<img src="<?php echo egbim_img_url('forbim_visaul.png'); ?>" alt="">
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section class="theorys js__dark full_screen">
|
||||
<span class="mid_tit" data-aos="fade-down" data-aos-duration="1000">
|
||||
“ <b class="gr_txt">BIM모델 정보</b>와 <b class="og_txt">도면</b>의<br class="brk"> CROSS CHECK ”
|
||||
</span>
|
||||
<div class="diagram_wrap" data-aos="fade-up" data-aos-duration="1000">
|
||||
<div class="dia_elements_wrap">
|
||||
<div class="dia_element">
|
||||
<ul class="dia_text">
|
||||
<li>위치정보</li>
|
||||
<li>형상정보</li>
|
||||
<li>수량정보</li>
|
||||
</ul>
|
||||
<div class="line"></div>
|
||||
</div>
|
||||
<div class="dia_element">
|
||||
<ul class="dia_text">
|
||||
<li>종평면도</li>
|
||||
<li>일반도</li>
|
||||
<li>상세도</li>
|
||||
</ul>
|
||||
<div class="line"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="dia_circles_wrap">
|
||||
<div class="circle_bim">
|
||||
<div class="circle_belt"></div>
|
||||
<div class="circle_core">
|
||||
<span>BIM 모델</span>
|
||||
<i></i>
|
||||
</div>
|
||||
<div class="circle_dots move">
|
||||
<div class="dot"></div>
|
||||
</div>
|
||||
<div class="circle_dots">
|
||||
<div class="dot"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="circle_floorplan">
|
||||
<div class="circle_belt"></div>
|
||||
<div class="circle_core">
|
||||
<span>도면</span>
|
||||
<i></i>
|
||||
</div>
|
||||
<div class="circle_dots move">
|
||||
<div class="dot"></div>
|
||||
</div>
|
||||
<div class="circle_dots">
|
||||
<div class="dot"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section class="layout_fix_left process">
|
||||
<div class="left" data-aos="fade-right" data-aos-duration="1000">
|
||||
<div class="bg js__fixLeft_bg on"></div>
|
||||
<div class="bg js__fixLeft_bg"></div>
|
||||
<span class="mid_tit js__fixLeft_tit on">
|
||||
<font class="num">01. </font>도면과 BIM<br> <em>동시보기</em>
|
||||
</span>
|
||||
<span class="mid_tit js__fixLeft_tit">
|
||||
<font class="num">02. </font><em>BIM모델<br> </em>상세보기</em>
|
||||
</span>
|
||||
</div>
|
||||
<div class="right js__fixLeft_secs">
|
||||
<span class="mid_tit m" style="display:none;">
|
||||
<font class="num">01. </font>도면과 BIM 동시보기
|
||||
</span>
|
||||
<div id="content1" class="link">
|
||||
<span class="sub_tit">
|
||||
<img src="<?php echo egbim_img_url('ico_forbim_link.svg'); ?>" alt="">
|
||||
도면과 BIM모델의 정보연동
|
||||
</span>
|
||||
<div class="sub_text">
|
||||
<b>도면과 BIM모델간의 정보연동</b>으로 <b>선택부재가 실시간 표시</b>되어 도면과 BIM모델을 동시에 보면서 부재의 위치 및 형상정보 등의 속성정보를 확인 할 수 있습니다.
|
||||
</div>
|
||||
<div class="sub_figs">
|
||||
<div class="fig01"><span>도면</span></div>
|
||||
<div class="fig02"><span>BIM 모델</span></div>
|
||||
<div class="fig03"><span>속성정보</span></div>
|
||||
<div class="fig04"><span>선택부재 실시간 표시</span></div>
|
||||
</div>
|
||||
</div>
|
||||
<span class="mid_tit m" style="display:none;">
|
||||
<font class="num">02. </font>BIM모델 상세보기
|
||||
</span>
|
||||
<div id="content2" class="info">
|
||||
<span class="sub_tit">
|
||||
<img src="<?php echo egbim_img_url('ico_forbim_check.svg'); ?>" alt="">
|
||||
BIM모델의 속성정보 및 형상 확인
|
||||
</span>
|
||||
<div class="sub_text">
|
||||
<span>
|
||||
3D Viewer의 다양한 시각적인 기능을 통해 <b>모델의 형상과 각 부재의 간섭관계 등을 상세하게 확인</b> 할 수 있습니다.
|
||||
</span>
|
||||
</div>
|
||||
<div class="sub_figs">
|
||||
<div><span>부재별 속성정보 표시, 부재별 레이어 On/Off, Clipping, 투명도 적용, 스케일 조정 등</span></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
</div>
|
||||
<!-- FOOTER -->
|
||||
<?php include_once($member_skin_path.'/main_footer.skin.php'); ?>
|
||||
<!-- //FOOTER -->
|
||||
</div>
|
||||
<script>
|
||||
AOS.init();
|
||||
|
||||
const lenis = new Lenis()
|
||||
lenis.on('scroll', (e) => {
|
||||
// console.log(e)
|
||||
})
|
||||
lenis.on('scroll', ScrollTrigger.update)
|
||||
gsap.ticker.add((time) => {
|
||||
lenis.raf(time * 1000)
|
||||
})
|
||||
gsap.ticker.lagSmoothing(0)
|
||||
</script>
|
||||
</body>
|
||||
|
||||
<script>
|
||||
$(function(){
|
||||
// footer family site toggle
|
||||
$('.family_btn').click(function(e){
|
||||
e.stopPropagation();
|
||||
$('.family_list, .family_btn').toggleClass('family_on');
|
||||
});
|
||||
$(document).click(function(e){
|
||||
if(!$(e.target).closest('.family_wrap').length){
|
||||
$('.family_list, .family_btn').removeClass('family_on');
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
// 회원 탈퇴
|
||||
function member_leave() {
|
||||
if (confirm("회원에서 탈퇴 하시겠습니까?"))
|
||||
location.href = '<?php echo G5_BBS_URL ?>/member_leave.php';
|
||||
}
|
||||
// 회원 탈퇴
|
||||
|
||||
|
||||
let x = document.cookie;
|
||||
if(x.includes("tmp_1=John")){
|
||||
deleteCookie("tmp_1");
|
||||
$('#pop_mypage02').show();
|
||||
}
|
||||
|
||||
function deleteCookie(name) {
|
||||
document.cookie = name + "=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/egbim;";
|
||||
document.cookie = name + "=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/egbim/bbs;";
|
||||
document.cookie = name + "=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/egbim/faq;";
|
||||
document.cookie = name + "=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/egbim/qa;";
|
||||
}
|
||||
function getCookie(cname) {
|
||||
let name = cname + "=";
|
||||
let decodedCookie = decodeURIComponent(document.cookie);
|
||||
let ca = decodedCookie.split(';');
|
||||
for(let i = 0; i <ca.length; i++) {
|
||||
let c = ca[i];
|
||||
while (c.charAt(0) == ' ') {
|
||||
c = c.substring(1);
|
||||
}
|
||||
if (c.indexOf(name) == 0) {
|
||||
return c.substring(name.length, c.length);
|
||||
}
|
||||
}
|
||||
return "";
|
||||
}
|
||||
|
||||
//descope 로그인, 로그아웃 js
|
||||
function updateHeaderMenu() {
|
||||
var isLoggedIn = !!sessionStorage.getItem("sessionJwt");
|
||||
// role 체크 예시 (로그인 시 저장해놓은 값)
|
||||
var isAdmin = sessionStorage.getItem('userRole') === 'super';
|
||||
|
||||
if (isLoggedIn) {
|
||||
$('.my_join2, .my_login2').show();
|
||||
$('.my_join, .my_login').hide();
|
||||
|
||||
// 마이페이지/관리자 메뉴 동적 출력
|
||||
if (isAdmin) {
|
||||
$('#my_join2').html("<a href='http://eg-bim.com/egbim/adm/index.php' target='_blank'>관리페이지</a>");
|
||||
} else {
|
||||
$('#my_join2').html("<a href='javascript:mypage03();'>마이페이지</a>");
|
||||
}
|
||||
} else {
|
||||
$('.my_join2, .my_login2').hide();
|
||||
$('.my_join, .my_login').show();
|
||||
$('#my_join2').html(""); // 혹시모를 내용 초기화
|
||||
}
|
||||
}
|
||||
|
||||
function descopeLogout() {
|
||||
fetch('/egbim/skin/member/basic/descope_logout.php', {
|
||||
method: 'POST',
|
||||
credentials: 'include' // PHPSESSID 쿠키 전송
|
||||
})
|
||||
.then(res => {
|
||||
if (!res.ok) throw new Error('서버 로그아웃 실패');
|
||||
// 1) 로컬 저장소 정리
|
||||
// sessionStorage.removeItem("refreshJwt");
|
||||
// sessionStorage.removeItem("sessionJwt");
|
||||
// sessionStorage.removeItem("userRole");
|
||||
// sessionStorage.removeItem("userName");
|
||||
// sessionStorage.removeItem("loginId");
|
||||
|
||||
sessionStorage.clear();
|
||||
localStorage.clear();
|
||||
// 2) UI 갱신
|
||||
updateHeaderMenu();
|
||||
// 3) 로그인 페이지로 이동
|
||||
window.location.href = '/egbim/index.php';
|
||||
})
|
||||
.catch(err => {
|
||||
console.error(err);
|
||||
alert('로그아웃 중 오류가 발생했습니다.');
|
||||
});
|
||||
}
|
||||
|
||||
$(document).ready(function() {
|
||||
// 기존에 있던 updateHeaderMenu() 호출 뒤에
|
||||
$('#my_login2 a').off('click').on('click', function(e){
|
||||
e.preventDefault();
|
||||
descopeLogout();
|
||||
});
|
||||
});
|
||||
|
||||
$(document).ready(function() {
|
||||
updateHeaderMenu();
|
||||
// (필요하다면, 로그인 성공 후에도 항상 updateHeaderMenu(); 호출)
|
||||
});
|
||||
|
||||
//descope login
|
||||
$('#flogin button[type=submit]').click(function(e){
|
||||
e.preventDefault();
|
||||
let mb_id = $('#login_id').val();
|
||||
let mb_password = $('#login_pw').val();
|
||||
|
||||
$.ajax({
|
||||
url : '/egbim/skin/member/basic/descope_login.php',
|
||||
data : {
|
||||
'mb_id' : mb_id,
|
||||
'mb_password' : mb_password
|
||||
},
|
||||
type : "POST",
|
||||
dataType : "json",
|
||||
success : function(res){
|
||||
if(res.status === "ok") {
|
||||
// 토큰 저장
|
||||
// sessionStorage.setItem("refreshJwt", res.refreshJwt);
|
||||
sessionStorage.setItem("sessionJwt", res.sessionJwt);
|
||||
|
||||
// ✅ 사용자 정보 저장
|
||||
if (res.user) {
|
||||
sessionStorage.setItem("loginId", res.user.loginIds?.[0] || '');
|
||||
sessionStorage.setItem("userName", res.user.name || '');
|
||||
sessionStorage.setItem("company", res.user.customAttributes?.company || '');
|
||||
sessionStorage.setItem("familyCompany", res.user.customAttributes?.familyCompany || '');
|
||||
sessionStorage.setItem("position", res.user.customAttributes?.position || '');
|
||||
sessionStorage.setItem("team", res.user.customAttributes?.team || '');
|
||||
sessionStorage.setItem("familyUniqueKey", res.user.customAttributes?.familyUniqueKey || '');
|
||||
sessionStorage.setItem("phone", res.user.phone || '');
|
||||
}
|
||||
|
||||
// ✅ 추가: 관리자 등 정보 저장
|
||||
if(res.user && res.user.roleNames && res.user.roleNames[0])
|
||||
sessionStorage.setItem("userRole", res.user.roleNames[0]);
|
||||
else
|
||||
sessionStorage.removeItem("userRole");
|
||||
|
||||
// ✅ 로그인 후 메뉴 갱신
|
||||
updateHeaderMenu();
|
||||
|
||||
// UI 처리
|
||||
$('.popup_wrap').hide();
|
||||
$('body').css('overflow', '');
|
||||
lenis.start();
|
||||
// alert('로그인 하셨습니다.');
|
||||
} else {
|
||||
alert(res.message || "로그인 실패");
|
||||
|
||||
// 🔴 실패 횟수에 따라 안내 배너 교체
|
||||
if (res.failCount && res.failCount >= 8) {
|
||||
updateLoginBanner("fail");
|
||||
}
|
||||
}
|
||||
},
|
||||
error : function(err){
|
||||
alert(err.statusText || "통신 오류");
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
// ✅ 배너 교체 함수
|
||||
function updateLoginBanner(type = "default") {
|
||||
const $banner = $('#login_notice_banner');
|
||||
if (!$banner.length) return;
|
||||
|
||||
if (type === "default") {
|
||||
$banner.css({ background: "#063e01ff", color: "#fff" });
|
||||
$banner.find("strong").text("[로그인 시스템 변경 안내]");
|
||||
$banner.find("p.left").html(`
|
||||
더 나은 보안을 위해 2025년 8월 8일부터 로그인 시스템이 변경되었습니다.<br>
|
||||
기존 회원 또한 신규 시스템에 맞춰 재가입을 진행해주시기 바랍니다.
|
||||
`);
|
||||
$banner.find("p:last").html(`※ 로그인 및 가입 관련 문의: <strong>010-8721-7453</strong>`);
|
||||
}
|
||||
|
||||
if (type === "fail") {
|
||||
$banner.css({ background: "#6a0202ff", color: "#faf6f6ff" });
|
||||
$banner.find("strong").text("[로그인 시도 제한 안내]");
|
||||
$banner.find("p.left").html(`
|
||||
비밀번호 입력을 <strong>7회 이상 연속 실패</strong>하셨습니다.<br>
|
||||
<strong>8번째 시도부터 3분 대기</strong>가 적용됩니다.<br>
|
||||
10회 이상 실패 시 계정이 잠금 처리됩니다.
|
||||
`);
|
||||
$banner.find("p:last").text("");
|
||||
}
|
||||
}
|
||||
|
||||
//회원가입 약관동의
|
||||
// $('#fregister button[type=submit]').click(function(e){
|
||||
// e.preventDefault();
|
||||
// let agree11 = $('#agree11').val();
|
||||
// let agree21 = $('#agree21').val();
|
||||
// $.ajax({
|
||||
// url : '<?php echo G5_URL ?>/bbs/register_form.php',
|
||||
// type : "POST",
|
||||
// datatype : "json",
|
||||
// contentType: 'application/json; charset=utf-8',
|
||||
// data : {
|
||||
// 'agree11' : agree11,
|
||||
// 'agree21' : agree21
|
||||
// },
|
||||
// success : function(data){
|
||||
// var ss='';
|
||||
// for(i=0; i<data.length; i++){
|
||||
// ss=ss + data[i];
|
||||
// }
|
||||
// },
|
||||
// error : function(err){
|
||||
// alert(err);
|
||||
// }
|
||||
// });
|
||||
// });
|
||||
|
||||
// 이지빔 프로그램 회원가입 url 쿼리스트링 파싱 함수
|
||||
function getQueryString(name) {
|
||||
const intro = document.querySelector('.intro_wrap');
|
||||
const mainMask = document.querySelector('.main_mask');
|
||||
|
||||
if (intro) {
|
||||
intro.style.display = "none";
|
||||
}
|
||||
|
||||
if (mainMask) {
|
||||
mainMask.classList.add('skip');
|
||||
}
|
||||
|
||||
// mainMask.style.aimation = 'none';
|
||||
const urlParams = new URLSearchParams(window.location.search);
|
||||
return urlParams.get(name);
|
||||
}
|
||||
|
||||
$(document).ready(function() {
|
||||
const popupParam = getQueryString('popup');
|
||||
|
||||
if (popupParam === 'signup') {
|
||||
console.log('쿼리 감지: signup → 회원가입 팝업 자동 오픈 시도');
|
||||
$('#pop_agreement').show(); // 팝업 보여주기
|
||||
|
||||
// 스크롤 잠금 (사용 중이면)
|
||||
$('body').css('overflow', 'hidden');
|
||||
if (typeof lenis !== 'undefined') {
|
||||
lenis.stop();
|
||||
}
|
||||
}
|
||||
|
||||
// 팝업 닫기 버튼 이벤트 연결
|
||||
$('#pop_agreement .btn_close').on('click', function() {
|
||||
$('#pop_agreement').hide();
|
||||
$('body').css('overflow', '');
|
||||
if (typeof lenis !== 'undefined') {
|
||||
lenis.start();
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
//이지빔 프로그램 비밀번호 재설정 url 쿼리스트링 파싱 함수
|
||||
$(document).ready(function() {
|
||||
const urlParams = new URLSearchParams(window.location.search);
|
||||
const popup = urlParams.get('popup');
|
||||
const token = urlParams.get('t');
|
||||
|
||||
if (popup === 'pwreset') {
|
||||
// 팝업 전체 열기
|
||||
$('#pop_search').show();
|
||||
$('body').css('overflow', 'hidden');
|
||||
|
||||
// 내부 컨텐츠 모두 숨기기
|
||||
$('#pop_search .popup_contents_wrap').hide();
|
||||
|
||||
if (token) {
|
||||
// 토큰이 있으면 비밀번호 재설정 단계
|
||||
if (!sessionStorage.getItem('pwreset_shown')) {
|
||||
$('#password_reset').show();
|
||||
sessionStorage.setItem('pwreset_shown', '1');
|
||||
}
|
||||
} else {
|
||||
// 토큰이 없으면 아이디 입력 단계 (첫 번째 .popup_contents_wrap)
|
||||
$('#pop_search .popup_contents_wrap').first().show();
|
||||
}
|
||||
}
|
||||
|
||||
// 닫기 버튼
|
||||
$('#pop_search .btn_close').on('click', function() {
|
||||
$('#pop_search').hide();
|
||||
$('body').css('overflow', '');
|
||||
});
|
||||
});
|
||||
</script>
|
||||
@@ -0,0 +1,677 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<!-- Google tag (gtag.js) -->
|
||||
<script async src="https://www.googletagmanager.com/gtag/js?id=G-STZ2R5Q7HG"></script>
|
||||
<script>
|
||||
window.dataLayer = window.dataLayer || [];
|
||||
function gtag(){dataLayer.push(arguments);}
|
||||
gtag('js', new Date());
|
||||
|
||||
gtag('config', 'G-STZ2R5Q7HG');
|
||||
</script>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>for BIM</title>
|
||||
<link rel="stylesheet" href="../css/reset.css"/>
|
||||
<link rel="stylesheet" href="../css/font.css"/>
|
||||
<link rel="stylesheet" href="../css/style.css"/>
|
||||
<link rel="stylesheet" href="https://unpkg.com/aos@2.3.1/dist/aos.css" type="text/css"/>
|
||||
<script src="https://unpkg.com/aos@2.3.1/dist/aos.js"></script>
|
||||
<script src="https://unpkg.com/lenis@1.1.9/dist/lenis.min.js"></script>
|
||||
<link rel="stylesheet" href="https://unpkg.com/lenis@1.1.9/dist/lenis.css">
|
||||
<script type="text/javascript" src="../js/jquery-3.6.1.min.js"></script>
|
||||
<script type="text/javascript" src="../js/jquery.mousewheel.min.js"></script>
|
||||
<script src="https://cdn.jsdelivr.net/npm/gsap@3.12.5/dist/gsap.min.js"></script>
|
||||
<script src="https://cdn.jsdelivr.net/npm/gsap@3.12.5/dist/ScrollTrigger.min.js"></script>
|
||||
<script src="https://cdn.jsdelivr.net/npm/gsap@3.12.5/dist/ScrollToPlugin.min.js"></script>
|
||||
|
||||
<script type="text/javascript" src="../js/common.js"></script>
|
||||
<script type="text/javascript" src="../js/popup.js"></script>
|
||||
<script type="text/javascript" src="../js/forbim.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
<!-- "js__"로 시작하는 클래스는 only 자바스크립트용입니다. -->
|
||||
<!-- XXXX js__넣어서 css 작성 금지 XXXX -->
|
||||
<div class="wrapper">
|
||||
<input id="hid_mb_id" type="hidden" value="<?echo $_SESSION['session_id'];?>"></input>
|
||||
<!-- HEADER -->
|
||||
<header class="js__header">
|
||||
<?php include_once($member_skin_path.'/main_header.skin.php'); ?>
|
||||
</header>
|
||||
<!-- //Header -->
|
||||
<!-- floating_menu -->
|
||||
<div class="floating_menu">
|
||||
<ul>
|
||||
<li class="floating_faq"><a href="<?php echo G5_BBS_URL ?>/faq.php">
|
||||
<i></i>
|
||||
<span>FAQ</span>
|
||||
</a></li>
|
||||
<li class="floating_buy"><a href="<?php echo G5_BBS_URL ?>/buy.php">
|
||||
<i></i>
|
||||
<span>구매하기</span>
|
||||
</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<!-- //floating_menu -->
|
||||
<!-- 모든 팝업페이지 경로 -->
|
||||
<?php
|
||||
include_once($member_skin_path.'/login.skin.php');
|
||||
include_once($member_skin_path.'/mypage01.skin.php');
|
||||
include_once($member_skin_path.'/register.skin.php');
|
||||
include_once($member_skin_path.'/register_form.skin.php');
|
||||
include_once($member_skin_path.'/mypage02.skin.php');
|
||||
include_once($member_skin_path.'/mypage03.skin.php');
|
||||
include_once($member_skin_path.'/sitemap.skin.php');
|
||||
include_once($member_skin_path.'/privacy.skin.php');
|
||||
include_once($member_skin_path.'/password_lost.skin.php');
|
||||
?>
|
||||
<!-- 컨텐츠 시작 -->
|
||||
<div class="container forbim">
|
||||
<section class="intro">
|
||||
<div class="top js__dark">
|
||||
<h2 data-aos="fade-down" data-aos-duration="1000">for BIM</h2>
|
||||
<span>디지털전환시대, 도면과 BIM모델을 동시에 본다</span>
|
||||
</div>
|
||||
<div class="keyword">
|
||||
<i class="egbim_obj k"></i>
|
||||
<span>
|
||||
더블클릭 한번으로<br>
|
||||
도면과 함께 3D BIM모델을 볼 수 있습니다
|
||||
</span>
|
||||
<p>EG-BIM은 도면만으로 확인하기 어려운 많은 설계정보를 <br>
|
||||
3D Viewer 를 통하여 BIM모델과 함께 쉽게 확인할 수 있는 기능을 제공합니다.</p>
|
||||
</div>
|
||||
<div class="visual" data-aos="fade-up" data-aos-duration="1000">
|
||||
<img src="../img/forbim_visaul.png" alt="">
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section class="theorys js__dark">
|
||||
<span class="mid_tit" data-aos="fade-down" data-aos-duration="1000">
|
||||
“ <b class="gr_txt">BIM모델 정보</b>와 <b class="og_txt">도면</b>의 CROSS CHECK ”
|
||||
</span>
|
||||
<div class="diagram_wrap" data-aos="fade-up" data-aos-duration="1000">
|
||||
<div class="dia_element">
|
||||
<ul class="dia_text">
|
||||
<li>위치정보</li>
|
||||
<li>형상정보</li>
|
||||
<li>수량정보</li>
|
||||
</ul>
|
||||
<div class="line"></div>
|
||||
</div>
|
||||
<div class="dia_circles_wrap">
|
||||
<div class="circle_bim">
|
||||
<div class="circle_belt"></div>
|
||||
<div class="circle_core">
|
||||
<span>BIM 모델</span>
|
||||
<i></i>
|
||||
</div>
|
||||
<div class="circle_dots move">
|
||||
<div class="dot"></div>
|
||||
</div>
|
||||
<div class="circle_dots">
|
||||
<div class="dot"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="circle_floorplan">
|
||||
<div class="circle_belt"></div>
|
||||
<div class="circle_core">
|
||||
<span>도면</span>
|
||||
<i></i>
|
||||
</div>
|
||||
<div class="circle_dots move">
|
||||
<div class="dot"></div>
|
||||
</div>
|
||||
<div class="circle_dots">
|
||||
<div class="dot"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="dia_element">
|
||||
<ul class="dia_text">
|
||||
<li>종평면도</li>
|
||||
<li>일반도</li>
|
||||
<li>상세도</li>
|
||||
</ul>
|
||||
<div class="line"></div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section class="layout_fix_left process">
|
||||
<div class="left" data-aos="fade-right" data-aos-duration="1000">
|
||||
<div class="bg js__fixLeft_bg on"></div>
|
||||
<div class="bg js__fixLeft_bg"></div>
|
||||
<span class="mid_tit js__fixLeft_tit on"><font class="num">01. </font>도면과 BIM<br><em>동시보기</em>
|
||||
</span>
|
||||
<span class="mid_tit js__fixLeft_tit"><font class="num">02. </font><em>BIM모델<br></em> 상세보기</em></span>
|
||||
</div>
|
||||
<div class="right js__fixLeft_secs">
|
||||
<div>
|
||||
<span class="sub_tit">
|
||||
<img src="../img/ico_forbim_link.svg" alt="">
|
||||
도면과 BIM모델의 정보연동
|
||||
</span>
|
||||
<div class="sub_text">
|
||||
<b>도면과 BIM모델간의 정보연동</b>으로 <b>선택부재가 실시간 표시</b>되어 도면과 BIM모델을 동시에 보면서 부재의 위치 및 형상정보 등의 속정정보를 확인 할 수 있습니다.
|
||||
</div>
|
||||
<div class="sub_figs">
|
||||
<img src="../img/forbim_process_01.png">
|
||||
</div>
|
||||
</div>
|
||||
<div>
|
||||
<span class="sub_tit">
|
||||
<img src="../img/ico_forbim_check.svg" alt="">
|
||||
BIM모델의 속성정보 및 형상 확인
|
||||
</span>
|
||||
<div class="sub_text">
|
||||
<span>
|
||||
3D Viewer의 다양한 시각적인 기능을 통해 <b>모델의 형상과 각 부재의 간섭관계 등을 상세하게 확인</b> 할 수 있습니다.
|
||||
</span>
|
||||
</div>
|
||||
<div class="sub_figs">
|
||||
<img src="../img/forbim_process_02.png">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
</div>
|
||||
<!-- FOOTER -->
|
||||
<button class="btn_top js__top" onclick="window.scrollTo(0,0);"><div class="arrow"></div></button>
|
||||
<footer class="footer_off">
|
||||
<?php include_once($member_skin_path.'/main_footer.skin.php'); ?>
|
||||
</footer>
|
||||
<!-- //FOOTER -->
|
||||
</div>
|
||||
<script>
|
||||
AOS.init();
|
||||
|
||||
const lenis = new Lenis()
|
||||
lenis.on('scroll', (e) => {
|
||||
// console.log(e)
|
||||
})
|
||||
lenis.on('scroll', ScrollTrigger.update)
|
||||
gsap.ticker.add((time)=>{
|
||||
lenis.raf(time * 1000)
|
||||
})
|
||||
gsap.ticker.lagSmoothing(0)
|
||||
</script>
|
||||
</body>
|
||||
|
||||
<script>
|
||||
// 회원 탈퇴
|
||||
function member_leave() {
|
||||
if (confirm("회원에서 탈퇴 하시겠습니까?"))
|
||||
location.href = '<?php echo G5_BBS_URL ?>/member_leave.php';
|
||||
}
|
||||
// 회원 탈퇴
|
||||
|
||||
if($('#hid_mb_id').val()==''){
|
||||
document.getElementById('my_join2').style.display = 'none';
|
||||
document.getElementById('my_login2').style.display = 'none';
|
||||
document.getElementById('my_join').style.display = '';
|
||||
document.getElementById('my_login').style.display = '';
|
||||
}else{
|
||||
document.getElementById('my_join2').style.display = '';
|
||||
document.getElementById('my_login2').style.display = '';
|
||||
document.getElementById('my_join').style.display = 'none';
|
||||
document.getElementById('my_login').style.display = 'none';
|
||||
}
|
||||
let x = document.cookie;
|
||||
if(x == "tmp_1=John"){
|
||||
deleteCookie("tmp_1");
|
||||
$('#pop_mypage02').show();
|
||||
}
|
||||
function deleteCookie(name) {
|
||||
document.cookie = name + "=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/egbim;";
|
||||
document.cookie = name + "=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/egbim/bbs;";
|
||||
document.cookie = name + "=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/egbim/faq;";
|
||||
document.cookie = name + "=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/egbim/qa;";
|
||||
}
|
||||
function getCookie(cname) {
|
||||
let name = cname + "=";
|
||||
let decodedCookie = decodeURIComponent(document.cookie);
|
||||
let ca = decodedCookie.split(';');
|
||||
for(let i = 0; i <ca.length; i++) {
|
||||
let c = ca[i];
|
||||
while (c.charAt(0) == ' ') {
|
||||
c = c.substring(1);
|
||||
}
|
||||
if (c.indexOf(name) == 0) {
|
||||
return c.substring(name.length, c.length);
|
||||
}
|
||||
}
|
||||
return "";
|
||||
}
|
||||
//alert(getCookie("tmp_1"));
|
||||
//로그인
|
||||
$('#flogin button[type=submit]').click(function(e){
|
||||
e.preventDefault();
|
||||
let mb_id = $('#login_id').val();
|
||||
let mb_password = $('#login_pw').val();
|
||||
//alert('<?php echo G5_URL ?>/bbs/login.php');
|
||||
$.ajax({
|
||||
url : '<?php echo G5_URL ?>/bbs/login_check_tova.php',
|
||||
data : {
|
||||
'mb_id' : mb_id,
|
||||
'mb_password' : mb_password
|
||||
},
|
||||
type : "POST",
|
||||
datatype : "json",
|
||||
success : function(data){
|
||||
var ss='';
|
||||
for(i=0; i<data.length; i++){
|
||||
ss=ss + data[i];
|
||||
}
|
||||
//alert(ss.replace('"','').replace('"',''));
|
||||
if(ss.replace('"','').replace('"','') == "success" || ss.replace('"','').replace('"','') == "super"){
|
||||
//$(".popup_wrap").show();
|
||||
$('.btn_close').hide();
|
||||
$('#pop_login').hide();
|
||||
$('#hid_mb_id').val(mb_id);
|
||||
document.getElementById('my_join2').style.display = '';
|
||||
document.getElementById('my_login2').style.display = '';
|
||||
document.getElementById('my_join').style.display = 'none';
|
||||
document.getElementById('my_login').style.display = 'none';
|
||||
//location.href="<?php echo G5_URL ?>/bbs/session.php?id="+mb_id;
|
||||
if(ss.replace('"','').replace('"','') == "super"){
|
||||
$('#my_join2').html("<a href='http://eg-bim.com/egbim/adm/index.php' target='_blank'>관리페이지</a>");
|
||||
}else{
|
||||
$('#my_join2').html("<a href='javascript:mypage01();'>마이페이지</a>");
|
||||
}
|
||||
}else
|
||||
{
|
||||
alert(trim(ss));
|
||||
}
|
||||
},
|
||||
error : function(err){
|
||||
//alert(err);
|
||||
alert(err.status);
|
||||
alert(err.statusText);
|
||||
}
|
||||
});
|
||||
});
|
||||
//회원가입 약관동의
|
||||
$('#fregister button[type=submit]').click(function(e){
|
||||
e.preventDefault();
|
||||
let agree11 = $('#agree11').val();
|
||||
let agree21 = $('#agree21').val();
|
||||
$.ajax({
|
||||
url : '<?php echo G5_URL ?>/bbs/register_form.php',
|
||||
type : "POST",
|
||||
datatype : "json",
|
||||
contentType: 'application/json; charset=utf-8',
|
||||
data : {
|
||||
'agree11' : agree11,
|
||||
'agree21' : agree21
|
||||
},
|
||||
success : function(data){
|
||||
var ss='';
|
||||
for(i=0; i<data.length; i++){
|
||||
ss=ss + data[i];
|
||||
}
|
||||
},
|
||||
error : function(err){
|
||||
alert(err);
|
||||
}
|
||||
});
|
||||
});
|
||||
//회원가입 정보입력
|
||||
$('#fregisterform button[type=submit]').click(function(e){
|
||||
e.preventDefault();
|
||||
|
||||
let mb_id = $('#reg_mb_id').val();
|
||||
let mb_password = $('#reg_mb_password').val();
|
||||
let mb_password_re = $('#reg_mb_password_re').val();
|
||||
let mb_name = $('#reg_mb_name').val();
|
||||
let mb_email1 = $('#reg_mb_email1').val();
|
||||
let mb_email2 = $('#mb_email2').val();
|
||||
let reg_domain2 = $('#register_domain2').val();
|
||||
let mb_hp = $('#reg_mb_hp').val();
|
||||
let mb_comp = $('#reg_mb_comp').val();
|
||||
let mb_comp_team = $('#reg_mb_comp_team').val();
|
||||
//alert(mb_password+' '+mb_password_re+' '+mb_name+' '+mb_email1+' '+mb_email2+' '+mb_hp+' '+mb_comp+' '+mb_comp_team);
|
||||
if (mb_id.length < 4) {
|
||||
alert("아이디를 4글자 이상 입력하십시오.");
|
||||
mb_id.focus();
|
||||
return false;
|
||||
}
|
||||
var special_pattern = /[`~!@#$%^&*|\\\'\";:\/?]/gi
|
||||
if (special_pattern.test(mb_id) == true) {
|
||||
alert("아이디는 특수문자를 사용할수 없습니다.");
|
||||
mb_id.focus();
|
||||
return false;
|
||||
}
|
||||
|
||||
// 비밀번호 검사
|
||||
if(!/^(?=.*[a-zA-Z])(?=.*[!@#$%^*+=-])(?=.*[0-9]).{8,25}$/.test(mb_password)){
|
||||
alert('비밀번호는 숫자+영문자+특수문자 조합으로 8자리 이상 사용해야 합니다.');
|
||||
mb_password.focus();
|
||||
return false;
|
||||
}
|
||||
// if (mb_password_re.length < 8 || mb_password.length < 8) {
|
||||
// alert("비밀번호를 8글자 이상 입력하십시오.");
|
||||
// mb_password.focus();
|
||||
// return false;
|
||||
// }
|
||||
|
||||
// 비밀번호 & 2차비밀번호 검사
|
||||
if (mb_password != mb_password_re) {
|
||||
alert("비밀번호가 같지 않습니다.");
|
||||
mb_password_re.focus();
|
||||
return false;
|
||||
}
|
||||
|
||||
// 이름 검사
|
||||
if (mb_name == "") {
|
||||
if (mb_name.length < 1) {
|
||||
alert("이름을 입력하십시오.");
|
||||
mb_name.focus();
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
// 메일 검사
|
||||
if (mb_email1 == "") {
|
||||
if (mb_email1.length < 1) {
|
||||
alert("메일 주소를 입력하십시오.");
|
||||
mb_email1.focus();
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
if (mb_email2 == "type"){
|
||||
mb_email2 = '@' + reg_domain2;
|
||||
}
|
||||
|
||||
// 핸드폰 번호 검사
|
||||
if (mb_hp.length < 11) {
|
||||
alert("휴대전화번호 11자리를 입력하십시오.");
|
||||
mb_hp.focus();
|
||||
return false;
|
||||
}
|
||||
if(isNaN(mb_hp)){
|
||||
alert("휴대전화번호는 숫자만 입력가능합니다.");
|
||||
mb_hp.focus();
|
||||
return false;
|
||||
}
|
||||
// 회사명 검사
|
||||
if (mb_comp == "") {
|
||||
if (mb_comp.length < 1) {
|
||||
alert("회사명을 입력하십시오");
|
||||
mb_comp.focus();
|
||||
return false;
|
||||
}
|
||||
}
|
||||
// 팀명 검사
|
||||
if (mb_comp_team == "") {
|
||||
if (mb_comp_team.length < 1) {
|
||||
alert("팀명을 입력하십시오");
|
||||
mb_comp_team.focus();
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
$.ajax({
|
||||
url : '<?php echo G5_URL ?>/bbs/register_form_update.php',
|
||||
data : {
|
||||
'mb_id' : mb_id,
|
||||
'mb_password' : mb_password,
|
||||
'mb_password_re' : mb_password_re,
|
||||
'mb_name' : mb_name,
|
||||
'mb_email1' : mb_email1,
|
||||
'mb_email2' : mb_email2,
|
||||
'mb_hp' : mb_hp,
|
||||
'mb_comp' : mb_comp,
|
||||
'mb_comp_team' : mb_comp_team,
|
||||
},
|
||||
type : "POST",
|
||||
datatype : "json",
|
||||
success : function(data){
|
||||
var ss='';
|
||||
for(i=0; i<data.length; i++){
|
||||
ss=ss + data[i];
|
||||
}
|
||||
if(ss){
|
||||
// $(".popup_wrap").show();
|
||||
$('.btn_close').hide();
|
||||
$('#pop_login').hide();
|
||||
$('#pop_agreement').hide();
|
||||
$('#pop_join').hide();
|
||||
$('#pop_mypage01').hide();
|
||||
$('#pop_search').hide();
|
||||
$('#pop_mypage02').hide();
|
||||
$('#pop_mypage03').hide();
|
||||
$('#pop_privacy').hide();
|
||||
// $('.register_fs').hide();
|
||||
// $('.join_progress .join_step').removeClass('on');
|
||||
// $('.join_progress .join_step').eq(2).addClass('on');
|
||||
// $('.messages').show();
|
||||
alert('회원가입이 완료됐습니다.\n다시 로그인 해주세요');
|
||||
$('#reg_mb_id').val('');
|
||||
$('#reg_mb_password').val('');
|
||||
$('#reg_mb_password_re').val('');
|
||||
$('#reg_mb_name').val('');
|
||||
$('#reg_mb_email1').val('');
|
||||
$('#reg_mb_hp').val('');
|
||||
$('#reg_mb_comp').val('');
|
||||
$('#reg_mb_comp_team').val('');
|
||||
$('#dupl_check_yn').val('N');
|
||||
|
||||
}else{
|
||||
alert('실패했습니다.');
|
||||
}
|
||||
},
|
||||
error : function(err){
|
||||
alert('에러');
|
||||
alert(err);
|
||||
alert(err.status);
|
||||
alert(err.statusText);
|
||||
}
|
||||
});
|
||||
// $.removeCookie(mb_id,{path:'<?php //echo G5_URL ?>/bbs/register_form_update.php'});
|
||||
});
|
||||
|
||||
//회원정보 수정
|
||||
$('#fregisterform_up button[type=submit]').click(function(e){
|
||||
e.preventDefault();
|
||||
let mb_id = $('#update_mb_id').val();
|
||||
let mb_password = $('#update_mb_password').val();
|
||||
let mb_password_re = $('#update_mb_password_re').val();
|
||||
let mb_name = $('#update_mb_name').val();
|
||||
let mb_email1 = $('#update_mb_email1').val();
|
||||
let mb_email2 = $('#update_mb_email2').val();
|
||||
let update_domain2 = $('#update_domain2').val();
|
||||
if (mb_email2 == "type"){
|
||||
mb_email2 = '@' + update_domain2;
|
||||
}
|
||||
let mb_hp = $('#update_mb_hp').val();
|
||||
let mb_comp = $('#update_mb_comp').val();
|
||||
let mb_comp_team = $('#update_mb_comp_team').val();
|
||||
|
||||
//alert(mb_password+' '+mb_password_re+' '+mb_name+' '+mb_email1+' '+mb_email2+' '+mb_hp+' '+mb_comp+' '+mb_comp_team);
|
||||
if (mb_id.length < 4) {
|
||||
alert('1');
|
||||
alert("아이디를 4글자 이상 입력하십시오.");
|
||||
mb_id.focus();
|
||||
return false;
|
||||
}
|
||||
var special_pattern = /[`~!@#$%^&*|\\\'\";:\/?]/gi
|
||||
if (special_pattern.test(mb_id) == true) {
|
||||
alert("아이디는 특수문자를 사용할수 없습니다.");
|
||||
mb_id.focus();
|
||||
return false;
|
||||
}
|
||||
|
||||
// 비밀번호 검사
|
||||
if(!/^(?=.*[a-zA-Z])(?=.*[!@#$%^*+=-])(?=.*[0-9]).{8,25}$/.test(mb_password)){
|
||||
alert('비밀번호는 숫자+영문자+특수문자 조합으로 8자리 이상 사용해야 합니다.');
|
||||
mb_password.focus();
|
||||
return false;
|
||||
}
|
||||
// if (mb_password_re.length < 8 || mb_password.length < 8) {
|
||||
// alert("비밀번호를 8글자 이상 입력하십시오.");
|
||||
// mb_password.focus();
|
||||
// return false;
|
||||
// }
|
||||
|
||||
// 비밀번호 & 2차비밀번호 검사
|
||||
if (mb_password != mb_password_re) {
|
||||
alert(mb_password_re);
|
||||
alert("비밀번호가 같지 않습니다.");
|
||||
mb_password_re.focus();
|
||||
return false;
|
||||
}
|
||||
|
||||
// 이름 검사
|
||||
if (mb_name == "") {
|
||||
if (mb_name.length < 1) {
|
||||
alert("이름을 입력하십시오.");
|
||||
mb_name.focus();
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
// 메일 검사
|
||||
if (mb_email1 == "") {
|
||||
if (mb_email1.length < 1) {
|
||||
alert("메일 주소를 입력하십시오.");
|
||||
mb_email1.focus();
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
// 핸드폰 번호 검사
|
||||
if (mb_hp.length < 11) {
|
||||
alert("휴대전화번호 11자리를 입력하십시오.");
|
||||
mb_hp.focus();
|
||||
return false;
|
||||
}
|
||||
if(isNaN(mb_hp)){
|
||||
alert("휴대전화번호는 숫자만 입력가능합니다.");
|
||||
mb_hp.focus();
|
||||
return false;
|
||||
}
|
||||
// 회사명 검사
|
||||
if (mb_comp == "") {
|
||||
if (mb_comp.length < 1) {
|
||||
alert("회사명을 입력하십시오");
|
||||
mb_comp.focus();
|
||||
return false;
|
||||
}
|
||||
}
|
||||
// 팀명 검사
|
||||
if (mb_comp_team == "") {
|
||||
if (mb_comp_team.length < 1) {
|
||||
alert("팀명을 입력하십시오");
|
||||
mb_comp_team.focus();
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
$.ajax({
|
||||
url : '<?php echo G5_URL ?>/bbs/mypage03.php',
|
||||
data : {
|
||||
'mb_id' : mb_id,
|
||||
'mb_password' : mb_password,
|
||||
'mb_password_re' : mb_password_re,
|
||||
'mb_name' : mb_name,
|
||||
'mb_email1' : mb_email1,
|
||||
'mb_email2' : mb_email2,
|
||||
'mb_hp' : mb_hp,
|
||||
'mb_comp' : mb_comp,
|
||||
'mb_comp_team' : mb_comp_team,
|
||||
},
|
||||
type : "POST",
|
||||
datatype : "json",
|
||||
success : function(data){
|
||||
var ss='';
|
||||
for(i=0; i<data.length; i++){
|
||||
ss=ss + data[i];
|
||||
}
|
||||
|
||||
if(ss.replace('"','').replace('"','') == "success"){
|
||||
|
||||
// $(".popup_wrap").show();
|
||||
$('.btn_close').show();
|
||||
$('#pop_login').hide();
|
||||
$('#pop_agreement').hide();
|
||||
$('#pop_join').hide();
|
||||
$('#pop_mypage01').hide();
|
||||
$('#pop_search').hide();
|
||||
$('#pop_mypage02').show();
|
||||
$('#pop_mypage03').hide();
|
||||
$('#pop_privacy').hide();
|
||||
// $('.register_fs').hide();
|
||||
// $('.join_progress .join_step').removeClass('on');
|
||||
// $('.join_progress .join_step').eq(2).addClass('on');
|
||||
// $('.messages').show();
|
||||
alert('회원정보 수정이 완료됐습니다.');
|
||||
document.getElementById("span_email").innerText=mb_email1+mb_email2;
|
||||
document.getElementById("span_hp").innerText=mb_hp;
|
||||
document.getElementById("span_comp").innerText=mb_comp;
|
||||
document.getElementById("span_comp_team").innerText=mb_comp_team;
|
||||
// $('#update_mb_id').val('');
|
||||
// $('#update_mb_password').val('');
|
||||
// $('#update_mb_password_re').val('');
|
||||
// $('#update_mb_name').val('');
|
||||
// $('#update_mb_email1').val('');
|
||||
// $('#update_mb_hp').val('');
|
||||
// $('#update_mb_comp').val('');
|
||||
// $('#update_mb_comp_team').val('');
|
||||
// $('#dupl_check_yn').val('N');
|
||||
|
||||
}else{
|
||||
alert('실패했습니다.');
|
||||
}
|
||||
},
|
||||
error : function(err){
|
||||
alert('에러');
|
||||
alert(err);
|
||||
alert(err.status);
|
||||
alert(err.statusText);
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
$('#fmyconfirmpw button[type=submit]').click(function(e){
|
||||
e.preventDefault();
|
||||
|
||||
let l_mb_password = $('#password_mypage').val();
|
||||
let l_mb_id = $('#hid_mb_id').val();
|
||||
|
||||
$.ajax({
|
||||
url : '<?php echo G5_URL ?>/bbs/mypage02.php',
|
||||
data : {
|
||||
'mb_id' : l_mb_id,
|
||||
'mb_password' : l_mb_password,
|
||||
},
|
||||
type : "POST",
|
||||
datatype : "json",
|
||||
success : function(data){
|
||||
var ss='';
|
||||
for(i=0; i<data.length; i++){
|
||||
ss=ss + data[i];
|
||||
}
|
||||
//alert(ss.replace('"','').replace('"',''));
|
||||
if(ss.replace('"','').replace('"','') == "success"){
|
||||
$('#password_mypage').val('');
|
||||
//mypage02();
|
||||
document.cookie = "tmp_1=John";
|
||||
location.href="<?php echo G5_URL ?>/bbs/forbim.php";
|
||||
}else
|
||||
{
|
||||
alert(trim(ss));
|
||||
$('#password_mypage').select();
|
||||
}
|
||||
},
|
||||
error : function(err){
|
||||
alert(err);
|
||||
alert(err.status);
|
||||
alert(err.statusText);
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
</script>
|
||||
@@ -0,0 +1,693 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<!-- Google tag (gtag.js) -->
|
||||
<script async src="https://www.googletagmanager.com/gtag/js?id=G-STZ2R5Q7HG"></script>
|
||||
<script>
|
||||
window.dataLayer = window.dataLayer || [];
|
||||
function gtag(){dataLayer.push(arguments);}
|
||||
gtag('js', new Date());
|
||||
|
||||
gtag('config', 'G-STZ2R5Q7HG');
|
||||
</script>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>for BIM</title>
|
||||
<link rel="stylesheet" href="../css/reset.css"/>
|
||||
<link rel="stylesheet" href="../css/font.css"/>
|
||||
<link rel="stylesheet" href="../css/style.css"/>
|
||||
<link rel="stylesheet" href="https://unpkg.com/aos@2.3.1/dist/aos.css" type="text/css"/>
|
||||
<script src="https://unpkg.com/aos@2.3.1/dist/aos.js"></script>
|
||||
<script src="https://unpkg.com/lenis@1.1.9/dist/lenis.min.js"></script>
|
||||
<link rel="stylesheet" href="https://unpkg.com/lenis@1.1.9/dist/lenis.css">
|
||||
<script type="text/javascript" src="../js/jquery-3.6.1.min.js"></script>
|
||||
<script type="text/javascript" src="../js/jquery.mousewheel.min.js"></script>
|
||||
<script src="https://cdn.jsdelivr.net/npm/gsap@3.12.5/dist/gsap.min.js"></script>
|
||||
<script src="https://cdn.jsdelivr.net/npm/gsap@3.12.5/dist/ScrollTrigger.min.js"></script>
|
||||
<script src="https://cdn.jsdelivr.net/npm/gsap@3.12.5/dist/ScrollToPlugin.min.js"></script>
|
||||
|
||||
<script type="text/javascript" src="../js/common.js"></script>
|
||||
<script type="text/javascript" src="../js/popup.js"></script>
|
||||
<script type="text/javascript" src="../js/forbim.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
<!-- "js__"로 시작하는 클래스는 only 자바스크립트용입니다. -->
|
||||
<!-- XXXX js__넣어서 css 작성 금지 XXXX -->
|
||||
<div class="wrapper">
|
||||
<input id="hid_mb_id" type="hidden" value="<?echo $_SESSION['session_id'];?>"></input>
|
||||
<!-- HEADER -->
|
||||
<header class="js__header">
|
||||
<?php include_once($member_skin_path.'/main_header.skin.php'); ?>
|
||||
</header>
|
||||
<!-- //Header -->
|
||||
<!-- floating_menu -->
|
||||
<div class="floating_menu">
|
||||
<ul>
|
||||
<li class="floating_faq"><a href="<?php echo G5_BBS_URL ?>/faq.php">
|
||||
<i></i>
|
||||
<span>FAQ</span>
|
||||
</a></li>
|
||||
<li class="floating_buy"><a href="<?php echo G5_BBS_URL ?>/buy.php">
|
||||
<i></i>
|
||||
<span>구매하기</span>
|
||||
</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<!-- //floating_menu -->
|
||||
<!-- 모든 팝업페이지 경로 -->
|
||||
<?php
|
||||
include_once($member_skin_path.'/login.skin.php');
|
||||
include_once($member_skin_path.'/mypage01.skin.php');
|
||||
include_once($member_skin_path.'/register.skin.php');
|
||||
include_once($member_skin_path.'/register_form.skin.php');
|
||||
include_once($member_skin_path.'/mypage02.skin.php');
|
||||
include_once($member_skin_path.'/mypage03.skin.php');
|
||||
include_once($member_skin_path.'/sitemap.skin.php');
|
||||
include_once($member_skin_path.'/privacy.skin.php');
|
||||
include_once($member_skin_path.'/password_lost.skin.php');
|
||||
?>
|
||||
<!-- 컨텐츠 시작 -->
|
||||
<div class="container forbim">
|
||||
<section class="intro">
|
||||
<div class="top js__dark">
|
||||
<h2 data-aos="fade-down" data-aos-duration="1000">for BIM</h2>
|
||||
<span>디지털전환시대, 도면과 BIM모델을 동시에 본다</span>
|
||||
</div>
|
||||
<div class="keyword">
|
||||
<i class="egbim_obj k"></i>
|
||||
<span>
|
||||
더블클릭 한번으로<br>
|
||||
도면과 함께 3D BIM모델을 볼 수 있습니다
|
||||
</span>
|
||||
<p>EG-BIM은 도면만으로 확인하기 어려운 많은 설계정보를 <br>
|
||||
3D Viewer 를 통하여 BIM모델과 함께 쉽게 확인할 수 있는 기능을 제공합니다.</p>
|
||||
</div>
|
||||
<div class="visual" data-aos="fade-up" data-aos-duration="1000">
|
||||
<img src="../img/forbim_visaul.png" alt="">
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section class="theorys js__dark">
|
||||
<span class="mid_tit" data-aos="fade-down" data-aos-duration="1000">
|
||||
“ <b class="gr_txt">BIM모델 정보</b>와 <b class="og_txt">도면</b>의<br class="brk"> CROSS CHECK ”
|
||||
</span>
|
||||
<div class="diagram_wrap" data-aos="fade-up" data-aos-duration="1000">
|
||||
<div class="dia_elements_wrap">
|
||||
<div class="dia_element">
|
||||
<ul class="dia_text">
|
||||
<li>위치정보</li>
|
||||
<li>형상정보</li>
|
||||
<li>수량정보</li>
|
||||
</ul>
|
||||
<div class="line"></div>
|
||||
</div>
|
||||
<div class="dia_element">
|
||||
<ul class="dia_text">
|
||||
<li>종평면도</li>
|
||||
<li>일반도</li>
|
||||
<li>상세도</li>
|
||||
</ul>
|
||||
<div class="line"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="dia_circles_wrap">
|
||||
<div class="circle_bim">
|
||||
<div class="circle_belt"></div>
|
||||
<div class="circle_core">
|
||||
<span>BIM 모델</span>
|
||||
<i></i>
|
||||
</div>
|
||||
<div class="circle_dots move">
|
||||
<div class="dot"></div>
|
||||
</div>
|
||||
<div class="circle_dots">
|
||||
<div class="dot"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="circle_floorplan">
|
||||
<div class="circle_belt"></div>
|
||||
<div class="circle_core">
|
||||
<span>도면</span>
|
||||
<i></i>
|
||||
</div>
|
||||
<div class="circle_dots move">
|
||||
<div class="dot"></div>
|
||||
</div>
|
||||
<div class="circle_dots">
|
||||
<div class="dot"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section class="layout_fix_left process">
|
||||
<div class="left" data-aos="fade-right" data-aos-duration="1000">
|
||||
<div class="bg js__fixLeft_bg on"></div>
|
||||
<div class="bg js__fixLeft_bg"></div>
|
||||
<span class="mid_tit js__fixLeft_tit on"><font class="num">01. </font>도면과 BIM<br> <em>동시보기</em></span>
|
||||
<span class="mid_tit js__fixLeft_tit"><font class="num">02. </font><em>BIM모델<br> </em>상세보기</em></span>
|
||||
</div>
|
||||
<div class="right js__fixLeft_secs">
|
||||
<span class="mid_tit m" style="display:none;"><font class="num">01. </font>도면과 BIM 동시보기</span>
|
||||
<div class="link">
|
||||
<span class="sub_tit">
|
||||
<img src="../img/ico_forbim_link.svg" alt="">
|
||||
도면과 BIM모델의 정보연동
|
||||
</span>
|
||||
<div class="sub_text">
|
||||
<b>도면과 BIM모델간의 정보연동</b>으로 <b>선택부재가 실시간 표시</b>되어 도면과 BIM모델을 동시에 보면서 부재의 위치 및 형상정보 등의 속성정보를 확인 할 수 있습니다.
|
||||
</div>
|
||||
<div class="sub_figs">
|
||||
<div class="fig01"><span>도면</span></div>
|
||||
<div class="fig02"><span>BIM 모델</span></div>
|
||||
<div class="fig03"><span>속성정보</span></div>
|
||||
<div class="fig04"><span>선택부재 실시간 표시</span></div>
|
||||
</div>
|
||||
</div>
|
||||
<span class="mid_tit m" style="display:none;"><font class="num">02. </font>BIM모델 상세보기</span>
|
||||
<div class="info">
|
||||
<span class="sub_tit">
|
||||
<img src="../img/ico_forbim_check.svg" alt="">
|
||||
BIM모델의 속성정보 및 형상 확인
|
||||
</span>
|
||||
<div class="sub_text">
|
||||
<span>
|
||||
3D Viewer의 다양한 시각적인 기능을 통해 <b>모델의 형상과 각 부재의 간섭관계 등을 상세하게 확인</b> 할 수 있습니다.
|
||||
</span>
|
||||
</div>
|
||||
<div class="sub_figs">
|
||||
<div><span>부재별 속성정보 표시, 부재별 레이어 On/Off, Clipping, 투명도 적용, 스케일 조정 등</span></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
</div>
|
||||
<!-- FOOTER -->
|
||||
<button class="btn_top js__top" onclick="window.scrollTo(0,0);"><div class="arrow"></div></button>
|
||||
<footer class="footer_off">
|
||||
<?php include_once($member_skin_path.'/main_footer.skin.php'); ?>
|
||||
</footer>
|
||||
<!-- //FOOTER -->
|
||||
</div>
|
||||
<script>
|
||||
AOS.init();
|
||||
|
||||
const lenis = new Lenis()
|
||||
lenis.on('scroll', (e) => {
|
||||
// console.log(e)
|
||||
})
|
||||
lenis.on('scroll', ScrollTrigger.update)
|
||||
gsap.ticker.add((time)=>{
|
||||
lenis.raf(time * 1000)
|
||||
})
|
||||
gsap.ticker.lagSmoothing(0)
|
||||
</script>
|
||||
</body>
|
||||
|
||||
<script>
|
||||
// 회원 탈퇴
|
||||
function member_leave() {
|
||||
if (confirm("회원에서 탈퇴 하시겠습니까?"))
|
||||
location.href = '<?php echo G5_BBS_URL ?>/member_leave.php';
|
||||
}
|
||||
// 회원 탈퇴
|
||||
|
||||
if($('#hid_mb_id').val()==''){
|
||||
document.getElementById('my_join2').style.display = 'none';
|
||||
document.getElementById('my_login2').style.display = 'none';
|
||||
document.getElementById('my_join').style.display = '';
|
||||
document.getElementById('my_login').style.display = '';
|
||||
}else{
|
||||
document.getElementById('my_join2').style.display = '';
|
||||
document.getElementById('my_login2').style.display = '';
|
||||
document.getElementById('my_join').style.display = 'none';
|
||||
document.getElementById('my_login').style.display = 'none';
|
||||
}
|
||||
let x = document.cookie;
|
||||
if(x.includes("tmp_1=John")){
|
||||
deleteCookie("tmp_1");
|
||||
$('#pop_mypage02').show();
|
||||
}
|
||||
function deleteCookie(name) {
|
||||
document.cookie = name + "=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/egbim;";
|
||||
document.cookie = name + "=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/egbim/bbs;";
|
||||
document.cookie = name + "=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/egbim/faq;";
|
||||
document.cookie = name + "=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/egbim/qa;";
|
||||
}
|
||||
function getCookie(cname) {
|
||||
let name = cname + "=";
|
||||
let decodedCookie = decodeURIComponent(document.cookie);
|
||||
let ca = decodedCookie.split(';');
|
||||
for(let i = 0; i <ca.length; i++) {
|
||||
let c = ca[i];
|
||||
while (c.charAt(0) == ' ') {
|
||||
c = c.substring(1);
|
||||
}
|
||||
if (c.indexOf(name) == 0) {
|
||||
return c.substring(name.length, c.length);
|
||||
}
|
||||
}
|
||||
return "";
|
||||
}
|
||||
//alert(getCookie("tmp_1"));
|
||||
//로그인
|
||||
$('#flogin button[type=submit]').click(function(e){
|
||||
e.preventDefault();
|
||||
let mb_id = $('#login_id').val();
|
||||
let mb_password = $('#login_pw').val();
|
||||
//alert('<?php echo G5_URL ?>/bbs/login.php');
|
||||
$.ajax({
|
||||
url : '<?php echo G5_URL ?>/bbs/login_check_tova.php',
|
||||
data : {
|
||||
'mb_id' : mb_id,
|
||||
'mb_password' : mb_password
|
||||
},
|
||||
type : "POST",
|
||||
datatype : "json",
|
||||
success : function(data){
|
||||
var ss='';
|
||||
for(i=0; i<data.length; i++){
|
||||
ss=ss + data[i];
|
||||
}
|
||||
//alert(ss.replace('"','').replace('"',''));
|
||||
if(ss.replace('"','').replace('"','') == "success" || ss.replace('"','').replace('"','') == "super"){
|
||||
//$(".popup_wrap").show();
|
||||
// $('.btn_close').hide();
|
||||
// $('#pop_login').hide();
|
||||
// ------유나 추가
|
||||
$('.popup_wrap').hide();
|
||||
$('body').css('overflow', ''); // 기본 스크롤 상태로 복귀
|
||||
lenis.start();
|
||||
console.log('로그인 완료 및 lenis 재시작/유나 추가')
|
||||
$('#hid_mb_id').val(mb_id);
|
||||
document.getElementById('my_join2').style.display = '';
|
||||
document.getElementById('my_login2').style.display = '';
|
||||
document.getElementById('my_join').style.display = 'none';
|
||||
document.getElementById('my_login').style.display = 'none';
|
||||
//location.href="<?php echo G5_URL ?>/bbs/session.php?id="+mb_id;
|
||||
if(ss.replace('"','').replace('"','') == "super"){
|
||||
$('#my_join2').html("<a href='http://eg-bim.com/egbim/adm/index.php' target='_blank'>관리페이지</a>");
|
||||
}else{
|
||||
$('#my_join2').html("<a href='javascript:mypage01();'>마이페이지</a>");
|
||||
}
|
||||
}else
|
||||
{
|
||||
alert(trim(ss));
|
||||
}
|
||||
},
|
||||
error : function(err){
|
||||
//alert(err);
|
||||
alert(err.status);
|
||||
alert(err.statusText);
|
||||
}
|
||||
});
|
||||
});
|
||||
//회원가입 약관동의
|
||||
$('#fregister button[type=submit]').click(function(e){
|
||||
e.preventDefault();
|
||||
let agree11 = $('#agree11').val();
|
||||
let agree21 = $('#agree21').val();
|
||||
$.ajax({
|
||||
url : '<?php echo G5_URL ?>/bbs/register_form.php',
|
||||
type : "POST",
|
||||
datatype : "json",
|
||||
contentType: 'application/json; charset=utf-8',
|
||||
data : {
|
||||
'agree11' : agree11,
|
||||
'agree21' : agree21
|
||||
},
|
||||
success : function(data){
|
||||
var ss='';
|
||||
for(i=0; i<data.length; i++){
|
||||
ss=ss + data[i];
|
||||
}
|
||||
},
|
||||
error : function(err){
|
||||
alert(err);
|
||||
}
|
||||
});
|
||||
});
|
||||
//회원가입 정보입력
|
||||
$('#fregisterform button[type=submit]').click(function(e){
|
||||
e.preventDefault();
|
||||
|
||||
let mb_id = $('#reg_mb_id').val();
|
||||
let mb_password = $('#reg_mb_password').val();
|
||||
let mb_password_re = $('#reg_mb_password_re').val();
|
||||
let mb_name = $('#reg_mb_name').val();
|
||||
let mb_email1 = $('#reg_mb_email1').val();
|
||||
let mb_email2 = $('#mb_email2').val();
|
||||
let reg_domain2 = $('#register_domain2').val();
|
||||
let mb_hp = $('#reg_mb_hp').val();
|
||||
let mb_comp = $('#reg_mb_comp').val();
|
||||
let mb_comp_team = $('#reg_mb_comp_team').val();
|
||||
//alert(mb_password+' '+mb_password_re+' '+mb_name+' '+mb_email1+' '+mb_email2+' '+mb_hp+' '+mb_comp+' '+mb_comp_team);
|
||||
if (mb_id.length < 4) {
|
||||
alert("아이디를 4글자 이상 입력하십시오.");
|
||||
mb_id.focus();
|
||||
return false;
|
||||
}
|
||||
var special_pattern = /[`~!@#$%^&*|\\\'\";:\/?]/gi
|
||||
if (special_pattern.test(mb_id) == true) {
|
||||
alert("아이디는 특수문자를 사용할수 없습니다.");
|
||||
mb_id.focus();
|
||||
return false;
|
||||
}
|
||||
|
||||
// 비밀번호 검사
|
||||
if(!/^(?=.*[a-zA-Z])(?=.*[!@#$%^*+=-])(?=.*[0-9]).{8,25}$/.test(mb_password)){
|
||||
alert('비밀번호는 숫자+영문자+특수문자 조합으로 8자리 이상 사용해야 합니다.');
|
||||
mb_password.focus();
|
||||
return false;
|
||||
}
|
||||
// if (mb_password_re.length < 8 || mb_password.length < 8) {
|
||||
// alert("비밀번호를 8글자 이상 입력하십시오.");
|
||||
// mb_password.focus();
|
||||
// return false;
|
||||
// }
|
||||
|
||||
// 비밀번호 & 2차비밀번호 검사
|
||||
if (mb_password != mb_password_re) {
|
||||
alert("비밀번호가 같지 않습니다.");
|
||||
mb_password_re.focus();
|
||||
return false;
|
||||
}
|
||||
|
||||
// 이름 검사
|
||||
if (mb_name == "") {
|
||||
if (mb_name.length < 1) {
|
||||
alert("이름을 입력하십시오.");
|
||||
mb_name.focus();
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
// 메일 검사
|
||||
if (mb_email1 == "") {
|
||||
if (mb_email1.length < 1) {
|
||||
alert("메일 주소를 입력하십시오.");
|
||||
mb_email1.focus();
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
if (mb_email2 == "type"){
|
||||
mb_email2 = '@' + reg_domain2;
|
||||
}
|
||||
|
||||
// 핸드폰 번호 검사
|
||||
if (mb_hp.length < 11) {
|
||||
alert("휴대전화번호 11자리를 입력하십시오.");
|
||||
mb_hp.focus();
|
||||
return false;
|
||||
}
|
||||
if(isNaN(mb_hp)){
|
||||
alert("휴대전화번호는 숫자만 입력가능합니다.");
|
||||
mb_hp.focus();
|
||||
return false;
|
||||
}
|
||||
// 회사명 검사
|
||||
if (mb_comp == "") {
|
||||
if (mb_comp.length < 1) {
|
||||
alert("회사명을 입력하십시오");
|
||||
mb_comp.focus();
|
||||
return false;
|
||||
}
|
||||
}
|
||||
// 팀명 검사
|
||||
if (mb_comp_team == "") {
|
||||
if (mb_comp_team.length < 1) {
|
||||
alert("팀명을 입력하십시오");
|
||||
mb_comp_team.focus();
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
$.ajax({
|
||||
url : '<?php echo G5_URL ?>/bbs/register_form_update.php',
|
||||
data : {
|
||||
'mb_id' : mb_id,
|
||||
'mb_password' : mb_password,
|
||||
'mb_password_re' : mb_password_re,
|
||||
'mb_name' : mb_name,
|
||||
'mb_email1' : mb_email1,
|
||||
'mb_email2' : mb_email2,
|
||||
'mb_hp' : mb_hp,
|
||||
'mb_comp' : mb_comp,
|
||||
'mb_comp_team' : mb_comp_team,
|
||||
},
|
||||
type : "POST",
|
||||
datatype : "json",
|
||||
success : function(data){
|
||||
var ss='';
|
||||
for(i=0; i<data.length; i++){
|
||||
ss=ss + data[i];
|
||||
}
|
||||
if(ss){
|
||||
// $(".popup_wrap").show();
|
||||
// $('.btn_close').hide();
|
||||
// $('#pop_login').hide();
|
||||
// $('#pop_agreement').hide();
|
||||
// $('#pop_join').hide();
|
||||
// $('#pop_mypage01').hide();
|
||||
// $('#pop_search').hide();
|
||||
// $('#pop_mypage02').hide();
|
||||
// $('#pop_mypage03').hide();
|
||||
// $('#pop_privacy').hide();
|
||||
// $('.register_fs').hide();
|
||||
// $('.join_progress .join_step').removeClass('on');
|
||||
// $('.join_progress .join_step').eq(2).addClass('on');
|
||||
// $('.messages').show();
|
||||
alert('회원가입이 완료됐습니다.\n다시 로그인 해주세요');
|
||||
$('#reg_mb_id').val('');
|
||||
$('#reg_mb_password').val('');
|
||||
$('#reg_mb_password_re').val('');
|
||||
$('#reg_mb_name').val('');
|
||||
$('#reg_mb_email1').val('');
|
||||
$('#reg_mb_hp').val('');
|
||||
$('#reg_mb_comp').val('');
|
||||
$('#reg_mb_comp_team').val('');
|
||||
$('#dupl_check_yn').val('N');
|
||||
// ------유나 추가
|
||||
$('.popup_wrap').hide();
|
||||
$('body').css('overflow', ''); // 기본 스크롤 상태로 복귀
|
||||
lenis.start();
|
||||
console.log('로그인 완료 및 lenis 재시작/유나 추가')
|
||||
|
||||
}else{
|
||||
alert('실패했습니다.');
|
||||
}
|
||||
},
|
||||
error : function(err){
|
||||
alert('에러');
|
||||
alert(err);
|
||||
alert(err.status);
|
||||
alert(err.statusText);
|
||||
}
|
||||
});
|
||||
// $.removeCookie(mb_id,{path:'<?php //echo G5_URL ?>/bbs/register_form_update.php'});
|
||||
});
|
||||
|
||||
//회원정보 수정
|
||||
$('#fregisterform_up button[type=submit]').click(function(e){
|
||||
e.preventDefault();
|
||||
let mb_id = $('#update_mb_id').val();
|
||||
let mb_password = $('#update_mb_password').val();
|
||||
let mb_password_re = $('#update_mb_password_re').val();
|
||||
let mb_name = $('#update_mb_name').val();
|
||||
let mb_email1 = $('#update_mb_email1').val();
|
||||
let mb_email2 = $('#update_mb_email2').val();
|
||||
let update_domain2 = $('#update_domain2').val();
|
||||
if (mb_email2 == "type"){
|
||||
mb_email2 = '@' + update_domain2;
|
||||
}
|
||||
let mb_hp = $('#update_mb_hp').val();
|
||||
let mb_comp = $('#update_mb_comp').val();
|
||||
let mb_comp_team = $('#update_mb_comp_team').val();
|
||||
|
||||
//alert(mb_password+' '+mb_password_re+' '+mb_name+' '+mb_email1+' '+mb_email2+' '+mb_hp+' '+mb_comp+' '+mb_comp_team);
|
||||
if (mb_id.length < 4) {
|
||||
alert('1');
|
||||
alert("아이디를 4글자 이상 입력하십시오.");
|
||||
mb_id.focus();
|
||||
return false;
|
||||
}
|
||||
var special_pattern = /[`~!@#$%^&*|\\\'\";:\/?]/gi
|
||||
if (special_pattern.test(mb_id) == true) {
|
||||
alert("아이디는 특수문자를 사용할수 없습니다.");
|
||||
mb_id.focus();
|
||||
return false;
|
||||
}
|
||||
|
||||
// 비밀번호 검사
|
||||
if(!/^(?=.*[a-zA-Z])(?=.*[!@#$%^*+=-])(?=.*[0-9]).{8,25}$/.test(mb_password)){
|
||||
alert('비밀번호는 숫자+영문자+특수문자 조합으로 8자리 이상 사용해야 합니다.');
|
||||
mb_password.focus();
|
||||
return false;
|
||||
}
|
||||
// if (mb_password_re.length < 8 || mb_password.length < 8) {
|
||||
// alert("비밀번호를 8글자 이상 입력하십시오.");
|
||||
// mb_password.focus();
|
||||
// return false;
|
||||
// }
|
||||
|
||||
// 비밀번호 & 2차비밀번호 검사
|
||||
if (mb_password != mb_password_re) {
|
||||
alert(mb_password_re);
|
||||
alert("비밀번호가 같지 않습니다.");
|
||||
mb_password_re.focus();
|
||||
return false;
|
||||
}
|
||||
|
||||
// 이름 검사
|
||||
if (mb_name == "") {
|
||||
if (mb_name.length < 1) {
|
||||
alert("이름을 입력하십시오.");
|
||||
mb_name.focus();
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
// 메일 검사
|
||||
if (mb_email1 == "") {
|
||||
if (mb_email1.length < 1) {
|
||||
alert("메일 주소를 입력하십시오.");
|
||||
mb_email1.focus();
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
// 핸드폰 번호 검사
|
||||
if (mb_hp.length < 11) {
|
||||
alert("휴대전화번호 11자리를 입력하십시오.");
|
||||
mb_hp.focus();
|
||||
return false;
|
||||
}
|
||||
if(isNaN(mb_hp)){
|
||||
alert("휴대전화번호는 숫자만 입력가능합니다.");
|
||||
mb_hp.focus();
|
||||
return false;
|
||||
}
|
||||
// 회사명 검사
|
||||
if (mb_comp == "") {
|
||||
if (mb_comp.length < 1) {
|
||||
alert("회사명을 입력하십시오");
|
||||
mb_comp.focus();
|
||||
return false;
|
||||
}
|
||||
}
|
||||
// 팀명 검사
|
||||
if (mb_comp_team == "") {
|
||||
if (mb_comp_team.length < 1) {
|
||||
alert("팀명을 입력하십시오");
|
||||
mb_comp_team.focus();
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
$.ajax({
|
||||
url : '<?php echo G5_URL ?>/bbs/mypage03.php',
|
||||
data : {
|
||||
'mb_id' : mb_id,
|
||||
'mb_password' : mb_password,
|
||||
'mb_password_re' : mb_password_re,
|
||||
'mb_name' : mb_name,
|
||||
'mb_email1' : mb_email1,
|
||||
'mb_email2' : mb_email2,
|
||||
'mb_hp' : mb_hp,
|
||||
'mb_comp' : mb_comp,
|
||||
'mb_comp_team' : mb_comp_team,
|
||||
},
|
||||
type : "POST",
|
||||
datatype : "json",
|
||||
success : function(data){
|
||||
var ss='';
|
||||
for(i=0; i<data.length; i++){
|
||||
ss=ss + data[i];
|
||||
}
|
||||
|
||||
if(ss.replace('"','').replace('"','') == "success"){
|
||||
|
||||
// $(".popup_wrap").show();
|
||||
$('.btn_close').show();
|
||||
$('#pop_login').hide();
|
||||
$('#pop_agreement').hide();
|
||||
$('#pop_join').hide();
|
||||
$('#pop_mypage01').hide();
|
||||
$('#pop_search').hide();
|
||||
$('#pop_mypage02').show();
|
||||
$('#pop_mypage03').hide();
|
||||
$('#pop_privacy').hide();
|
||||
// $('.register_fs').hide();
|
||||
// $('.join_progress .join_step').removeClass('on');
|
||||
// $('.join_progress .join_step').eq(2).addClass('on');
|
||||
// $('.messages').show();
|
||||
alert('회원정보 수정이 완료됐습니다.');
|
||||
document.getElementById("span_email").innerText=mb_email1+mb_email2;
|
||||
document.getElementById("span_hp").innerText=mb_hp;
|
||||
document.getElementById("span_comp").innerText=mb_comp;
|
||||
document.getElementById("span_comp_team").innerText=mb_comp_team;
|
||||
// $('#update_mb_id').val('');
|
||||
// $('#update_mb_password').val('');
|
||||
// $('#update_mb_password_re').val('');
|
||||
// $('#update_mb_name').val('');
|
||||
// $('#update_mb_email1').val('');
|
||||
// $('#update_mb_hp').val('');
|
||||
// $('#update_mb_comp').val('');
|
||||
// $('#update_mb_comp_team').val('');
|
||||
// $('#dupl_check_yn').val('N');
|
||||
|
||||
}else{
|
||||
alert('실패했습니다.');
|
||||
}
|
||||
},
|
||||
error : function(err){
|
||||
alert('에러');
|
||||
alert(err);
|
||||
alert(err.status);
|
||||
alert(err.statusText);
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
$('#fmyconfirmpw button[type=submit]').click(function(e){
|
||||
e.preventDefault();
|
||||
|
||||
let l_mb_password = $('#password_mypage').val();
|
||||
let l_mb_id = $('#hid_mb_id').val();
|
||||
|
||||
$.ajax({
|
||||
url : '<?php echo G5_URL ?>/bbs/mypage02.php',
|
||||
data : {
|
||||
'mb_id' : l_mb_id,
|
||||
'mb_password' : l_mb_password,
|
||||
},
|
||||
type : "POST",
|
||||
datatype : "json",
|
||||
success : function(data){
|
||||
var ss='';
|
||||
for(i=0; i<data.length; i++){
|
||||
ss=ss + data[i];
|
||||
}
|
||||
//alert(ss.replace('"','').replace('"',''));
|
||||
if(ss.replace('"','').replace('"','') == "success"){
|
||||
$('#password_mypage').val('');
|
||||
//mypage02();
|
||||
document.cookie = "tmp_1=John";
|
||||
location.href="<?php echo G5_URL ?>/bbs/forbim.php";
|
||||
}else
|
||||
{
|
||||
alert(trim(ss));
|
||||
$('#password_mypage').select();
|
||||
}
|
||||
},
|
||||
error : function(err){
|
||||
alert(err);
|
||||
alert(err.status);
|
||||
alert(err.statusText);
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
</script>
|
||||
@@ -0,0 +1,103 @@
|
||||
<?php
|
||||
if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가
|
||||
|
||||
// add_stylesheet('css 구문', 출력순서); 숫자가 작을 수록 먼저 출력됨
|
||||
add_stylesheet('<link rel="stylesheet" href="'.$member_skin_url.'/style.css">', 0);
|
||||
?>
|
||||
|
||||
<!-- 폼메일 시작 { -->
|
||||
<div id="formmail" class="new_win">
|
||||
<h1 id="win_title"><?php echo $name ?>님께 메일보내기</h1>
|
||||
|
||||
<form name="fformmail" action="./formmail_send.php" onsubmit="return fformmail_submit(this);" method="post" enctype="multipart/form-data" style="margin:0px;">
|
||||
<input type="hidden" name="to" value="<?php echo $email ?>">
|
||||
<input type="hidden" name="attach" value="2">
|
||||
<?php if ($is_member) { // 회원이면 ?>
|
||||
<input type="hidden" name="fnick" value="<?php echo get_text($member['mb_nick']) ?>">
|
||||
<input type="hidden" name="fmail" value="<?php echo $member['mb_email'] ?>">
|
||||
<?php } ?>
|
||||
|
||||
<div class="form_01 new_win_con">
|
||||
<h2 class="sound_only">메일쓰기</h2>
|
||||
<ul>
|
||||
<?php if (!$is_member) { ?>
|
||||
<li>
|
||||
<label for="fnick" class="sound_only">이름<strong>필수</strong></label>
|
||||
<input type="text" name="fnick" id="fnick" required class="frm_input full_input required" placeholder="이름">
|
||||
</li>
|
||||
<li>
|
||||
<label for="fmail" class="sound_only">E-mail<strong>필수</strong></label>
|
||||
<input type="text" name="fmail" id="fmail" required class="frm_input full_input required" placeholder="E-mail">
|
||||
</li>
|
||||
<?php } ?>
|
||||
<li>
|
||||
<label for="subject" class="sound_only">제목<strong>필수</strong></label>
|
||||
<input type="text" name="subject" id="subject" required class="frm_input full_input required" placeholder="제목">
|
||||
</li>
|
||||
<li class="chk_box">
|
||||
<span class="sound_only">형식</span>
|
||||
<input type="radio" name="type" value="0" id="type_text" checked>
|
||||
<label for="type_text"><span></span>TEXT</label>
|
||||
|
||||
<input type="radio" name="type" value="1" id="type_html">
|
||||
<label for="type_html"><span></span>HTML</label>
|
||||
|
||||
<input type="radio" name="type" value="2" id="type_both">
|
||||
<label for="type_both"><span></span>TEXT+HTML</label>
|
||||
</li>
|
||||
<li>
|
||||
<label for="content" class="sound_only">내용<strong>필수</strong></label>
|
||||
<textarea name="content" id="content" required class="required"></textarea>
|
||||
</li>
|
||||
<li class="formmail_flie">
|
||||
<div class="file_wr">
|
||||
<label for="file1" class="lb_icon"><i class="fa fa-download" aria-hidden="true"></i><span class="sound_only"> 첨부 파일 1</span></label>
|
||||
<input type="file" name="file1" id="file1" class="frm_file full_input">
|
||||
</div>
|
||||
<div class="frm_info">첨부 파일은 누락될 수 있으므로 메일을 보낸 후 파일이 첨부 되었는지 반드시 확인해 주시기 바랍니다.</div>
|
||||
</li>
|
||||
<li class="formmail_flie">
|
||||
<div class="file_wr">
|
||||
<label for="file2" class="lb_icon"><i class="fa fa-download" aria-hidden="true"></i><span class="sound_only"> 첨부 파일 2</span></label>
|
||||
<input type="file" name="file2" id="file2" class="frm_file full_input">
|
||||
</div>
|
||||
</li>
|
||||
<li>
|
||||
<span class="sound_only">자동등록방지</span>
|
||||
<?php echo captcha_html(); ?>
|
||||
</li>
|
||||
</ul>
|
||||
<div class="win_btn">
|
||||
<button type="submit" id="btn_submit" class="btn_b02 reply_btn">메일발송</button>
|
||||
<button type="button" onclick="window.close();" class="btn_close">창닫기</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
</form>
|
||||
</div>
|
||||
|
||||
<script>
|
||||
with (document.fformmail) {
|
||||
if (typeof fname != "undefined")
|
||||
fname.focus();
|
||||
else if (typeof subject != "undefined")
|
||||
subject.focus();
|
||||
}
|
||||
|
||||
function fformmail_submit(f)
|
||||
{
|
||||
<?php echo chk_captcha_js(); ?>
|
||||
|
||||
if (f.file1.value || f.file2.value) {
|
||||
// 4.00.11
|
||||
if (!confirm("첨부파일의 용량이 큰경우 전송시간이 오래 걸립니다.\n\n메일보내기가 완료되기 전에 창을 닫거나 새로고침 하지 마십시오."))
|
||||
return false;
|
||||
}
|
||||
|
||||
document.getElementById('btn_submit').disabled = true;
|
||||
|
||||
return true;
|
||||
}
|
||||
</script>
|
||||
<!-- } 폼메일 끝 -->
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 1.0 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 54 B |
@@ -0,0 +1,519 @@
|
||||
<?php include_once __DIR__ . '/asset_urls.php'; ?>
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<!-- Google tag (gtag.js) -->
|
||||
<script async src="https://www.googletagmanager.com/gtag/js?id=G-STZ2R5Q7HG"></script>
|
||||
<script>
|
||||
window.dataLayer = window.dataLayer || [];
|
||||
function gtag(){dataLayer.push(arguments);}
|
||||
gtag('js', new Date());
|
||||
|
||||
gtag('config', 'G-STZ2R5Q7HG');
|
||||
</script>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>인터페이스</title>
|
||||
<link rel="stylesheet" href="../css/reset.css"/>
|
||||
<link rel="stylesheet" href="../css/font.css"/>
|
||||
<link rel="stylesheet" href="../css/style.css"/>
|
||||
<link rel="stylesheet" href="https://unpkg.com/aos@2.3.1/dist/aos.css" type="text/css"/>
|
||||
<script src="https://unpkg.com/aos@2.3.1/dist/aos.js"></script>
|
||||
<script src="https://unpkg.com/lenis@1.1.9/dist/lenis.min.js"></script>
|
||||
<link rel="stylesheet" href="https://unpkg.com/lenis@1.1.9/dist/lenis.css">
|
||||
<script type="text/javascript" src="../js/jquery-3.6.1.min.js"></script>
|
||||
<script type="text/javascript" src="../js/jquery.mousewheel.min.js"></script>
|
||||
<script src="https://cdn.jsdelivr.net/npm/gsap@3.12.5/dist/gsap.min.js"></script>
|
||||
<script src="https://cdn.jsdelivr.net/npm/gsap@3.12.5/dist/ScrollTrigger.min.js"></script>
|
||||
<script src="https://cdn.jsdelivr.net/npm/gsap@3.12.5/dist/ScrollToPlugin.min.js"></script>
|
||||
<!-- 듀얼모니터 시퀀스애니메이션 스크립트 -->
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/gsap/2.1.3/TweenMax.min.js"></script>
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/ScrollMagic/2.0.7/ScrollMagic.min.js"></script>
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/ScrollMagic/2.0.7/plugins/animation.gsap.min.js"></script>
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/ScrollMagic/2.0.7/plugins/debug.addIndicators.min.js"></script>
|
||||
<!-- 듀얼모니터 시퀀스애니메이션 스크립트 -->
|
||||
<script type="text/javascript" src="../js/common.js"></script>
|
||||
<script type="text/javascript" src="../js/popup.js"></script>
|
||||
<script type="text/javascript" src="../js/interface.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
<!-- "js__"로 시작하는 클래스는 only 자바스크립트용입니다. -->
|
||||
<!-- XXXX js__넣어서 css 작성 금지 XXXX -->
|
||||
<div class="wrapper">
|
||||
<input id="hid_mb_id" type="hidden" value="<?echo $_SESSION['session_id'];?>"></input>
|
||||
|
||||
<!-- HEADER -->
|
||||
<?php include_once($member_skin_path.'/main_header.skin.php'); ?>
|
||||
<!-- //Header -->
|
||||
|
||||
<!-- 모든 팝업페이지 경로 -->
|
||||
<?php
|
||||
include_once($member_skin_path.'/login.skin.php');
|
||||
include_once($member_skin_path.'/mypage01.skin.php');
|
||||
include_once($member_skin_path.'/register.skin.php');
|
||||
include_once($member_skin_path.'/register_form.skin.php');
|
||||
include_once($member_skin_path.'/mypage02.skin.php');
|
||||
include_once($member_skin_path.'/mypage03.skin.php');
|
||||
include_once($member_skin_path.'/sitemap.skin.php');
|
||||
include_once($member_skin_path.'/privacy.skin.php');
|
||||
include_once($member_skin_path.'/password_lost.skin.php');
|
||||
?>
|
||||
<!-- 컨텐츠 시작 -->
|
||||
<div class="container interface">
|
||||
<div class="mouse_mark js__mouse_mark" style="display:none"><span>SCROLL</span></div>
|
||||
<div class="mouse_mark js__mouse_mark02" style="display:none"><span>SCROLL</span></div>
|
||||
<section class="intro">
|
||||
<div class="top js__dark">
|
||||
<h2 data-aos="fade-down" data-aos-duration="1000">인터페이스</h2>
|
||||
<span>사용자 경험을 바탕으로 한 UX 디자인 적용</span>
|
||||
</div>
|
||||
</section>
|
||||
<section class="route js__mouse_area">
|
||||
<div class="fix">
|
||||
<div class="keyword">
|
||||
<i class="egbim_obj k"></i>
|
||||
<span>Easy & Simple</span>
|
||||
<p>기존의 복잡한 작업환경에서 벗어나<br class="brk"> <b>쉽고 단순한 인터페이스</b>를 제공합니다.</p>
|
||||
</div>
|
||||
<div class="content">
|
||||
<ul class="subs">
|
||||
<li class="on">
|
||||
<span class="sub_tit">Interface</span>
|
||||
<span class="mid_tit">쉽고 단순한<br> <b>인터페이스</b></span>
|
||||
<span class="sub_text">
|
||||
사용자의 편의성을 최우선으로 고려하여, 기존의 복잡하고 혼란스러운 인터페이스 대신<br class="brk"> <b>간결하고 직관적인 메뉴 구성</b>을 통해 누구나 쉽게 사용 할 수 있는 사용자 친화적인 환경을 제공합니다.
|
||||
</span>
|
||||
</li>
|
||||
<li>
|
||||
<span class="sub_tit">Grouping</span>
|
||||
<span class="mid_tit"><b>기능별로 그룹화</b>하여 <br>차별화된 디자인</span>
|
||||
<span class="sub_text">
|
||||
복잡한 인터페이스를 간소화하고, <b>기능별로 메뉴를 체계적으로 그룹화</b> 하여<br class="brk"> 사용자가 필요한 기능을 쉽게 찾을 수 있도록 구성했습니다.
|
||||
</span>
|
||||
</li>
|
||||
<li>
|
||||
<span class="sub_tit">Imaging</span>
|
||||
<span class="mid_tit">정보전달 방식의<br> <b>이미지화</b></span>
|
||||
<span class="sub_text">
|
||||
객체의 속성 정보를 사용자기 쉽게 이해할 수 있도록<br class="brk"> <b>이미지와 함께 시각적으로 표현</b>하여 정보전달의 명확성를 높였습니다.
|
||||
<ul>
|
||||
<li>객체 종류에 따른 차별화된 속성정보 창 제공</li>
|
||||
<li>객체의 기본정보, 형상정보, 위치정보 구분하여 제공</li>
|
||||
<li>많은 정보의 가독성 및 가시성 증대로 작업성 향상</li>
|
||||
</ul>
|
||||
</span>
|
||||
</li>
|
||||
</ul>
|
||||
<ul class="imgs">
|
||||
<li class="on">
|
||||
<span>파일메뉴</span>
|
||||
<span>객체 주요특성 표시</span>
|
||||
<span>작업환경 설정</span>
|
||||
<span>명령어 아이콘</span>
|
||||
<span>넓은 작업공간</span>
|
||||
<div class="img_box">
|
||||
<object data="<?php echo egbim_img_url('interface_img_01.svg'); ?>"></object>
|
||||
</div>
|
||||
</li>
|
||||
<li>
|
||||
<span>객체 주요특성 메뉴</span>
|
||||
<span>홈 메뉴</span>
|
||||
<span>작업환경 아이콘바</span>
|
||||
<span>명령어 아이콘바</span>
|
||||
<div class="img_box">
|
||||
<object data="<?php echo egbim_img_url('interface_img_02.svg'); ?>"></object>
|
||||
</div>
|
||||
</li>
|
||||
<li>
|
||||
<span>객체 선택 속성창</span>
|
||||
<div class="img_box">
|
||||
<object data="<?php echo egbim_img_url('interface_img_03.svg'); ?>"></object>
|
||||
</div>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<div id="sec1"></div>
|
||||
<div id="sec2"></div>
|
||||
<div id="sec3"></div>
|
||||
</section>
|
||||
|
||||
<section class="dual full_screen" id="dualm">
|
||||
<div class="dual_top js__mouse_area02">
|
||||
<div class="sub_tit">
|
||||
듀얼모니터 작업공간 <br>
|
||||
<b>두개의 모니터 사용으로 새로운 작업공간</b>을<br class="brk"> 경험 할 수 있습니다.
|
||||
</div>
|
||||
<div id="imagesequence" class="pin" style="text-align: center;">
|
||||
<img id="myimg" src="<?php echo egbim_img_url('com_img/comp_1.png'); ?>">
|
||||
</div>
|
||||
</div>
|
||||
<div class="detail">
|
||||
<div class="sub_tit">
|
||||
<b>작업공간의 분리</b> 및 <b>연동기능</b>으로<br>
|
||||
편리하게 동시작업
|
||||
</div>
|
||||
<div class="subs">
|
||||
<div class="element">
|
||||
<div class="exam">
|
||||
<div class="exam_01">
|
||||
<span>모델공간</span>
|
||||
<img src="<?php echo egbim_img_url('dual_img01_01.png'); ?>" alt="">
|
||||
</div>
|
||||
<div class="exam_02">
|
||||
<span>레이아웃(배치)공간</span>
|
||||
<img src="<?php echo egbim_img_url('dual_img01_02.png'); ?>" alt="">
|
||||
</div>
|
||||
</div>
|
||||
<div class="sub_text">
|
||||
<span>
|
||||
레이아웃(배치)공간을 분리하고 연동기능 적용으로<br>
|
||||
모델공간과 레이아웃공간의 <b>번거로운 이동 없이 두 공간 동시 작업</b>
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="element">
|
||||
<div class="exam">
|
||||
<div class="exam_01">
|
||||
<span>작업도면</span>
|
||||
<img src="<?php echo egbim_img_url('dual_img02_01.png'); ?>" alt="">
|
||||
</div>
|
||||
<div class="exam_02">
|
||||
<span>참고도면</span>
|
||||
<img src="<?php echo egbim_img_url('dual_img02_02.png'); ?>" alt="">
|
||||
</div>
|
||||
</div>
|
||||
<div class="sub_text">
|
||||
<span>
|
||||
도면 작업시 참고해야할 도면의 작업공간을 따로 분리 하여<br>
|
||||
<b>참고도면이 변경될 걱정없이</b> 읽기전용 모드에서 작업
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
</div>
|
||||
<!-- FOOTER -->
|
||||
<?php include_once($member_skin_path.'/main_footer.skin.php'); ?>
|
||||
<!-- //FOOTER -->
|
||||
</div>
|
||||
<script>
|
||||
AOS.init();
|
||||
|
||||
const lenis = new Lenis()
|
||||
lenis.on('scroll', (e) => {
|
||||
// console.log(e)
|
||||
})
|
||||
lenis.on('scroll', ScrollTrigger.update)
|
||||
gsap.ticker.add((time)=>{
|
||||
lenis.raf(time * 1000)
|
||||
})
|
||||
gsap.ticker.lagSmoothing(0)
|
||||
|
||||
// 페이지 로드 시에도 실행하여 초기 상태 확인
|
||||
if (window.innerWidth <= 1200) {
|
||||
const element = document.getElementById('dualm');
|
||||
if (element) {
|
||||
console.log('b')
|
||||
element.removeAttribute('id');
|
||||
}
|
||||
}
|
||||
</script>
|
||||
</body>
|
||||
|
||||
<script>
|
||||
$(function(){
|
||||
// footer family site toggle
|
||||
$('.family_btn').click(function(e){
|
||||
e.stopPropagation();
|
||||
$('.family_list, .family_btn').toggleClass('family_on');
|
||||
});
|
||||
$(document).click(function(e){
|
||||
if(!$(e.target).closest('.family_wrap').length){
|
||||
$('.family_list, .family_btn').removeClass('family_on');
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
// 회원 탈퇴
|
||||
function member_leave() {
|
||||
if (confirm("회원에서 탈퇴 하시겠습니까?"))
|
||||
location.href = '<?php echo G5_BBS_URL ?>/member_leave.php';
|
||||
}
|
||||
// 회원 탈퇴
|
||||
|
||||
|
||||
let x = document.cookie;
|
||||
if(x.includes("tmp_1=John")){
|
||||
deleteCookie("tmp_1");
|
||||
$('#pop_mypage02').show();
|
||||
}
|
||||
|
||||
function deleteCookie(name) {
|
||||
document.cookie = name + "=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/egbim;";
|
||||
document.cookie = name + "=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/egbim/bbs;";
|
||||
document.cookie = name + "=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/egbim/faq;";
|
||||
document.cookie = name + "=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/egbim/qa;";
|
||||
}
|
||||
function getCookie(cname) {
|
||||
let name = cname + "=";
|
||||
let decodedCookie = decodeURIComponent(document.cookie);
|
||||
let ca = decodedCookie.split(';');
|
||||
for(let i = 0; i <ca.length; i++) {
|
||||
let c = ca[i];
|
||||
while (c.charAt(0) == ' ') {
|
||||
c = c.substring(1);
|
||||
}
|
||||
if (c.indexOf(name) == 0) {
|
||||
return c.substring(name.length, c.length);
|
||||
}
|
||||
}
|
||||
return "";
|
||||
}
|
||||
|
||||
//descope 로그인, 로그아웃 js
|
||||
function updateHeaderMenu() {
|
||||
var isLoggedIn = !!sessionStorage.getItem("sessionJwt");
|
||||
// role 체크 예시 (로그인 시 저장해놓은 값)
|
||||
var isAdmin = sessionStorage.getItem('userRole') === 'super';
|
||||
|
||||
if (isLoggedIn) {
|
||||
$('.my_join2, .my_login2').show();
|
||||
$('.my_join, .my_login').hide();
|
||||
|
||||
// 마이페이지/관리자 메뉴 동적 출력
|
||||
if (isAdmin) {
|
||||
$('#my_join2').html("<a href='http://eg-bim.com/egbim/adm/index.php' target='_blank'>관리페이지</a>");
|
||||
} else {
|
||||
$('#my_join2').html("<a href='javascript:mypage03();'>마이페이지</a>");
|
||||
}
|
||||
} else {
|
||||
$('.my_join2, .my_login2').hide();
|
||||
$('.my_join, .my_login').show();
|
||||
$('#my_join2').html(""); // 혹시모를 내용 초기화
|
||||
}
|
||||
}
|
||||
|
||||
function descopeLogout() {
|
||||
fetch('/egbim/skin/member/basic/descope_logout.php', {
|
||||
method: 'POST',
|
||||
credentials: 'include' // PHPSESSID 쿠키 전송
|
||||
})
|
||||
.then(res => {
|
||||
if (!res.ok) throw new Error('서버 로그아웃 실패');
|
||||
// 1) 로컬 저장소 정리
|
||||
// sessionStorage.removeItem("refreshJwt");
|
||||
// sessionStorage.removeItem("sessionJwt");
|
||||
// sessionStorage.removeItem("userRole");
|
||||
// sessionStorage.removeItem("userName");
|
||||
// sessionStorage.removeItem("loginId");
|
||||
|
||||
sessionStorage.clear();
|
||||
localStorage.clear();
|
||||
// 2) UI 갱신
|
||||
updateHeaderMenu();
|
||||
// 3) 로그인 페이지로 이동
|
||||
window.location.href = '/egbim/index.php';
|
||||
})
|
||||
.catch(err => {
|
||||
console.error(err);
|
||||
alert('로그아웃 중 오류가 발생했습니다.');
|
||||
});
|
||||
}
|
||||
|
||||
$(document).ready(function() {
|
||||
// 기존에 있던 updateHeaderMenu() 호출 뒤에
|
||||
$('#my_login2 a').off('click').on('click', function(e){
|
||||
e.preventDefault();
|
||||
descopeLogout();
|
||||
});
|
||||
});
|
||||
|
||||
$(document).ready(function() {
|
||||
updateHeaderMenu();
|
||||
// (필요하다면, 로그인 성공 후에도 항상 updateHeaderMenu(); 호출)
|
||||
});
|
||||
|
||||
//descope login
|
||||
$('#flogin button[type=submit]').click(function(e){
|
||||
e.preventDefault();
|
||||
let mb_id = $('#login_id').val();
|
||||
let mb_password = $('#login_pw').val();
|
||||
|
||||
$.ajax({
|
||||
url : '/egbim/skin/member/basic/descope_login.php',
|
||||
data : {
|
||||
'mb_id' : mb_id,
|
||||
'mb_password' : mb_password
|
||||
},
|
||||
type : "POST",
|
||||
dataType : "json",
|
||||
success : function(res){
|
||||
if(res.status === "ok") {
|
||||
// 토큰 저장
|
||||
// sessionStorage.setItem("refreshJwt", res.refreshJwt);
|
||||
sessionStorage.setItem("sessionJwt", res.sessionJwt);
|
||||
|
||||
// ✅ 사용자 정보 저장
|
||||
if (res.user) {
|
||||
sessionStorage.setItem("loginId", res.user.loginIds?.[0] || '');
|
||||
sessionStorage.setItem("userName", res.user.name || '');
|
||||
sessionStorage.setItem("company", res.user.customAttributes?.company || '');
|
||||
sessionStorage.setItem("familyCompany", res.user.customAttributes?.familyCompany || '');
|
||||
sessionStorage.setItem("position", res.user.customAttributes?.position || '');
|
||||
sessionStorage.setItem("team", res.user.customAttributes?.team || '');
|
||||
sessionStorage.setItem("familyUniqueKey", res.user.customAttributes?.familyUniqueKey || '');
|
||||
sessionStorage.setItem("phone", res.user.phone || '');
|
||||
}
|
||||
|
||||
// ✅ 추가: 관리자 등 정보 저장
|
||||
if(res.user && res.user.roleNames && res.user.roleNames[0])
|
||||
sessionStorage.setItem("userRole", res.user.roleNames[0]);
|
||||
else
|
||||
sessionStorage.removeItem("userRole");
|
||||
|
||||
// ✅ 로그인 후 메뉴 갱신
|
||||
updateHeaderMenu();
|
||||
|
||||
// UI 처리
|
||||
$('.popup_wrap').hide();
|
||||
$('body').css('overflow', '');
|
||||
lenis.start();
|
||||
// alert('로그인 하셨습니다.');
|
||||
} else {
|
||||
alert(res.message || "로그인 실패");
|
||||
|
||||
// 🔴 실패 횟수에 따라 안내 배너 교체
|
||||
if (res.failCount && res.failCount >= 8) {
|
||||
updateLoginBanner("fail");
|
||||
}
|
||||
}
|
||||
},
|
||||
error : function(err){
|
||||
alert(err.statusText || "통신 오류");
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
// ✅ 배너 교체 함수
|
||||
function updateLoginBanner(type = "default") {
|
||||
const $banner = $('#login_notice_banner');
|
||||
if (!$banner.length) return;
|
||||
|
||||
if (type === "default") {
|
||||
$banner.css({ background: "#063e01ff", color: "#fff" });
|
||||
$banner.find("strong").text("[로그인 시스템 변경 안내]");
|
||||
$banner.find("p.left").html(`
|
||||
더 나은 보안을 위해 2025년 8월 8일부터 로그인 시스템이 변경되었습니다.<br>
|
||||
기존 회원 또한 신규 시스템에 맞춰 재가입을 진행해주시기 바랍니다.
|
||||
`);
|
||||
$banner.find("p:last").html(`※ 로그인 및 가입 관련 문의: <strong>010-8721-7453</strong>`);
|
||||
}
|
||||
|
||||
if (type === "fail") {
|
||||
$banner.css({ background: "#6a0202ff", color: "#faf6f6ff" });
|
||||
$banner.find("strong").text("[로그인 시도 제한 안내]");
|
||||
$banner.find("p.left").html(`
|
||||
비밀번호 입력을 <strong>7회 이상 연속 실패</strong>하셨습니다.<br>
|
||||
<strong>8번째 시도부터 3분 대기</strong>가 적용됩니다.<br>
|
||||
10회 이상 실패 시 계정이 잠금 처리됩니다.
|
||||
`);
|
||||
$banner.find("p:last").text("");
|
||||
}
|
||||
}
|
||||
|
||||
//회원가입 약관동의
|
||||
// $('#fregister button[type=submit]').click(function(e){
|
||||
// e.preventDefault();
|
||||
// let agree11 = $('#agree11').val();
|
||||
// let agree21 = $('#agree21').val();
|
||||
// $.ajax({
|
||||
// url : '<?php echo G5_URL ?>/bbs/register_form.php',
|
||||
// type : "POST",
|
||||
// datatype : "json",
|
||||
// contentType: 'application/json; charset=utf-8',
|
||||
// data : {
|
||||
// 'agree11' : agree11,
|
||||
// 'agree21' : agree21
|
||||
// },
|
||||
// success : function(data){
|
||||
// var ss='';
|
||||
// for(i=0; i<data.length; i++){
|
||||
// ss=ss + data[i];
|
||||
// }
|
||||
// },
|
||||
// error : function(err){
|
||||
// alert(err);
|
||||
// }
|
||||
// });
|
||||
// });
|
||||
|
||||
// 이지빔 프로그램 회원가입 url 쿼리스트링 파싱 함수
|
||||
function getQueryString(name) {
|
||||
const intro = document.querySelector('.intro_wrap');
|
||||
intro.style.display = "none";
|
||||
const mainMask = document.querySelector('.main_mask');
|
||||
mainMask.classList.add('skip');
|
||||
// mainMask.style.aimation = 'none';
|
||||
const urlParams = new URLSearchParams(window.location.search);
|
||||
return urlParams.get(name);
|
||||
}
|
||||
|
||||
$(document).ready(function() {
|
||||
const popupParam = getQueryString('popup');
|
||||
|
||||
if (popupParam === 'signup') {
|
||||
console.log('쿼리 감지: signup → 회원가입 팝업 자동 오픈 시도');
|
||||
$('#pop_agreement').show(); // 팝업 보여주기
|
||||
|
||||
// 스크롤 잠금 (사용 중이면)
|
||||
$('body').css('overflow', 'hidden');
|
||||
if (typeof lenis !== 'undefined') {
|
||||
lenis.stop();
|
||||
}
|
||||
}
|
||||
|
||||
// 팝업 닫기 버튼 이벤트 연결
|
||||
$('#pop_agreement .btn_close').on('click', function() {
|
||||
$('#pop_agreement').hide();
|
||||
$('body').css('overflow', '');
|
||||
if (typeof lenis !== 'undefined') {
|
||||
lenis.start();
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
//이지빔 프로그램 비밀번호 재설정 url 쿼리스트링 파싱 함수
|
||||
$(document).ready(function() {
|
||||
const urlParams = new URLSearchParams(window.location.search);
|
||||
const popup = urlParams.get('popup');
|
||||
const token = urlParams.get('t');
|
||||
|
||||
if (popup === 'pwreset') {
|
||||
// 팝업 전체 열기
|
||||
$('#pop_search').show();
|
||||
$('body').css('overflow', 'hidden');
|
||||
|
||||
// 내부 컨텐츠 모두 숨기기
|
||||
$('#pop_search .popup_contents_wrap').hide();
|
||||
|
||||
if (token) {
|
||||
// 토큰이 있으면 비밀번호 재설정 단계
|
||||
if (!sessionStorage.getItem('pwreset_shown')) {
|
||||
$('#password_reset').show();
|
||||
sessionStorage.setItem('pwreset_shown', '1');
|
||||
}
|
||||
} else {
|
||||
// 토큰이 없으면 아이디 입력 단계 (첫 번째 .popup_contents_wrap)
|
||||
$('#pop_search .popup_contents_wrap').first().show();
|
||||
}
|
||||
}
|
||||
|
||||
// 닫기 버튼
|
||||
$('#pop_search .btn_close').on('click', function() {
|
||||
$('#pop_search').hide();
|
||||
$('body').css('overflow', '');
|
||||
});
|
||||
});
|
||||
</script>
|
||||
@@ -0,0 +1,674 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>인터페이스</title>
|
||||
<link rel="stylesheet" href="../css/reset.css"/>
|
||||
<link rel="stylesheet" href="../css/font.css"/>
|
||||
<link rel="stylesheet" href="../css/style.css"/>
|
||||
<link rel="stylesheet" href="https://unpkg.com/aos@2.3.1/dist/aos.css" type="text/css"/>
|
||||
<script src="https://unpkg.com/aos@2.3.1/dist/aos.js"></script>
|
||||
<script src="https://unpkg.com/lenis@1.1.9/dist/lenis.min.js"></script>
|
||||
<link rel="stylesheet" href="https://unpkg.com/lenis@1.1.9/dist/lenis.css">
|
||||
<script type="text/javascript" src="../js/jquery-3.6.1.min.js"></script>
|
||||
<script type="text/javascript" src="../js/jquery.mousewheel.min.js"></script>
|
||||
<script src="https://cdn.jsdelivr.net/npm/gsap@3.12.5/dist/gsap.min.js"></script>
|
||||
<script src="https://cdn.jsdelivr.net/npm/gsap@3.12.5/dist/ScrollTrigger.min.js"></script>
|
||||
<script src="https://cdn.jsdelivr.net/npm/gsap@3.12.5/dist/ScrollToPlugin.min.js"></script>
|
||||
<!-- 듀얼모니터 시퀀스애니메이션 스크립트 -->
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/gsap/2.1.3/TweenMax.min.js"></script>
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/ScrollMagic/2.0.7/ScrollMagic.min.js"></script>
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/ScrollMagic/2.0.7/plugins/animation.gsap.min.js"></script>
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/ScrollMagic/2.0.7/plugins/debug.addIndicators.min.js"></script>
|
||||
<!-- 듀얼모니터 시퀀스애니메이션 스크립트 -->
|
||||
<script type="text/javascript" src="../js/common.js"></script>
|
||||
<script type="text/javascript" src="../js/popup.js"></script>
|
||||
<script type="text/javascript" src="../js/interface.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
<!-- "js__"로 시작하는 클래스는 only 자바스크립트용입니다. -->
|
||||
<!-- XXXX js__넣어서 css 작성 금지 XXXX -->
|
||||
<div class="wrapper">
|
||||
<input id="hid_mb_id" type="hidden" value="<?echo $_SESSION['session_id'];?>"></input>
|
||||
<!-- HEADER -->
|
||||
<header class="js__header">
|
||||
<?php include_once($member_skin_path.'/main_header.skin.php'); ?>
|
||||
</header>
|
||||
<!-- //Header -->
|
||||
<!-- floating_menu -->
|
||||
<div class="floating_menu">
|
||||
<ul>
|
||||
<li class="floating_faq"><a href="<?php echo G5_BBS_URL ?>/faq.php">
|
||||
<i></i>
|
||||
<span>FAQ</span>
|
||||
</a></li>
|
||||
<li class="floating_buy"><a href="<?php echo G5_BBS_URL ?>/buy.php">
|
||||
<i></i>
|
||||
<span>구매하기</span>
|
||||
</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<!-- //floating_menu -->
|
||||
<!-- 모든 팝업페이지 경로 -->
|
||||
<?php
|
||||
include_once($member_skin_path.'/login.skin.php');
|
||||
include_once($member_skin_path.'/mypage01.skin.php');
|
||||
include_once($member_skin_path.'/register.skin.php');
|
||||
include_once($member_skin_path.'/register_form.skin.php');
|
||||
include_once($member_skin_path.'/mypage02.skin.php');
|
||||
include_once($member_skin_path.'/mypage03.skin.php');
|
||||
include_once($member_skin_path.'/sitemap.skin.php');
|
||||
include_once($member_skin_path.'/privacy.skin.php');
|
||||
include_once($member_skin_path.'/password_lost.skin.php');
|
||||
?>
|
||||
<!-- 컨텐츠 시작 -->
|
||||
<div class="container interface">
|
||||
<section class="intro">
|
||||
<div class="top js__dark">
|
||||
<h2 data-aos="fade-down" data-aos-duration="1000">인터페이스</h2>
|
||||
<span>사용자 경험을 바탕으로 한 UX 디자인 적용</span>
|
||||
</div>
|
||||
</section>
|
||||
<section class="route">
|
||||
<div class="fix">
|
||||
<div class="keyword">
|
||||
<i class="egbim_obj k"></i>
|
||||
<span>Easy & Simple</span>
|
||||
<p>기존의 복잡한 작업환경에서 벗어나 <b>쉽고 단순한 인터페이스</b>를 제공합니다.</p>
|
||||
</div>
|
||||
<div class="content">
|
||||
<ul class="subs">
|
||||
<li class="on">
|
||||
<span class="sub_tit">Interface</span>
|
||||
<span class="mid_tit">쉽고 단순한<br><b>인터페이스</b></span>
|
||||
<span class="sub_text">
|
||||
사용자의 편의성을 최우선으로 고려하여, 기존의 복잡하고 혼란스러운 인터페이스 대신 <b>간결하고 직관적인 메뉴 구성</b>을 통해 누구나 쉽게 사용 할 수 있는 사용자 친화적인 환경을 제공합니다.
|
||||
</span>
|
||||
</li>
|
||||
<li>
|
||||
<span class="sub_tit">Grouping</span>
|
||||
<span class="mid_tit"><b>기능별로 그룹화</b>하여<br>차별화된 디자인</span>
|
||||
<span class="sub_text">
|
||||
복잡한 인터페이스를 간소화하고, <b>기능별로 메뉴를 체계적으로 그룹화</b> 하여 사용자가 필요한 기능을 쉽게 찾을 수 있도록 구성했습니다.
|
||||
</span>
|
||||
</li>
|
||||
<li>
|
||||
<span class="sub_tit">Imaging</span>
|
||||
<span class="mid_tit">정보전달 방식의<br><b>이미지화</b></span>
|
||||
<span class="sub_text">
|
||||
객체의 속성 정보를 사용자기 쉽게 이해할 수 있도로 <b>이미지와 함께 시각적으로 표현</b>하여 정보전달의 명확성를 높였습니다
|
||||
<ul>
|
||||
<li>객체 종류에 따른 차별화된 속성정보 창 제공</li>
|
||||
<li>객체의 기본정보, 형상정보, 위치정보 구분하여 제공</li>
|
||||
<li>많은 정보의 가독성 및 가시성 증대로 작업성 향상</li>
|
||||
</ul>
|
||||
</span>
|
||||
</li>
|
||||
</ul>
|
||||
<ul class="imgs">
|
||||
<li class="on"><img src="../img/interface_img_01.svg" alt=""></li>
|
||||
<li><img src="../img/interface_img_02.svg" alt=""></li>
|
||||
<li><img src="../img/interface_img_03.svg" alt=""></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<div id="sec1"></div>
|
||||
<div id="sec2"></div>
|
||||
<div id="sec3"></div>
|
||||
</section>
|
||||
|
||||
<section class="dual" id="dualm">
|
||||
<div class="content">
|
||||
<div class="fix">
|
||||
<div class="sub_tit">
|
||||
듀얼모니터 작업공간 <br>
|
||||
<b>두개의 모니터 사용으로 새로운 작업공간</b>을 경험 할 수 있습니다.
|
||||
</div>
|
||||
|
||||
<div id="imagesequence" class="pin" style="text-align: center;">
|
||||
<img id="myimg" src="../img/com_img/comp_1.png" >
|
||||
</div>
|
||||
<div class="detail">
|
||||
<div class="sub_tit">
|
||||
<b>작업공간의 분리</b> 및 <b>연동기능</b>으로<br>
|
||||
편리하게 동시작업
|
||||
</div>
|
||||
<div class="subs">
|
||||
<div class="element">
|
||||
<div class="exam">
|
||||
<div class="exam_01">
|
||||
<span>모델공간</span>
|
||||
<img src="../img/dual_img01_01.png" alt="">
|
||||
</div>
|
||||
<div class="exam_02">
|
||||
<span>레이아웃(배치)공간</span>
|
||||
<img src="../img/dual_img01_02.png" alt="">
|
||||
</div>
|
||||
</div>
|
||||
<div class="sub_text">
|
||||
<span>
|
||||
레이아웃(배치)공간을 분리하고 연동기능 적용으로<br>
|
||||
모델공간과 레이아웃공간의 <b>번거로운 이동 없이 두 공간 동시 작업</b>
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="element">
|
||||
<div class="exam">
|
||||
<div class="exam_01">
|
||||
<span>작업도면</span>
|
||||
<img src="../img/dual_img02_01.png" alt="">
|
||||
</div>
|
||||
<div class="exam_02">
|
||||
<span>참고도면</span>
|
||||
<img src="../img/dual_img02_02.png" alt="">
|
||||
</div>
|
||||
</div>
|
||||
<div class="sub_text">
|
||||
<span>
|
||||
도면 작업시 참고해야할 도면의 작업공간을 따로 분리 하여<br>
|
||||
<b>참고도면이 변경될 걱정없이</b> 읽기전용 모드에서 작업
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</section>
|
||||
</div>
|
||||
<!-- FOOTER -->
|
||||
<button class="btn_top js__top" onclick="window.scrollTo(0,0);"><div class="arrow"></div></button>
|
||||
<footer class="footer_off">
|
||||
<?php include_once($member_skin_path.'/main_footer.skin.php'); ?>
|
||||
</footer>
|
||||
<!-- //FOOTER -->
|
||||
</div>
|
||||
<script>
|
||||
AOS.init();
|
||||
|
||||
const lenis = new Lenis()
|
||||
lenis.on('scroll', (e) => {
|
||||
// console.log(e)
|
||||
})
|
||||
lenis.on('scroll', ScrollTrigger.update)
|
||||
gsap.ticker.add((time)=>{
|
||||
lenis.raf(time * 1000)
|
||||
})
|
||||
gsap.ticker.lagSmoothing(0)
|
||||
</script>
|
||||
</body>
|
||||
|
||||
<script>
|
||||
// 회원 탈퇴
|
||||
function member_leave() {
|
||||
if (confirm("회원에서 탈퇴 하시겠습니까?"))
|
||||
location.href = '<?php echo G5_BBS_URL ?>/member_leave.php';
|
||||
}
|
||||
// 회원 탈퇴
|
||||
|
||||
if($('#hid_mb_id').val()==''){
|
||||
document.getElementById('my_join2').style.display = 'none';
|
||||
document.getElementById('my_login2').style.display = 'none';
|
||||
document.getElementById('my_join').style.display = '';
|
||||
document.getElementById('my_login').style.display = '';
|
||||
}else{
|
||||
document.getElementById('my_join2').style.display = '';
|
||||
document.getElementById('my_login2').style.display = '';
|
||||
document.getElementById('my_join').style.display = 'none';
|
||||
document.getElementById('my_login').style.display = 'none';
|
||||
}
|
||||
let x = document.cookie;
|
||||
if(x == "tmp_1=John"){
|
||||
deleteCookie("tmp_1");
|
||||
$('#pop_mypage02').show();
|
||||
}
|
||||
function deleteCookie(name) {
|
||||
document.cookie = name + "=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/egbim;";
|
||||
document.cookie = name + "=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/egbim/bbs;";
|
||||
document.cookie = name + "=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/egbim/faq;";
|
||||
document.cookie = name + "=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/egbim/qa;";
|
||||
}
|
||||
function getCookie(cname) {
|
||||
let name = cname + "=";
|
||||
let decodedCookie = decodeURIComponent(document.cookie);
|
||||
let ca = decodedCookie.split(';');
|
||||
for(let i = 0; i <ca.length; i++) {
|
||||
let c = ca[i];
|
||||
while (c.charAt(0) == ' ') {
|
||||
c = c.substring(1);
|
||||
}
|
||||
if (c.indexOf(name) == 0) {
|
||||
return c.substring(name.length, c.length);
|
||||
}
|
||||
}
|
||||
return "";
|
||||
}
|
||||
//alert(getCookie("tmp_1"));
|
||||
//로그인
|
||||
$('#flogin button[type=submit]').click(function(e){
|
||||
e.preventDefault();
|
||||
let mb_id = $('#login_id').val();
|
||||
let mb_password = $('#login_pw').val();
|
||||
//alert('<?php echo G5_URL ?>/bbs/login.php');
|
||||
$.ajax({
|
||||
url : '<?php echo G5_URL ?>/bbs/login_check_tova.php',
|
||||
data : {
|
||||
'mb_id' : mb_id,
|
||||
'mb_password' : mb_password
|
||||
},
|
||||
type : "POST",
|
||||
datatype : "json",
|
||||
success : function(data){
|
||||
var ss='';
|
||||
for(i=0; i<data.length; i++){
|
||||
ss=ss + data[i];
|
||||
}
|
||||
//alert(ss.replace('"','').replace('"',''));
|
||||
if(ss.replace('"','').replace('"','') == "success" || ss.replace('"','').replace('"','') == "super"){
|
||||
//$(".popup_wrap").show();
|
||||
$('.btn_close').hide();
|
||||
$('#pop_login').hide();
|
||||
$('#hid_mb_id').val(mb_id);
|
||||
document.getElementById('my_join2').style.display = '';
|
||||
document.getElementById('my_login2').style.display = '';
|
||||
document.getElementById('my_join').style.display = 'none';
|
||||
document.getElementById('my_login').style.display = 'none';
|
||||
//location.href="<?php echo G5_URL ?>/bbs/session.php?id="+mb_id;
|
||||
if(ss.replace('"','').replace('"','') == "super"){
|
||||
$('#my_join2').html("<a href='http://eg-bim.com/egbim/adm/index.php' target='_blank'>관리페이지</a>");
|
||||
}else{
|
||||
$('#my_join2').html("<a href='javascript:mypage01();'>마이페이지</a>");
|
||||
}
|
||||
}else
|
||||
{
|
||||
alert(trim(ss));
|
||||
}
|
||||
},
|
||||
error : function(err){
|
||||
//alert(err);
|
||||
alert(err.status);
|
||||
alert(err.statusText);
|
||||
}
|
||||
});
|
||||
});
|
||||
//회원가입 약관동의
|
||||
$('#fregister button[type=submit]').click(function(e){
|
||||
e.preventDefault();
|
||||
let agree11 = $('#agree11').val();
|
||||
let agree21 = $('#agree21').val();
|
||||
$.ajax({
|
||||
url : '<?php echo G5_URL ?>/bbs/register_form.php',
|
||||
type : "POST",
|
||||
datatype : "json",
|
||||
contentType: 'application/json; charset=utf-8',
|
||||
data : {
|
||||
'agree11' : agree11,
|
||||
'agree21' : agree21
|
||||
},
|
||||
success : function(data){
|
||||
var ss='';
|
||||
for(i=0; i<data.length; i++){
|
||||
ss=ss + data[i];
|
||||
}
|
||||
},
|
||||
error : function(err){
|
||||
alert(err);
|
||||
}
|
||||
});
|
||||
});
|
||||
//회원가입 정보입력
|
||||
$('#fregisterform button[type=submit]').click(function(e){
|
||||
e.preventDefault();
|
||||
|
||||
let mb_id = $('#reg_mb_id').val();
|
||||
let mb_password = $('#reg_mb_password').val();
|
||||
let mb_password_re = $('#reg_mb_password_re').val();
|
||||
let mb_name = $('#reg_mb_name').val();
|
||||
let mb_email1 = $('#reg_mb_email1').val();
|
||||
let mb_email2 = $('#mb_email2').val();
|
||||
let reg_domain2 = $('#register_domain2').val();
|
||||
let mb_hp = $('#reg_mb_hp').val();
|
||||
let mb_comp = $('#reg_mb_comp').val();
|
||||
let mb_comp_team = $('#reg_mb_comp_team').val();
|
||||
//alert(mb_password+' '+mb_password_re+' '+mb_name+' '+mb_email1+' '+mb_email2+' '+mb_hp+' '+mb_comp+' '+mb_comp_team);
|
||||
if (mb_id.length < 4) {
|
||||
alert("아이디를 4글자 이상 입력하십시오.");
|
||||
mb_id.focus();
|
||||
return false;
|
||||
}
|
||||
var special_pattern = /[`~!@#$%^&*|\\\'\";:\/?]/gi
|
||||
if (special_pattern.test(mb_id) == true) {
|
||||
alert("아이디는 특수문자를 사용할수 없습니다.");
|
||||
mb_id.focus();
|
||||
return false;
|
||||
}
|
||||
|
||||
// 비밀번호 검사
|
||||
if(!/^(?=.*[a-zA-Z])(?=.*[!@#$%^*+=-])(?=.*[0-9]).{8,25}$/.test(mb_password)){
|
||||
alert('비밀번호는 숫자+영문자+특수문자 조합으로 8자리 이상 사용해야 합니다.');
|
||||
mb_password.focus();
|
||||
return false;
|
||||
}
|
||||
// if (mb_password_re.length < 8 || mb_password.length < 8) {
|
||||
// alert("비밀번호를 8글자 이상 입력하십시오.");
|
||||
// mb_password.focus();
|
||||
// return false;
|
||||
// }
|
||||
|
||||
// 비밀번호 & 2차비밀번호 검사
|
||||
if (mb_password != mb_password_re) {
|
||||
alert("비밀번호가 같지 않습니다.");
|
||||
mb_password_re.focus();
|
||||
return false;
|
||||
}
|
||||
|
||||
// 이름 검사
|
||||
if (mb_name == "") {
|
||||
if (mb_name.length < 1) {
|
||||
alert("이름을 입력하십시오.");
|
||||
mb_name.focus();
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
// 메일 검사
|
||||
if (mb_email1 == "") {
|
||||
if (mb_email1.length < 1) {
|
||||
alert("메일 주소를 입력하십시오.");
|
||||
mb_email1.focus();
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
if (mb_email2 == "type"){
|
||||
mb_email2 = '@' + reg_domain2;
|
||||
}
|
||||
|
||||
// 핸드폰 번호 검사
|
||||
if (mb_hp.length < 11) {
|
||||
alert("휴대전화번호 11자리를 입력하십시오.");
|
||||
mb_hp.focus();
|
||||
return false;
|
||||
}
|
||||
if(isNaN(mb_hp)){
|
||||
alert("휴대전화번호는 숫자만 입력가능합니다.");
|
||||
mb_hp.focus();
|
||||
return false;
|
||||
}
|
||||
// 회사명 검사
|
||||
if (mb_comp == "") {
|
||||
if (mb_comp.length < 1) {
|
||||
alert("회사명을 입력하십시오");
|
||||
mb_comp.focus();
|
||||
return false;
|
||||
}
|
||||
}
|
||||
// 팀명 검사
|
||||
if (mb_comp_team == "") {
|
||||
if (mb_comp_team.length < 1) {
|
||||
alert("팀명을 입력하십시오");
|
||||
mb_comp_team.focus();
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
$.ajax({
|
||||
url : '<?php echo G5_URL ?>/bbs/register_form_update.php',
|
||||
data : {
|
||||
'mb_id' : mb_id,
|
||||
'mb_password' : mb_password,
|
||||
'mb_password_re' : mb_password_re,
|
||||
'mb_name' : mb_name,
|
||||
'mb_email1' : mb_email1,
|
||||
'mb_email2' : mb_email2,
|
||||
'mb_hp' : mb_hp,
|
||||
'mb_comp' : mb_comp,
|
||||
'mb_comp_team' : mb_comp_team,
|
||||
},
|
||||
type : "POST",
|
||||
datatype : "json",
|
||||
success : function(data){
|
||||
var ss='';
|
||||
for(i=0; i<data.length; i++){
|
||||
ss=ss + data[i];
|
||||
}
|
||||
if(ss){
|
||||
// $(".popup_wrap").show();
|
||||
$('.btn_close').hide();
|
||||
$('#pop_login').hide();
|
||||
$('#pop_agreement').hide();
|
||||
$('#pop_join').hide();
|
||||
$('#pop_mypage01').hide();
|
||||
$('#pop_search').hide();
|
||||
$('#pop_mypage02').hide();
|
||||
$('#pop_mypage03').hide();
|
||||
$('#pop_privacy').hide();
|
||||
// $('.register_fs').hide();
|
||||
// $('.join_progress .join_step').removeClass('on');
|
||||
// $('.join_progress .join_step').eq(2).addClass('on');
|
||||
// $('.messages').show();
|
||||
alert('회원가입이 완료됐습니다.\n다시 로그인 해주세요');
|
||||
$('#reg_mb_id').val('');
|
||||
$('#reg_mb_password').val('');
|
||||
$('#reg_mb_password_re').val('');
|
||||
$('#reg_mb_name').val('');
|
||||
$('#reg_mb_email1').val('');
|
||||
$('#reg_mb_hp').val('');
|
||||
$('#reg_mb_comp').val('');
|
||||
$('#reg_mb_comp_team').val('');
|
||||
$('#dupl_check_yn').val('N');
|
||||
|
||||
}else{
|
||||
alert('실패했습니다.');
|
||||
}
|
||||
},
|
||||
error : function(err){
|
||||
alert('에러');
|
||||
alert(err);
|
||||
alert(err.status);
|
||||
alert(err.statusText);
|
||||
}
|
||||
});
|
||||
// $.removeCookie(mb_id,{path:'<?php //echo G5_URL ?>/bbs/register_form_update.php'});
|
||||
});
|
||||
|
||||
//회원정보 수정
|
||||
$('#fregisterform_up button[type=submit]').click(function(e){
|
||||
e.preventDefault();
|
||||
let mb_id = $('#update_mb_id').val();
|
||||
let mb_password = $('#update_mb_password').val();
|
||||
let mb_password_re = $('#update_mb_password_re').val();
|
||||
let mb_name = $('#update_mb_name').val();
|
||||
let mb_email1 = $('#update_mb_email1').val();
|
||||
let mb_email2 = $('#update_mb_email2').val();
|
||||
let update_domain2 = $('#update_domain2').val();
|
||||
if (mb_email2 == "type"){
|
||||
mb_email2 = '@' + update_domain2;
|
||||
}
|
||||
let mb_hp = $('#update_mb_hp').val();
|
||||
let mb_comp = $('#update_mb_comp').val();
|
||||
let mb_comp_team = $('#update_mb_comp_team').val();
|
||||
|
||||
//alert(mb_password+' '+mb_password_re+' '+mb_name+' '+mb_email1+' '+mb_email2+' '+mb_hp+' '+mb_comp+' '+mb_comp_team);
|
||||
if (mb_id.length < 4) {
|
||||
alert('1');
|
||||
alert("아이디를 4글자 이상 입력하십시오.");
|
||||
mb_id.focus();
|
||||
return false;
|
||||
}
|
||||
var special_pattern = /[`~!@#$%^&*|\\\'\";:\/?]/gi
|
||||
if (special_pattern.test(mb_id) == true) {
|
||||
alert("아이디는 특수문자를 사용할수 없습니다.");
|
||||
mb_id.focus();
|
||||
return false;
|
||||
}
|
||||
|
||||
// 비밀번호 검사
|
||||
if(!/^(?=.*[a-zA-Z])(?=.*[!@#$%^*+=-])(?=.*[0-9]).{8,25}$/.test(mb_password)){
|
||||
alert('비밀번호는 숫자+영문자+특수문자 조합으로 8자리 이상 사용해야 합니다.');
|
||||
mb_password.focus();
|
||||
return false;
|
||||
}
|
||||
// if (mb_password_re.length < 8 || mb_password.length < 8) {
|
||||
// alert("비밀번호를 8글자 이상 입력하십시오.");
|
||||
// mb_password.focus();
|
||||
// return false;
|
||||
// }
|
||||
|
||||
// 비밀번호 & 2차비밀번호 검사
|
||||
if (mb_password != mb_password_re) {
|
||||
alert(mb_password_re);
|
||||
alert("비밀번호가 같지 않습니다.");
|
||||
mb_password_re.focus();
|
||||
return false;
|
||||
}
|
||||
|
||||
// 이름 검사
|
||||
if (mb_name == "") {
|
||||
if (mb_name.length < 1) {
|
||||
alert("이름을 입력하십시오.");
|
||||
mb_name.focus();
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
// 메일 검사
|
||||
if (mb_email1 == "") {
|
||||
if (mb_email1.length < 1) {
|
||||
alert("메일 주소를 입력하십시오.");
|
||||
mb_email1.focus();
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
// 핸드폰 번호 검사
|
||||
if (mb_hp.length < 11) {
|
||||
alert("휴대전화번호 11자리를 입력하십시오.");
|
||||
mb_hp.focus();
|
||||
return false;
|
||||
}
|
||||
if(isNaN(mb_hp)){
|
||||
alert("휴대전화번호는 숫자만 입력가능합니다.");
|
||||
mb_hp.focus();
|
||||
return false;
|
||||
}
|
||||
// 회사명 검사
|
||||
if (mb_comp == "") {
|
||||
if (mb_comp.length < 1) {
|
||||
alert("회사명을 입력하십시오");
|
||||
mb_comp.focus();
|
||||
return false;
|
||||
}
|
||||
}
|
||||
// 팀명 검사
|
||||
if (mb_comp_team == "") {
|
||||
if (mb_comp_team.length < 1) {
|
||||
alert("팀명을 입력하십시오");
|
||||
mb_comp_team.focus();
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
$.ajax({
|
||||
url : '<?php echo G5_URL ?>/bbs/mypage03.php',
|
||||
data : {
|
||||
'mb_id' : mb_id,
|
||||
'mb_password' : mb_password,
|
||||
'mb_password_re' : mb_password_re,
|
||||
'mb_name' : mb_name,
|
||||
'mb_email1' : mb_email1,
|
||||
'mb_email2' : mb_email2,
|
||||
'mb_hp' : mb_hp,
|
||||
'mb_comp' : mb_comp,
|
||||
'mb_comp_team' : mb_comp_team,
|
||||
},
|
||||
type : "POST",
|
||||
datatype : "json",
|
||||
success : function(data){
|
||||
var ss='';
|
||||
for(i=0; i<data.length; i++){
|
||||
ss=ss + data[i];
|
||||
}
|
||||
|
||||
if(ss.replace('"','').replace('"','') == "success"){
|
||||
|
||||
// $(".popup_wrap").show();
|
||||
$('.btn_close').show();
|
||||
$('#pop_login').hide();
|
||||
$('#pop_agreement').hide();
|
||||
$('#pop_join').hide();
|
||||
$('#pop_mypage01').hide();
|
||||
$('#pop_search').hide();
|
||||
$('#pop_mypage02').show();
|
||||
$('#pop_mypage03').hide();
|
||||
$('#pop_privacy').hide();
|
||||
// $('.register_fs').hide();
|
||||
// $('.join_progress .join_step').removeClass('on');
|
||||
// $('.join_progress .join_step').eq(2).addClass('on');
|
||||
// $('.messages').show();
|
||||
alert('회원정보 수정이 완료됐습니다.');
|
||||
// $('#update_mb_id').val('');
|
||||
// $('#update_mb_password').val('');
|
||||
// $('#update_mb_password_re').val('');
|
||||
// $('#update_mb_name').val('');
|
||||
// $('#update_mb_email1').val('');
|
||||
// $('#update_mb_hp').val('');
|
||||
// $('#update_mb_comp').val('');
|
||||
// $('#update_mb_comp_team').val('');
|
||||
// $('#dupl_check_yn').val('N');
|
||||
|
||||
}else{
|
||||
alert('실패했습니다.');
|
||||
}
|
||||
},
|
||||
error : function(err){
|
||||
alert('에러');
|
||||
alert(err);
|
||||
alert(err.status);
|
||||
alert(err.statusText);
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
$('#fmyconfirmpw button[type=submit]').click(function(e){
|
||||
e.preventDefault();
|
||||
|
||||
let l_mb_password = $('#password_mypage').val();
|
||||
let l_mb_id = $('#hid_mb_id').val();
|
||||
|
||||
$.ajax({
|
||||
url : '<?php echo G5_URL ?>/bbs/mypage02.php',
|
||||
data : {
|
||||
'mb_id' : l_mb_id,
|
||||
'mb_password' : l_mb_password,
|
||||
},
|
||||
type : "POST",
|
||||
datatype : "json",
|
||||
success : function(data){
|
||||
var ss='';
|
||||
for(i=0; i<data.length; i++){
|
||||
ss=ss + data[i];
|
||||
}
|
||||
//alert(ss.replace('"','').replace('"',''));
|
||||
if(ss.replace('"','').replace('"','') == "success"){
|
||||
$('#password_mypage').val('');
|
||||
//mypage02();
|
||||
document.cookie = "tmp_1=John";
|
||||
location.href="<?php echo G5_URL ?>/bbs/interface.php";
|
||||
}else
|
||||
{
|
||||
alert(trim(ss));
|
||||
$('#password_mypage').select();
|
||||
}
|
||||
},
|
||||
error : function(err){
|
||||
alert(err);
|
||||
alert(err.status);
|
||||
alert(err.statusText);
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
</script>
|
||||
@@ -0,0 +1,691 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<!-- Google tag (gtag.js) -->
|
||||
<script async src="https://www.googletagmanager.com/gtag/js?id=G-STZ2R5Q7HG"></script>
|
||||
<script>
|
||||
window.dataLayer = window.dataLayer || [];
|
||||
function gtag(){dataLayer.push(arguments);}
|
||||
gtag('js', new Date());
|
||||
|
||||
gtag('config', 'G-STZ2R5Q7HG');
|
||||
</script>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>인터페이스</title>
|
||||
<link rel="stylesheet" href="../css/reset.css"/>
|
||||
<link rel="stylesheet" href="../css/font.css"/>
|
||||
<link rel="stylesheet" href="../css/style.css"/>
|
||||
<link rel="stylesheet" href="https://unpkg.com/aos@2.3.1/dist/aos.css" type="text/css"/>
|
||||
<script src="https://unpkg.com/aos@2.3.1/dist/aos.js"></script>
|
||||
<script src="https://unpkg.com/lenis@1.1.9/dist/lenis.min.js"></script>
|
||||
<link rel="stylesheet" href="https://unpkg.com/lenis@1.1.9/dist/lenis.css">
|
||||
<script type="text/javascript" src="../js/jquery-3.6.1.min.js"></script>
|
||||
<script type="text/javascript" src="../js/jquery.mousewheel.min.js"></script>
|
||||
<script src="https://cdn.jsdelivr.net/npm/gsap@3.12.5/dist/gsap.min.js"></script>
|
||||
<script src="https://cdn.jsdelivr.net/npm/gsap@3.12.5/dist/ScrollTrigger.min.js"></script>
|
||||
<script src="https://cdn.jsdelivr.net/npm/gsap@3.12.5/dist/ScrollToPlugin.min.js"></script>
|
||||
<!-- 듀얼모니터 시퀀스애니메이션 스크립트 -->
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/gsap/2.1.3/TweenMax.min.js"></script>
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/ScrollMagic/2.0.7/ScrollMagic.min.js"></script>
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/ScrollMagic/2.0.7/plugins/animation.gsap.min.js"></script>
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/ScrollMagic/2.0.7/plugins/debug.addIndicators.min.js"></script>
|
||||
<!-- 듀얼모니터 시퀀스애니메이션 스크립트 -->
|
||||
<script type="text/javascript" src="../js/common.js"></script>
|
||||
<script type="text/javascript" src="../js/popup.js"></script>
|
||||
<script type="text/javascript" src="../js/interface.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
<!-- "js__"로 시작하는 클래스는 only 자바스크립트용입니다. -->
|
||||
<!-- XXXX js__넣어서 css 작성 금지 XXXX -->
|
||||
<div class="wrapper">
|
||||
<input id="hid_mb_id" type="hidden" value="<?echo $_SESSION['session_id'];?>"></input>
|
||||
<!-- HEADER -->
|
||||
<header class="js__header">
|
||||
<?php include_once($member_skin_path.'/main_header.skin.php'); ?>
|
||||
</header>
|
||||
<!-- //Header -->
|
||||
<!-- floating_menu -->
|
||||
<div class="floating_menu">
|
||||
<ul>
|
||||
<li class="floating_faq"><a href="<?php echo G5_BBS_URL ?>/faq.php">
|
||||
<i></i>
|
||||
<span>FAQ</span>
|
||||
</a></li>
|
||||
<li class="floating_buy"><a href="<?php echo G5_BBS_URL ?>/buy.php">
|
||||
<i></i>
|
||||
<span>구매하기</span>
|
||||
</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<!-- //floating_menu -->
|
||||
<!-- 모든 팝업페이지 경로 -->
|
||||
<?php
|
||||
include_once($member_skin_path.'/login.skin.php');
|
||||
include_once($member_skin_path.'/mypage01.skin.php');
|
||||
include_once($member_skin_path.'/register.skin.php');
|
||||
include_once($member_skin_path.'/register_form.skin.php');
|
||||
include_once($member_skin_path.'/mypage02.skin.php');
|
||||
include_once($member_skin_path.'/mypage03.skin.php');
|
||||
include_once($member_skin_path.'/sitemap.skin.php');
|
||||
include_once($member_skin_path.'/privacy.skin.php');
|
||||
include_once($member_skin_path.'/password_lost.skin.php');
|
||||
?>
|
||||
<!-- 컨텐츠 시작 -->
|
||||
<div class="container interface">
|
||||
<div class="mouse_mark js__mouse_mark" style="display:none"><span>SCROLL</span></div>
|
||||
<div class="mouse_mark js__mouse_mark02" style="display:none"><span>SCROLL</span></div>
|
||||
<section class="intro">
|
||||
<div class="top js__dark">
|
||||
<h2 data-aos="fade-down" data-aos-duration="1000">인터페이스</h2>
|
||||
<span>사용자 경험을 바탕으로 한 UX 디자인 적용</span>
|
||||
</div>
|
||||
</section>
|
||||
<section class="route js__mouse_area">
|
||||
<div class="fix">
|
||||
<div class="keyword">
|
||||
<i class="egbim_obj k"></i>
|
||||
<span>Easy & Simple</span>
|
||||
<p>기존의 복잡한 작업환경에서 벗어나 <b>쉽고 단순한 인터페이스</b>를 제공합니다.</p>
|
||||
</div>
|
||||
<div class="content">
|
||||
<ul class="subs">
|
||||
<li class="on">
|
||||
<span class="sub_tit">Interface</span>
|
||||
<span class="mid_tit">쉽고 단순한<br><b>인터페이스</b></span>
|
||||
<span class="sub_text">
|
||||
사용자의 편의성을 최우선으로 고려하여, 기존의 복잡하고 혼란스러운 인터페이스 대신 <b>간결하고 직관적인 메뉴 구성</b>을 통해 누구나 쉽게 사용 할 수 있는 사용자 친화적인 환경을 제공합니다.
|
||||
</span>
|
||||
</li>
|
||||
<li>
|
||||
<span class="sub_tit">Grouping</span>
|
||||
<span class="mid_tit"><b>기능별로 그룹화</b>하여<br>차별화된 디자인</span>
|
||||
<span class="sub_text">
|
||||
복잡한 인터페이스를 간소화하고, <b>기능별로 메뉴를 체계적으로 그룹화</b> 하여 사용자가 필요한 기능을 쉽게 찾을 수 있도록 구성했습니다.
|
||||
</span>
|
||||
</li>
|
||||
<li>
|
||||
<span class="sub_tit">Imaging</span>
|
||||
<span class="mid_tit">정보전달 방식의<br><b>이미지화</b></span>
|
||||
<span class="sub_text">
|
||||
객체의 속성 정보를 사용자기 쉽게 이해할 수 있도로 <b>이미지와 함께 시각적으로 표현</b>하여 정보전달의 명확성를 높였습니다
|
||||
<ul>
|
||||
<li>객체 종류에 따른 차별화된 속성정보 창 제공</li>
|
||||
<li>객체의 기본정보, 형상정보, 위치정보 구분하여 제공</li>
|
||||
<li>많은 정보의 가독성 및 가시성 증대로 작업성 향상</li>
|
||||
</ul>
|
||||
</span>
|
||||
</li>
|
||||
</ul>
|
||||
<ul class="imgs">
|
||||
<li class="on"><img src="../img/interface_img_01.svg" alt=""></li>
|
||||
<li><img src="../img/interface_img_02.svg" alt=""></li>
|
||||
<li><img src="../img/interface_img_03.svg" alt=""></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<div id="sec1"></div>
|
||||
<div id="sec2"></div>
|
||||
<div id="sec3"></div>
|
||||
</section>
|
||||
|
||||
<section class="dual" id="dualm">
|
||||
<div class="content">
|
||||
<div class="fix">
|
||||
<div class="dual_top js__mouse_area02">
|
||||
<div class="sub_tit">
|
||||
듀얼모니터 작업공간 <br>
|
||||
<b>두개의 모니터 사용으로 새로운 작업공간</b>을 경험 할 수 있습니다.
|
||||
</div>
|
||||
|
||||
<div id="imagesequence" class="pin" style="text-align: center;">
|
||||
<img id="myimg" src="../img/com_img/comp_1.png" >
|
||||
</div>
|
||||
</div>
|
||||
<div class="detail">
|
||||
<div class="sub_tit">
|
||||
<b>작업공간의 분리</b> 및 <b>연동기능</b>으로<br>
|
||||
편리하게 동시작업
|
||||
</div>
|
||||
<div class="subs">
|
||||
<div class="element">
|
||||
<div class="exam">
|
||||
<div class="exam_01">
|
||||
<span>모델공간</span>
|
||||
<img src="../img/dual_img01_01.png" alt="">
|
||||
</div>
|
||||
<div class="exam_02">
|
||||
<span>레이아웃(배치)공간</span>
|
||||
<img src="../img/dual_img01_02.png" alt="">
|
||||
</div>
|
||||
</div>
|
||||
<div class="sub_text">
|
||||
<span>
|
||||
레이아웃(배치)공간을 분리하고 연동기능 적용으로<br>
|
||||
모델공간과 레이아웃공간의 <b>번거로운 이동 없이 두 공간 동시 작업</b>
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="element">
|
||||
<div class="exam">
|
||||
<div class="exam_01">
|
||||
<span>작업도면</span>
|
||||
<img src="../img/dual_img02_01.png" alt="">
|
||||
</div>
|
||||
<div class="exam_02">
|
||||
<span>참고도면</span>
|
||||
<img src="../img/dual_img02_02.png" alt="">
|
||||
</div>
|
||||
</div>
|
||||
<div class="sub_text">
|
||||
<span>
|
||||
도면 작업시 참고해야할 도면의 작업공간을 따로 분리 하여<br>
|
||||
<b>참고도면이 변경될 걱정없이</b> 읽기전용 모드에서 작업
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</section>
|
||||
</div>
|
||||
<!-- FOOTER -->
|
||||
<button class="btn_top js__top" onclick="window.scrollTo(0,0);"><div class="arrow"></div></button>
|
||||
<footer class="footer_off">
|
||||
<?php include_once($member_skin_path.'/main_footer.skin.php'); ?>
|
||||
</footer>
|
||||
<!-- //FOOTER -->
|
||||
</div>
|
||||
<script>
|
||||
AOS.init();
|
||||
|
||||
const lenis = new Lenis()
|
||||
lenis.on('scroll', (e) => {
|
||||
// console.log(e)
|
||||
})
|
||||
lenis.on('scroll', ScrollTrigger.update)
|
||||
gsap.ticker.add((time)=>{
|
||||
lenis.raf(time * 1000)
|
||||
})
|
||||
gsap.ticker.lagSmoothing(0)
|
||||
</script>
|
||||
</body>
|
||||
|
||||
<script>
|
||||
// 회원 탈퇴
|
||||
function member_leave() {
|
||||
if (confirm("회원에서 탈퇴 하시겠습니까?"))
|
||||
location.href = '<?php echo G5_BBS_URL ?>/member_leave.php';
|
||||
}
|
||||
// 회원 탈퇴
|
||||
|
||||
if($('#hid_mb_id').val()==''){
|
||||
document.getElementById('my_join2').style.display = 'none';
|
||||
document.getElementById('my_login2').style.display = 'none';
|
||||
document.getElementById('my_join').style.display = '';
|
||||
document.getElementById('my_login').style.display = '';
|
||||
}else{
|
||||
document.getElementById('my_join2').style.display = '';
|
||||
document.getElementById('my_login2').style.display = '';
|
||||
document.getElementById('my_join').style.display = 'none';
|
||||
document.getElementById('my_login').style.display = 'none';
|
||||
}
|
||||
let x = document.cookie;
|
||||
if(x == "tmp_1=John"){
|
||||
deleteCookie("tmp_1");
|
||||
$('#pop_mypage02').show();
|
||||
}
|
||||
function deleteCookie(name) {
|
||||
document.cookie = name + "=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/egbim;";
|
||||
document.cookie = name + "=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/egbim/bbs;";
|
||||
document.cookie = name + "=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/egbim/faq;";
|
||||
document.cookie = name + "=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/egbim/qa;";
|
||||
}
|
||||
function getCookie(cname) {
|
||||
let name = cname + "=";
|
||||
let decodedCookie = decodeURIComponent(document.cookie);
|
||||
let ca = decodedCookie.split(';');
|
||||
for(let i = 0; i <ca.length; i++) {
|
||||
let c = ca[i];
|
||||
while (c.charAt(0) == ' ') {
|
||||
c = c.substring(1);
|
||||
}
|
||||
if (c.indexOf(name) == 0) {
|
||||
return c.substring(name.length, c.length);
|
||||
}
|
||||
}
|
||||
return "";
|
||||
}
|
||||
//alert(getCookie("tmp_1"));
|
||||
//로그인
|
||||
$('#flogin button[type=submit]').click(function(e){
|
||||
e.preventDefault();
|
||||
let mb_id = $('#login_id').val();
|
||||
let mb_password = $('#login_pw').val();
|
||||
//alert('<?php echo G5_URL ?>/bbs/login.php');
|
||||
$.ajax({
|
||||
url : '<?php echo G5_URL ?>/bbs/login_check_tova.php',
|
||||
data : {
|
||||
'mb_id' : mb_id,
|
||||
'mb_password' : mb_password
|
||||
},
|
||||
type : "POST",
|
||||
datatype : "json",
|
||||
success : function(data){
|
||||
var ss='';
|
||||
for(i=0; i<data.length; i++){
|
||||
ss=ss + data[i];
|
||||
}
|
||||
//alert(ss.replace('"','').replace('"',''));
|
||||
if(ss.replace('"','').replace('"','') == "success" || ss.replace('"','').replace('"','') == "super"){
|
||||
//$(".popup_wrap").show();
|
||||
$('.btn_close').hide();
|
||||
$('#pop_login').hide();
|
||||
$('#hid_mb_id').val(mb_id);
|
||||
document.getElementById('my_join2').style.display = '';
|
||||
document.getElementById('my_login2').style.display = '';
|
||||
document.getElementById('my_join').style.display = 'none';
|
||||
document.getElementById('my_login').style.display = 'none';
|
||||
//location.href="<?php echo G5_URL ?>/bbs/session.php?id="+mb_id;
|
||||
if(ss.replace('"','').replace('"','') == "super"){
|
||||
$('#my_join2').html("<a href='http://eg-bim.com/egbim/adm/index.php' target='_blank'>관리페이지</a>");
|
||||
}else{
|
||||
$('#my_join2').html("<a href='javascript:mypage01();'>마이페이지</a>");
|
||||
}
|
||||
}else
|
||||
{
|
||||
alert(trim(ss));
|
||||
}
|
||||
},
|
||||
error : function(err){
|
||||
//alert(err);
|
||||
alert(err.status);
|
||||
alert(err.statusText);
|
||||
}
|
||||
});
|
||||
});
|
||||
//회원가입 약관동의
|
||||
$('#fregister button[type=submit]').click(function(e){
|
||||
e.preventDefault();
|
||||
let agree11 = $('#agree11').val();
|
||||
let agree21 = $('#agree21').val();
|
||||
$.ajax({
|
||||
url : '<?php echo G5_URL ?>/bbs/register_form.php',
|
||||
type : "POST",
|
||||
datatype : "json",
|
||||
contentType: 'application/json; charset=utf-8',
|
||||
data : {
|
||||
'agree11' : agree11,
|
||||
'agree21' : agree21
|
||||
},
|
||||
success : function(data){
|
||||
var ss='';
|
||||
for(i=0; i<data.length; i++){
|
||||
ss=ss + data[i];
|
||||
}
|
||||
},
|
||||
error : function(err){
|
||||
alert(err);
|
||||
}
|
||||
});
|
||||
});
|
||||
//회원가입 정보입력
|
||||
$('#fregisterform button[type=submit]').click(function(e){
|
||||
e.preventDefault();
|
||||
|
||||
let mb_id = $('#reg_mb_id').val();
|
||||
let mb_password = $('#reg_mb_password').val();
|
||||
let mb_password_re = $('#reg_mb_password_re').val();
|
||||
let mb_name = $('#reg_mb_name').val();
|
||||
let mb_email1 = $('#reg_mb_email1').val();
|
||||
let mb_email2 = $('#mb_email2').val();
|
||||
let reg_domain2 = $('#register_domain2').val();
|
||||
let mb_hp = $('#reg_mb_hp').val();
|
||||
let mb_comp = $('#reg_mb_comp').val();
|
||||
let mb_comp_team = $('#reg_mb_comp_team').val();
|
||||
//alert(mb_password+' '+mb_password_re+' '+mb_name+' '+mb_email1+' '+mb_email2+' '+mb_hp+' '+mb_comp+' '+mb_comp_team);
|
||||
if (mb_id.length < 4) {
|
||||
alert("아이디를 4글자 이상 입력하십시오.");
|
||||
mb_id.focus();
|
||||
return false;
|
||||
}
|
||||
var special_pattern = /[`~!@#$%^&*|\\\'\";:\/?]/gi
|
||||
if (special_pattern.test(mb_id) == true) {
|
||||
alert("아이디는 특수문자를 사용할수 없습니다.");
|
||||
mb_id.focus();
|
||||
return false;
|
||||
}
|
||||
|
||||
// 비밀번호 검사
|
||||
if(!/^(?=.*[a-zA-Z])(?=.*[!@#$%^*+=-])(?=.*[0-9]).{8,25}$/.test(mb_password)){
|
||||
alert('비밀번호는 숫자+영문자+특수문자 조합으로 8자리 이상 사용해야 합니다.');
|
||||
mb_password.focus();
|
||||
return false;
|
||||
}
|
||||
// if (mb_password_re.length < 8 || mb_password.length < 8) {
|
||||
// alert("비밀번호를 8글자 이상 입력하십시오.");
|
||||
// mb_password.focus();
|
||||
// return false;
|
||||
// }
|
||||
|
||||
// 비밀번호 & 2차비밀번호 검사
|
||||
if (mb_password != mb_password_re) {
|
||||
alert("비밀번호가 같지 않습니다.");
|
||||
mb_password_re.focus();
|
||||
return false;
|
||||
}
|
||||
|
||||
// 이름 검사
|
||||
if (mb_name == "") {
|
||||
if (mb_name.length < 1) {
|
||||
alert("이름을 입력하십시오.");
|
||||
mb_name.focus();
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
// 메일 검사
|
||||
if (mb_email1 == "") {
|
||||
if (mb_email1.length < 1) {
|
||||
alert("메일 주소를 입력하십시오.");
|
||||
mb_email1.focus();
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
if (mb_email2 == "type"){
|
||||
mb_email2 = '@' + reg_domain2;
|
||||
}
|
||||
|
||||
// 핸드폰 번호 검사
|
||||
if (mb_hp.length < 11) {
|
||||
alert("휴대전화번호 11자리를 입력하십시오.");
|
||||
mb_hp.focus();
|
||||
return false;
|
||||
}
|
||||
if(isNaN(mb_hp)){
|
||||
alert("휴대전화번호는 숫자만 입력가능합니다.");
|
||||
mb_hp.focus();
|
||||
return false;
|
||||
}
|
||||
// 회사명 검사
|
||||
if (mb_comp == "") {
|
||||
if (mb_comp.length < 1) {
|
||||
alert("회사명을 입력하십시오");
|
||||
mb_comp.focus();
|
||||
return false;
|
||||
}
|
||||
}
|
||||
// 팀명 검사
|
||||
if (mb_comp_team == "") {
|
||||
if (mb_comp_team.length < 1) {
|
||||
alert("팀명을 입력하십시오");
|
||||
mb_comp_team.focus();
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
$.ajax({
|
||||
url : '<?php echo G5_URL ?>/bbs/register_form_update.php',
|
||||
data : {
|
||||
'mb_id' : mb_id,
|
||||
'mb_password' : mb_password,
|
||||
'mb_password_re' : mb_password_re,
|
||||
'mb_name' : mb_name,
|
||||
'mb_email1' : mb_email1,
|
||||
'mb_email2' : mb_email2,
|
||||
'mb_hp' : mb_hp,
|
||||
'mb_comp' : mb_comp,
|
||||
'mb_comp_team' : mb_comp_team,
|
||||
},
|
||||
type : "POST",
|
||||
datatype : "json",
|
||||
success : function(data){
|
||||
var ss='';
|
||||
for(i=0; i<data.length; i++){
|
||||
ss=ss + data[i];
|
||||
}
|
||||
if(ss){
|
||||
// $(".popup_wrap").show();
|
||||
$('.btn_close').hide();
|
||||
$('#pop_login').hide();
|
||||
$('#pop_agreement').hide();
|
||||
$('#pop_join').hide();
|
||||
$('#pop_mypage01').hide();
|
||||
$('#pop_search').hide();
|
||||
$('#pop_mypage02').hide();
|
||||
$('#pop_mypage03').hide();
|
||||
$('#pop_privacy').hide();
|
||||
// $('.register_fs').hide();
|
||||
// $('.join_progress .join_step').removeClass('on');
|
||||
// $('.join_progress .join_step').eq(2).addClass('on');
|
||||
// $('.messages').show();
|
||||
alert('회원가입이 완료됐습니다.\n다시 로그인 해주세요');
|
||||
$('#reg_mb_id').val('');
|
||||
$('#reg_mb_password').val('');
|
||||
$('#reg_mb_password_re').val('');
|
||||
$('#reg_mb_name').val('');
|
||||
$('#reg_mb_email1').val('');
|
||||
$('#reg_mb_hp').val('');
|
||||
$('#reg_mb_comp').val('');
|
||||
$('#reg_mb_comp_team').val('');
|
||||
$('#dupl_check_yn').val('N');
|
||||
|
||||
}else{
|
||||
alert('실패했습니다.');
|
||||
}
|
||||
},
|
||||
error : function(err){
|
||||
alert('에러');
|
||||
alert(err);
|
||||
alert(err.status);
|
||||
alert(err.statusText);
|
||||
}
|
||||
});
|
||||
// $.removeCookie(mb_id,{path:'<?php //echo G5_URL ?>/bbs/register_form_update.php'});
|
||||
});
|
||||
|
||||
//회원정보 수정
|
||||
$('#fregisterform_up button[type=submit]').click(function(e){
|
||||
e.preventDefault();
|
||||
let mb_id = $('#update_mb_id').val();
|
||||
let mb_password = $('#update_mb_password').val();
|
||||
let mb_password_re = $('#update_mb_password_re').val();
|
||||
let mb_name = $('#update_mb_name').val();
|
||||
let mb_email1 = $('#update_mb_email1').val();
|
||||
let mb_email2 = $('#update_mb_email2').val();
|
||||
let update_domain2 = $('#update_domain2').val();
|
||||
if (mb_email2 == "type"){
|
||||
mb_email2 = '@' + update_domain2;
|
||||
}
|
||||
let mb_hp = $('#update_mb_hp').val();
|
||||
let mb_comp = $('#update_mb_comp').val();
|
||||
let mb_comp_team = $('#update_mb_comp_team').val();
|
||||
|
||||
//alert(mb_password+' '+mb_password_re+' '+mb_name+' '+mb_email1+' '+mb_email2+' '+mb_hp+' '+mb_comp+' '+mb_comp_team);
|
||||
if (mb_id.length < 4) {
|
||||
alert('1');
|
||||
alert("아이디를 4글자 이상 입력하십시오.");
|
||||
mb_id.focus();
|
||||
return false;
|
||||
}
|
||||
var special_pattern = /[`~!@#$%^&*|\\\'\";:\/?]/gi
|
||||
if (special_pattern.test(mb_id) == true) {
|
||||
alert("아이디는 특수문자를 사용할수 없습니다.");
|
||||
mb_id.focus();
|
||||
return false;
|
||||
}
|
||||
|
||||
// 비밀번호 검사
|
||||
if(!/^(?=.*[a-zA-Z])(?=.*[!@#$%^*+=-])(?=.*[0-9]).{8,25}$/.test(mb_password)){
|
||||
alert('비밀번호는 숫자+영문자+특수문자 조합으로 8자리 이상 사용해야 합니다.');
|
||||
mb_password.focus();
|
||||
return false;
|
||||
}
|
||||
// if (mb_password_re.length < 8 || mb_password.length < 8) {
|
||||
// alert("비밀번호를 8글자 이상 입력하십시오.");
|
||||
// mb_password.focus();
|
||||
// return false;
|
||||
// }
|
||||
|
||||
// 비밀번호 & 2차비밀번호 검사
|
||||
if (mb_password != mb_password_re) {
|
||||
alert(mb_password_re);
|
||||
alert("비밀번호가 같지 않습니다.");
|
||||
mb_password_re.focus();
|
||||
return false;
|
||||
}
|
||||
|
||||
// 이름 검사
|
||||
if (mb_name == "") {
|
||||
if (mb_name.length < 1) {
|
||||
alert("이름을 입력하십시오.");
|
||||
mb_name.focus();
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
// 메일 검사
|
||||
if (mb_email1 == "") {
|
||||
if (mb_email1.length < 1) {
|
||||
alert("메일 주소를 입력하십시오.");
|
||||
mb_email1.focus();
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
// 핸드폰 번호 검사
|
||||
if (mb_hp.length < 11) {
|
||||
alert("휴대전화번호 11자리를 입력하십시오.");
|
||||
mb_hp.focus();
|
||||
return false;
|
||||
}
|
||||
if(isNaN(mb_hp)){
|
||||
alert("휴대전화번호는 숫자만 입력가능합니다.");
|
||||
mb_hp.focus();
|
||||
return false;
|
||||
}
|
||||
// 회사명 검사
|
||||
if (mb_comp == "") {
|
||||
if (mb_comp.length < 1) {
|
||||
alert("회사명을 입력하십시오");
|
||||
mb_comp.focus();
|
||||
return false;
|
||||
}
|
||||
}
|
||||
// 팀명 검사
|
||||
if (mb_comp_team == "") {
|
||||
if (mb_comp_team.length < 1) {
|
||||
alert("팀명을 입력하십시오");
|
||||
mb_comp_team.focus();
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
$.ajax({
|
||||
url : '<?php echo G5_URL ?>/bbs/mypage03.php',
|
||||
data : {
|
||||
'mb_id' : mb_id,
|
||||
'mb_password' : mb_password,
|
||||
'mb_password_re' : mb_password_re,
|
||||
'mb_name' : mb_name,
|
||||
'mb_email1' : mb_email1,
|
||||
'mb_email2' : mb_email2,
|
||||
'mb_hp' : mb_hp,
|
||||
'mb_comp' : mb_comp,
|
||||
'mb_comp_team' : mb_comp_team,
|
||||
},
|
||||
type : "POST",
|
||||
datatype : "json",
|
||||
success : function(data){
|
||||
var ss='';
|
||||
for(i=0; i<data.length; i++){
|
||||
ss=ss + data[i];
|
||||
}
|
||||
|
||||
if(ss.replace('"','').replace('"','') == "success"){
|
||||
|
||||
// $(".popup_wrap").show();
|
||||
$('.btn_close').show();
|
||||
$('#pop_login').hide();
|
||||
$('#pop_agreement').hide();
|
||||
$('#pop_join').hide();
|
||||
$('#pop_mypage01').hide();
|
||||
$('#pop_search').hide();
|
||||
$('#pop_mypage02').show();
|
||||
$('#pop_mypage03').hide();
|
||||
$('#pop_privacy').hide();
|
||||
// $('.register_fs').hide();
|
||||
// $('.join_progress .join_step').removeClass('on');
|
||||
// $('.join_progress .join_step').eq(2).addClass('on');
|
||||
// $('.messages').show();
|
||||
alert('회원정보 수정이 완료됐습니다.');
|
||||
document.getElementById("span_email").innerText=mb_email1+mb_email2;
|
||||
document.getElementById("span_hp").innerText=mb_hp;
|
||||
document.getElementById("span_comp").innerText=mb_comp;
|
||||
document.getElementById("span_comp_team").innerText=mb_comp_team;
|
||||
// $('#update_mb_id').val('');
|
||||
// $('#update_mb_password').val('');
|
||||
// $('#update_mb_password_re').val('');
|
||||
// $('#update_mb_name').val('');
|
||||
// $('#update_mb_email1').val('');
|
||||
// $('#update_mb_hp').val('');
|
||||
// $('#update_mb_comp').val('');
|
||||
// $('#update_mb_comp_team').val('');
|
||||
// $('#dupl_check_yn').val('N');
|
||||
|
||||
}else{
|
||||
alert('실패했습니다.');
|
||||
}
|
||||
},
|
||||
error : function(err){
|
||||
alert('에러');
|
||||
alert(err);
|
||||
alert(err.status);
|
||||
alert(err.statusText);
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
$('#fmyconfirmpw button[type=submit]').click(function(e){
|
||||
e.preventDefault();
|
||||
|
||||
let l_mb_password = $('#password_mypage').val();
|
||||
let l_mb_id = $('#hid_mb_id').val();
|
||||
|
||||
$.ajax({
|
||||
url : '<?php echo G5_URL ?>/bbs/mypage02.php',
|
||||
data : {
|
||||
'mb_id' : l_mb_id,
|
||||
'mb_password' : l_mb_password,
|
||||
},
|
||||
type : "POST",
|
||||
datatype : "json",
|
||||
success : function(data){
|
||||
var ss='';
|
||||
for(i=0; i<data.length; i++){
|
||||
ss=ss + data[i];
|
||||
}
|
||||
//alert(ss.replace('"','').replace('"',''));
|
||||
if(ss.replace('"','').replace('"','') == "success"){
|
||||
$('#password_mypage').val('');
|
||||
//mypage02();
|
||||
document.cookie = "tmp_1=John";
|
||||
location.href="<?php echo G5_URL ?>/bbs/interface.php";
|
||||
}else
|
||||
{
|
||||
alert(trim(ss));
|
||||
$('#password_mypage').select();
|
||||
}
|
||||
},
|
||||
error : function(err){
|
||||
alert(err);
|
||||
alert(err.status);
|
||||
alert(err.statusText);
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
</script>
|
||||
@@ -0,0 +1,128 @@
|
||||
<?php
|
||||
if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가
|
||||
|
||||
// add_stylesheet('css 구문', 출력순서); 숫자가 작을 수록 먼저 출력됨
|
||||
add_stylesheet('<link rel="stylesheet" href="'.$member_skin_url.'/style.css">', 0);
|
||||
?>
|
||||
|
||||
<!-- 로그인 시작 { -->
|
||||
<div id="mb_login" class="mbskin">
|
||||
<div class="mbskin_box">
|
||||
<h1><?php echo $g5['title'] ?></h1>
|
||||
<div class="mb_log_cate">
|
||||
<h2><span class="sound_only">회원</span>로그인</h2>
|
||||
<a href="<?php echo G5_BBS_URL ?>/register.php" class="join">회원가입</a>
|
||||
</div>
|
||||
<form name="flogin" action="<?php echo $login_action_url ?>" onsubmit="return flogin_submit(this);" method="post">
|
||||
<input type="hidden" name="url" value="<?php echo $login_url ?>">
|
||||
|
||||
<fieldset id="login_fs">
|
||||
<legend>회원로그인</legend>
|
||||
<label for="login_id" class="sound_only">회원아이디<strong class="sound_only"> 필수</strong></label>
|
||||
<input type="text" name="mb_id" id="login_id" required class="frm_input required" size="20" maxLength="20" placeholder="아이디">
|
||||
<label for="login_pw" class="sound_only">비밀번호<strong class="sound_only"> 필수</strong></label>
|
||||
<input type="password" name="mb_password" id="login_pw" required class="frm_input required" size="20" maxLength="20" placeholder="비밀번호">
|
||||
<button type="submit" class="btn_submit">로그인</button>
|
||||
|
||||
<div id="login_info">
|
||||
<div class="login_if_auto chk_box">
|
||||
<input type="checkbox" name="auto_login" id="login_auto_login" class="selec_chk">
|
||||
<label for="login_auto_login"><span></span> 자동로그인</label>
|
||||
</div>
|
||||
<div class="login_if_lpl">
|
||||
<a href="<?php echo G5_BBS_URL ?>/password_lost.php">아이디/비밀번호 찾기</a>
|
||||
</div>
|
||||
</div>
|
||||
</fieldset>
|
||||
</form>
|
||||
<?php @include_once(get_social_skin_path().'/social_login.skin.php'); // 소셜로그인 사용시 소셜로그인 버튼 ?>
|
||||
</div>
|
||||
|
||||
<?php // 쇼핑몰 사용시 여기부터 ?>
|
||||
<?php if (isset($default['de_level_sell']) && $default['de_level_sell'] == 1) { // 상품구입 권한 ?>
|
||||
|
||||
<!-- 주문하기, 신청하기 -->
|
||||
<?php if (preg_match("/orderform.php/", $url)) { ?>
|
||||
<section id="mb_login_notmb">
|
||||
<h2>비회원 구매</h2>
|
||||
<p>비회원으로 주문하시는 경우 포인트는 지급하지 않습니다.</p>
|
||||
|
||||
<div id="guest_privacy">
|
||||
<?php echo conv_content($default['de_guest_privacy'], $config['cf_editor']); ?>
|
||||
</div>
|
||||
|
||||
<div class="chk_box">
|
||||
<input type="checkbox" id="agree" value="1" class="selec_chk">
|
||||
<label for="agree"><span></span> 개인정보수집에 대한 내용을 읽었으며 이에 동의합니다.</label>
|
||||
</div>
|
||||
|
||||
<div class="btn_confirm">
|
||||
<a href="javascript:guest_submit(document.flogin);" class="btn_submit">비회원으로 구매하기</a>
|
||||
</div>
|
||||
|
||||
<script>
|
||||
function guest_submit(f)
|
||||
{
|
||||
if (document.getElementById('agree')) {
|
||||
if (!document.getElementById('agree').checked) {
|
||||
alert("개인정보수집에 대한 내용을 읽고 이에 동의하셔야 합니다.");
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
f.url.value = "<?php echo $url; ?>";
|
||||
f.action = "<?php echo $url; ?>";
|
||||
f.submit();
|
||||
}
|
||||
</script>
|
||||
</section>
|
||||
|
||||
<?php } else if (preg_match("/orderinquiry.php$/", $url)) { ?>
|
||||
<div id="mb_login_od_wr">
|
||||
<h2>비회원 주문조회 </h2>
|
||||
|
||||
<fieldset id="mb_login_od">
|
||||
<legend>비회원 주문조회</legend>
|
||||
|
||||
<form name="forderinquiry" method="post" action="<?php echo urldecode($url); ?>" autocomplete="off">
|
||||
|
||||
<label for="od_id" class="od_id sound_only">주문서번호<strong class="sound_only"> 필수</strong></label>
|
||||
<input type="text" name="od_id" value="<?php echo $od_id; ?>" id="od_id" required class="frm_input required" size="20" placeholder="주문서번호">
|
||||
<label for="od_pwd" class="od_pwd sound_only">비밀번호 <strong>필수</strong></label>
|
||||
<input type="password" name="od_pwd" size="20" id="od_pwd" required class="frm_input required" placeholder="비밀번호">
|
||||
<button type="submit" class="btn_submit">확인</button>
|
||||
|
||||
</form>
|
||||
</fieldset>
|
||||
|
||||
<section id="mb_login_odinfo">
|
||||
<p>메일로 발송해드린 주문서의 <strong>주문번호</strong> 및 주문 시 입력하신 <strong>비밀번호</strong>를 정확히 입력해주십시오.</p>
|
||||
</section>
|
||||
|
||||
</div>
|
||||
<?php } ?>
|
||||
|
||||
<?php } ?>
|
||||
<?php // 쇼핑몰 사용시 여기까지 반드시 복사해 넣으세요 ?>
|
||||
|
||||
</div>
|
||||
|
||||
<script>
|
||||
jQuery(function($){
|
||||
$("#login_auto_login").click(function(){
|
||||
if (this.checked) {
|
||||
this.checked = confirm("자동로그인을 사용하시면 다음부터 회원아이디와 비밀번호를 입력하실 필요가 없습니다.\n\n공공장소에서는 개인정보가 유출될 수 있으니 사용을 자제하여 주십시오.\n\n자동로그인을 사용하시겠습니까?");
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
function flogin_submit(f)
|
||||
{
|
||||
if( $( document.body ).triggerHandler( 'login_sumit', [f, 'flogin'] ) !== false ){
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
</script>
|
||||
<!-- } 로그인 끝 -->
|
||||
|
||||
@@ -0,0 +1,166 @@
|
||||
<script type="text/javascript" src="<?php echo G5_URL ?>/js/jquery-3.6.1.min.js"></script>
|
||||
|
||||
<script type="text/javascript" src="<?php echo G5_URL ?>/js/jquery.mousewheel.min.js"></script>
|
||||
<script type="text/javascript" src="<?php echo G5_URL ?>/js/common.js"></script>
|
||||
<script type="text/javascript" src="<?php echo G5_URL ?>/js/include.js"></script>
|
||||
<script type="text/javascript" src="<?php echo G5_URL ?>/js/popup.js?v=20260723"></script>
|
||||
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.0/css/all.min.css">
|
||||
|
||||
<!--popup_wrap-->
|
||||
<div id="pop_login" class="popup_wrap">
|
||||
<!--popup_in-->
|
||||
<div class="popup_in">
|
||||
<button class="btn_close">
|
||||
<div class="close_div"><img src="<?php echo G5_URL ?>/img/ico_close.svg" alt="sdi"></div>
|
||||
</button>
|
||||
<!--popup_container-->
|
||||
<div class="popup_container login">
|
||||
<!--popup_tit-->
|
||||
<div class="popup_tit">
|
||||
<h1 class="h_1">로그인</h1>
|
||||
<h3 class="h_3">
|
||||
EG-BIM 로그인 시<br><br class="brk"> <strong>1:1구매문의 및 제품안내 서비스</strong>를<br> 이용하실 수 있습니다.
|
||||
</h3>
|
||||
</div>
|
||||
<!--//popup_tit-->
|
||||
<!-- popup_contents_wrap -->
|
||||
<div class="popup_contents_wrap">
|
||||
<form id="flogin" name="flogin" action="<?php //echo $login_action_url?>" onsubmit="return flogin_submit(this);" method="post">
|
||||
<input type="hidden" name="url" value="<?php //echo $login_url?>">
|
||||
<div class="input_wrap id">
|
||||
<i class="id"></i><input type="text" name="mb_id" id="login_id" required class="id " placeholder="아이디">
|
||||
</div>
|
||||
<div class="input_wrap pw" style="position: relative;">
|
||||
<i class="pw"></i><input type="password" name="mb_password" id="login_pw" required class="pw " size="20" maxLength="20" placeholder="비밀번호" onkeyup="ufn_loginpw_onkeyup(this);">
|
||||
<!-- 👁 Font Awesome 아이콘 -->
|
||||
<i id="toggle_pw"
|
||||
class="fa-solid fa-eye"
|
||||
style="position:absolute; right:10px; top:50%;
|
||||
transform:translateY(-50%);
|
||||
cursor:pointer; color:#888;"></i>
|
||||
<!-- ✅ CapsLock 경고 (커서 오른쪽 표시용) -->
|
||||
<div id="capslock_hint"
|
||||
style="display:none;
|
||||
position:absolute;
|
||||
left:0;
|
||||
bottom:-20px;
|
||||
font-size:13px;
|
||||
color:#f87171;
|
||||
pointer-events:none;
|
||||
animation:fadein 0.15s ease;">
|
||||
⚠️ Caps Lock이 켜져 있습니다.
|
||||
</div>
|
||||
</div>
|
||||
<style>
|
||||
@keyframes fadein { from { opacity:0; } to { opacity:1; } }
|
||||
</style>
|
||||
<div class="join_btn_wrap">
|
||||
<button type="submit" id="btn_login">로그인</button>
|
||||
</div>
|
||||
<div class="btn_go">
|
||||
<div class="go_signup"><a href="javascript:agreement();"><span>회원가입</span><i class="arrow_r"></i></a></div>
|
||||
<div class="go_find"><a href="javascript:search();"><span>비밀번호 재설정</span><i class="arrow_r"></i></a></div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
<!-- //popup_contents_wrap -->
|
||||
</div>
|
||||
<!--//popup_container-->
|
||||
</div>
|
||||
<!--//popup_in-->
|
||||
</div>
|
||||
<!--//popup_wrap-->
|
||||
|
||||
|
||||
<script>
|
||||
function ufn_loginpw_onkeyup(l_pw){
|
||||
var loginButton = document.getElementById('btn_login');
|
||||
if (!loginButton) {
|
||||
return;
|
||||
}
|
||||
|
||||
loginButton.disabled = !(l_pw && l_pw.value.length > 0);
|
||||
}
|
||||
</script>
|
||||
|
||||
<script>
|
||||
// (function () {
|
||||
// // 1) 공지 팝업 DOM이 없으면 생성
|
||||
// if (!document.getElementById('egbimNotice')) {
|
||||
// $('body').append(`
|
||||
// <div class="notice-backdrop" style="display:none;position:fixed;inset:0;background:rgba(0,0,0,.6);z-index:9998;"></div>
|
||||
// <div class="notice-box" id="egbimNotice" style="display:none;position:fixed;left:50%;top:50%;transform:translate(-50%,-50%);z-index:9999;background:#103a2f;color:#fff;border-radius:14px;max-width:520px;width:92%;box-shadow:0 10px 30px rgba(0,0,0,.35);padding:28px;">
|
||||
// <button class="notice-close" aria-label="닫기" style="position:absolute;right:10px;top:8px;border:none;background:transparent;color:#fff;font-size:24px;cursor:pointer;">×</button>
|
||||
// <h3 style="margin:0 0 10px;font-size:20px;font-weight:700;">공지사항</h3>
|
||||
// <p style="line-height:1.6;margin:0 0 18px;">
|
||||
// EG-BIM 프로그램 사용자 인증 신규 시스템 도입으로 인해<br>
|
||||
// 기존 회원분들께서는 <strong>재가입</strong> 해주시기 바랍니다.
|
||||
// </p>
|
||||
// <div class="notice-actions" style="display:flex;gap:8px;justify-content:flex-end;">
|
||||
// <button class="btn-ok" style="padding:10px 16px;border:none;border-radius:10px;background:#ffb02e;color:#111;cursor:pointer;font-weight:700;">확인</button>
|
||||
// </div>
|
||||
// </div>
|
||||
// `);
|
||||
// }
|
||||
|
||||
// // 팝업 열기/닫기
|
||||
// function openNotice(onConfirm) {
|
||||
// $('.notice-backdrop, #egbimNotice').fadeIn(120);
|
||||
// const close = () => {
|
||||
// $('#egbimNotice .btn-ok, #egbimNotice .notice-close').off('click');
|
||||
// $('.notice-backdrop, #egbimNotice').fadeOut(120);
|
||||
// };
|
||||
// $('#egbimNotice .notice-close').on('click', close);
|
||||
// $('#egbimNotice .btn-ok').on('click', function () {
|
||||
// close();
|
||||
// if (typeof onConfirm === 'function') onConfirm();
|
||||
// });
|
||||
// }
|
||||
|
||||
// // 2) 로그인 버튼 클릭 → 공지 팝업 먼저 띄우고, 확인 시 로그인 실행
|
||||
// $('#btn_login').off('click.notice').on('click.notice', function (e) {
|
||||
// e.preventDefault();
|
||||
// openNotice(doLoginAjax);
|
||||
// });
|
||||
// })();
|
||||
//
|
||||
</script>
|
||||
<script>
|
||||
$(document).ready(function () {
|
||||
// form submit (Enter 눌러도 실행됨)
|
||||
$('#flogin').on('submit', function(e) {
|
||||
e.preventDefault(); // 기본 제출 막기
|
||||
$('#btn_login').click(); // 버튼 클릭 이벤트 재사용
|
||||
});
|
||||
});
|
||||
|
||||
document.addEventListener("DOMContentLoaded", () => {
|
||||
const pwInput = document.getElementById("login_pw");
|
||||
const toggle = document.getElementById("toggle_pw");
|
||||
const hint = document.getElementById("capslock_hint");
|
||||
|
||||
// 👁 토글 기능
|
||||
toggle.addEventListener("click", () => {
|
||||
const isHidden = pwInput.type === "password";
|
||||
pwInput.type = isHidden ? "text" : "password";
|
||||
toggle.classList.toggle("fa-eye");
|
||||
toggle.classList.toggle("fa-eye-slash");
|
||||
});
|
||||
|
||||
// ⚠ CapsLock 감지
|
||||
pwInput.addEventListener("keydown", e => {
|
||||
const caps = e.getModifierState && e.getModifierState("CapsLock");
|
||||
hint.style.display = caps ? "block" : "none";
|
||||
});
|
||||
pwInput.addEventListener("keyup", e => {
|
||||
const caps = e.getModifierState && e.getModifierState("CapsLock");
|
||||
hint.style.display = caps ? "block" : "none";
|
||||
});
|
||||
pwInput.addEventListener("blur", () => hint.style.display = "none");
|
||||
|
||||
// 🚫 한글 차단
|
||||
pwInput.addEventListener("input", function() {
|
||||
this.value = this.value.replace(/[ㄱ-ㅎ|ㅏ-ㅣ|가-힣]/g, '');
|
||||
});
|
||||
});
|
||||
</script>
|
||||
@@ -0,0 +1,111 @@
|
||||
<?php
|
||||
if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가
|
||||
|
||||
// add_stylesheet('css 구문', 출력순서); 숫자가 작을 수록 먼저 출력됨
|
||||
add_stylesheet('<link rel="stylesheet" href="'.$member_skin_url.'/style.css">', 0);
|
||||
|
||||
?>
|
||||
|
||||
<!-- 로그인 시작 { -->
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<title>TOVA Join</title>
|
||||
<link rel="stylesheet" href="../css/reset.css" />
|
||||
<link rel="stylesheet" href="../css/font.css" />
|
||||
<link rel="stylesheet" href="../css/style.css" />
|
||||
<script src="../js/jquery-3.6.1.min.js"></script>
|
||||
<script src="../js/common.js"></script>
|
||||
</head>
|
||||
|
||||
|
||||
<body>
|
||||
<div class="wrapper">
|
||||
<!-- Header -->
|
||||
<header class="header">
|
||||
<h1>
|
||||
<img src="../img/logo_w.svg" alt="sdi">
|
||||
</h1>
|
||||
<div class="menu_wrap">
|
||||
<div class="menu_my"><img src="../img/ico_my.svg" alt="sdi"></div>
|
||||
<div class="menu_ham"><img src="../img/ico_ham.svg" alt="sdi"></div>
|
||||
</div>
|
||||
</header>
|
||||
<!-- //Header -->
|
||||
|
||||
<!--popup_wrap-->
|
||||
<div class="popup_wrap">
|
||||
<!--popup_in-->
|
||||
<div class="popup_in">
|
||||
<hgroup>
|
||||
<div class="pop_close_wrap">
|
||||
<button class="btn_close">
|
||||
<div class="close_div"><img src="../img/ico_close.svg" alt="sdi"></div>
|
||||
</button>
|
||||
</div>
|
||||
</hgroup>
|
||||
<!--popup_content-->
|
||||
<div class="popup_content login">
|
||||
<!--pop_join_left-->
|
||||
<div class="pop_join_left">
|
||||
<span class="bg_tit_left">Logi</span>
|
||||
<div class="join_info">
|
||||
<h1 class="h_1">로그인</h1>
|
||||
<h3 class="h_3">
|
||||
TOVA 로그인 시<br>
|
||||
<strong>다운로드 및 1:1문의 서비스</strong>를<br>
|
||||
이용하실 수 있습니다.
|
||||
</h3>
|
||||
</div>
|
||||
</div>
|
||||
<!--//pop_join_right-->
|
||||
<div class="pop_input_wrap pop_join_right">
|
||||
<span class="bg_tit_right">n</span>
|
||||
<div class="contents_wrap">
|
||||
<form name="flogin" action="<?php echo $login_action_url?>" onsubmit="return flogin_submit(this);" method="post">
|
||||
<input type="hidden" name="url" value="<?php echo $login_url?>">
|
||||
<div class="input_wrap id">
|
||||
<i class="id"></i><input type="text" name="mb_id" id="login_id" required class="id " size="20" maxLength="20" placeholder="아이디">
|
||||
</div>
|
||||
<div class="input_wrap pw">
|
||||
<i class="pw"></i><input type="password" name="mb_password" id="login_pw" required class="pw " size="20" maxLength="20" placeholder="비밀번호">
|
||||
</div>
|
||||
<div class="join_btn_wrap">
|
||||
<button type="submit">로그인</button>
|
||||
</div>
|
||||
<div class="btn_go">
|
||||
<div class="go_signup"><a href="<?php echo G5_BBS_URL ?>/register.php"><span>회원가입</span><i class="arrow_r"></i></a></div>
|
||||
<div class="go_find"><a href="<?php echo G5_BBS_URL ?>/password_lost.php"><span>아이디/비밀번호 찾기</span><i class="arrow_r"></i></a></div>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
<!--//pop_join_right-->
|
||||
</div>
|
||||
<!--//popup_content-->
|
||||
</div>
|
||||
<!--//popup_in-->
|
||||
</div>
|
||||
<!--//popup_wrap-->
|
||||
</div>
|
||||
</body>
|
||||
|
||||
<script>
|
||||
jQuery(function($){
|
||||
$("#login_auto_login").click(function(){
|
||||
if (this.checked) {
|
||||
this.checked = confirm("자동로그인을 사용하시면 다음부터 회원아이디와 비밀번호를 입력하실 필요가 없습니다.\n\n공공장소에서는 개인정보가 유출될 수 있으니 사용을 자제하여 주십시오.\n\n자동로그인을 사용하시겠습니까?");
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
function flogin_submit(f)
|
||||
{
|
||||
if( $( document.body ).triggerHandler( 'login_sumit', [f, 'flogin'] ) !== false ){
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
</script>
|
||||
<!-- } 로그인 끝 -->
|
||||
|
||||
@@ -0,0 +1,66 @@
|
||||
<script type="text/javascript" src="<?php echo G5_URL ?>/js/jquery-3.6.1.min.js"></script>
|
||||
|
||||
<script type="text/javascript" src="<?php echo G5_URL ?>/js/jquery.mousewheel.min.js"></script>
|
||||
<script type="text/javascript" src="<?php echo G5_URL ?>/js/common.js"></script>
|
||||
<script type="text/javascript" src="<?php echo G5_URL ?>/js/include.js"></script>
|
||||
<script type="text/javascript" src="<?php echo G5_URL ?>/js/popup.js"></script>
|
||||
|
||||
<!--popup_wrap-->
|
||||
<div id="pop_login" class="popup_wrap">
|
||||
<!--popup_in-->
|
||||
<div class="popup_in">
|
||||
<button class="btn_close">
|
||||
<div class="close_div"><img src="<?php echo G5_URL ?>/img/ico_close.svg" alt="sdi"></div>
|
||||
</button>
|
||||
<!--popup_content-->
|
||||
<div class="popup_content login">
|
||||
<!--pop_join_left-->
|
||||
<div class="pop_join_left">
|
||||
<span class="bg_tit_left">Logi</span>
|
||||
<div class="join_info">
|
||||
<h1 class="h_1">로그인</h1>
|
||||
<h3 class="h_3">
|
||||
EG-BIM 로그인 시<br>
|
||||
<strong>1:1구매문의 및 제품안내 서비스</strong>를<br>
|
||||
이용하실 수 있습니다.
|
||||
</h3>
|
||||
</div>
|
||||
</div>
|
||||
<!--//pop_join_right-->
|
||||
<div class="pop_input_wrap pop_join_right">
|
||||
<span class="bg_tit_right">n</span>
|
||||
<div class="contents_wrap">
|
||||
<form id="flogin" name="flogin" action="<?php //echo $login_action_url?>" onsubmit="return flogin_submit(this);" method="post">
|
||||
<input type="hidden" name="url" value="<?php //echo $login_url?>">
|
||||
<div class="input_wrap id">
|
||||
<i class="id"></i><input type="text" name="mb_id" id="login_id" required class="id " size="20" maxLength="20" placeholder="아이디">
|
||||
</div>
|
||||
<div class="input_wrap pw">
|
||||
<i class="pw"></i><input type="password" name="mb_password" id="login_pw" required class="pw " size="20" maxLength="20" placeholder="비밀번호" onkeyup="ufn_loginpw_onkeyup(this);">
|
||||
</div>
|
||||
<div class="join_btn_wrap">
|
||||
<button type="submit" id="btn_login">로그인</button>
|
||||
</div>
|
||||
<div class="btn_go">
|
||||
<div class="go_signup"><a href="javascript:agreement();"><span>회원가입</span><i class="arrow_r"></i></a></div>
|
||||
<div class="go_find"><a href="javascript:search();"><span>아이디/비밀번호 찾기</span><i class="arrow_r"></i></a></div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
<!--//pop_join_right-->
|
||||
</div>
|
||||
<!--//popup_content-->
|
||||
</div>
|
||||
<!--//popup_in-->
|
||||
</div>
|
||||
<script>
|
||||
function ufn_loginpw_onkeyup(l_pw){
|
||||
if(l_pw.value.length>0){
|
||||
document.getElementById('btn_login').disabled = false;
|
||||
}else{
|
||||
document.getElementById('btn_login').disabled = true;
|
||||
}
|
||||
}
|
||||
</script>
|
||||
<!--//popup_wrap-->
|
||||
@@ -0,0 +1,4 @@
|
||||
<?php
|
||||
if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가
|
||||
|
||||
// 자신만의 코드를 넣어주세요.
|
||||
@@ -0,0 +1,506 @@
|
||||
<?php
|
||||
if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가
|
||||
|
||||
|
||||
?>
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<title>TOVA Main</title>
|
||||
<link rel="stylesheet" href="<?php echo G5_URL ?>/css/reset.css" />
|
||||
<link rel="stylesheet" href="<?php echo G5_URL ?>/css/font.css" />
|
||||
<link rel="stylesheet" href="<?php echo G5_URL ?>/css/style.css" />
|
||||
|
||||
<script type="text/javascript" src="<?php echo G5_URL ?>/js/jquery-3.6.1.min.js"></script>
|
||||
|
||||
<script type="text/javascript" src="<?php echo G5_URL ?>/js/jquery.mousewheel.min.js"></script>
|
||||
<script type="text/javascript" src="<?php echo G5_URL ?>/js/common.js"></script>
|
||||
<script type="text/javascript" src="<?php echo G5_URL ?>/js/include.js"></script>
|
||||
<script type="text/javascript" src="<?php echo G5_URL ?>/js/popup.js"></script>
|
||||
|
||||
</head>
|
||||
|
||||
|
||||
<script>
|
||||
// $(document).ready(function(){
|
||||
// $(".gnb_logout").on("click", function() {
|
||||
|
||||
// if(!confirm("로그아웃 하시겠습니까?")){
|
||||
// return false;
|
||||
// }else{
|
||||
// location.href="/tova/bbs/logout.php";
|
||||
// }
|
||||
// });
|
||||
|
||||
// $(".mv_op_frmat").on("click", function() {
|
||||
// $("#op_id").val('');
|
||||
// $("#op_pw").val('');
|
||||
// if($('.mv_op_frmat_area').is(':visible')===false){
|
||||
// $(".mv_op_frmat_area").css('display','block');
|
||||
// $("#op_id").focus();
|
||||
|
||||
// }else{
|
||||
// $(".mv_op_frmat_area").css('display','none');
|
||||
// }
|
||||
// });
|
||||
|
||||
// $(".move_frmat").on("click", function() {
|
||||
// var op_id = $("#op_id").val();
|
||||
// var op_pw = $("#op_pw").val();
|
||||
// var ActionMode = 'SCREEN_15';
|
||||
|
||||
// if(op_id!=="" && op_pw!=="" ){
|
||||
// $("#op_id").val('');
|
||||
// $("#op_pw").val('');
|
||||
// $(".mv_op_frmat_area").css('display','none');
|
||||
|
||||
// var form = document.createElement('form');
|
||||
// form.setAttribute('method', 'post');
|
||||
// form.setAttribute('target', 'op_frmat');
|
||||
// form.setAttribute('action', "http://cloud.hanmaceng.co.kr/service/gaia/sys/controller/manage/gaiaserver_controller.php" );
|
||||
// document.charset = "utf-8";
|
||||
// var hiddenField = document.createElement('input'); hiddenField.setAttribute('type', 'hidden'); hiddenField.setAttribute('name', 'ActionMode'); hiddenField.setAttribute('value', ActionMode); form.appendChild(hiddenField);
|
||||
// var hiddenField = document.createElement('input'); hiddenField.setAttribute('type', 'hidden'); hiddenField.setAttribute('name', 'op_id'); hiddenField.setAttribute('value', op_id); form.appendChild(hiddenField);
|
||||
// var hiddenField = document.createElement('input'); hiddenField.setAttribute('type', 'hidden'); hiddenField.setAttribute('name', 'op_pw'); hiddenField.setAttribute('value', op_pw); form.appendChild(hiddenField);
|
||||
// document.body.appendChild(form);
|
||||
// form.submit();
|
||||
// /*
|
||||
// //시추주상도 양식관리
|
||||
// //http://cloud.hanmaceng.co.kr/service/gaia/sys/controller/manage/gaiaserver_controller.php?ActionMode=SCREEN_15
|
||||
// window.open("http://cloud.hanmaceng.co.kr/service/gaia/sys/controller/manage/gaiaserver_controller.php?ActionMode=SCREEN_15&op_id="+op_id+"&op_pw="+op_pw,"op_frmat","width=1500,height=900,scrollbars=yes,status=no,location=no,directories=no,toolbar=no,menubar=no,left={$itemdata2.left},top={$itemdata2.top},resizable=yes");
|
||||
// */
|
||||
|
||||
// }else{
|
||||
// //location.href="/gaiahome/bbs/logout.php";
|
||||
// $(".mv_op_frmat_area").css('display','none');
|
||||
// }
|
||||
// });
|
||||
|
||||
// });
|
||||
|
||||
// var ua = navigator.userAgent;
|
||||
// /*-----------------------------------------------------------------------------*/
|
||||
// var isie =(/msie/i).test(navigator.userAgent); //ie
|
||||
// var isie6 =(/msie 6/i).test(navigator.userAgent); //ie 6
|
||||
// var isie7 =(/msie 7/i).test(navigator.userAgent); //ie 7
|
||||
// var isie8 =(/msie 8/i).test(navigator.userAgent); //ie 8
|
||||
// var isie9 =(/msie 9/i).test(navigator.userAgent); //ie 9
|
||||
// var isfirefox =(/firefox/i).test(navigator.userAgent); //firefox
|
||||
// var isapple =(/applewebkit/i).test(navigator.userAgent); //safari,chrome
|
||||
// var isopera =(/opera/i).test(navigator.userAgent); //opera
|
||||
// /*-----------------------------------------------------------------------------*/
|
||||
// var isios =(/(ipod|iphone|ipad)/i).test(navigator.userAgent);//ios
|
||||
// var isipad =(/(ipad)/i).test(navigator.userAgent);//ipad
|
||||
// var isandroid =(/android/i).test(navigator.userAgent);//android
|
||||
// var islgtelecom =(/lgtelecom/i).test(navigator.userAgent);//lgtelecom
|
||||
// var isblackberry=(/blackberry/i).test(navigator.userAgent);//blackberry
|
||||
// var issamsung =(/samsung/i).test(navigator.userAgent);//samsung
|
||||
// var issymbian =(/symbian/i).test(navigator.userAgent);//symbian
|
||||
// var issony =(/sony/i).test(navigator.userAgent);//sony
|
||||
// var isSCH =(/SCH-/i).test(navigator.userAgent);//SCH-
|
||||
// var isSPH =(/SPH-/i).test(navigator.userAgent);//SPH-
|
||||
// /*-----------------------------------------------------------------------------*/
|
||||
|
||||
// function divice_confirm() { //접속기기 구분
|
||||
// $("#browserVer").val(ua);
|
||||
// // alert(navigator.maxTouchPoints);
|
||||
// // alert(navigator.userAgent);
|
||||
// //if(isios || isipad || isandroid || islgtelecom || isblackberry || issamsung || issymbian || issony || isSCH || isSPH || navigator.appVersion.indexOf('Windows') == -1){
|
||||
// if( isandroid || islgtelecom || isblackberry || issamsung || issymbian || issony || isSCH || isSPH){
|
||||
// //alert("각종 모바일 접속::");
|
||||
// return "M";//mobile
|
||||
// }else{//web접속
|
||||
// if(isios || isipad || navigator.appVersion.indexOf('Windows') == -1){
|
||||
// //alert("ios 접속::");
|
||||
// if((isios || isipad == -1) && navigator.maxTouchPoints>0){
|
||||
// //alert('애플 모바일기기');
|
||||
// return "M";//mobile
|
||||
|
||||
// }else{//web접속
|
||||
// return "W";//web
|
||||
// }
|
||||
// }else{//web접속
|
||||
// return "W";//web
|
||||
// }
|
||||
// }
|
||||
// }//divice_confirm
|
||||
var is_member = false;
|
||||
|
||||
<?php if ($is_member) { ?>
|
||||
is_member = true;
|
||||
<?php } ?>
|
||||
|
||||
</script>
|
||||
|
||||
|
||||
|
||||
|
||||
<body>
|
||||
<div class="wrapper main_wrap">
|
||||
<input id="hid_mb_id" type="hidden"></input>
|
||||
<div class="main_mask">
|
||||
<!-- Header -->
|
||||
<header class="header">
|
||||
<h1>
|
||||
<img src="<?php echo G5_URL ?>/img/logo_w.svg" alt="">
|
||||
</h1>
|
||||
<div class="menu_wrap">
|
||||
<div class="menu_my">
|
||||
<img src="<?php echo G5_URL ?>/img/ico_my.svg" alt="">
|
||||
<ul class="menu_my_list" style="display: none;">
|
||||
<li id="my_join2" class="my_join2"><a href="javascript:mypage01();">마이페이지</a></li>
|
||||
<li id="my_login2" class="my_login2"><a href="<?php echo G5_BBS_URL ?>/logout.php">로그아웃</a></li>
|
||||
<li id="my_join" class="my_join"><a href="javascript:agreement();">회원가입</a></li>
|
||||
<li id="my_login" class="my_login"><a href="javascript:login();">로그인</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="menu_ham"><a href="javascript:sitemap();"><img src="<?php echo G5_URL ?>/img/ico_ham.svg" alt=""></a></div>
|
||||
</div>
|
||||
</header>
|
||||
<!-- //Header -->
|
||||
|
||||
<!-- floating_menu -->
|
||||
<div class="floating_menu">
|
||||
<ul>
|
||||
<li class="floating_faq"><a href="<?php echo G5_BBS_URL ?>/faq.php">FAQ</a></li>
|
||||
<li class="floating_buy"><a href="">구매하기</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<!-- //floating_menu -->
|
||||
|
||||
<!-- 팝업 닫기 버튼(팝업 페이지 안에 있으니 작동안함) -->
|
||||
<button class="btn_close">
|
||||
<div class="close_div"><img src="<?php echo G5_URL ?>/img/ico_close.svg" alt=""></div>
|
||||
</button>
|
||||
|
||||
<!-- 모든 팝업페이지 경로
|
||||
페이지를 팝업으로 노출 시키니,
|
||||
팝업창을 닫기 후 다시 열었을때 입력된 내용이 그대로 뜨는 현상이 있음,
|
||||
이는 개발팀에 요청을해야 할 것 같긴합니다..
|
||||
-->
|
||||
<!-- <div class="pop_open" data-include-path="../skin/member/basic/login.skin.php"></div> -->
|
||||
<?php
|
||||
include_once($member_skin_path.'/login.skin.php');
|
||||
include_once($member_skin_path.'/mypage.skin.php');
|
||||
include_once($member_skin_path.'/register.skin.php');
|
||||
include_once($member_skin_path.'/register_form.skin.php');
|
||||
?>
|
||||
<!-- <div class="pop_open" data-include-path="pop/pop_join.html"></div>
|
||||
<div class="pop_open" data-include-path="pop/pop_login.html"></div>
|
||||
<div class="pop_open" data-include-path="pop/pop_mypage01.html"></div>
|
||||
<div class="pop_open" data-include-path="pop/pop_mypage02.html"></div>
|
||||
<div class="pop_open" data-include-path="pop/pop_mypage03.html"></div>
|
||||
<div class="pop_open" data-include-path="pop/pop_search.html"></div> -->
|
||||
<!-- 모든 팝업페이지 경로 -->
|
||||
|
||||
|
||||
|
||||
|
||||
<!-- main -->
|
||||
<main class="main">
|
||||
<ul class="pagination_main">
|
||||
<li class="page_list_wrap">
|
||||
<div class="page_01 page_on"><img src="<?php echo G5_URL ?>/img/logo_w.svg" alt=""></div><span class="page_num">01</span>
|
||||
</li>
|
||||
<li class="page_list_wrap">
|
||||
<div class="page_02"><span>주요기능</span></div><span class="page_num">02</span>
|
||||
</li>
|
||||
<li class="page_list_wrap">
|
||||
<div class="page_03"><span>공로분석</span></div><span class="page_num">03</span>
|
||||
</li>
|
||||
<li class="page_list_wrap">
|
||||
<div class="page_04"><span>대중교통</span></div><span class="page_num">04</span>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<div class="main_link">
|
||||
<a href="#01" class="main_link_01 link_on"></a>
|
||||
<a href="#02" class="main_link_02"></a>
|
||||
<a href="#03" class="main_link_03"></a>
|
||||
<a href="#04" class="main_link_04"></a>
|
||||
</div>
|
||||
<div class="bg_video">
|
||||
<video id="video_play" class="bg_video_content" autoplay muted>
|
||||
<source src="<?php echo G5_URL ?>/img/main_01.mp4" type="video/mp4" class="main_video_01">
|
||||
</video>
|
||||
</div>
|
||||
<footer class="footer_off">
|
||||
<div class="footer_close"></div>
|
||||
<div class="footer_wrap">
|
||||
<div class="footer_right">
|
||||
<img src="<?php echo G5_URL ?>/img/baron_logo.svg" alt="">
|
||||
<div class="footer_privercy">
|
||||
<span><strong>개인정보 처리방침</strong></span>
|
||||
<div class="line_div"></div>
|
||||
<span>이용약관</span>
|
||||
</div>
|
||||
<div class="copyright">
|
||||
<span>© 2017 Bron. All rights reserved.</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="footer_left">
|
||||
<ul class="footer_menu">
|
||||
<li>
|
||||
<a href="<?php echo G5_BBS_URL?>/value.php">TOVA 소개</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="<?php echo G5_BBS_URL?>/primary.php">주요기능</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="<?php echo G5_BBS_URL?>/road.php">공로분석</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="<?php echo G5_BBS_URL?>/public.php">대중교통</a>
|
||||
</li>
|
||||
</ul>
|
||||
<div class="footer_sitemap">
|
||||
<span>TOVA의 <em>다양한 소식</em>을 만나보세요</span>
|
||||
<div class="tova_sns">
|
||||
<a href="" class="tova_cafe"><img src="<?php echo G5_URL ?>/img/ico_cafe.svg" alt=""></a>
|
||||
<a href="" class="tova_facebook"><img src="<?php echo G5_URL ?>/img/ico_facebook.svg" alt=""></a>
|
||||
</div>
|
||||
<div class="family_wrap">
|
||||
<div class="family_btn">
|
||||
<span>Family Site</span><img src="<?php echo G5_URL ?>/img/ico_angle.svg" alt="">
|
||||
</div>
|
||||
<ul class="family_list">
|
||||
<li><a href="http://www.hanmaceng.co.kr/" target="_blank">한맥기술</a></li>
|
||||
<li><a href="http://www.samaneng.co.kr/" target="_blank">삼안</a></li>
|
||||
<li><a href="http://www.jangheon.co.kr/" target="_blank">장헌산업</a></li>
|
||||
<li><a href="http://www.pre-cast.co.kr/" target="_blank">피티씨</a></li>
|
||||
<li><a href="http://www.hallasanup.com/" target="_blank">한라산업개발</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</footer>
|
||||
</div>
|
||||
|
||||
<div class="intro_wrap">
|
||||
<div class="intro_content">
|
||||
<div class="intro_mask"></div>
|
||||
<div class="intro_txt">
|
||||
<div class="txt_mask"><span class="intro_txt_01">지속적인 도전과 혁신으로</span></div>
|
||||
<div class="txt_mask"><span class="intro_txt_02"><img src="<?php echo G5_URL ?>/img/logo_b.svg" alt="">는</span></div>
|
||||
<div class="txt_mask"><span class="intro_txt_03"><strong>교통분석의 미래를 선도</strong>합니다.</span></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</main>
|
||||
<!-- //main -->
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
<script>
|
||||
if($('#hid_mb_id').val()==''){
|
||||
document.getElementById('my_join2').style.display = 'none';
|
||||
document.getElementById('my_login2').style.display = 'none';
|
||||
document.getElementById('my_join').style.display = '';
|
||||
document.getElementById('my_login').style.display = '';
|
||||
}else{
|
||||
document.getElementById('my_join2').style.display = '';
|
||||
document.getElementById('my_login2').style.display = '';
|
||||
document.getElementById('my_join').style.display = 'none';
|
||||
document.getElementById('my_login').style.display = 'none';
|
||||
}
|
||||
|
||||
$('#flogin button[type=submit]').click(function(e){
|
||||
e.preventDefault();
|
||||
let mb_id = $('#login_id').val();
|
||||
let mb_password = $('#login_pw').val();
|
||||
//alert('<?php echo G5_URL ?>/bbs/login.php');
|
||||
$.ajax({
|
||||
url : '<?php echo G5_URL ?>/bbs/login_check_tova.php',
|
||||
data : {
|
||||
'mb_id' : mb_id,
|
||||
'mb_password' : mb_password
|
||||
},
|
||||
type : "POST",
|
||||
datatype : "json",
|
||||
success : function(data){
|
||||
var ss='';
|
||||
for(i=0; i<data.length; i++){
|
||||
ss=ss + data[i];
|
||||
}
|
||||
//alert(ss.length);
|
||||
//if(ss.length == 5){
|
||||
//$(".popup_wrap").show();
|
||||
$('.btn_close').hide();
|
||||
$('#pop_login').hide();
|
||||
$('#hid_mb_id').val(mb_id);
|
||||
document.getElementById('my_join2').style.display = '';
|
||||
document.getElementById('my_login2').style.display = '';
|
||||
document.getElementById('my_join').style.display = 'none';
|
||||
document.getElementById('my_login').style.display = 'none';
|
||||
|
||||
//}else
|
||||
//{
|
||||
// alert(trim(ss));
|
||||
//}
|
||||
},
|
||||
error : function(err){
|
||||
//alert(err);
|
||||
alert(err.status);
|
||||
alert(err.statusText);
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
$('#fregister button[type=submit]').click(function(e){
|
||||
e.preventDefault();
|
||||
let agree11 = $('#agree11').val();
|
||||
let agree21 = $('#agree21').val();
|
||||
$.ajax({
|
||||
url : '<?php echo G5_URL ?>/bbs/register_form.php',
|
||||
type : "POST",
|
||||
datatype : "json",
|
||||
contentType: 'application/json; charset=utf-8',
|
||||
data : {
|
||||
'agree11' : agree11,
|
||||
'agree21' : agree21
|
||||
},
|
||||
// success : function(data){
|
||||
// var ss='';
|
||||
// for(i=0; i<data.length; i++){
|
||||
// ss=ss + data[i];
|
||||
// }
|
||||
// alert(ss);
|
||||
// },
|
||||
error : function(err){
|
||||
alert(err);
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
$('#fregisterform button[type=submit]').click(function(e){
|
||||
e.preventDefault();
|
||||
|
||||
let mb_id = $('#reg_mb_id').val();
|
||||
let mb_password = $('#reg_mb_password').val();
|
||||
let mb_password_re = $('#reg_mb_password_re').val();
|
||||
let mb_name = $('#reg_mb_name').val();
|
||||
let mb_email1 = $('#reg_mb_email1').val();
|
||||
let mb_email2 = $('#mb_email2').val();
|
||||
let mb_hp = $('#reg_mb_hp').val();
|
||||
let mb_comp = $('#reg_mb_comp').val();
|
||||
let mb_comp_team = $('#reg_mb_comp_team').val();
|
||||
// alert(mb_password+' '+mb_password_re+' '+mb_name+' '+mb_email1+' '+mb_email2+' '+mb_hp+' '+mb_comp+' '+mb_comp_team);
|
||||
$.ajax({
|
||||
url : '<?php echo G5_URL ?>/bbs/register_form_update.php',
|
||||
data : {
|
||||
'mb_id' : mb_id,
|
||||
'mb_password' : mb_password,
|
||||
'mb_password_re' : mb_password_re,
|
||||
'mb_name' : mb_name,
|
||||
'mb_email1' : mb_email1,
|
||||
'mb_email2' : mb_email2,
|
||||
'mb_hp' : mb_hp,
|
||||
'mb_comp' : mb_comp,
|
||||
'mb_comp_team' : mb_comp_team,
|
||||
},
|
||||
type : "POST",
|
||||
datatype : "json",
|
||||
success : function(data){
|
||||
var ss='';
|
||||
for(i=0; i<data.length; i++){
|
||||
ss=ss + data[i];
|
||||
}
|
||||
if(ss){
|
||||
if (mb_id.length < 4) {
|
||||
alert("아이디를 4글자 이상 입력하십시오.");
|
||||
mb_id.focus();
|
||||
return false;
|
||||
}
|
||||
var special_pattern = /[`~!@#$%^&*|\\\'\";:\/?]/gi
|
||||
if (special_pattern.test(mb_id) == true) {
|
||||
alert("아이디는 특수문자를 사용할수 없습니다.");
|
||||
mb_id.focus();
|
||||
return false;
|
||||
}
|
||||
|
||||
// 비밀번호 검사
|
||||
if(!/^(?=.*[a-zA-Z])(?=.*[!@#$%^*+=-])(?=.*[0-9]).{8,25}$/.test(mb_password)){
|
||||
alert('비밀번호는 숫자+영문자+특수문자 조합으로 8자리 이상 사용해야 합니다.');
|
||||
mb_password.focus();
|
||||
return false;
|
||||
}
|
||||
// if (mb_password_re.length < 8 || mb_password.length < 8) {
|
||||
// alert("비밀번호를 8글자 이상 입력하십시오.");
|
||||
// mb_password.focus();
|
||||
// return false;
|
||||
// }
|
||||
|
||||
// 비밀번호 & 2차비밀번호 검사
|
||||
if (mb_password != mb_password_re) {
|
||||
alert("비밀번호가 같지 않습니다.");
|
||||
mb_password_re.focus();
|
||||
return false;
|
||||
}
|
||||
|
||||
// 이름 검사
|
||||
if (mb_name == "") {
|
||||
if (mb_name.length < 1) {
|
||||
alert("이름을 입력하십시오.");
|
||||
mb_name.focus();
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
// 메일 검사
|
||||
if (mb_email1 == "") {
|
||||
if (mb_email1.length < 1) {
|
||||
alert("메일 주소를 입력하십시오.");
|
||||
mb_email1.focus();
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
// 핸드폰 번호 검사
|
||||
if (mb_hp.length < 11) {
|
||||
alert("휴대전화번호 11자리를 입력하십시오.");
|
||||
mb_hp.focus();
|
||||
return false;
|
||||
}
|
||||
if(isNaN(mb_hp)){
|
||||
alert("휴대전화번호는 숫자만 입력가능합니다.");
|
||||
mb_hp.focus();
|
||||
return false;
|
||||
}
|
||||
// 회사명 검사
|
||||
if (mb_comp == "") {
|
||||
if (mb_comp.length < 1) {
|
||||
alert("회사명을 입력하십시오");
|
||||
mb_comp.focus();
|
||||
return false;
|
||||
}
|
||||
}
|
||||
$(".popup_wrap").show();
|
||||
$('.btn_close').hide();
|
||||
$('#pop_login').hide();
|
||||
$('#pop_agreement').hide();
|
||||
$('#pop_join').hide();
|
||||
$('#pop_mypage01').hide();
|
||||
$('#pop_search').hide();
|
||||
// $('.register_fs').hide();
|
||||
// $('.join_progress .join_step').removeClass('on');
|
||||
// $('.join_progress .join_step').eq(2).addClass('on');
|
||||
// $('.messages').show();
|
||||
alert('회원가입이 완료됐습니다.\n다시 로그인 해주세요');
|
||||
|
||||
}else{
|
||||
alert('실패했습니다.');
|
||||
}
|
||||
},
|
||||
error : function(err){
|
||||
alert('에러');
|
||||
//alert(err);
|
||||
// alert(err.status);
|
||||
// alert(err.statusText);
|
||||
}
|
||||
});
|
||||
// $.removeCookie(mb_id,{path:'<?php //echo G5_URL ?>/bbs/register_form_update.php'});
|
||||
});
|
||||
</script>
|
||||
@@ -0,0 +1,661 @@
|
||||
<?php
|
||||
if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가
|
||||
?>
|
||||
<head>
|
||||
<!-- Google Tag Manager -->
|
||||
<script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
|
||||
new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
|
||||
j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
|
||||
'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
|
||||
})(window,document,'script','dataLayer','GTM-5GX3FS9R');
|
||||
</script>
|
||||
<!-- End Google Tag Manager -->
|
||||
<!-- Google tag (gtag.js) -->
|
||||
<script async src="https://www.googletagmanager.com/gtag/js?id=G-7J3S6MHW3Y"></script>
|
||||
<script>
|
||||
window.dataLayer = window.dataLayer || [];
|
||||
function gtag(){dataLayer.push(arguments);}
|
||||
gtag('js', new Date());
|
||||
|
||||
gtag('config', 'G-7J3S6MHW3Y');
|
||||
</script>
|
||||
<meta charset="utf-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<meta name="description" content="디지털전환시대 EG-BIM, 도면과 3차원 정보모델을 하나의 S/W로" />
|
||||
<meta name="keywords" content="EG-BIM, 이지빔, egbim, eg bim, CAD, 대안CAD, 도면, BIM" />
|
||||
<title>EG-BIM</title>
|
||||
<link rel="stylesheet" href="<?php echo G5_URL ?>/css/reset.css" />
|
||||
<link rel="stylesheet" href="<?php echo G5_URL ?>/css/font.css" />
|
||||
<link rel="stylesheet" href="<?php echo G5_URL ?>/css/style.css" />
|
||||
<link rel="stylesheet" href="<?php echo G5_URL ?>/theme/basic/skin/qa/basic/style.css?ver=2303229">
|
||||
|
||||
<link rel="stylesheet" href="https://unpkg.com/aos@2.3.1/dist/aos.css" type="text/css"/>
|
||||
<script src="https://unpkg.com/aos@2.3.1/dist/aos.js"></script>
|
||||
<script src="https://unpkg.com/lenis@1.1.9/dist/lenis.min.js"></script>
|
||||
<link rel="stylesheet" href="https://unpkg.com/lenis@1.1.9/dist/lenis.css">
|
||||
<script type="text/javascript" src="<?php echo G5_URL ?>/js/jquery-3.6.1.min.js"></script>
|
||||
<script type="text/javascript" src="<?php echo G5_URL ?>/js/jquery.mousewheel.min.js"></script>
|
||||
<script src="https://cdn.jsdelivr.net/npm/gsap@3.12.5/dist/gsap.min.js"></script>
|
||||
<script src="https://cdn.jsdelivr.net/npm/gsap@3.12.5/dist/ScrollTrigger.min.js"></script>
|
||||
<script src="https://cdn.jsdelivr.net/npm/gsap@3.12.5/dist/ScrollToPlugin.min.js"></script>
|
||||
<script type="text/javascript" src="<?php echo G5_URL ?>/js/common.js"></script>
|
||||
<script type="text/javascript" src="<?php echo G5_URL ?>/js/popup.js"></script>
|
||||
<script type="text/javascript" src="<?php echo G5_URL ?>/js/index.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
<!-- Google Tag Manager (noscript) -->
|
||||
<noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-5GX3FS9R"
|
||||
height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
|
||||
<!-- End Google Tag Manager (noscript) -->
|
||||
|
||||
<div class="wrapper">
|
||||
<input id="hid_mb_id" name="hid_mb_id" type="hidden" value="<?echo $_SESSION['session_id'];?>"></input>
|
||||
<div class="main_mask">
|
||||
<!-- Header -->
|
||||
<header class="js__header">
|
||||
<?php include_once($member_skin_path.'/main_header.skin.php'); ?>
|
||||
</header>
|
||||
<!-- //Header -->
|
||||
<!-- floating_menu -->
|
||||
<div class="floating_menu">
|
||||
<ul>
|
||||
<li class="floating_faq"><a href="<?php echo G5_BBS_URL ?>/faq.php">
|
||||
<i></i>
|
||||
<span>FAQ</span>
|
||||
</a></li>
|
||||
<li class="floating_buy"><a href="<?php echo G5_BBS_URL ?>/buy.php">
|
||||
<i></i>
|
||||
<span>구매하기</span>
|
||||
</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<!-- //floating_menu -->
|
||||
<!-- 모든 팝업페이지 경로 -->
|
||||
<?php
|
||||
include_once($member_skin_path.'/login.skin.php');
|
||||
include_once($member_skin_path.'/mypage01.skin.php');
|
||||
include_once($member_skin_path.'/register.skin.php');
|
||||
include_once($member_skin_path.'/register_form.skin.php');
|
||||
include_once($member_skin_path.'/mypage02.skin.php');
|
||||
include_once($member_skin_path.'/mypage03.skin.php');
|
||||
include_once($member_skin_path.'/sitemap.skin.php');
|
||||
include_once($member_skin_path.'/privacy.skin.php');
|
||||
include_once($member_skin_path.'/password_lost.skin.php');
|
||||
?>
|
||||
<!-- 모든 팝업페이지 경로 -->
|
||||
<!-- main -->
|
||||
<div class="main">
|
||||
<ul class="pagination_main">
|
||||
<li><div class="page_01 page_on">EG-BIM 소개</div><span>01</span></li>
|
||||
<li><div class="page_02">인터페이스</div><span>02</span></li>
|
||||
<li><div class="page_03">주요기능</div><span>03</span></li>
|
||||
<li><div class="page_04">도면관리</div><span>04</span></li>
|
||||
<li><div class="page_05">for BIM</div><span>05</span></li>
|
||||
</ul>
|
||||
<div class="main_link">
|
||||
<a href="#01" class="main_link_01 link_on" onclick="location.href='<?php echo G5_BBS_URL ?>/value.php'"></a>
|
||||
<a href="#02" class="main_link_02" onclick="location.href='<?php echo G5_BBS_URL ?>/interface.php'"></a>
|
||||
<a href="#03" class="main_link_03" onclick="location.href='<?php echo G5_BBS_URL ?>/primary.php'"></a>
|
||||
<a href="#04" class="main_link_04" onclick="location.href='<?php echo G5_BBS_URL ?>/floorplan.php'"></a>
|
||||
<a href="#05" class="main_link_05" onclick="location.href='<?php echo G5_BBS_URL ?>/forbim.php'"></a>
|
||||
</div>
|
||||
<div class="bg_video">
|
||||
<video id="video_play" autoplay muted playsinline>
|
||||
<source src="<?php echo G5_URL ?>/img/main_1.mp4" type="video/mp4" class="main_video_01">
|
||||
</video>
|
||||
</div>
|
||||
<!-- <button class="btn_top js__top" onclick="window.scrollTo(0,0);"><div class="arrow"></div></button> -->
|
||||
<footer class="footer_off">
|
||||
<?php include_once($member_skin_path.'/main_footer.skin.php'); ?>
|
||||
</footer>
|
||||
</div>
|
||||
</div>
|
||||
<div class="intro_wrap">
|
||||
<div class="intro_mask"></div>
|
||||
<div class="intro_txt">
|
||||
<div class="txt_mask"><span><b>디지털전환시대</b></span></div>
|
||||
<div class="txt_mask"><span><font class="egbim k">EG-BIM_software</font></span></div>
|
||||
<div class="txt_mask"><span><em>도면</em>과 <em>3차원 정보모델</em>을 <br class="brk "><em>하나의</em> S/W로</span></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script>
|
||||
AOS.init();
|
||||
|
||||
const lenis = new Lenis()
|
||||
lenis.on('scroll', (e) => {
|
||||
// console.log(e)
|
||||
})
|
||||
lenis.on('scroll', ScrollTrigger.update)
|
||||
gsap.ticker.add((time)=>{
|
||||
lenis.raf(time * 1000)
|
||||
})
|
||||
gsap.ticker.lagSmoothing(0)
|
||||
</script>
|
||||
</body>
|
||||
<script>
|
||||
// 회원 탈퇴
|
||||
function member_leave() {
|
||||
if (confirm("회원에서 탈퇴 하시겠습니까?"))
|
||||
location.href = '<?php echo G5_BBS_URL ?>/member_leave.php';
|
||||
}
|
||||
// 회원 탈퇴
|
||||
|
||||
//$('.family_btn').click(function(){
|
||||
// $(".family_list").toggleClass(" family_on");
|
||||
//});
|
||||
|
||||
if($('#hid_mb_id').val()==''){
|
||||
document.getElementById('my_join2').style.display = 'none';
|
||||
document.getElementById('my_login2').style.display = 'none';
|
||||
document.getElementById('my_join').style.display = '';
|
||||
document.getElementById('my_login').style.display = '';
|
||||
}else{
|
||||
document.getElementById('my_join2').style.display = '';
|
||||
document.getElementById('my_login2').style.display = '';
|
||||
document.getElementById('my_join').style.display = 'none';
|
||||
document.getElementById('my_login').style.display = 'none';
|
||||
}
|
||||
let x = document.cookie;
|
||||
if(x.includes("tmp_1=John")){
|
||||
deleteCookie("tmp_1");
|
||||
$('#pop_mypage02').show();
|
||||
}
|
||||
|
||||
function deleteCookie(name) {
|
||||
document.cookie = name + "=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/egbim;";
|
||||
}
|
||||
function getCookie(cname) {
|
||||
let name = cname + "=";
|
||||
let decodedCookie = decodeURIComponent(document.cookie);
|
||||
let ca = decodedCookie.split(';');
|
||||
for(let i = 0; i <ca.length; i++) {
|
||||
let c = ca[i];
|
||||
while (c.charAt(0) == ' ') {
|
||||
c = c.substring(1);
|
||||
}
|
||||
if (c.indexOf(name) == 0) {
|
||||
return c.substring(name.length, c.length);
|
||||
}
|
||||
}
|
||||
return "";
|
||||
}
|
||||
//alert(getCookie("tmp_1"));
|
||||
//로그인
|
||||
$('#flogin button[type=submit]').click(function(e){
|
||||
e.preventDefault();
|
||||
let mb_id = $('#login_id').val();
|
||||
let mb_password = $('#login_pw').val();
|
||||
//alert('<?php echo G5_URL ?>/bbs/login.php');
|
||||
$.ajax({
|
||||
url : '<?php echo G5_URL ?>/bbs/login_check_tova.php',
|
||||
data : {
|
||||
'mb_id' : mb_id,
|
||||
'mb_password' : mb_password
|
||||
},
|
||||
type : "POST",
|
||||
datatype : "json",
|
||||
success : function(data){
|
||||
var ss='';
|
||||
for(i=0; i<data.length; i++){
|
||||
ss=ss + data[i];
|
||||
}
|
||||
//alert(ss.replace('"','').replace('"',''));
|
||||
if(ss.replace('"','').replace('"','') == "success" || ss.replace('"','').replace('"','') == "super"){
|
||||
//$(".popup_wrap").show();
|
||||
// $('.btn_close').hide();
|
||||
// $('#pop_login').hide();
|
||||
// ------유나 추가
|
||||
$('.popup_wrap').hide();
|
||||
$('body').css('overflow', ''); // 기본 스크롤 상태로 복귀
|
||||
lenis.start();
|
||||
console.log('로그인 완료 및 lenis 재시작/유나 추가')
|
||||
$('#hid_mb_id').val(mb_id);
|
||||
document.getElementById('my_join2').style.display = '';
|
||||
document.getElementById('my_login2').style.display = '';
|
||||
document.getElementById('my_join').style.display = 'none';
|
||||
document.getElementById('my_login').style.display = 'none';
|
||||
//location.href="<?php echo G5_URL ?>/bbs/session.php?id="+mb_id;
|
||||
if(ss.replace('"','').replace('"','') == "super"){
|
||||
$('#my_join2').html("<a href='http://eg-bim.com/egbim/adm/index.php' target='_blank'>관리페이지</a>");
|
||||
}else{
|
||||
$('#my_join2').html("<a href='javascript:mypage01();'>마이페이지</a>");
|
||||
$('.btn_close').show();
|
||||
}
|
||||
}else
|
||||
{
|
||||
alert(trim(ss));
|
||||
}
|
||||
},
|
||||
error : function(err){
|
||||
//alert(err);
|
||||
alert(err.status);
|
||||
alert(err.statusText);
|
||||
}
|
||||
});
|
||||
});
|
||||
//회원가입 약관동의
|
||||
$('#fregister button[type=submit]').click(function(e){
|
||||
e.preventDefault();
|
||||
let agree11 = $('#agree11').val();
|
||||
let agree21 = $('#agree21').val();
|
||||
$.ajax({
|
||||
url : '<?php echo G5_URL ?>/bbs/register_form.php',
|
||||
type : "POST",
|
||||
datatype : "json",
|
||||
contentType: 'application/json; charset=utf-8',
|
||||
data : {
|
||||
'agree11' : agree11,
|
||||
'agree21' : agree21
|
||||
},
|
||||
success : function(data){
|
||||
var ss='';
|
||||
for(i=0; i<data.length; i++){
|
||||
ss=ss + data[i];
|
||||
}
|
||||
},
|
||||
error : function(err){
|
||||
alert(err);
|
||||
}
|
||||
});
|
||||
});
|
||||
//회원가입 정보입력
|
||||
$('#fregisterform button[type=submit]').click(function(e){
|
||||
e.preventDefault();
|
||||
|
||||
let mb_id = $('#reg_mb_id').val();
|
||||
let mb_password = $('#reg_mb_password').val();
|
||||
let mb_password_re = $('#reg_mb_password_re').val();
|
||||
let mb_name = $('#reg_mb_name').val();
|
||||
let mb_email1 = $('#reg_mb_email1').val();
|
||||
let mb_email2 = $('#reg_mb_email2').val();
|
||||
let reg_domain2 = $('#register_domain2').val();
|
||||
let mb_hp = $('#reg_mb_hp').val();
|
||||
let mb_comp = $('#reg_mb_comp').val();
|
||||
let mb_comp_team = $('#reg_mb_comp_team').val();
|
||||
//alert(mb_password+' '+mb_password_re+' '+mb_name+' '+mb_email1+' '+mb_email2+' '+mb_hp+' '+mb_comp+' '+mb_comp_team);
|
||||
if (mb_id.length < 4) {
|
||||
alert("아이디를 4글자 이상 입력하십시오.");
|
||||
mb_id.focus();
|
||||
return false;
|
||||
}
|
||||
var special_pattern = /[`~!@#$%^&*|\\\'\";:\/?]/gi
|
||||
if (special_pattern.test(mb_id) == true) {
|
||||
alert("아이디는 특수문자를 사용할수 없습니다.");
|
||||
mb_id.focus();
|
||||
return false;
|
||||
}
|
||||
|
||||
// 비밀번호 검사
|
||||
if(!/^(?=.*[a-zA-Z])(?=.*[!@#$%^*+=-])(?=.*[0-9]).{8,25}$/.test(mb_password)){
|
||||
alert('비밀번호는 숫자+영문자+특수문자 조합으로 8자리 이상 사용해야 합니다.');
|
||||
mb_password.focus();
|
||||
return false;
|
||||
}
|
||||
// if (mb_password_re.length < 8 || mb_password.length < 8) {
|
||||
// alert("비밀번호를 8글자 이상 입력하십시오.");
|
||||
// mb_password.focus();
|
||||
// return false;
|
||||
// }
|
||||
|
||||
// 비밀번호 & 2차비밀번호 검사
|
||||
if (mb_password != mb_password_re) {
|
||||
alert("비밀번호가 같지 않습니다.");
|
||||
mb_password_re.focus();
|
||||
return false;
|
||||
}
|
||||
|
||||
// 이름 검사
|
||||
if (mb_name == "") {
|
||||
if (mb_name.length < 1) {
|
||||
alert("이름을 입력하십시오.");
|
||||
mb_name.focus();
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
// 메일 검사
|
||||
if (mb_email1 == "") {
|
||||
if (mb_email1.length < 1) {
|
||||
alert("메일 주소를 입력하십시오.");
|
||||
mb_email1.focus();
|
||||
return false;
|
||||
}
|
||||
}
|
||||
if (mb_email2 == "type"){
|
||||
mb_email2 = '@' + reg_domain2;
|
||||
}
|
||||
// 핸드폰 번호 검사
|
||||
if (mb_hp.length < 11) {
|
||||
alert("휴대전화번호 11자리를 입력하십시오.");
|
||||
mb_hp.focus();
|
||||
return false;
|
||||
}
|
||||
if(isNaN(mb_hp)){
|
||||
alert("휴대전화번호는 숫자만 입력가능합니다.");
|
||||
mb_hp.focus();
|
||||
return false;
|
||||
}
|
||||
// 회사명 검사
|
||||
if (mb_comp == "") {
|
||||
if (mb_comp.length < 1) {
|
||||
alert("회사명을 입력하십시오");
|
||||
mb_comp.focus();
|
||||
return false;
|
||||
}
|
||||
}
|
||||
// 팀명 검사
|
||||
if (mb_comp_team == "") {
|
||||
if (mb_comp_team.length < 1) {
|
||||
alert("팀명을 입력하십시오");
|
||||
mb_comp_team.focus();
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
$.ajax({
|
||||
url : '<?php echo G5_URL ?>/bbs/register_form_update.php',
|
||||
data : {
|
||||
'mb_id' : mb_id,
|
||||
'mb_password' : mb_password,
|
||||
'mb_password_re' : mb_password_re,
|
||||
'mb_name' : mb_name,
|
||||
'mb_email1' : mb_email1,
|
||||
'mb_email2' : mb_email2,
|
||||
'mb_hp' : mb_hp,
|
||||
'mb_comp' : mb_comp,
|
||||
'mb_comp_team' : mb_comp_team,
|
||||
},
|
||||
type : "POST",
|
||||
datatype : "json",
|
||||
success : function(data){
|
||||
var ss='';
|
||||
for(i=0; i<data.length; i++){
|
||||
ss=ss + data[i];
|
||||
}
|
||||
if(ss){
|
||||
// $(".popup_wrap").show();
|
||||
// $('.btn_close').hide();
|
||||
// $('#pop_login').hide();
|
||||
// $('#pop_agreement').hide();
|
||||
// $('#pop_join').hide();
|
||||
// $('#pop_mypage01').hide();
|
||||
// $('#pop_search').hide();
|
||||
// $('#pop_mypage02').hide();
|
||||
// $('#pop_mypage03').hide();
|
||||
// $('#pop_privacy').hide();
|
||||
// $('.register_fs').hide();
|
||||
// $('.join_progress .join_step').removeClass('on');
|
||||
// $('.join_progress .join_step').eq(2).addClass('on');
|
||||
// $('.messages').show();
|
||||
//$("#reg_form_join").hide();
|
||||
//$("#pop_result").show();
|
||||
alert('회원가입이 완료됐습니다.\n다시 로그인 해주세요');
|
||||
$('#reg_mb_id').val('');
|
||||
$('#reg_mb_password').val('');
|
||||
$('#reg_mb_password_re').val('');
|
||||
$('#reg_mb_name').val('');
|
||||
$('#reg_mb_email1').val('');
|
||||
$('#reg_mb_hp').val('');
|
||||
$('#reg_mb_comp').val('');
|
||||
$('#reg_mb_comp_team').val('');
|
||||
$('#dupl_check_yn').val('N');
|
||||
// ------유나 추가
|
||||
$('.popup_wrap').hide();
|
||||
$('body').css('overflow', ''); // 기본 스크롤 상태로 복귀
|
||||
lenis.start();
|
||||
console.log('로그인 완료 및 lenis 재시작/유나 추가')
|
||||
|
||||
}else{
|
||||
alert('실패했습니다.');
|
||||
}
|
||||
},
|
||||
error : function(err){
|
||||
alert('에러');
|
||||
alert(err);
|
||||
alert(err.status);
|
||||
alert(err.statusText);
|
||||
}
|
||||
});
|
||||
// $.removeCookie(mb_id,{path:'<?php //echo G5_URL ?>/bbs/register_form_update.php'});
|
||||
});
|
||||
|
||||
//회원정보 수정
|
||||
$('#fregisterform_up button[type=submit]').click(function(e){
|
||||
e.preventDefault();
|
||||
let mb_id = $('#update_mb_id').val();
|
||||
let mb_password = $('#update_mb_password').val();
|
||||
let mb_password_re = $('#update_mb_password_re').val();
|
||||
let mb_name = $('#update_mb_name').val();
|
||||
let mb_email1 = $('#update_mb_email1').val();
|
||||
let mb_email2 = $('#update_mb_email2').val();
|
||||
let update_domain2 = $('#update_domain2').val();
|
||||
if (mb_email2 == "type"){
|
||||
mb_email2 = '@' + update_domain2;
|
||||
}
|
||||
let mb_hp = $('#update_mb_hp').val();
|
||||
let mb_comp = $('#update_mb_comp').val();
|
||||
let mb_comp_team = $('#update_mb_comp_team').val();
|
||||
|
||||
//alert(mb_password+' '+mb_password_re+' '+mb_name+' '+mb_email1+' '+mb_email2+' '+mb_hp+' '+mb_comp+' '+mb_comp_team);
|
||||
if (mb_id.length < 4) {
|
||||
alert('1');
|
||||
alert("아이디를 4글자 이상 입력하십시오.");
|
||||
mb_id.focus();
|
||||
return false;
|
||||
}
|
||||
// var special_pattern = /[`~!@#$%^&*|\\\'\";:\/?]/gi
|
||||
// if (special_pattern.test(mb_id) == true) {
|
||||
// alert("아이디는 특수문자를 사용할수 없습니다.");
|
||||
// mb_id.focus();
|
||||
// return false;
|
||||
// }
|
||||
|
||||
// 비밀번호 검사
|
||||
if(!/^(?=.*[a-zA-Z])(?=.*[!@#$%^*+=-])(?=.*[0-9]).{8,25}$/.test(mb_password)){
|
||||
alert('비밀번호는 숫자+영문자+특수문자 조합으로 8자리 이상 사용해야 합니다.');
|
||||
mb_password.focus();
|
||||
return false;
|
||||
}
|
||||
// if (mb_password_re.length < 8 || mb_password.length < 8) {
|
||||
// alert("비밀번호를 8글자 이상 입력하십시오.");
|
||||
// mb_password.focus();
|
||||
// return false;
|
||||
// }
|
||||
|
||||
// 비밀번호 & 2차비밀번호 검사
|
||||
if (mb_password != mb_password_re) {
|
||||
alert(mb_password_re);
|
||||
alert("비밀번호가 같지 않습니다.");
|
||||
mb_password_re.focus();
|
||||
return false;
|
||||
}
|
||||
|
||||
// 이름 검사
|
||||
if (mb_name == "") {
|
||||
if (mb_name.length < 1) {
|
||||
alert("이름을 입력하십시오.");
|
||||
mb_name.focus();
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
// 메일 검사
|
||||
if (mb_email1 == "") {
|
||||
if (mb_email1.length < 1) {
|
||||
alert("메일 주소를 입력하십시오.");
|
||||
mb_email1.focus();
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
// 핸드폰 번호 검사
|
||||
if (mb_hp.length < 11) {
|
||||
alert("휴대전화번호 11자리를 입력하십시오.");
|
||||
mb_hp.focus();
|
||||
return false;
|
||||
}
|
||||
if(isNaN(mb_hp)){
|
||||
alert("휴대전화번호는 숫자만 입력가능합니다.");
|
||||
mb_hp.focus();
|
||||
return false;
|
||||
}
|
||||
// 회사명 검사
|
||||
if (mb_comp == "") {
|
||||
if (mb_comp.length < 1) {
|
||||
alert("회사명을 입력하십시오");
|
||||
mb_comp.focus();
|
||||
return false;
|
||||
}
|
||||
}
|
||||
// 팀명 검사
|
||||
if (mb_comp_team == "") {
|
||||
if (mb_comp_team.length < 1) {
|
||||
alert("팀명을 입력하십시오");
|
||||
mb_comp_team.focus();
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
$.ajax({
|
||||
url : '<?php echo G5_URL ?>/bbs/mypage03.php',
|
||||
data : {
|
||||
'mb_id' : mb_id,
|
||||
'mb_password' : mb_password,
|
||||
'mb_password_re' : mb_password_re,
|
||||
'mb_name' : mb_name,
|
||||
'mb_email1' : mb_email1,
|
||||
'mb_email2' : mb_email2,
|
||||
'mb_hp' : mb_hp,
|
||||
'mb_comp' : mb_comp,
|
||||
'mb_comp_team' : mb_comp_team,
|
||||
},
|
||||
type : "POST",
|
||||
datatype : "json",
|
||||
success : function(data){
|
||||
var ss='';
|
||||
for(i=0; i<data.length; i++){
|
||||
ss=ss + data[i];
|
||||
}
|
||||
|
||||
if(ss.replace('"','').replace('"','') == "success"){
|
||||
// $(".popup_wrap").show();
|
||||
$('.btn_close').show();
|
||||
$('#pop_login').hide();
|
||||
$('#pop_agreement').hide();
|
||||
$('#pop_join').hide();
|
||||
$('#pop_mypage01').hide();
|
||||
$('#pop_search').hide();
|
||||
$('#pop_mypage02').show();
|
||||
$('#pop_mypage03').hide();
|
||||
$('#pop_privacy').hide();
|
||||
// $('.register_fs').hide();
|
||||
// $('.join_progress .join_step').removeClass('on');
|
||||
// $('.join_progress .join_step').eq(2).addClass('on');
|
||||
// $('.messages').show();
|
||||
alert('회원정보 수정이 완료됐습니다.');
|
||||
document.getElementById("span_email").innerText=mb_email1+mb_email2;
|
||||
document.getElementById("span_hp").innerText=mb_hp;
|
||||
document.getElementById("span_comp").innerText=mb_comp;
|
||||
document.getElementById("span_comp_team").innerText=mb_comp_team;
|
||||
// $('#update_mb_id').val('');
|
||||
// $('#update_mb_password').val('');
|
||||
// $('#update_mb_password_re').val('');
|
||||
// $('#update_mb_name').val('');
|
||||
// $('#update_mb_email1').val('');
|
||||
// $('#update_mb_hp').val('');
|
||||
// $('#update_mb_comp').val('');
|
||||
// $('#update_mb_comp_team').val('');
|
||||
// $('#dupl_check_yn').val('N');
|
||||
|
||||
}else{
|
||||
alert('실패했습니다.');
|
||||
}
|
||||
},
|
||||
error : function(err){
|
||||
alert('에러');
|
||||
alert(err);
|
||||
alert(err.status);
|
||||
alert(err.statusText);
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
$('#fmyconfirmpw button[type=submit]').click(function(e){
|
||||
e.preventDefault();
|
||||
|
||||
let l_mb_password = $('#password_mypage').val();
|
||||
let l_mb_id = $('#hid_mb_id').val();
|
||||
|
||||
$.ajax({
|
||||
url : '<?php echo G5_URL ?>/bbs/mypage02.php',
|
||||
data : {
|
||||
'mb_id' : l_mb_id,
|
||||
'mb_password' : l_mb_password,
|
||||
},
|
||||
type : "POST",
|
||||
datatype : "json",
|
||||
success : function(data){
|
||||
var ss='';
|
||||
for(i=0; i<data.length; i++){
|
||||
ss=ss + data[i];
|
||||
}
|
||||
//alert(ss.replace('"','').replace('"',''));
|
||||
if(ss.replace('"','').replace('"','') == "success"){
|
||||
$('#password_mypage').val('');
|
||||
//mypage02();
|
||||
document.cookie = "tmp_1=John";
|
||||
location.href="<?php echo G5_URL ?>/index.php";
|
||||
}else
|
||||
{
|
||||
alert(trim(ss));
|
||||
$('#password_mypage').select();
|
||||
}
|
||||
},
|
||||
error : function(err){
|
||||
alert(err);
|
||||
alert(err.status);
|
||||
alert(err.statusText);
|
||||
}
|
||||
});
|
||||
});
|
||||
</script>
|
||||
<script>
|
||||
// 쿼리스트링 파싱 함수
|
||||
function getQueryString(name) {
|
||||
const intro = document.querySelector('.intro_wrap');
|
||||
intro.style.display = "none";
|
||||
const mainMask = document.querySelector('.main_mask');
|
||||
mainMask.classList.add('skip');
|
||||
// mainMask.style.aimation = 'none';
|
||||
const urlParams = new URLSearchParams(window.location.search);
|
||||
return urlParams.get(name);
|
||||
}
|
||||
|
||||
$(document).ready(function() {
|
||||
const popupParam = getQueryString('popup');
|
||||
|
||||
if (popupParam === 'signup') {
|
||||
console.log('쿼리 감지: signup → 회원가입 팝업 자동 오픈 시도');
|
||||
$('#pop_agreement').show(); // 팝업 보여주기
|
||||
|
||||
// 스크롤 잠금 (사용 중이면)
|
||||
$('body').css('overflow', 'hidden');
|
||||
if (typeof lenis !== 'undefined') {
|
||||
lenis.stop();
|
||||
}
|
||||
}
|
||||
|
||||
// 팝업 닫기 버튼 이벤트 연결
|
||||
$('#pop_agreement .btn_close').on('click', function() {
|
||||
$('#pop_agreement').hide();
|
||||
$('body').css('overflow', '');
|
||||
if (typeof lenis !== 'undefined') {
|
||||
lenis.start();
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
</script>
|
||||
|
||||
@@ -0,0 +1,709 @@
|
||||
<?php
|
||||
if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가
|
||||
|
||||
include_once __DIR__ . '/asset_urls.php';
|
||||
?>
|
||||
<head>
|
||||
<!-- Google Tag Manager -->
|
||||
<script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
|
||||
new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
|
||||
j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
|
||||
'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
|
||||
})(window,document,'script','dataLayer','GTM-5GX3FS9R');
|
||||
</script>
|
||||
<!-- End Google Tag Manager -->
|
||||
<!-- Google tag (gtag.js) -->
|
||||
<script async src="https://www.googletagmanager.com/gtag/js?id=G-7J3S6MHW3Y"></script>
|
||||
<script>
|
||||
window.dataLayer = window.dataLayer || [];
|
||||
function gtag(){dataLayer.push(arguments);}
|
||||
gtag('js', new Date());
|
||||
|
||||
gtag('config', 'G-7J3S6MHW3Y');
|
||||
</script>
|
||||
<meta charset="utf-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<meta name="description" content="디지털전환시대 EG-BIM, 도면과 3차원 정보모델을 하나의 S/W로" />
|
||||
<meta name="keywords" content="EG-BIM, 이지빔, egbim, eg bim, CAD, 대안CAD, 도면, BIM, 삼안, 한맥, 바론컨설턴트" />
|
||||
<meta name="naver-site-verification" content="a054b2ea2f9aeb1284d0e9409a7b117189ee7734" />
|
||||
|
||||
<!-- Open Graph: 카카오톡 미리보기용 -->
|
||||
<meta property="og:title" content="EG-BIM" />
|
||||
<meta property="og:description" content="디지털전환시대 EG-BIM, 도면과 3차원 정보모델을 하나의 S/W로" />
|
||||
<meta property="og:image" content="<?php echo egbim_img_url('og-main-thumb.JPG'); ?>" />
|
||||
<meta property="og:url" content="/egbim/" />
|
||||
<meta property="og:type" content="website" />
|
||||
|
||||
<title>EG-BIM</title>
|
||||
<link rel="stylesheet" href="/egbim/css/reset.css" />
|
||||
<link rel="stylesheet" href="/egbim/css/font.css" />
|
||||
<link rel="stylesheet" href="/egbim/css/style.css" />
|
||||
<link rel="stylesheet" href="/egbim/theme/basic/skin/qa/basic/style.css?ver=2303229">
|
||||
|
||||
<link rel="stylesheet" href="https://unpkg.com/aos@2.3.1/dist/aos.css" type="text/css"/>
|
||||
<script src="https://unpkg.com/aos@2.3.1/dist/aos.js"></script>
|
||||
<script src="https://unpkg.com/lenis@1.1.9/dist/lenis.min.js"></script>
|
||||
<link rel="stylesheet" href="https://unpkg.com/lenis@1.1.9/dist/lenis.css">
|
||||
<script type="text/javascript" src="/egbim/js/jquery-3.6.1.min.js"></script>
|
||||
<script type="text/javascript" src="/egbim/js/jquery.mousewheel.min.js"></script>
|
||||
<script src="https://cdn.jsdelivr.net/npm/gsap@3.12.5/dist/gsap.min.js"></script>
|
||||
<script src="https://cdn.jsdelivr.net/npm/gsap@3.12.5/dist/ScrollTrigger.min.js"></script>
|
||||
<script src="https://cdn.jsdelivr.net/npm/gsap@3.12.5/dist/ScrollToPlugin.min.js"></script>
|
||||
<script type="text/javascript" src="/egbim/js/common.js"></script>
|
||||
<script type="text/javascript" src="/egbim/js/popup.js"></script>
|
||||
<script>
|
||||
window.EGBIM_IMG_BASE_URL = <?php echo json_encode(egbim_img_url()); ?>;
|
||||
</script>
|
||||
<script type="text/javascript" src="/egbim/js/index.js"></script>
|
||||
<link rel="icon" href="/favicon.ico" type="image/x-icon">
|
||||
</head>
|
||||
<body>
|
||||
<!-- Google Tag Manager (noscript) -->
|
||||
<noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-5GX3FS9R"
|
||||
height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
|
||||
<!-- End Google Tag Manager (noscript) -->
|
||||
|
||||
<!--메인페이지 공시팝업-->
|
||||
<!-- <div class="notice-backdrop" id="egbimNoticeDim"></div>
|
||||
<div class="notice-box" id="egbimNoticeBox" role="dialog" aria-modal="true" aria-labelledby="egbimNoticeTitle">
|
||||
<button class="notice-close" id="egbimNoticeClose" aria-label="닫기">×</button>
|
||||
<h3 id="egbimNoticeTitle">공지 안내</h3>
|
||||
<p>
|
||||
<strong>EG-BIM 프로그램 사용자 인증 신규 시스템 도입</strong>으로 인해<br>
|
||||
<b>기존 회원분들께서는 재가입</b> 해주시기 바랍니다.
|
||||
</p>
|
||||
<div class="notice-actions">
|
||||
<button class="btn-today" id="egbimNoticeToday">오늘 하루 보지 않기</button>
|
||||
<button class="btn-ok" id="egbimNoticeOk">확인</button>
|
||||
</div>
|
||||
</div> -->
|
||||
|
||||
<div class="wrapper">
|
||||
<div class="main_mask">
|
||||
<!-- Header -->
|
||||
<?php include_once($member_skin_path.'/main_header.skin.php'); ?>
|
||||
<!-- //Header -->
|
||||
|
||||
<!-- 모든 팝업페이지 경로 -->
|
||||
<?php
|
||||
include_once($member_skin_path.'/login.skin.php');
|
||||
include_once($member_skin_path.'/mypage01.skin.php');
|
||||
include_once($member_skin_path.'/register.skin.php');
|
||||
include_once($member_skin_path.'/register_form.skin.php');
|
||||
include_once($member_skin_path.'/mypage02.skin.php');
|
||||
include_once($member_skin_path.'/mypage03.skin.php');
|
||||
include_once($member_skin_path.'/sitemap.skin.php');
|
||||
include_once($member_skin_path.'/privacy.skin.php');
|
||||
include_once($member_skin_path.'/password_lost.skin.php');
|
||||
?>
|
||||
|
||||
|
||||
<?php
|
||||
// 오늘 날짜 (Y-m-d 형식)
|
||||
$main_today = date('Y-m-d');
|
||||
|
||||
// 시작일과 종료일
|
||||
$main_startDate = '2025-12-01';
|
||||
$main_endDate = '2026-07-31';
|
||||
// 기간 내에 있으면 배너 표시
|
||||
if ($main_today >= $main_startDate && $main_today <= $main_endDate) {
|
||||
// 쿠키 확인
|
||||
$popup_hidden = isset($_COOKIE['hide_popup']) ? $_COOKIE['hide_popup'] : '';
|
||||
if ($popup_hidden !== date('Y-m-d'))
|
||||
include_once($member_skin_path.'/main_popup.skin.php');
|
||||
}
|
||||
?>
|
||||
|
||||
<!-- 모든 팝업페이지 경로 -->
|
||||
<!-- main -->
|
||||
<div class="main">
|
||||
<ul class="pagination_main">
|
||||
<li><div class="page_01 page_on">EG-BIM 소개</div><span>01</span></li>
|
||||
<li><div class="page_02">인터페이스</div><span>02</span></li>
|
||||
<li><div class="page_03">주요기능</div><span>03</span></li>
|
||||
<li><div class="page_04">도면관리</div><span>04</span></li>
|
||||
<li><div class="page_05">for BIM</div><span>05</span></li>
|
||||
</ul>
|
||||
<div class="main_link">
|
||||
<a href="#01" class="main_link_01 link_on" onclick="location.href='<?php echo G5_BBS_URL ?>/value.php'"></a>
|
||||
<a href="#02" class="main_link_02" onclick="location.href='<?php echo G5_BBS_URL ?>/interface.php'"></a>
|
||||
<a href="#03" class="main_link_03" onclick="location.href='<?php echo G5_BBS_URL ?>/primary.php'"></a>
|
||||
<a href="#04" class="main_link_04" onclick="location.href='<?php echo G5_BBS_URL ?>/floorplan.php'"></a>
|
||||
<a href="#05" class="main_link_05" onclick="location.href='<?php echo G5_BBS_URL ?>/forbim.php'"></a>
|
||||
</div>
|
||||
<div class="bg_video">
|
||||
<video id="video_play" muted playsinline>
|
||||
<source src="<?php echo egbim_img_url('main_1.mp4'); ?>" type="video/mp4" class="main_video_01">
|
||||
</video>
|
||||
</div>
|
||||
<!-- <button class="btn_top js__top" onclick="window.scrollTo(0,0);"><div class="arrow"></div></button> -->
|
||||
<!-- FOOTER -->
|
||||
<?php include_once($member_skin_path.'/main_footer.skin.php'); ?>
|
||||
<!-- //FOOTER -->
|
||||
</div>
|
||||
</div>
|
||||
<div class="intro_wrap">
|
||||
<div class="intro_mask"></div>
|
||||
<div class="intro_txt">
|
||||
<div class="txt_mask"><span><b>디지털전환시대</b></span></div>
|
||||
<div class="txt_mask"><span><font class="egbim k">EG-BIM_software</font></span></div>
|
||||
<div class="txt_mask"><span><em>도면</em>과 <em>3차원 정보모델</em>을 <br class="brk "><em>하나의</em> S/W로</span></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script>
|
||||
AOS.init();
|
||||
|
||||
const lenis = new Lenis()
|
||||
lenis.on('scroll', (e) => {
|
||||
// console.log(e)
|
||||
})
|
||||
lenis.on('scroll', ScrollTrigger.update)
|
||||
gsap.ticker.add((time)=>{
|
||||
lenis.raf(time * 1000)
|
||||
})
|
||||
gsap.ticker.lagSmoothing(0)
|
||||
</script>
|
||||
</body>
|
||||
<script>
|
||||
$(function(){
|
||||
// footer family site toggle
|
||||
$('.family_btn').click(function(e){
|
||||
e.stopPropagation();
|
||||
$('.family_list, .family_btn').toggleClass('family_on');
|
||||
});
|
||||
$(document).click(function(e){
|
||||
if(!$(e.target).closest('.family_wrap').length){
|
||||
$('.family_list, .family_btn').removeClass('family_on');
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
// 회원 탈퇴
|
||||
function member_leave() {
|
||||
if (confirm("회원에서 탈퇴 하시겠습니까?"))
|
||||
location.href = '<?php echo G5_BBS_URL ?>/member_leave.php';
|
||||
}
|
||||
// 회원 탈퇴
|
||||
|
||||
|
||||
let x = document.cookie;
|
||||
if(x.includes("tmp_1=John")){
|
||||
deleteCookie("tmp_1");
|
||||
$('#pop_mypage02').show();
|
||||
}
|
||||
|
||||
function deleteCookie(name) {
|
||||
document.cookie = name + "=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/egbim;";
|
||||
document.cookie = name + "=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/egbim/bbs;";
|
||||
document.cookie = name + "=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/egbim/faq;";
|
||||
document.cookie = name + "=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/egbim/qa;";
|
||||
}
|
||||
function getCookie(cname) {
|
||||
let name = cname + "=";
|
||||
let decodedCookie = decodeURIComponent(document.cookie);
|
||||
let ca = decodedCookie.split(';');
|
||||
for(let i = 0; i <ca.length; i++) {
|
||||
let c = ca[i];
|
||||
while (c.charAt(0) == ' ') {
|
||||
c = c.substring(1);
|
||||
}
|
||||
if (c.indexOf(name) == 0) {
|
||||
return c.substring(name.length, c.length);
|
||||
}
|
||||
}
|
||||
return "";
|
||||
}
|
||||
|
||||
//descope 로그인, 로그아웃 js
|
||||
function updateHeaderMenu() {
|
||||
var isLoggedIn = !!sessionStorage.getItem("sessionJwt");
|
||||
// role 체크 예시 (로그인 시 저장해놓은 값)
|
||||
var adminList = [
|
||||
'b24014@hanmaceng.co.kr',
|
||||
'kjy0426@hanmaceng.co.kr',
|
||||
'b23065@hanmaceng.co.kr',
|
||||
'b23008@baroncs.co.kr',
|
||||
'cjy627@hanmaceng.co.kr',
|
||||
'b23072@hanmaceng.co.kr'
|
||||
];
|
||||
|
||||
var loginId = sessionStorage.getItem('loginId') || '';
|
||||
var normalizedLoginId = loginId.toLowerCase();
|
||||
var isAdmin = adminList.includes(normalizedLoginId);
|
||||
|
||||
if ($('#hid_mb_id').length) {
|
||||
$('#hid_mb_id').val(isLoggedIn ? loginId : '');
|
||||
}
|
||||
|
||||
if (isLoggedIn) {
|
||||
$('.my_join2, .my_login2').show();
|
||||
$('.my_join, .my_login').hide();
|
||||
|
||||
// 마이페이지/관리자 메뉴 동적 출력
|
||||
if (isAdmin) {
|
||||
$('#my_join2').html("<a href='https://eg-bim.com/egbim/adm/index.php' target='_blank'>관리페이지</a>");
|
||||
} else {
|
||||
$('#my_join2').html("<a href='javascript:mypage03();'>마이페이지</a>");
|
||||
}
|
||||
} else {
|
||||
$('.my_join2, .my_login2').hide();
|
||||
$('.my_join, .my_login').show();
|
||||
$('#my_join2').html(""); // 혹시모를 내용 초기화
|
||||
}
|
||||
}
|
||||
|
||||
function descopeLogout() {
|
||||
fetch('/egbim/skin/member/basic/descope_logout.php', {
|
||||
method: 'POST',
|
||||
credentials: 'include' // PHPSESSID 쿠키 전송
|
||||
})
|
||||
.then(res => {
|
||||
if (!res.ok) throw new Error('서버 로그아웃 실패');
|
||||
// 1) 로컬 저장소 정리
|
||||
// sessionStorage.removeItem("refreshJwt");
|
||||
// sessionStorage.removeItem("sessionJwt");
|
||||
// sessionStorage.removeItem("userRole");
|
||||
// sessionStorage.removeItem("userName");
|
||||
// sessionStorage.removeItem("loginId");
|
||||
|
||||
sessionStorage.clear();
|
||||
localStorage.clear();
|
||||
// 2) UI 갱신
|
||||
updateHeaderMenu();
|
||||
window.dispatchEvent(new CustomEvent('descope-auth-changed', {
|
||||
detail: { loginId: '' }
|
||||
}));
|
||||
// 3) 로그인 페이지로 이동
|
||||
window.location.href = '/egbim/index.php';
|
||||
})
|
||||
.catch(err => {
|
||||
console.error(err);
|
||||
alert('로그아웃 중 오류가 발생했습니다.');
|
||||
});
|
||||
}
|
||||
|
||||
$(document).ready(function() {
|
||||
// 기존에 있던 updateHeaderMenu() 호출 뒤에
|
||||
$('#my_login2 a').off('click').on('click', function(e){
|
||||
e.preventDefault();
|
||||
descopeLogout();
|
||||
});
|
||||
});
|
||||
|
||||
$(document).ready(function() {
|
||||
updateHeaderMenu();
|
||||
// (필요하다면, 로그인 성공 후에도 항상 updateHeaderMenu(); 호출)
|
||||
});
|
||||
|
||||
//descope login
|
||||
$('#flogin button[type=submit]').click(function(e){
|
||||
e.preventDefault();
|
||||
let mb_id = $('#login_id').val();
|
||||
let mb_password = $('#login_pw').val();
|
||||
|
||||
$.ajax({
|
||||
url : '/egbim/skin/member/basic/descope_login.php',
|
||||
data : {
|
||||
'mb_id' : mb_id,
|
||||
'mb_password' : mb_password
|
||||
},
|
||||
type : "POST",
|
||||
dataType : "json",
|
||||
success : function(res){
|
||||
if(res.status === "ok") {
|
||||
// 토큰 저장
|
||||
// sessionStorage.setItem("refreshJwt", res.refreshJwt);
|
||||
sessionStorage.setItem("sessionJwt", res.sessionJwt);
|
||||
|
||||
// ✅ 사용자 정보 저장
|
||||
if (res.user) {
|
||||
sessionStorage.setItem("loginId", res.user.loginIds?.[0] || '');
|
||||
sessionStorage.setItem("userName", res.user.name || '');
|
||||
sessionStorage.setItem("company", res.user.customAttributes?.company || '');
|
||||
sessionStorage.setItem("familyCompany", res.user.customAttributes?.familyCompany || '');
|
||||
sessionStorage.setItem("position", res.user.customAttributes?.position || '');
|
||||
sessionStorage.setItem("team", res.user.customAttributes?.team || '');
|
||||
sessionStorage.setItem("familyUniqueKey", res.user.customAttributes?.familyUniqueKey || '');
|
||||
sessionStorage.setItem("phone", res.user.phone || '');
|
||||
}
|
||||
|
||||
// ✅ 추가: 관리자 등 정보 저장
|
||||
if(res.user && res.user.roleNames && res.user.roleNames[0])
|
||||
sessionStorage.setItem("userRole", res.user.roleNames[0]);
|
||||
else
|
||||
sessionStorage.removeItem("userRole");
|
||||
|
||||
// ✅ 로그인 후 메뉴 갱신
|
||||
updateHeaderMenu();
|
||||
window.dispatchEvent(new CustomEvent('descope-auth-changed', {
|
||||
detail: {
|
||||
loginId: res.user?.loginIds?.[0] || '',
|
||||
user: res.user || null
|
||||
}
|
||||
}));
|
||||
|
||||
// UI 처리
|
||||
$('.popup_wrap').hide();
|
||||
$('body').css('overflow', '');
|
||||
lenis.start();
|
||||
// alert('로그인 하셨습니다.');
|
||||
} else {
|
||||
alert(res.message || "로그인 실패");
|
||||
|
||||
// 🔴 실패 횟수에 따라 안내 배너 교체
|
||||
if (res.failCount && res.failCount >= 8) {
|
||||
updateLoginBanner("fail");
|
||||
}
|
||||
}
|
||||
},
|
||||
error : function(err){
|
||||
alert(err.statusText || "통신 오류");
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
// ✅ 배너 교체 함수
|
||||
function updateLoginBanner(type = "default") {
|
||||
const $banner = $('#login_notice_banner');
|
||||
if (!$banner.length) return;
|
||||
|
||||
if (type === "default") {
|
||||
$banner.css({ background: "#063e01ff", color: "#fff" });
|
||||
$banner.find("strong").text("[로그인 시스템 변경 안내]");
|
||||
$banner.find("p.left").html(`
|
||||
더 나은 보안을 위해 2025년 8월 8일부터 로그인 시스템이 변경되었습니다.<br>
|
||||
기존 회원 또한 신규 시스템에 맞춰 재가입을 진행해주시기 바랍니다.
|
||||
`);
|
||||
$banner.find("p:last").html(`※ 로그인 및 가입 관련 문의: <strong>010-8721-7453</strong>`);
|
||||
}
|
||||
|
||||
if (type === "fail") {
|
||||
$banner.css({ background: "#6a0202ff", color: "#faf6f6ff" });
|
||||
$banner.find("strong").text("[로그인 시도 제한 안내]");
|
||||
$banner.find("p.left").html(`
|
||||
비밀번호 입력을 <strong>7회 이상 연속 실패</strong>하셨습니다.<br>
|
||||
<strong>8번째 시도부터 3분 대기</strong>가 적용됩니다.<br>
|
||||
10회 이상 실패 시 계정이 잠금 처리됩니다.
|
||||
`);
|
||||
$banner.find("p:last").text("");
|
||||
}
|
||||
}
|
||||
|
||||
//회원가입 약관동의
|
||||
// $('#fregister button[type=submit]').click(function(e){
|
||||
// e.preventDefault();
|
||||
// let agree11 = $('#agree11').val();
|
||||
// let agree21 = $('#agree21').val();
|
||||
// $.ajax({
|
||||
// url : '<?php echo G5_URL ?>/bbs/register_form.php',
|
||||
// type : "POST",
|
||||
// datatype : "json",
|
||||
// contentType: 'application/json; charset=utf-8',
|
||||
// data : {
|
||||
// 'agree11' : agree11,
|
||||
// 'agree21' : agree21
|
||||
// },
|
||||
// success : function(data){
|
||||
// var ss='';
|
||||
// for(i=0; i<data.length; i++){
|
||||
// ss=ss + data[i];
|
||||
// }
|
||||
// },
|
||||
// error : function(err){
|
||||
// alert(err);
|
||||
// }
|
||||
// });
|
||||
// });
|
||||
// 회원가입 약관동의 (중복 바인딩 방지용 네임스페이스 사용)
|
||||
// $('#fregister button[type=submit]').off('click.agree').on('click.agree', function (e) {
|
||||
// e.preventDefault();
|
||||
|
||||
// // ① 체크 여부는 is(':checked') 로 판단
|
||||
// var agree1 = $('#agree11').is(':checked');
|
||||
// var agree2 = $('#agree21').is(':checked');
|
||||
|
||||
// if (!(agree1 && agree2)) {
|
||||
// alert('약관에 모두 동의해주세요.');
|
||||
// return false;
|
||||
// }
|
||||
|
||||
// // ② 둘 다 체크되어 있으면 서버로 넘길 값 만들기
|
||||
// // (PHP register_form.php에서 $_POST['agree'], $_POST['agree2']로 받게)
|
||||
// $.ajax({
|
||||
// url: '<?php echo G5_URL ?>/bbs/register_form.php',
|
||||
// type: 'POST',
|
||||
// dataType: 'html', // or 'json' (서버 응답 형식에 맞게)
|
||||
// // contentType/processData 기본값 유지 ← JSON 전송 아니면 이게 맞습니다.
|
||||
// data: {
|
||||
// agree: 1,
|
||||
// agree2: 1
|
||||
// },
|
||||
// success: function (data) {
|
||||
// // 통과 시 다음 화면으로 전환
|
||||
// $('#pop_agreement').hide();
|
||||
// $('#pop_register_form').show(); // 실제 다음 팝업 ID에 맞춰 수정
|
||||
// $('body').css('overflow', 'hidden');
|
||||
// },
|
||||
// error: function (xhr) {
|
||||
// alert('처리 중 오류가 발생했습니다.\n다시 시도해주세요.');
|
||||
// }
|
||||
// });
|
||||
// });
|
||||
// $(document).ready(function() {
|
||||
|
||||
// // 기존에 바인딩된 거 있으면 제거 (중복 방지)
|
||||
// $('#fregister button[type=submit], #btn_agree').off('click.agree');
|
||||
|
||||
// $('#fregister button[type=submit], #btn_agree').on('click.agree', function(e){
|
||||
// e.preventDefault();
|
||||
// e.stopPropagation();
|
||||
// e.stopImmediatePropagation();
|
||||
|
||||
// // 체크 여부는 반드시 :checked 로 확인해야 함
|
||||
// var a1 = $('#agree11').is(':checked');
|
||||
// var a2 = $('#agree21').is(':checked');
|
||||
|
||||
// if (!(a1 && a2)) {
|
||||
// alert('약관에 모두 동의해주세요.');
|
||||
// return false; // 진행 막기
|
||||
// }
|
||||
|
||||
// // === 여기부터는 통과 시 동작(필요 없으면 주석 처리 가능) ===
|
||||
// // AJAX 그대로 유지하되, 실제 동작하려면 서버가 받는 파라미터명에 맞추세요.
|
||||
// // 서버 기본 로직은 보통 'agree', 'agree2'를 받습니다.
|
||||
// $.ajax({
|
||||
// url : '<?php echo G5_URL ?>/bbs/register_form.php',
|
||||
// type : 'POST',
|
||||
// dataType : 'json',
|
||||
// // contentType 은 JSON 전송할 때만 쓰세요. 지금은 기본 폼 인코딩으로 보냅니다.
|
||||
// // contentType: 'application/json; charset=utf-8',
|
||||
// data : {
|
||||
// 'agree' : a1 ? 1 : 0, // 서버가 'agree' 로 받는 경우
|
||||
// 'agree2' : a2 ? 1 : 0
|
||||
// },
|
||||
// success : function(data){
|
||||
// // 필요 시 다음 단계 이동
|
||||
// // $('#pop_agreement').hide();
|
||||
// // $('#pop_register_form').show();
|
||||
// // $('body').css('overflow','hidden');
|
||||
// },
|
||||
// error : function(err){
|
||||
// alert('오류가 발생했습니다. 잠시 후 다시 시도해주세요.');
|
||||
// console.error(err);
|
||||
// }
|
||||
// });
|
||||
// });
|
||||
// });
|
||||
|
||||
|
||||
|
||||
|
||||
//이지빔 프로그램 회원가입 url 쿼리스트링 파싱 함수
|
||||
function getQueryString(name) {
|
||||
|
||||
const urlParams = new URLSearchParams(window.location.search);
|
||||
return urlParams.get(name);
|
||||
}
|
||||
|
||||
$(document).ready(function() {
|
||||
const popupParam = getQueryString('popup');
|
||||
|
||||
if (popupParam === 'signup') {
|
||||
console.log('쿼리 감지: signup → 회원가입 팝업 자동 오픈 시도');
|
||||
//251013 위치 이동
|
||||
const intro = document.querySelector('.intro_wrap');
|
||||
intro.style.display = "none";
|
||||
const mainMask = document.querySelector('.main_mask');
|
||||
mainMask.classList.add('skip');
|
||||
// mainMask.style.aimation = 'none';
|
||||
//251013 위치 이동 END
|
||||
$('#pop_agreement').show(); // 팝업 보여주기
|
||||
|
||||
// 스크롤 잠금 (사용 중이면)
|
||||
$('body').css('overflow', 'hidden');
|
||||
if (typeof lenis !== 'undefined') {
|
||||
lenis.stop();
|
||||
}
|
||||
}
|
||||
|
||||
// 팝업 닫기 버튼 이벤트 연결
|
||||
$('#pop_agreement .btn_close').on('click', function() {
|
||||
$('#pop_agreement').hide();
|
||||
$('body').css('overflow', '');
|
||||
if (typeof lenis !== 'undefined') {
|
||||
lenis.start();
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
//이지빔 프로그램 비밀번호 재설정 url 쿼리스트링 파싱 함수
|
||||
$(document).ready(function() {
|
||||
const urlParams = new URLSearchParams(window.location.search);
|
||||
const popup = urlParams.get('popup');
|
||||
const token = urlParams.get('t');
|
||||
|
||||
if (popup === 'pwreset') {
|
||||
// 팝업 전체 열기
|
||||
$('#pop_search').show();
|
||||
$('body').css('overflow', 'hidden');
|
||||
|
||||
// 내부 컨텐츠 모두 숨기기
|
||||
$('#pop_search .popup_contents_wrap').hide();
|
||||
|
||||
if (token) {
|
||||
// 토큰이 있으면 비밀번호 재설정 단계
|
||||
if (!sessionStorage.getItem('pwreset_shown')) {
|
||||
$('#password_reset').show();
|
||||
sessionStorage.setItem('pwreset_shown', '1');
|
||||
}
|
||||
} else {
|
||||
// 토큰이 없으면 아이디 입력 단계 (첫 번째 .popup_contents_wrap)
|
||||
$('#pop_search .popup_contents_wrap').first().show();
|
||||
}
|
||||
}
|
||||
|
||||
// 닫기 버튼
|
||||
$('#pop_search .btn_close').on('click', function() {
|
||||
$('#pop_search').hide();
|
||||
$('body').css('overflow', '');
|
||||
});
|
||||
});
|
||||
|
||||
//로그인 팝업창 쿼리스트링
|
||||
document.addEventListener("DOMContentLoaded", function(){
|
||||
const urlParams = new URLSearchParams(window.location.search);
|
||||
if (urlParams.get("popup") === "login") {
|
||||
const $popup = $("#pop_login");
|
||||
if ($popup.length) {
|
||||
$popup.show();
|
||||
|
||||
// ✅ 배너가 없으면 붙이기
|
||||
if (!$("#login_notice_banner").length) {
|
||||
const bannerHtml = `
|
||||
<div id="login_notice_banner" class="login-notice-banner" style="
|
||||
background:#0f3a2f;color:#fff;border-radius:12px;padding:14px 44px 14px 14px;
|
||||
position:relative;margin:0 0 12px 0;line-height:1.6;word-break:keep-all;">
|
||||
<button type="button" class="lnb-close" aria-label="닫기" style="
|
||||
position:absolute;right:10px;top:8px;background:transparent;border:0;
|
||||
color:#fff;font-size:20px;cursor:pointer;">×</button>
|
||||
<strong style="display:block;margin-bottom:6px;">[로그인 시스템 변경 안내]</strong>
|
||||
<p class="left" style="margin:0 0 6px;">
|
||||
더 나은 보안을 위해 2025년 8월 8일부터
|
||||
로그인 시스템이 변경되었습니다.
|
||||
기존 회원 또한 신규 시스템에 맞춰<br>
|
||||
재가입을 진행해주시기 바랍니다.
|
||||
</p>
|
||||
<p style="margin:0;">※ 로그인 및 가입 관련 문의: <strong>02-2141-7434</strong></p>
|
||||
</div>
|
||||
`;
|
||||
$("#pop_login .popup_contents_wrap").prepend(bannerHtml);
|
||||
|
||||
// 닫기 버튼 동작
|
||||
$("#login_notice_banner .lnb-close").on("click", function(){
|
||||
$("#login_notice_banner").fadeOut(120);
|
||||
});
|
||||
} else {
|
||||
$("#login_notice_banner").show();
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
// //공지사항 팝업 스크립트
|
||||
// (function(){
|
||||
// const KEY = 'egbim_notice_2025-08-07'; // 키 바꾸면 전체 사용자에게 다시 노출
|
||||
// const dim = document.getElementById('egbimNoticeDim');
|
||||
// const box = document.getElementById('egbimNoticeBox');
|
||||
// const btnX = document.getElementById('egbimNoticeClose');
|
||||
// const btnOk = document.getElementById('egbimNoticeOk');
|
||||
// const btnToday = document.getElementById('egbimNoticeToday');
|
||||
|
||||
// function todayStr(){
|
||||
// const d = new Date(); return d.toISOString().slice(0,10);
|
||||
// }
|
||||
// function shouldShow(){
|
||||
// const v = localStorage.getItem(KEY);
|
||||
// // 항상 띄우고 싶으면 다음 줄을 `return true;` 로 바꾸세요.
|
||||
// return v !== todayStr();
|
||||
// }
|
||||
// function openNotice(){
|
||||
// dim.style.display = 'block';
|
||||
// box.style.display = 'block';
|
||||
// document.body.style.overflow = 'hidden';
|
||||
// if (typeof lenis !== 'undefined') try{ lenis.stop(); }catch(_){}
|
||||
// }
|
||||
// function closeNotice(storeToday){
|
||||
// if (storeToday) localStorage.setItem(KEY, todayStr());
|
||||
// dim.style.display = 'none';
|
||||
// box.style.display = 'none';
|
||||
// document.body.style.overflow = '';
|
||||
// if (typeof lenis !== 'undefined') try{ lenis.start(); }catch(_){}
|
||||
// }
|
||||
|
||||
// btnOk.addEventListener('click', () => closeNotice(true)); // 확인 누르면 오늘은 다시 안봄
|
||||
// btnToday.addEventListener('click', () => closeNotice(true)); // 오늘 하루 보지 않기
|
||||
// btnX.addEventListener('click', () => closeNotice(true));
|
||||
// dim.addEventListener('click', () => closeNotice(true));
|
||||
|
||||
// document.addEventListener('DOMContentLoaded', () => {
|
||||
// if (shouldShow()) openNotice();
|
||||
// });
|
||||
// })();
|
||||
|
||||
|
||||
/* 메인 마우스 클릭 문구 */
|
||||
if (window.location.pathname === '/egbim/index.php' || window.location.pathname === '/egbim/' || window.location.pathname === '/egbim') {
|
||||
|
||||
// 커서 따라다니는 텍스트 요소 생성
|
||||
const cursorText = document.createElement('div');
|
||||
cursorText.className = 'cursor-text';
|
||||
cursorText.textContent = 'Click!';
|
||||
cursorText.style.cssText = `
|
||||
position: fixed;
|
||||
pointer-events: none;
|
||||
z-index: 9999;
|
||||
font-size: 20px;
|
||||
color: #fff;
|
||||
font-weight: 500;
|
||||
white-space: nowrap;
|
||||
transform: translate(-0%, -50%);
|
||||
transition: opacity 0.3s;
|
||||
`;
|
||||
document.body.appendChild(cursorText);
|
||||
|
||||
// 마우스 움직임 추적
|
||||
document.addEventListener('mousemove', (e) => {
|
||||
// 마우스 위치의 요소 확인
|
||||
const elementUnderMouse = document.elementFromPoint(e.clientX, e.clientY);
|
||||
|
||||
// footer 또는 .popup_wrap 영역인지 확인
|
||||
const isInFooter = elementUnderMouse?.closest('footer');
|
||||
const isInPopup = elementUnderMouse?.closest('.popup_wrap');
|
||||
const isInFloating = elementUnderMouse?.closest('.floating_menu');
|
||||
const isInPagination = elementUnderMouse?.closest('.pagination_main');
|
||||
const isInHeader = elementUnderMouse?.closest('.js__header');
|
||||
const isInSitemap = elementUnderMouse?.closest('.popup_sitemap');
|
||||
|
||||
// footer나 popup 영역이면 숨김
|
||||
if (isInFooter || isInPopup || isInFloating || isInPagination || isInHeader || isInSitemap) {
|
||||
cursorText.style.opacity = '0';
|
||||
} else {
|
||||
cursorText.style.opacity = '1';
|
||||
// 커서 오른쪽 아래에 위치
|
||||
cursorText.style.left = (e.clientX + 15) + 'px';
|
||||
cursorText.style.top = (e.clientY + 15) + 'px';
|
||||
}
|
||||
});
|
||||
|
||||
// 마우스가 페이지를 벗어나면 숨김
|
||||
document.addEventListener('mouseleave', () => {
|
||||
cursorText.style.opacity = '0';
|
||||
});
|
||||
|
||||
document.addEventListener('mouseenter', () => {
|
||||
cursorText.style.opacity = '1';
|
||||
});
|
||||
}
|
||||
</script>
|
||||
|
||||
@@ -0,0 +1,418 @@
|
||||
<?php
|
||||
session_start();
|
||||
// include_once(G5_BBS_URL.'/login_check_tova.php');
|
||||
if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가
|
||||
add_stylesheet('<link rel="stylesheet" href="'.$member_skin_url.'/style.css">', 0);
|
||||
add_javascript('<script src="'.G5_JS_URL.'/jquery.register_form.js"></script>', 0);
|
||||
?>
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<title>TOVA Main</title>
|
||||
<link rel="stylesheet" href="<?php echo G5_URL ?>/css/reset.css" />
|
||||
<link rel="stylesheet" href="<?php echo G5_URL ?>/css/font.css" />
|
||||
<link rel="stylesheet" href="<?php echo G5_URL ?>/css/style.css" />
|
||||
|
||||
<script type="text/javascript" src="<?php echo G5_URL ?>/js/jquery-3.6.1.min.js"></script>
|
||||
|
||||
<script type="text/javascript" src="<?php echo G5_URL ?>/js/jquery.mousewheel.min.js"></script>
|
||||
<script type="text/javascript" src="<?php echo G5_JS_URL ?>/common.js"></script>
|
||||
<script type="text/javascript" src="<?php echo G5_URL ?>/js/include.js"></script>
|
||||
<script type="text/javascript" src="<?php echo G5_JS_URL ?>/popup.js"></script>
|
||||
|
||||
</head>
|
||||
|
||||
|
||||
<script>
|
||||
// $(document).ready(function(){
|
||||
// $(".gnb_logout").on("click", function() {
|
||||
|
||||
// if(!confirm("로그아웃 하시겠습니까?")){
|
||||
// return false;
|
||||
// }else{
|
||||
// location.href="/tova/bbs/logout.php";
|
||||
// }
|
||||
// });
|
||||
|
||||
// $(".mv_op_frmat").on("click", function() {
|
||||
// $("#op_id").val('');
|
||||
// $("#op_pw").val('');
|
||||
// if($('.mv_op_frmat_area').is(':visible')===false){
|
||||
// $(".mv_op_frmat_area").css('display','block');
|
||||
// $("#op_id").focus();
|
||||
|
||||
// }else{
|
||||
// $(".mv_op_frmat_area").css('display','none');
|
||||
// }
|
||||
// });
|
||||
|
||||
// $(".move_frmat").on("click", function() {
|
||||
// var op_id = $("#op_id").val();
|
||||
// var op_pw = $("#op_pw").val();
|
||||
// var ActionMode = 'SCREEN_15';
|
||||
|
||||
// if(op_id!=="" && op_pw!=="" ){
|
||||
// $("#op_id").val('');
|
||||
// $("#op_pw").val('');
|
||||
// $(".mv_op_frmat_area").css('display','none');
|
||||
|
||||
// var form = document.createElement('form');
|
||||
// form.setAttribute('method', 'post');
|
||||
// form.setAttribute('target', 'op_frmat');
|
||||
// form.setAttribute('action', "http://cloud.hanmaceng.co.kr/service/gaia/sys/controller/manage/gaiaserver_controller.php" );
|
||||
// document.charset = "utf-8";
|
||||
// var hiddenField = document.createElement('input'); hiddenField.setAttribute('type', 'hidden'); hiddenField.setAttribute('name', 'ActionMode'); hiddenField.setAttribute('value', ActionMode); form.appendChild(hiddenField);
|
||||
// var hiddenField = document.createElement('input'); hiddenField.setAttribute('type', 'hidden'); hiddenField.setAttribute('name', 'op_id'); hiddenField.setAttribute('value', op_id); form.appendChild(hiddenField);
|
||||
// var hiddenField = document.createElement('input'); hiddenField.setAttribute('type', 'hidden'); hiddenField.setAttribute('name', 'op_pw'); hiddenField.setAttribute('value', op_pw); form.appendChild(hiddenField);
|
||||
// document.body.appendChild(form);
|
||||
// form.submit();
|
||||
// /*
|
||||
// //시추주상도 양식관리
|
||||
// //http://cloud.hanmaceng.co.kr/service/gaia/sys/controller/manage/gaiaserver_controller.php?ActionMode=SCREEN_15
|
||||
// window.open("http://cloud.hanmaceng.co.kr/service/gaia/sys/controller/manage/gaiaserver_controller.php?ActionMode=SCREEN_15&op_id="+op_id+"&op_pw="+op_pw,"op_frmat","width=1500,height=900,scrollbars=yes,status=no,location=no,directories=no,toolbar=no,menubar=no,left={$itemdata2.left},top={$itemdata2.top},resizable=yes");
|
||||
// */
|
||||
|
||||
// }else{
|
||||
// //location.href="/gaiahome/bbs/logout.php";
|
||||
// $(".mv_op_frmat_area").css('display','none');
|
||||
// }
|
||||
// });
|
||||
|
||||
// });
|
||||
|
||||
// var ua = navigator.userAgent;
|
||||
// /*-----------------------------------------------------------------------------*/
|
||||
// var isie =(/msie/i).test(navigator.userAgent); //ie
|
||||
// var isie6 =(/msie 6/i).test(navigator.userAgent); //ie 6
|
||||
// var isie7 =(/msie 7/i).test(navigator.userAgent); //ie 7
|
||||
// var isie8 =(/msie 8/i).test(navigator.userAgent); //ie 8
|
||||
// var isie9 =(/msie 9/i).test(navigator.userAgent); //ie 9
|
||||
// var isfirefox =(/firefox/i).test(navigator.userAgent); //firefox
|
||||
// var isapple =(/applewebkit/i).test(navigator.userAgent); //safari,chrome
|
||||
// var isopera =(/opera/i).test(navigator.userAgent); //opera
|
||||
// /*-----------------------------------------------------------------------------*/
|
||||
// var isios =(/(ipod|iphone|ipad)/i).test(navigator.userAgent);//ios
|
||||
// var isipad =(/(ipad)/i).test(navigator.userAgent);//ipad
|
||||
// var isandroid =(/android/i).test(navigator.userAgent);//android
|
||||
// var islgtelecom =(/lgtelecom/i).test(navigator.userAgent);//lgtelecom
|
||||
// var isblackberry=(/blackberry/i).test(navigator.userAgent);//blackberry
|
||||
// var issamsung =(/samsung/i).test(navigator.userAgent);//samsung
|
||||
// var issymbian =(/symbian/i).test(navigator.userAgent);//symbian
|
||||
// var issony =(/sony/i).test(navigator.userAgent);//sony
|
||||
// var isSCH =(/SCH-/i).test(navigator.userAgent);//SCH-
|
||||
// var isSPH =(/SPH-/i).test(navigator.userAgent);//SPH-
|
||||
// /*-----------------------------------------------------------------------------*/
|
||||
|
||||
// function divice_confirm() { //접속기기 구분
|
||||
// $("#browserVer").val(ua);
|
||||
// // alert(navigator.maxTouchPoints);
|
||||
// // alert(navigator.userAgent);
|
||||
// //if(isios || isipad || isandroid || islgtelecom || isblackberry || issamsung || issymbian || issony || isSCH || isSPH || navigator.appVersion.indexOf('Windows') == -1){
|
||||
// if( isandroid || islgtelecom || isblackberry || issamsung || issymbian || issony || isSCH || isSPH){
|
||||
// //alert("각종 모바일 접속::");
|
||||
// return "M";//mobile
|
||||
// }else{//web접속
|
||||
// if(isios || isipad || navigator.appVersion.indexOf('Windows') == -1){
|
||||
// //alert("ios 접속::");
|
||||
// if((isios || isipad == -1) && navigator.maxTouchPoints>0){
|
||||
// //alert('애플 모바일기기');
|
||||
// return "M";//mobile
|
||||
|
||||
// }else{//web접속
|
||||
// return "W";//web
|
||||
// }
|
||||
// }else{//web접속
|
||||
// return "W";//web
|
||||
// }
|
||||
// }
|
||||
// }//divice_confirm
|
||||
|
||||
</script>
|
||||
|
||||
|
||||
|
||||
|
||||
<body>
|
||||
<div class="wrapper main_wrap">
|
||||
|
||||
|
||||
<div class="main_mask">
|
||||
<!-- Header -->
|
||||
<header class="header">
|
||||
<h1>
|
||||
<img src="<?php echo G5_URL ?>/img/logo_w.svg" alt="">
|
||||
</h1>
|
||||
<div class="menu_wrap">
|
||||
<div class="menu_my">
|
||||
<img src="<?php echo G5_URL ?>/img/ico_my.svg" alt="">
|
||||
<ul class="menu_my_list">
|
||||
<!-- <li class="my_login"><a href="javascript:login();">로그인</a></li>
|
||||
<li class="my_join"><a href="javascript:agreement();">회원가입</a></li> -->
|
||||
<li id="mypage_btn" class="my_page"><a href="javascript:mypage01();">마이페이지</a></li>
|
||||
<li id="logout_btn" class="my_logout"><a href="<?php echo G5_BBS_URL ?>/logout.php;">로그아웃</a></li>
|
||||
|
||||
<li id="join_btn" class="my_join"><a href="javascript:agreement();">회원가입</a></li>
|
||||
<li id="login_btn" class="my_login"><a href="javascript:login();">로그인</a></li>
|
||||
|
||||
</ul>
|
||||
</div>
|
||||
<div class="menu_ham"><a href="javascript:sitemap();"><img src="<?php echo G5_URL ?>/img/ico_ham.svg" alt=""></a></div>
|
||||
</div>
|
||||
</header>
|
||||
<!-- //Header -->
|
||||
|
||||
<!-- floating_menu -->
|
||||
<div class="floating_menu">
|
||||
<ul>
|
||||
<li class="floating_faq"><a href="<?php echo G5_BBS_URL ?>/faq.php">FAQ</a></li>
|
||||
<li class="floating_buy"><a href="">구매하기</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<!-- //floating_menu -->
|
||||
|
||||
<!-- 팝업 닫기 버튼(팝업 페이지 안에 있으니 작동안함) -->
|
||||
<button class="btn_close">
|
||||
<div class="close_div"><img src="<?php echo G5_URL ?>/img/ico_close.svg" alt=""></div>
|
||||
</button>
|
||||
|
||||
<!-- 모든 팝업페이지 경로
|
||||
페이지를 팝업으로 노출 시키니,
|
||||
팝업창을 닫기 후 다시 열었을때 입력된 내용이 그대로 뜨는 현상이 있음,
|
||||
이는 개발팀에 요청을해야 할 것 같긴합니다..
|
||||
-->
|
||||
<!-- <div class="pop_open" data-include-path="../skin/member/basic/login.skin.php"></div> -->
|
||||
<?php
|
||||
require_once($member_skin_path.'/login.skin.php');
|
||||
require_once($member_skin_path.'/mypage.skin.php');
|
||||
require_once($member_skin_path.'/register.skin.php');
|
||||
require_once($member_skin_path.'/register_form.skin.php');
|
||||
require_once($member_skin_path.'/password_lost.skin.php');
|
||||
?>
|
||||
<!-- <div class="pop_open" data-include-path="pop/pop_join.html"></div>
|
||||
<div class="pop_open" data-include-path="pop/pop_login.html"></div>
|
||||
<div class="pop_open" data-include-path="pop/pop_mypage01.html"></div>
|
||||
<div class="pop_open" data-include-path="pop/pop_mypage02.html"></div>
|
||||
<div class="pop_open" data-include-path="pop/pop_mypage03.html"></div>
|
||||
<div class="pop_open" data-include-path="pop/pop_search.html"></div> -->
|
||||
<!-- 모든 팝업페이지 경로 -->
|
||||
|
||||
|
||||
|
||||
|
||||
<!-- main -->
|
||||
<main class="main">
|
||||
<ul class="pagination_main">
|
||||
<li class="page_list_wrap">
|
||||
<div class="page_01 page_on"><img src="<?php echo G5_URL ?>/img/logo_w.svg" alt=""></div><span class="page_num">01</span>
|
||||
</li>
|
||||
<li class="page_list_wrap">
|
||||
<div class="page_02"><span>주요기능</span></div><span class="page_num">02</span>
|
||||
</li>
|
||||
<li class="page_list_wrap">
|
||||
<div class="page_03"><span>공로분석</span></div><span class="page_num">03</span>
|
||||
</li>
|
||||
<li class="page_list_wrap">
|
||||
<div class="page_04"><span>대중교통</span></div><span class="page_num">04</span>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<div class="main_link">
|
||||
<a href="#01" class="main_link_01 link_on"></a>
|
||||
<a href="#02" class="main_link_02"></a>
|
||||
<a href="#03" class="main_link_03"></a>
|
||||
<a href="#04" class="main_link_04"></a>
|
||||
</div>
|
||||
<div class="bg_video">
|
||||
<video id="video_play" class="bg_video_content" autoplay muted>
|
||||
<source src="<?php echo G5_URL ?>/img/main_01.mp4" type="video/mp4" class="main_video_01">
|
||||
</video>
|
||||
</div>
|
||||
<footer class="footer_off">
|
||||
<div class="footer_close"></div>
|
||||
<div class="footer_wrap">
|
||||
<div class="footer_right">
|
||||
<img src="<?php echo G5_URL ?>/img/baron_logo.svg" alt="">
|
||||
<div class="footer_privercy">
|
||||
<span><strong>개인정보 처리방침</strong></span>
|
||||
<div class="line_div"></div>
|
||||
<span>이용약관</span>
|
||||
</div>
|
||||
<div class="copyright">
|
||||
<span>© 2017 Bron. All rights reserved.</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="footer_left">
|
||||
<ul class="footer_menu">
|
||||
<li>
|
||||
<a href="<?php echo G5_BBS_URL?>/value.php">TOVA 소개</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="<?php echo G5_BBS_URL?>/primary.php">주요기능</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="<?php echo G5_BBS_URL?>/road.php">공로분석</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="<?php echo G5_BBS_URL?>/public.php">대중교통</a>
|
||||
</li>
|
||||
</ul>
|
||||
<div class="footer_sitemap">
|
||||
<span>TOVA의 <em>다양한 소식</em>을 만나보세요</span>
|
||||
<div class="tova_sns">
|
||||
<a href="" class="tova_cafe"><img src="<?php echo G5_URL ?>/img/ico_cafe.svg" alt=""></a>
|
||||
<a href="" class="tova_facebook"><img src="<?php echo G5_URL ?>/img/ico_facebook.svg" alt=""></a>
|
||||
</div>
|
||||
<div class="family_wrap">
|
||||
<div class="family_btn">
|
||||
<span>Family Site</span><img src="<?php echo G5_URL ?>/img/ico_angle.svg" alt="">
|
||||
</div>
|
||||
<ul class="family_list">
|
||||
<li><a href="http://www.hanmaceng.co.kr/" target="_blank">한맥기술</a></li>
|
||||
<li><a href="http://www.samaneng.co.kr/" target="_blank">삼안</a></li>
|
||||
<li><a href="http://www.jangheon.co.kr/" target="_blank">장헌산업</a></li>
|
||||
<li><a href="http://www.pre-cast.co.kr/" target="_blank">피티씨</a></li>
|
||||
<li><a href="http://www.hallasanup.com/" target="_blank">한라산업개발</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</footer>
|
||||
</div>
|
||||
|
||||
<div class="intro_wrap">
|
||||
<div class="intro_content">
|
||||
<div class="intro_mask"></div>
|
||||
<div class="intro_txt">
|
||||
<div class="txt_mask"><span class="intro_txt_01">지속적인 도전과 혁신으로</span></div>
|
||||
<div class="txt_mask"><span class="intro_txt_02"><img src="<?php echo G5_URL ?>/img/logo_b.svg" alt="">는</span></div>
|
||||
<div class="txt_mask"><span class="intro_txt_03"><strong>교통분석의 미래를 선도</strong>합니다.</span></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</main>
|
||||
<!-- //main -->
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
<script>
|
||||
$('#flogin button[type=submit]').click(function(e){
|
||||
e.preventDefault();
|
||||
let mb_id = $('#login_id').val();
|
||||
let mb_password = $('#login_pw').val();
|
||||
|
||||
$.ajax({
|
||||
url : '<?php echo G5_URL ?>/bbs/login_check_tova.php',
|
||||
data : {
|
||||
'mb_id' : mb_id,
|
||||
'mb_password' : mb_password
|
||||
},
|
||||
type : "POST",
|
||||
datatype : "json",
|
||||
success : function(data){
|
||||
var ss='';
|
||||
for(i=0; i<data.length; i++){
|
||||
ss=ss + data[i];
|
||||
}
|
||||
alert(ss);
|
||||
if(ss.length == 5){
|
||||
$(".popup_wrap").show();
|
||||
$('.btn_close').hide();
|
||||
$('#pop_login').hide();
|
||||
$('#pop_agreement').hide();
|
||||
$('#pop_join').hide();
|
||||
$('#pop_mypage').hide();
|
||||
$('#pop_search').hide();
|
||||
location.reload();
|
||||
}else
|
||||
{
|
||||
alert(trim(ss));
|
||||
}
|
||||
},
|
||||
error : function(err){
|
||||
//alert(err);
|
||||
alert(err.status);
|
||||
alert(err.statusText);
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
$('#fregister button[type=submit]').click(function(e){
|
||||
e.preventDefault();
|
||||
let agree11 = $('#agree11').val();
|
||||
let agree21 = $('#agree21').val();
|
||||
$.ajax({
|
||||
url : '<?php echo G5_URL ?>/bbs/register_form.php',
|
||||
type : "POST",
|
||||
datatype : "json",
|
||||
contentType: 'application/json; charset=utf-8',
|
||||
data : {
|
||||
'agree11' : agree11,
|
||||
'agree21' : agree21
|
||||
},
|
||||
// success : function(data){
|
||||
// var ss='';
|
||||
// for(i=0; i<data.length; i++){
|
||||
// ss=ss + data[i];
|
||||
// }
|
||||
// alert(ss);
|
||||
// },
|
||||
error : function(err){
|
||||
alert(err);
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
$('#fregisterform button[type=submit]').click(function(e){
|
||||
e.preventDefault();
|
||||
|
||||
let mb_id = $('#reg_mb_id').val();
|
||||
let mb_password = $('#reg_mb_password').val();
|
||||
let mb_password_re = $('#reg_mb_password_re').val();
|
||||
let mb_name = $('#reg_mb_name').val();
|
||||
let mb_email1 = $('#reg_mb_email1').val();
|
||||
let mb_email2 = $('#mb_email2').val();
|
||||
let mb_hp = $('#reg_mb_hp').val();
|
||||
let mb_comp = $('#reg_mb_comp').val();
|
||||
let mb_comp_team = $('#reg_mb_comp_team').val();
|
||||
alert(mb_password+' '+mb_password_re+' '+mb_name+' '+mb_email1+' '+mb_email2+' '+mb_hp+' '+mb_comp+' '+mb_comp_team);
|
||||
$.ajax({
|
||||
url : '<?php echo G5_URL ?>/bbs/register_form_update.php',
|
||||
data : {
|
||||
'mb_id' : mb_id,
|
||||
'mb_password' : mb_password,
|
||||
'mb_password_re' : mb_password_re,
|
||||
'mb_name' : mb_name,
|
||||
'mb_email1' : mb_email1,
|
||||
'mb_email2' : mb_email2,
|
||||
'mb_hp' : mb_hp,
|
||||
'mb_comp' : mb_comp,
|
||||
'mb_comp_team' : mb_comp_team,
|
||||
},
|
||||
type : "POST",
|
||||
datatype : "json",
|
||||
success : function(data){
|
||||
var ss='';
|
||||
for(i=0; i<data.length; i++){
|
||||
ss=ss + data[i];
|
||||
}
|
||||
alert(ss);
|
||||
if(ss.length == 5){
|
||||
$(".popup_wrap").show();
|
||||
$('.btn_close').hide();
|
||||
$('#pop_join').hide();
|
||||
}else
|
||||
{
|
||||
alert(trim(ss));
|
||||
}
|
||||
},
|
||||
error : function(err){
|
||||
//alert(err);
|
||||
alert(err.status);
|
||||
alert(err.statusText);
|
||||
}
|
||||
});
|
||||
});
|
||||
</script>
|
||||
@@ -0,0 +1,599 @@
|
||||
<?php
|
||||
if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가
|
||||
?>
|
||||
<head>
|
||||
<!-- Google Tag Manager -->
|
||||
<script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
|
||||
new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
|
||||
j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
|
||||
'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
|
||||
})(window,document,'script','dataLayer','GTM-5GX3FS9R');
|
||||
</script>
|
||||
<!-- End Google Tag Manager -->
|
||||
<!-- Google tag (gtag.js) -->
|
||||
<script async src="https://www.googletagmanager.com/gtag/js?id=G-STZ2R5Q7HG"></script>
|
||||
<script>
|
||||
window.dataLayer = window.dataLayer || [];
|
||||
function gtag(){dataLayer.push(arguments);}
|
||||
gtag('js', new Date());
|
||||
|
||||
gtag('config', 'G-STZ2R5Q7HG');
|
||||
</script>
|
||||
<meta charset="utf-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<meta name="description" content="디지털전환시대 EG-BIM, 도면과 3차원 정보모델을 하나의 S/W로" />
|
||||
<meta name="keywords" content="EG-BIM, 이지빔, egbim, eg bim, CAD, 대안CAD, 도면, BIM" />
|
||||
<title>EG-BIM</title>
|
||||
<link rel="stylesheet" href="<?php echo G5_URL ?>/css/reset.css" />
|
||||
<link rel="stylesheet" href="<?php echo G5_URL ?>/css/font.css" />
|
||||
<link rel="stylesheet" href="<?php echo G5_URL ?>/css/style.css" />
|
||||
<link rel="stylesheet" href="<?php echo G5_URL ?>/theme/basic/skin/qa/basic/style.css?ver=2303229">
|
||||
|
||||
<script type="text/javascript" src="<?php echo G5_URL ?>/js/jquery-3.6.1.min.js"></script>
|
||||
|
||||
<script type="text/javascript" src="<?php echo G5_URL ?>/js/jquery.mousewheel.min.js"></script>
|
||||
<script src="https://cdn.jsdelivr.net/npm/gsap@3.12.5/dist/gsap.min.js"></script>
|
||||
<script src="https://cdn.jsdelivr.net/npm/gsap@3.12.5/dist/ScrollTrigger.min.js"></script>
|
||||
<script src="https://cdn.jsdelivr.net/npm/gsap@3.12.5/dist/ScrollToPlugin.min.js"></script>
|
||||
<script type="text/javascript" src="<?php echo G5_URL ?>/js/common.js"></script>
|
||||
<script type="text/javascript" src="<?php echo G5_URL ?>/js/popup.js"></script>
|
||||
<script type="text/javascript" src="<?php echo G5_URL ?>/js/index.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
<!-- Google Tag Manager (noscript) -->
|
||||
<noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-5GX3FS9R"
|
||||
height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
|
||||
<!-- End Google Tag Manager (noscript) -->
|
||||
|
||||
<div class="wrapper">
|
||||
<input id="hid_mb_id" name="hid_mb_id" type="hidden" value="<?echo $_SESSION['session_id'];?>"></input>
|
||||
<div class="main_mask">
|
||||
<!-- Header -->
|
||||
<header class="js__header">
|
||||
<?php include_once($member_skin_path.'/main_header.skin.php'); ?>
|
||||
</header>
|
||||
<!-- //Header -->
|
||||
<!-- floating_menu -->
|
||||
<div class="floating_menu">
|
||||
<ul>
|
||||
<li class="floating_faq"><a href="<?php echo G5_BBS_URL ?>/faq.php">
|
||||
<i></i>
|
||||
<span>FAQ</span>
|
||||
</a></li>
|
||||
<li class="floating_buy"><a href="<?php echo G5_BBS_URL ?>/buy.php">
|
||||
<i></i>
|
||||
<span>구매하기</span>
|
||||
</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<!-- //floating_menu -->
|
||||
<!-- 모든 팝업페이지 경로 -->
|
||||
<?php
|
||||
include_once($member_skin_path.'/login.skin.php');
|
||||
include_once($member_skin_path.'/mypage01.skin.php');
|
||||
include_once($member_skin_path.'/register.skin.php');
|
||||
include_once($member_skin_path.'/register_form.skin.php');
|
||||
include_once($member_skin_path.'/mypage02.skin.php');
|
||||
include_once($member_skin_path.'/mypage03.skin.php');
|
||||
include_once($member_skin_path.'/sitemap.skin.php');
|
||||
include_once($member_skin_path.'/privacy.skin.php');
|
||||
include_once($member_skin_path.'/password_lost.skin.php');
|
||||
?>
|
||||
<!-- 모든 팝업페이지 경로 -->
|
||||
<!-- main -->
|
||||
<div class="main">
|
||||
<ul class="pagination_main">
|
||||
<li><div class="page_01 page_on">EG-BIM 소개</div><span>01</span></li>
|
||||
<li><div class="page_02">인터페이스</div><span>02</span></li>
|
||||
<li><div class="page_03">주요기능</div><span>03</span></li>
|
||||
<li><div class="page_04">도면관리</div><span>04</span></li>
|
||||
<li><div class="page_05">for BIM</div><span>05</span></li>
|
||||
</ul>
|
||||
<div class="main_link">
|
||||
<a href="#01" class="main_link_01 link_on" onclick="location.href='<?php echo G5_BBS_URL ?>/value.php'"></a>
|
||||
<a href="#02" class="main_link_02" onclick="location.href='<?php echo G5_BBS_URL ?>/interface.php'"></a>
|
||||
<a href="#03" class="main_link_03" onclick="location.href='<?php echo G5_BBS_URL ?>/primary.php'"></a>
|
||||
<a href="#04" class="main_link_04" onclick="location.href='<?php echo G5_BBS_URL ?>/floorplan.php'"></a>
|
||||
<a href="#05" class="main_link_05" onclick="location.href='<?php echo G5_BBS_URL ?>/forbim.php'"></a>
|
||||
</div>
|
||||
<div class="bg_video">
|
||||
<video id="video_play" autoplay muted>
|
||||
<source src="<?php echo G5_URL ?>/img/main_1.mp4" type="video/mp4" class="main_video_01">
|
||||
</video>
|
||||
</div>
|
||||
<footer class="footer_off">
|
||||
<?php include_once($member_skin_path.'/main_footer.skin.php'); ?>
|
||||
</footer>
|
||||
</div>
|
||||
</div>
|
||||
<div class="intro_wrap">
|
||||
<div class="intro_mask"></div>
|
||||
<div class="intro_txt">
|
||||
<div class="txt_mask"><span><b>디지털전환시대</b></span></div>
|
||||
<div class="txt_mask"><span><font class="egbim k">EG-BIM_software</font></span></div>
|
||||
<div class="txt_mask"><span><em>도면</em>과 <em>3차원 정보모델</em>을 <em>하나의</em> S/W로</span></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
<script>
|
||||
// 회원 탈퇴
|
||||
function member_leave() {
|
||||
if (confirm("회원에서 탈퇴 하시겠습니까?"))
|
||||
location.href = '<?php echo G5_BBS_URL ?>/member_leave.php';
|
||||
}
|
||||
// 회원 탈퇴
|
||||
|
||||
//$('.family_btn').click(function(){
|
||||
// $(".family_list").toggleClass(" family_on");
|
||||
//});
|
||||
|
||||
if($('#hid_mb_id').val()==''){
|
||||
document.getElementById('my_join2').style.display = 'none';
|
||||
document.getElementById('my_login2').style.display = 'none';
|
||||
document.getElementById('my_join').style.display = '';
|
||||
document.getElementById('my_login').style.display = '';
|
||||
}else{
|
||||
document.getElementById('my_join2').style.display = '';
|
||||
document.getElementById('my_login2').style.display = '';
|
||||
document.getElementById('my_join').style.display = 'none';
|
||||
document.getElementById('my_login').style.display = 'none';
|
||||
}
|
||||
let x = document.cookie;
|
||||
if(x.includes("tmp_1=John")){
|
||||
deleteCookie("tmp_1");
|
||||
$('#pop_mypage02').show();
|
||||
}
|
||||
|
||||
function deleteCookie(name) {
|
||||
document.cookie = name + "=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/egbim;";
|
||||
}
|
||||
function getCookie(cname) {
|
||||
let name = cname + "=";
|
||||
let decodedCookie = decodeURIComponent(document.cookie);
|
||||
let ca = decodedCookie.split(';');
|
||||
for(let i = 0; i <ca.length; i++) {
|
||||
let c = ca[i];
|
||||
while (c.charAt(0) == ' ') {
|
||||
c = c.substring(1);
|
||||
}
|
||||
if (c.indexOf(name) == 0) {
|
||||
return c.substring(name.length, c.length);
|
||||
}
|
||||
}
|
||||
return "";
|
||||
}
|
||||
//alert(getCookie("tmp_1"));
|
||||
//로그인
|
||||
$('#flogin button[type=submit]').click(function(e){
|
||||
e.preventDefault();
|
||||
let mb_id = $('#login_id').val();
|
||||
let mb_password = $('#login_pw').val();
|
||||
//alert('<?php echo G5_URL ?>/bbs/login.php');
|
||||
$.ajax({
|
||||
url : '<?php echo G5_URL ?>/bbs/login_check_tova.php',
|
||||
data : {
|
||||
'mb_id' : mb_id,
|
||||
'mb_password' : mb_password
|
||||
},
|
||||
type : "POST",
|
||||
datatype : "json",
|
||||
success : function(data){
|
||||
var ss='';
|
||||
for(i=0; i<data.length; i++){
|
||||
ss=ss + data[i];
|
||||
}
|
||||
//alert(ss.replace('"','').replace('"',''));
|
||||
if(ss.replace('"','').replace('"','') == "success" || ss.replace('"','').replace('"','') == "super"){
|
||||
//$(".popup_wrap").show();
|
||||
$('.btn_close').hide();
|
||||
$('#pop_login').hide();
|
||||
$('#hid_mb_id').val(mb_id);
|
||||
document.getElementById('my_join2').style.display = '';
|
||||
document.getElementById('my_login2').style.display = '';
|
||||
document.getElementById('my_join').style.display = 'none';
|
||||
document.getElementById('my_login').style.display = 'none';
|
||||
//location.href="<?php echo G5_URL ?>/bbs/session.php?id="+mb_id;
|
||||
if(ss.replace('"','').replace('"','') == "super"){
|
||||
$('#my_join2').html("<a href='http://eg-bim.com/egbim/adm/index.php' target='_blank'>관리페이지</a>");
|
||||
}else{
|
||||
$('#my_join2').html("<a href='javascript:mypage01();'>마이페이지</a>");
|
||||
$('.btn_close').show();
|
||||
}
|
||||
}else
|
||||
{
|
||||
alert(trim(ss));
|
||||
}
|
||||
},
|
||||
error : function(err){
|
||||
//alert(err);
|
||||
alert(err.status);
|
||||
alert(err.statusText);
|
||||
}
|
||||
});
|
||||
});
|
||||
//회원가입 약관동의
|
||||
$('#fregister button[type=submit]').click(function(e){
|
||||
e.preventDefault();
|
||||
let agree11 = $('#agree11').val();
|
||||
let agree21 = $('#agree21').val();
|
||||
$.ajax({
|
||||
url : '<?php echo G5_URL ?>/bbs/register_form.php',
|
||||
type : "POST",
|
||||
datatype : "json",
|
||||
contentType: 'application/json; charset=utf-8',
|
||||
data : {
|
||||
'agree11' : agree11,
|
||||
'agree21' : agree21
|
||||
},
|
||||
success : function(data){
|
||||
var ss='';
|
||||
for(i=0; i<data.length; i++){
|
||||
ss=ss + data[i];
|
||||
}
|
||||
},
|
||||
error : function(err){
|
||||
alert(err);
|
||||
}
|
||||
});
|
||||
});
|
||||
//회원가입 정보입력
|
||||
$('#fregisterform button[type=submit]').click(function(e){
|
||||
e.preventDefault();
|
||||
|
||||
let mb_id = $('#reg_mb_id').val();
|
||||
let mb_password = $('#reg_mb_password').val();
|
||||
let mb_password_re = $('#reg_mb_password_re').val();
|
||||
let mb_name = $('#reg_mb_name').val();
|
||||
let mb_email1 = $('#reg_mb_email1').val();
|
||||
let mb_email2 = $('#reg_mb_email2').val();
|
||||
let reg_domain2 = $('#register_domain2').val();
|
||||
let mb_hp = $('#reg_mb_hp').val();
|
||||
let mb_comp = $('#reg_mb_comp').val();
|
||||
let mb_comp_team = $('#reg_mb_comp_team').val();
|
||||
//alert(mb_password+' '+mb_password_re+' '+mb_name+' '+mb_email1+' '+mb_email2+' '+mb_hp+' '+mb_comp+' '+mb_comp_team);
|
||||
if (mb_id.length < 4) {
|
||||
alert("아이디를 4글자 이상 입력하십시오.");
|
||||
mb_id.focus();
|
||||
return false;
|
||||
}
|
||||
var special_pattern = /[`~!@#$%^&*|\\\'\";:\/?]/gi
|
||||
if (special_pattern.test(mb_id) == true) {
|
||||
alert("아이디는 특수문자를 사용할수 없습니다.");
|
||||
mb_id.focus();
|
||||
return false;
|
||||
}
|
||||
|
||||
// 비밀번호 검사
|
||||
if(!/^(?=.*[a-zA-Z])(?=.*[!@#$%^*+=-])(?=.*[0-9]).{8,25}$/.test(mb_password)){
|
||||
alert('비밀번호는 숫자+영문자+특수문자 조합으로 8자리 이상 사용해야 합니다.');
|
||||
mb_password.focus();
|
||||
return false;
|
||||
}
|
||||
// if (mb_password_re.length < 8 || mb_password.length < 8) {
|
||||
// alert("비밀번호를 8글자 이상 입력하십시오.");
|
||||
// mb_password.focus();
|
||||
// return false;
|
||||
// }
|
||||
|
||||
// 비밀번호 & 2차비밀번호 검사
|
||||
if (mb_password != mb_password_re) {
|
||||
alert("비밀번호가 같지 않습니다.");
|
||||
mb_password_re.focus();
|
||||
return false;
|
||||
}
|
||||
|
||||
// 이름 검사
|
||||
if (mb_name == "") {
|
||||
if (mb_name.length < 1) {
|
||||
alert("이름을 입력하십시오.");
|
||||
mb_name.focus();
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
// 메일 검사
|
||||
if (mb_email1 == "") {
|
||||
if (mb_email1.length < 1) {
|
||||
alert("메일 주소를 입력하십시오.");
|
||||
mb_email1.focus();
|
||||
return false;
|
||||
}
|
||||
}
|
||||
if (mb_email2 == "type"){
|
||||
mb_email2 = '@' + reg_domain2;
|
||||
}
|
||||
// 핸드폰 번호 검사
|
||||
if (mb_hp.length < 11) {
|
||||
alert("휴대전화번호 11자리를 입력하십시오.");
|
||||
mb_hp.focus();
|
||||
return false;
|
||||
}
|
||||
if(isNaN(mb_hp)){
|
||||
alert("휴대전화번호는 숫자만 입력가능합니다.");
|
||||
mb_hp.focus();
|
||||
return false;
|
||||
}
|
||||
// 회사명 검사
|
||||
if (mb_comp == "") {
|
||||
if (mb_comp.length < 1) {
|
||||
alert("회사명을 입력하십시오");
|
||||
mb_comp.focus();
|
||||
return false;
|
||||
}
|
||||
}
|
||||
// 팀명 검사
|
||||
if (mb_comp_team == "") {
|
||||
if (mb_comp_team.length < 1) {
|
||||
alert("팀명을 입력하십시오");
|
||||
mb_comp_team.focus();
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
$.ajax({
|
||||
url : '<?php echo G5_URL ?>/bbs/register_form_update.php',
|
||||
data : {
|
||||
'mb_id' : mb_id,
|
||||
'mb_password' : mb_password,
|
||||
'mb_password_re' : mb_password_re,
|
||||
'mb_name' : mb_name,
|
||||
'mb_email1' : mb_email1,
|
||||
'mb_email2' : mb_email2,
|
||||
'mb_hp' : mb_hp,
|
||||
'mb_comp' : mb_comp,
|
||||
'mb_comp_team' : mb_comp_team,
|
||||
},
|
||||
type : "POST",
|
||||
datatype : "json",
|
||||
success : function(data){
|
||||
var ss='';
|
||||
for(i=0; i<data.length; i++){
|
||||
ss=ss + data[i];
|
||||
}
|
||||
if(ss){
|
||||
// $(".popup_wrap").show();
|
||||
$('.btn_close').hide();
|
||||
$('#pop_login').hide();
|
||||
$('#pop_agreement').hide();
|
||||
$('#pop_join').hide();
|
||||
$('#pop_mypage01').hide();
|
||||
$('#pop_search').hide();
|
||||
$('#pop_mypage02').hide();
|
||||
$('#pop_mypage03').hide();
|
||||
$('#pop_privacy').hide();
|
||||
// $('.register_fs').hide();
|
||||
// $('.join_progress .join_step').removeClass('on');
|
||||
// $('.join_progress .join_step').eq(2).addClass('on');
|
||||
// $('.messages').show();
|
||||
//$("#reg_form_join").hide();
|
||||
//$("#pop_result").show();
|
||||
alert('회원가입이 완료됐습니다.\n다시 로그인 해주세요');
|
||||
|
||||
$('#reg_mb_id').val('');
|
||||
$('#reg_mb_password').val('');
|
||||
$('#reg_mb_password_re').val('');
|
||||
$('#reg_mb_name').val('');
|
||||
$('#reg_mb_email1').val('');
|
||||
$('#reg_mb_hp').val('');
|
||||
$('#reg_mb_comp').val('');
|
||||
$('#reg_mb_comp_team').val('');
|
||||
$('#dupl_check_yn').val('N');
|
||||
|
||||
}else{
|
||||
alert('실패했습니다.');
|
||||
}
|
||||
},
|
||||
error : function(err){
|
||||
alert('에러');
|
||||
alert(err);
|
||||
alert(err.status);
|
||||
alert(err.statusText);
|
||||
}
|
||||
});
|
||||
// $.removeCookie(mb_id,{path:'<?php //echo G5_URL ?>/bbs/register_form_update.php'});
|
||||
});
|
||||
|
||||
//회원정보 수정
|
||||
$('#fregisterform_up button[type=submit]').click(function(e){
|
||||
e.preventDefault();
|
||||
let mb_id = $('#update_mb_id').val();
|
||||
let mb_password = $('#update_mb_password').val();
|
||||
let mb_password_re = $('#update_mb_password_re').val();
|
||||
let mb_name = $('#update_mb_name').val();
|
||||
let mb_email1 = $('#update_mb_email1').val();
|
||||
let mb_email2 = $('#update_mb_email2').val();
|
||||
let update_domain2 = $('#update_domain2').val();
|
||||
if (mb_email2 == "type"){
|
||||
mb_email2 = '@' + update_domain2;
|
||||
}
|
||||
let mb_hp = $('#update_mb_hp').val();
|
||||
let mb_comp = $('#update_mb_comp').val();
|
||||
let mb_comp_team = $('#update_mb_comp_team').val();
|
||||
|
||||
//alert(mb_password+' '+mb_password_re+' '+mb_name+' '+mb_email1+' '+mb_email2+' '+mb_hp+' '+mb_comp+' '+mb_comp_team);
|
||||
if (mb_id.length < 4) {
|
||||
alert('1');
|
||||
alert("아이디를 4글자 이상 입력하십시오.");
|
||||
mb_id.focus();
|
||||
return false;
|
||||
}
|
||||
var special_pattern = /[`~!@#$%^&*|\\\'\";:\/?]/gi
|
||||
if (special_pattern.test(mb_id) == true) {
|
||||
alert("아이디는 특수문자를 사용할수 없습니다.");
|
||||
mb_id.focus();
|
||||
return false;
|
||||
}
|
||||
|
||||
// 비밀번호 검사
|
||||
if(!/^(?=.*[a-zA-Z])(?=.*[!@#$%^*+=-])(?=.*[0-9]).{8,25}$/.test(mb_password)){
|
||||
alert('비밀번호는 숫자+영문자+특수문자 조합으로 8자리 이상 사용해야 합니다.');
|
||||
mb_password.focus();
|
||||
return false;
|
||||
}
|
||||
// if (mb_password_re.length < 8 || mb_password.length < 8) {
|
||||
// alert("비밀번호를 8글자 이상 입력하십시오.");
|
||||
// mb_password.focus();
|
||||
// return false;
|
||||
// }
|
||||
|
||||
// 비밀번호 & 2차비밀번호 검사
|
||||
if (mb_password != mb_password_re) {
|
||||
alert(mb_password_re);
|
||||
alert("비밀번호가 같지 않습니다.");
|
||||
mb_password_re.focus();
|
||||
return false;
|
||||
}
|
||||
|
||||
// 이름 검사
|
||||
if (mb_name == "") {
|
||||
if (mb_name.length < 1) {
|
||||
alert("이름을 입력하십시오.");
|
||||
mb_name.focus();
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
// 메일 검사
|
||||
if (mb_email1 == "") {
|
||||
if (mb_email1.length < 1) {
|
||||
alert("메일 주소를 입력하십시오.");
|
||||
mb_email1.focus();
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
// 핸드폰 번호 검사
|
||||
if (mb_hp.length < 11) {
|
||||
alert("휴대전화번호 11자리를 입력하십시오.");
|
||||
mb_hp.focus();
|
||||
return false;
|
||||
}
|
||||
if(isNaN(mb_hp)){
|
||||
alert("휴대전화번호는 숫자만 입력가능합니다.");
|
||||
mb_hp.focus();
|
||||
return false;
|
||||
}
|
||||
// 회사명 검사
|
||||
if (mb_comp == "") {
|
||||
if (mb_comp.length < 1) {
|
||||
alert("회사명을 입력하십시오");
|
||||
mb_comp.focus();
|
||||
return false;
|
||||
}
|
||||
}
|
||||
// 팀명 검사
|
||||
if (mb_comp_team == "") {
|
||||
if (mb_comp_team.length < 1) {
|
||||
alert("팀명을 입력하십시오");
|
||||
mb_comp_team.focus();
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
$.ajax({
|
||||
url : '<?php echo G5_URL ?>/bbs/mypage03.php',
|
||||
data : {
|
||||
'mb_id' : mb_id,
|
||||
'mb_password' : mb_password,
|
||||
'mb_password_re' : mb_password_re,
|
||||
'mb_name' : mb_name,
|
||||
'mb_email1' : mb_email1,
|
||||
'mb_email2' : mb_email2,
|
||||
'mb_hp' : mb_hp,
|
||||
'mb_comp' : mb_comp,
|
||||
'mb_comp_team' : mb_comp_team,
|
||||
},
|
||||
type : "POST",
|
||||
datatype : "json",
|
||||
success : function(data){
|
||||
var ss='';
|
||||
for(i=0; i<data.length; i++){
|
||||
ss=ss + data[i];
|
||||
}
|
||||
|
||||
if(ss.replace('"','').replace('"','') == "success"){
|
||||
|
||||
// $(".popup_wrap").show();
|
||||
$('.btn_close').show();
|
||||
$('#pop_login').hide();
|
||||
$('#pop_agreement').hide();
|
||||
$('#pop_join').hide();
|
||||
$('#pop_mypage01').hide();
|
||||
$('#pop_search').hide();
|
||||
$('#pop_mypage02').show();
|
||||
$('#pop_mypage03').hide();
|
||||
$('#pop_privacy').hide();
|
||||
// $('.register_fs').hide();
|
||||
// $('.join_progress .join_step').removeClass('on');
|
||||
// $('.join_progress .join_step').eq(2).addClass('on');
|
||||
// $('.messages').show();
|
||||
alert('회원정보 수정이 완료됐습니다.');
|
||||
document.getElementById("span_email").innerText=mb_email1+mb_email2;
|
||||
document.getElementById("span_hp").innerText=mb_hp;
|
||||
document.getElementById("span_comp").innerText=mb_comp;
|
||||
document.getElementById("span_comp_team").innerText=mb_comp_team;
|
||||
// $('#update_mb_id').val('');
|
||||
// $('#update_mb_password').val('');
|
||||
// $('#update_mb_password_re').val('');
|
||||
// $('#update_mb_name').val('');
|
||||
// $('#update_mb_email1').val('');
|
||||
// $('#update_mb_hp').val('');
|
||||
// $('#update_mb_comp').val('');
|
||||
// $('#update_mb_comp_team').val('');
|
||||
// $('#dupl_check_yn').val('N');
|
||||
|
||||
}else{
|
||||
alert('실패했습니다.');
|
||||
}
|
||||
},
|
||||
error : function(err){
|
||||
alert('에러');
|
||||
alert(err);
|
||||
alert(err.status);
|
||||
alert(err.statusText);
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
$('#fmyconfirmpw button[type=submit]').click(function(e){
|
||||
e.preventDefault();
|
||||
|
||||
let l_mb_password = $('#password_mypage').val();
|
||||
let l_mb_id = $('#hid_mb_id').val();
|
||||
|
||||
$.ajax({
|
||||
url : '<?php echo G5_URL ?>/bbs/mypage02.php',
|
||||
data : {
|
||||
'mb_id' : l_mb_id,
|
||||
'mb_password' : l_mb_password,
|
||||
},
|
||||
type : "POST",
|
||||
datatype : "json",
|
||||
success : function(data){
|
||||
var ss='';
|
||||
for(i=0; i<data.length; i++){
|
||||
ss=ss + data[i];
|
||||
}
|
||||
//alert(ss.replace('"','').replace('"',''));
|
||||
if(ss.replace('"','').replace('"','') == "success"){
|
||||
$('#password_mypage').val('');
|
||||
//mypage02();
|
||||
document.cookie = "tmp_1=John";
|
||||
location.href="<?php echo G5_URL ?>/index.php";
|
||||
}else
|
||||
{
|
||||
alert(trim(ss));
|
||||
$('#password_mypage').select();
|
||||
}
|
||||
},
|
||||
error : function(err){
|
||||
alert(err);
|
||||
alert(err.status);
|
||||
alert(err.statusText);
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
</script>
|
||||
|
||||
@@ -0,0 +1,47 @@
|
||||
<?php include_once __DIR__ . '/asset_urls.php'; ?>
|
||||
|
||||
<button class="btn_top js__top" onclick="window.scrollTo(0,0);"><div class="arrow"></div></button>
|
||||
|
||||
<footer class="footer_off">
|
||||
<div class="footer_close"></div>
|
||||
<div class="footer_wrap">
|
||||
<div class="comp_info">
|
||||
<a href="https://baroncs.co.kr" target="_blank" rel="noopener noreferrer"><img class="logo_baron" src="<?php echo egbim_img_url('baron_logo.svg'); ?>" alt=""></a>
|
||||
<span class="ceo">대표이사 <em>장종찬</em></span>
|
||||
</div>
|
||||
<div class="comp_inner">
|
||||
<span class="btn_privacy"><a href="javascript:privacy('privacy');"><em>개인정보 처리방침</em></a><a href="javascript:privacy('agreement');">이용약관</a></span>
|
||||
<div class="comp_contact">
|
||||
<ul class="footer_menu">
|
||||
<li><a href="<?php echo G5_BBS_URL ?>/value.php">EG-BIM</a></li>
|
||||
<li><a href="<?php echo G5_BBS_URL ?>/interface.php">인터페이스</a></li>
|
||||
<li><a href="<?php echo G5_BBS_URL ?>/primary.php">주요기능</a></li>
|
||||
<li><a href="<?php echo G5_BBS_URL ?>/floorplan.php">도면관리</a></li>
|
||||
<li><a href="<?php echo G5_BBS_URL ?>/forbim.php">for BIM</a></li>
|
||||
</ul>
|
||||
<div class="footer_sitemap">
|
||||
<!-- <span>TOVA의 <em>다양한 소식</em>을 만나보세요</span>
|
||||
<div class="tova_sns">
|
||||
<a href="https://cafe.naver.com/imtas" class="tova_cafe"><img src="<?php echo G5_URL ?>/img/ico_cafe.svg" alt=""></a>
|
||||
<a href="" class="tova_facebook"><img src="<?php echo G5_URL ?>/img/ico_facebook.svg" alt=""></a>
|
||||
</div>-->
|
||||
<div class="family_wrap">
|
||||
<div class="family_btn"><span>Family Site</span><i></i></div>
|
||||
<ul class="family_list">
|
||||
<li><a href="http://k-tova.com" target="_blank">TOVA</a></li>
|
||||
<li><a href="http://k-gaia.co.kr" target="_blank">GAIA</a></li>
|
||||
<li><a href="https://kngil.com/" target="_blank">KNGIL</a></li>
|
||||
<!--li>바론컨설턴트(준비중)</li-->
|
||||
<li><a href="https://baroncs.co.kr" target="_blank">(주)바론컨설턴트</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<span class="address">[05774] 서울특별시 송파구 오금로 554(거여동)<br class="brk"> <em class="tel">Tel : 02-2141-7434</em></span>
|
||||
<span class="copyright">© BARON Consultants Co,.Ltd All Rights Reserved.</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</footer>
|
||||
|
||||
|
||||
@@ -0,0 +1,38 @@
|
||||
<div class="footer_close"></div>
|
||||
<div class="footer_wrap">
|
||||
<div class="comp_info">
|
||||
<img class="logo_baron" src="<?php echo G5_URL ?>/img/baron_logo.svg" alt="">
|
||||
<span class="ceo">대표이사 <em>장종찬</em></span>
|
||||
</div>
|
||||
<div class="comp_copy">
|
||||
<span class="btn_privacy"><a href="javascript:privacy('privacy');"><em>개인정보 처리방침</em></a><a href="javascript:privacy('agreement');">이용약관</a></span>
|
||||
<span class="address">[05774] <em>서울특별시 송파구 오금로 554(거여동)</em></span>
|
||||
<span class="copyright">© BARON Consultant Co,.Ltd All Rights Reserved.</span>
|
||||
</div>
|
||||
<div class="comp_contact">
|
||||
<ul class="footer_menu">
|
||||
<li><a href="<?php echo G5_BBS_URL ?>/value.php">EG-BIM</a></li>
|
||||
<li><a href="<?php echo G5_BBS_URL ?>/interface.php">인터페이스</a></li>
|
||||
<li><a href="<?php echo G5_BBS_URL ?>/primary.php">주요기능</a></li>
|
||||
<li><a href="<?php echo G5_BBS_URL ?>/floorplan.php">도면관리</a></li>
|
||||
<li><a href="<?php echo G5_BBS_URL ?>/forbim.php">for BIM</a></li>
|
||||
</ul>
|
||||
<div class="footer_sitemap">
|
||||
<!-- <span>TOVA의 <em>다양한 소식</em>을 만나보세요</span>
|
||||
<div class="tova_sns">
|
||||
<a href="https://cafe.naver.com/imtas" class="tova_cafe"><img src="<?php echo G5_URL ?>/img/ico_cafe.svg" alt=""></a>
|
||||
<a href="" class="tova_facebook"><img src="<?php echo G5_URL ?>/img/ico_facebook.svg" alt=""></a>
|
||||
</div>-->
|
||||
<div class="family_wrap">
|
||||
<div class="family_btn"><span>Family Site</span><i></i></div>
|
||||
<ul class="family_list">
|
||||
<li><a href="http://k-tova.com" target="_blank">TOVA</a></li>
|
||||
<li><a href="http://k-gaia.co.kr" target="_blank">GAIA</a></li>
|
||||
<li>바론컨설턴트(준비중)</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
@@ -0,0 +1,212 @@
|
||||
<?php
|
||||
include_once __DIR__ . '/asset_urls.php';
|
||||
// include_once $_SERVER['DOCUMENT_ROOT']."/egbim/skin/member/basic/descope_session.php";
|
||||
// 디버깅용 출력
|
||||
echo "<!-- isAdmin = " . (isset($isAdmin) ? ($isAdmin ? "true" : "false") : "unset") . " -->";
|
||||
|
||||
// ✅ DB 연결
|
||||
$pdo = new PDO("mysql:host=db;dbname=egbim;charset=utf8mb4", "egbim", "baron3840!!", [
|
||||
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
|
||||
]);
|
||||
|
||||
// ✅ EG-BIM (product_code=8) 기준 최신 external_version 가져오기
|
||||
$stmt = $pdo->prepare("
|
||||
SELECT external_version
|
||||
FROM deploy_versions
|
||||
WHERE product_code = 1
|
||||
ORDER BY updated_at DESC
|
||||
LIMIT 1
|
||||
");
|
||||
$stmt->execute();
|
||||
$version = $stmt->fetchColumn() ?: '1.0.0'; // fallback
|
||||
|
||||
// ✅ 다운로드 URL 자동 생성
|
||||
$download_url = "https://release-download.hmac.kr/eg-bim/{$version}/setup_eg-bim_{$version}.exe";
|
||||
?>
|
||||
<header class="js__header">
|
||||
<h1><a href="/egbim/index.php"></a></h1>
|
||||
|
||||
<div class="language">
|
||||
<a href="#" class="on">KR</a>
|
||||
<a href="/eng/">EN</a>
|
||||
</div>
|
||||
|
||||
<!-- ✅ 사용자 관리 아이콘 (관리자 전용, 기본 숨김) -->
|
||||
<div id="userListBtnWrap" class="menu_userlist" style="display:none;">
|
||||
<a href="/egbim/skin/member/basic/descope_user_list_skin_w3.php" target="_blank" rel="noopener noreferrer">
|
||||
<img src="<?php echo egbim_img_url('ico_userlist.svg'); ?>" alt="사용자 관리">
|
||||
</a>
|
||||
</div>
|
||||
|
||||
<!-- ✅ 업로드 아이콘 (관리자 전용, 기본 숨김) -->
|
||||
<div id="uploadBtnWrap" class="menu_upload" style="display:none;">
|
||||
<a href="/egbim/sw_upload/upload_page.php">
|
||||
<img src="<?php echo egbim_img_url('ico_upload.svg'); ?>" alt="업로드">
|
||||
</a>
|
||||
</div>
|
||||
|
||||
<div class="menu_my">
|
||||
<img src="<?php echo egbim_img_url('ico_my.svg'); ?>" alt="">
|
||||
<ul class="menu_my_list" style="display: none;">
|
||||
<li id="my_join2" class="my_join2">
|
||||
<!-- JS에서 "마이페이지" or "관리페이지" 링크를 넣어줌 -->
|
||||
</li>
|
||||
<li id="my_login2" class="my_login2">
|
||||
<a href="javascript:descopeLogout();">로그아웃</a>
|
||||
</li>
|
||||
<li id="my_join" class="my_join">
|
||||
<a href="javascript:agreement();">회원가입</a>
|
||||
</li>
|
||||
<li id="my_login" class="my_login">
|
||||
<a href="javascript:login();">로그인</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="menu_ham"><a href="javascript:sitemap();"><div></div><div></div><div></div></a></div>
|
||||
</header>
|
||||
<!-- floating_menu -->
|
||||
<div class="floating_menu">
|
||||
<ul>
|
||||
<li class="floating_faq"><a href="/egbim/bbs/descope_qa_list.php">
|
||||
<i></i>
|
||||
<span>Q&A</span>
|
||||
</a></li>
|
||||
<li class="floating_guide"><a href="https://baron-consultant.github.io/eg-bim_guide\help" target="_blank">
|
||||
<i></i>
|
||||
<span>사용가이드</span>
|
||||
</a></li>
|
||||
<li class="floating_download">
|
||||
<a href="<?= htmlspecialchars($download_url) ?>">
|
||||
<i></i>
|
||||
<span>다운로드</span>
|
||||
</a></li>
|
||||
<li class="floating_buy"><a href="/egbim/bbs/buy.php">
|
||||
<i></i>
|
||||
<span>구매하기</span>
|
||||
</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<!-- //floating_menu -->
|
||||
|
||||
<script>
|
||||
// 다운로드 버튼 안내
|
||||
// $(document).on('click', '.floating_download a', function (e) {
|
||||
// e.preventDefault(); // 링크 이동 막기
|
||||
// alert('다운로드 기능은 준비중입니다.');
|
||||
// });
|
||||
</script>
|
||||
|
||||
<script>
|
||||
(function () {
|
||||
const ADMIN_ICON_IDS = [
|
||||
'b24014@hanmaceng.co.kr',
|
||||
'kjy0426@hanmaceng.co.kr',
|
||||
'b23065@hanmaceng.co.kr',
|
||||
'shyeom1@samaneng.com',
|
||||
'cjy627@hanmaceng.co.kr',
|
||||
'b23072@hanmaceng.co.kr',
|
||||
'b23018@hanmaceng.co.kr',
|
||||
'm20331@hanmaceng.co.kr',
|
||||
'cozyjin@hanmaceng.co.kr',
|
||||
'm24031@hanmaceng.co.kr',
|
||||
'b24051@hanmaceng.co.kr',
|
||||
'rmsgud1202@hanmaceng.co.kr',
|
||||
'm21318@hanmaceng.co.kr',
|
||||
'b21367@hanmaceng.co.kr',
|
||||
'b25023@hanmaceng.co.kr',
|
||||
'sdi9429@naver.com',
|
||||
'junsuy@hanmail.net',
|
||||
'ilphilo92@gmail.com'
|
||||
];
|
||||
|
||||
function normalizeLoginId(loginId) {
|
||||
return String(loginId || '').trim().toLowerCase();
|
||||
}
|
||||
|
||||
function isAdminLoginId(loginId) {
|
||||
return ADMIN_ICON_IDS.includes(normalizeLoginId(loginId));
|
||||
}
|
||||
|
||||
function applyAdminIconVisibility(loginId) {
|
||||
const visible = isAdminLoginId(loginId || sessionStorage.getItem('loginId'));
|
||||
$('#uploadBtnWrap').toggle(visible);
|
||||
$('#userListBtnWrap').toggle(visible);
|
||||
}
|
||||
|
||||
// 공지 HTML (닫기 가능 / 입력 방해 X)
|
||||
const bannerHtml = `
|
||||
<div id="login_notice_banner" class="login-notice-banner" style="
|
||||
background:#0f3a2f;color:#fff;border-radius:12px;padding:14px 44px 14px 14px;
|
||||
position:relative;margin:0 0 12px 0;line-height:1.6;word-break:keep-all;">
|
||||
<button type="button" class="lnb-close" aria-label="닫기" style="
|
||||
position:absolute;right:10px;top:8px;background:transparent;border:0;
|
||||
color:#fff;font-size:20px;cursor:pointer;">×</button>
|
||||
<strong style="display:block;margin-bottom:6px;">[로그인 시스템 변경 안내]</strong>
|
||||
<p class="left" style="margin:0 0 6px;">
|
||||
더 나은 보안을 위해 2025년 8월 8일부터
|
||||
로그인 시스템이 변경되었습니다.
|
||||
기존 회원 또한 신규 시스템에 맞춰<br>
|
||||
재가입을 진행해주시기 바랍니다.
|
||||
</p>
|
||||
<p style="margin:0;">※ 로그인 및 가입 관련 문의: <strong>02-2141-7434</strong></p>
|
||||
</div>
|
||||
`;
|
||||
|
||||
function injectBanner() {
|
||||
const $wrap = $('#pop_login .popup_contents_wrap');
|
||||
if (!$wrap.length) return false;
|
||||
|
||||
if (!$('#login_notice_banner').length) {
|
||||
$wrap.prepend(bannerHtml);
|
||||
// 닫기 버튼
|
||||
$('#login_notice_banner .lnb-close').on('click', function () {
|
||||
$('#login_notice_banner').fadeOut(120);
|
||||
});
|
||||
} else {
|
||||
$('#login_notice_banner').show();
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
// 로그인 메뉴 클릭 → 기존 login() 실행 + 배너 주입(팝업 DOM 뜰 때까지 재시도)
|
||||
$(document).on('click', '#my_login a, .my_login a', function (e) {
|
||||
e.preventDefault();
|
||||
if (typeof login === 'function') login();
|
||||
|
||||
let tries = 0;
|
||||
const maxTries = 20; // 1초 정도 재시도(50ms*20)
|
||||
const iv = setInterval(() => {
|
||||
tries++;
|
||||
if (injectBanner() || tries >= maxTries) clearInterval(iv);
|
||||
}, 50);
|
||||
});
|
||||
|
||||
// 혹시 로그인 팝업을 다른 곳에서 열어도 배너가 필요하면, 팝업 열릴 때 한 번 더 시도
|
||||
$(document).on('show-login-popup', function () {
|
||||
injectBanner();
|
||||
});
|
||||
$(function () {
|
||||
applyAdminIconVisibility();
|
||||
});
|
||||
|
||||
window.addEventListener('storage', function (e) {
|
||||
if (e.key === 'loginId') {
|
||||
applyAdminIconVisibility(e.newValue || '');
|
||||
}
|
||||
});
|
||||
|
||||
window.addEventListener('descope-auth-changed', function (e) {
|
||||
applyAdminIconVisibility(e.detail?.loginId || '');
|
||||
});
|
||||
|
||||
let checkCount = 0;
|
||||
const checkInterval = setInterval(function () {
|
||||
checkCount += 1;
|
||||
const loginId = sessionStorage.getItem('loginId') || '';
|
||||
if (loginId || checkCount >= 20) {
|
||||
applyAdminIconVisibility(loginId);
|
||||
clearInterval(checkInterval);
|
||||
}
|
||||
}, 300);
|
||||
})();
|
||||
</script>
|
||||
@@ -0,0 +1,20 @@
|
||||
|
||||
<h1><a href="<?php echo G5_URL ?>/index.php"></a></h1>
|
||||
<div class="menu_my">
|
||||
<img src="<?php echo G5_URL ?>/img/ico_my.svg" alt="">
|
||||
<ul class="menu_my_list" style="display: none;">
|
||||
<li id="my_join2" class="my_join2">
|
||||
<?
|
||||
if ($_SESSION['is_admin']=="super"){
|
||||
echo "<a href='http://eg-bim.com/egbim/adm/index.php' target='_blank'>관리페이지</a>";
|
||||
} else {
|
||||
echo "<a href='javascript:mypage01();'>마이페이지</a>";
|
||||
}
|
||||
?>
|
||||
</li>
|
||||
<li id="my_login2" class="my_login2"><a href="<?php echo G5_BBS_URL ?>/logout.php">로그아웃</a></li>
|
||||
<li id="my_join" class="my_join"><a href="javascript:agreement();">회원가입</a></li>
|
||||
<li id="my_login" class="my_login"><a href="javascript:login();">로그인</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="menu_ham"><a href="javascript:sitemap();"><div></div><div></div><div></div></a></div>
|
||||
@@ -0,0 +1,267 @@
|
||||
<!--popup_wrap-->
|
||||
<div id="pop_noti" class="popup_wrap popup-notice" style="display:none">
|
||||
<link
|
||||
rel="stylesheet"
|
||||
href="https://cdnjs.cloudflare.com/ajax/libs/Swiper/8.4.7/swiper-bundle.min.css"
|
||||
/>
|
||||
<!--popup_in-->
|
||||
<div class="popup_in">
|
||||
<span class="border-effect"></span>
|
||||
<div class="popup_container notice">
|
||||
<style>
|
||||
|
||||
.popup-notice a.link {
|
||||
cursor: pointer;
|
||||
}
|
||||
.popup-notice .swiper-wrapper {
|
||||
height: auto !important;
|
||||
}
|
||||
|
||||
.popup-notice .swiper-pagination {
|
||||
width: auto;
|
||||
right: 8px;
|
||||
left: auto;
|
||||
padding: 4px 12px;
|
||||
border-radius: 25px;
|
||||
background: rgba(255,255,255,0.6);
|
||||
font-size:14px
|
||||
}
|
||||
|
||||
/* PC */
|
||||
@media (min-width: 1280px) {
|
||||
.popup-notice .popupSwiper {
|
||||
max-width:900px;
|
||||
}
|
||||
.popup-notice .swiper-slide:nth-child(2n) {
|
||||
position: relative;
|
||||
|
||||
}
|
||||
.popup-notice .swiper-slide:nth-child(2n):before {
|
||||
content:" ";
|
||||
position: absolute;
|
||||
left: 0;
|
||||
top:0;
|
||||
width: 1px;height: 100%;
|
||||
background:#9E958F;
|
||||
}
|
||||
.popup-notice .swiper-slide {
|
||||
min-width: 450px;
|
||||
/* height: 598px;*/
|
||||
border-radius: 4px;
|
||||
}
|
||||
.popup_container.notice img {
|
||||
/* max-width: 450px; */
|
||||
}
|
||||
.popup-notice .swiper-pagination {
|
||||
display:none;
|
||||
}
|
||||
}
|
||||
@media (max-width: 721px) {
|
||||
.popup_container.notice img,
|
||||
.popup_container.notice img {
|
||||
max-width: 640px;
|
||||
margin: 0 auto;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
</style>
|
||||
<div class="pop-content" >
|
||||
<div class="swiper popupSwiper">
|
||||
<div class="swiper-wrapper">
|
||||
|
||||
<?php
|
||||
// 오늘 날짜 (Y-m-d 형식)
|
||||
$main_today = date('Y-m-d');
|
||||
|
||||
// 시작일과 종료일
|
||||
$mainpop_startDate = '2025-12-01';
|
||||
$mainpop_endDate = '2025-12-31';
|
||||
// 기간 내에 있으면 배너 표시
|
||||
if ($main_today >= $mainpop_startDate && $main_today <= $mainpop_endDate) {
|
||||
?>
|
||||
<!-- 슬라이드 1 -->
|
||||
<div class="swiper-slide">
|
||||
<a class="link" href="http://www.ggherald.com/default/index_view_page.php?part_idx=119&idx=74819" target="_blank" alt="‘경기헤럴드’ 기사 전문 바로가기">
|
||||
<picture>
|
||||
<source
|
||||
media="(max-width: 721px)"
|
||||
srcset="./img/main_popup/251128_main_popup_m.png"
|
||||
/>
|
||||
<img
|
||||
src="./img/main_popup/251128_main_popup.png"
|
||||
alt="EG-BIM X 의왕도시공사 민관 상호 협력 성장 지원을 위한 업무 협약 체결"
|
||||
/>
|
||||
</picture>
|
||||
</a>
|
||||
</div>
|
||||
<?php
|
||||
}
|
||||
?>
|
||||
<!-- 슬라이드 2 -->
|
||||
<div class="swiper-slide">
|
||||
<picture>
|
||||
<source
|
||||
media="(max-width: 721px)"
|
||||
srcset="./img/main_popup/260703_popup_mo.png"
|
||||
/>
|
||||
<img
|
||||
src="./img/main_popup/260703_popup.png"
|
||||
alt="EG-BIM 로그인 방식 변경 안내"
|
||||
/>
|
||||
</picture>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<!-- 페이지네이션 -->
|
||||
<div class="swiper-pagination"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="btn-wrap">
|
||||
<button id="todayClose" type="button">오늘 하루 보지 않기</button>
|
||||
<button id="popupClose" type="button">닫기</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!--//popup_in-->
|
||||
</div>
|
||||
<!--//popup_wrap-->
|
||||
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/Swiper/8.4.7/swiper-bundle.min.js"></script>
|
||||
<script>
|
||||
(function() {
|
||||
// 쿠키 읽기 함수
|
||||
function getCookie(name) {
|
||||
var value = "; " + document.cookie;
|
||||
var parts = value.split("; " + name + "=");
|
||||
if (parts.length === 2) return parts.pop().split(";").shift();
|
||||
return null;
|
||||
}
|
||||
|
||||
|
||||
// 페이지 로드시 쿠키 확인
|
||||
var hidePopup = getCookie("hide_popup");
|
||||
var today = new Date().toISOString().split('T')[0];
|
||||
|
||||
var popup = document.getElementById("pop_noti");
|
||||
if (!popup) return;
|
||||
|
||||
// 오늘 날짜와 쿠키 날짜가 같으면 팝업 숨김
|
||||
if (hidePopup === today) {
|
||||
popup.style.display = "none";
|
||||
} else {
|
||||
popup.style.display = "block";
|
||||
}
|
||||
|
||||
// 팝업 외부 클릭 시 닫기
|
||||
popup.onclick = function(e) {
|
||||
if (e.target === popup) {
|
||||
popup.style.display = "none";
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
// 닫기 버튼
|
||||
var closeBtn = document.getElementById("popupClose");
|
||||
if (closeBtn) {
|
||||
closeBtn.onclick = function() {
|
||||
popup.style.display = "none";
|
||||
};
|
||||
}
|
||||
|
||||
// 오늘 하루 보지 않기 버튼
|
||||
var todayChk = document.getElementById("todayClose");
|
||||
if (todayChk) {
|
||||
todayChk.onclick = function() {
|
||||
var today = new Date();
|
||||
var expire = new Date();
|
||||
expire.setHours(23, 59, 59, 999);
|
||||
document.cookie = "hide_popup=" + today.toISOString().split('T')[0] + "; path=/; expires=" + expire.toUTCString();
|
||||
popup.style.display = "none";
|
||||
};
|
||||
}
|
||||
|
||||
let swiper = null;
|
||||
let resizeTimer = null;
|
||||
let currentMode = window.innerWidth >= 1280 ? 'pc' : 'mo';
|
||||
|
||||
function initSwiper() {
|
||||
const slideCount = document.querySelectorAll(
|
||||
'.popupSwiper .swiper-slide'
|
||||
).length;
|
||||
|
||||
const isSingleSlide = slideCount <= 1;
|
||||
const isPC = window.innerWidth >= 1280;
|
||||
|
||||
swiper = new Swiper('.popupSwiper', {
|
||||
speed: 600,
|
||||
watchOverflow: true,
|
||||
|
||||
slidesPerView: isSingleSlide ? 1 : (isPC ? 2 : 1),
|
||||
slidesPerGroup: isSingleSlide ? 1 : (isPC ? 2 : 1),
|
||||
|
||||
loop: false, // ⭐ loop 고정 (중요)
|
||||
allowTouchMove: !isPC,
|
||||
|
||||
observer: true,
|
||||
observeParents: true,
|
||||
updateOnWindowResize: false,
|
||||
|
||||
pagination: {
|
||||
el: '.swiper-pagination',
|
||||
type: 'fraction',
|
||||
},
|
||||
|
||||
on: {
|
||||
init(swiper) {
|
||||
// single slide면 pagination 숨김
|
||||
if (isSingleSlide && swiper.pagination?.el) {
|
||||
swiper.pagination.el.style.display = 'none';
|
||||
} else if (swiper.pagination?.el) {
|
||||
swiper.pagination.el.style.display = isPC ? 'none' : 'block';
|
||||
}
|
||||
},
|
||||
|
||||
// fraction NaN 방어
|
||||
paginationUpdate(swiper, el) {
|
||||
if (el && el.textContent.includes('NaN')) {
|
||||
swiper.slideTo(0, 0, false);
|
||||
swiper.update();
|
||||
|
||||
requestAnimationFrame(() => {
|
||||
swiper.pagination.render();
|
||||
swiper.pagination.update();
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
// 최초 실행
|
||||
initSwiper();
|
||||
|
||||
// PC ↔ MO 경계 통과 시에만 재생성
|
||||
window.addEventListener('resize', function () {
|
||||
clearTimeout(resizeTimer);
|
||||
|
||||
resizeTimer = setTimeout(() => {
|
||||
const newMode = window.innerWidth >= 1280 ? 'pc' : 'mo';
|
||||
|
||||
if (newMode !== currentMode) {
|
||||
currentMode = newMode;
|
||||
|
||||
if (swiper) {
|
||||
swiper.destroy(true, true);
|
||||
swiper = null;
|
||||
}
|
||||
|
||||
initSwiper();
|
||||
}
|
||||
}, 200);
|
||||
});
|
||||
|
||||
|
||||
})();
|
||||
</script>
|
||||
@@ -0,0 +1,148 @@
|
||||
<?php
|
||||
if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가
|
||||
|
||||
// add_stylesheet('css 구문', 출력순서); 숫자가 작을 수록 먼저 출력됨
|
||||
add_stylesheet('<link rel="stylesheet" href="' . $member_skin_url . '/style.css">', 0);
|
||||
if ($config['cf_cert_use'] && ($config['cf_cert_simple'] || $config['cf_cert_ipin'] || $config['cf_cert_hp']))
|
||||
add_javascript('<script src="'.G5_JS_URL.'/certify.js?v='.G5_JS_VER.'"></script>', 0);
|
||||
?>
|
||||
<!-- 기존 회원 본인인증 시작 { -->
|
||||
<div class="member_cert_refresh">
|
||||
<form name="fcertrefreshform" id="member_cert_refresh" action="<?php echo $action_url ?>" onsubmit="return fcertrefreshform_submit(this);" method="POST" autocomplete="off">
|
||||
<input type="hidden" name="w" value="<?php echo $w ?>">
|
||||
<input type="hidden" name="url" value="<?php echo $urlencode ?>">
|
||||
<input type="hidden" name="cert_type" value="<?php echo $member['mb_certify']; ?>">
|
||||
<input type="hidden" name="mb_id" value="<?php echo $member['mb_id']; ?>">
|
||||
<input type="hidden" name="mb_hp" value="<?php echo $member['mb_hp']; ?>">
|
||||
<input type="hidden" name="mb_name" value="<?php echo $member['mb_name']; ?>">
|
||||
<input type="hidden" name="cert_no" value="">
|
||||
<section id="member_cert_refresh_private">
|
||||
<h2>(필수) 추가 개인정보처리방침 안내</h2>
|
||||
<div>
|
||||
<div class="tbl_head01 tbl_wrap">
|
||||
<table>
|
||||
<caption>추가 개인정보처리방침 안내</caption>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>목적</th>
|
||||
<th>항목</th>
|
||||
<th>보유기간</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>이용자 식별 및 본인여부 확인</td>
|
||||
<td>생년월일<?php echo (empty($member['mb_dupinfo']))? ", 휴대폰 번호(아이핀 제외)" : ""; ?>, 암호화된 개인식별부호(CI)</td>
|
||||
<td>회원 탈퇴 시까지</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<fieldset class="member_cert_refresh_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>
|
||||
|
||||
<section id="find_info" class="new_win">
|
||||
<h2>인증수단 선택하기</h2>
|
||||
|
||||
<div class="find_btn">
|
||||
<?php
|
||||
if ($config['cf_cert_use']) {
|
||||
echo '<div class="cert_btn">';
|
||||
if ($config['cf_cert_simple']) {
|
||||
echo '<button type="button" id="win_sa_kakao_cert" class="btn_submit win_sa_cert" data-type="">간편인증</button>' . PHP_EOL;
|
||||
}
|
||||
if ($config['cf_cert_hp'])
|
||||
echo '<button type="button" id="win_hp_cert" class="btn_submit">휴대폰 본인확인</button>' . PHP_EOL;
|
||||
if ($config['cf_cert_ipin'])
|
||||
echo '<button type="button" id="win_ipin_cert" class="btn_submit">아이핀 본인확인</button>' . PHP_EOL;
|
||||
echo '</div>';
|
||||
echo '<noscript>본인확인을 위해서는 자바스크립트 사용이 가능해야합니다.</noscript>' . PHP_EOL;
|
||||
}
|
||||
?>
|
||||
</div>
|
||||
</section>
|
||||
</form>
|
||||
|
||||
<script>
|
||||
$(function() {
|
||||
var pageTypeParam = "pageType=register";
|
||||
var f = document.fcertrefreshform;
|
||||
|
||||
<?php if ($config['cf_cert_use'] && $config['cf_cert_simple']) { ?>
|
||||
// 이니시스 간편인증
|
||||
var url = "<?php echo G5_INICERT_URL; ?>/ini_request.php";
|
||||
var type = "";
|
||||
var params = "";
|
||||
var request_url = "";
|
||||
|
||||
$(".win_sa_cert").click(function() {
|
||||
if (!fcertrefreshform_submit(f)) return false;
|
||||
type = $(this).data("type");
|
||||
params = "?directAgency=" + type + "&" + pageTypeParam;
|
||||
request_url = url + params;
|
||||
call_sa(request_url);
|
||||
});
|
||||
<?php } ?>
|
||||
|
||||
<?php if ($config['cf_cert_use'] && $config['cf_cert_ipin']) { ?>
|
||||
// 아이핀인증
|
||||
var params = "";
|
||||
$("#win_ipin_cert").click(function() {
|
||||
if (!fcertrefreshform_submit(f)) return false;
|
||||
params = "?" + pageTypeParam;
|
||||
var url = "<?php echo G5_OKNAME_URL; ?>/ipin1.php" + params;
|
||||
certify_win_open('kcb-ipin', url);
|
||||
return;
|
||||
});
|
||||
<?php } ?>
|
||||
|
||||
<?php if ($config['cf_cert_use'] && $config['cf_cert_hp']) { ?>
|
||||
// 휴대폰인증
|
||||
var params = "";
|
||||
$("#win_hp_cert").click(function() {
|
||||
if (!fcertrefreshform_submit(f)) return false;
|
||||
params = "?" + pageTypeParam;
|
||||
<?php
|
||||
switch ($config['cf_cert_hp']) {
|
||||
case 'kcb':
|
||||
$cert_url = G5_OKNAME_URL.'/hpcert1.php';
|
||||
$cert_type = 'kcb-hp';
|
||||
break;
|
||||
case 'kcp':
|
||||
$cert_url = G5_KCPCERT_URL.'/kcpcert_form.php';
|
||||
$cert_type = 'kcp-hp';
|
||||
break;
|
||||
case 'lg':
|
||||
$cert_url = G5_LGXPAY_URL.'/AuthOnlyReq.php';
|
||||
$cert_type = 'lg-hp';
|
||||
break;
|
||||
default:
|
||||
echo 'alert("기본환경설정에서 휴대폰 본인확인 설정을 해주십시오");';
|
||||
echo 'return false;';
|
||||
break;
|
||||
}
|
||||
?>
|
||||
|
||||
certify_win_open("<?php echo $cert_type; ?>", "<?php echo $cert_url; ?>" + params);
|
||||
return;
|
||||
});
|
||||
<?php } ?>
|
||||
});
|
||||
|
||||
function fcertrefreshform_submit(f) {
|
||||
if (!f.agree2.checked) {
|
||||
alert("추가 개인정보처리방침에 동의하셔야 인증을 진행하실 수 있습니다.");
|
||||
f.agree2.focus();
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
</script>
|
||||
</div>
|
||||
<!-- } 기존 회원 본인인증 끝 -->
|
||||
@@ -0,0 +1,130 @@
|
||||
<?php
|
||||
if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가
|
||||
|
||||
// add_stylesheet('css 구문', 출력순서); 숫자가 작을 수록 먼저 출력됨
|
||||
add_stylesheet('<link rel="stylesheet" href="'.$member_skin_url.'/style.css">', 0);
|
||||
?>
|
||||
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<title>TOVA Join</title>
|
||||
<link rel="stylesheet" href="../css/reset.css" />
|
||||
<link rel="stylesheet" href="../css/font.css" />
|
||||
<link rel="stylesheet" href="../css/style.css" />
|
||||
<script src="../js/jquery-3.6.1.min.js"></script>
|
||||
<script src="../js/common.js"></script>
|
||||
</head>
|
||||
|
||||
|
||||
<!-- 회원 비밀번호 확인 시작 { -->
|
||||
<div id="mb_confirm" class="mbskin">
|
||||
<h1><?php echo $g5['title'] ?></h1>
|
||||
|
||||
<p>
|
||||
<strong>비밀번호를 한번 더 입력해주세요.</strong>
|
||||
<?php if ($url == 'member_leave.php') { ?>
|
||||
비밀번호를 입력하시면 회원탈퇴가 완료됩니다.
|
||||
<?php }else{ ?>
|
||||
회원님의 정보를 안전하게 보호하기 위해 비밀번호를 한번 더 확인합니다.
|
||||
<?php } ?>
|
||||
</p>
|
||||
|
||||
<form name="fmemberconfirm" action="<?php echo $url ?>" onsubmit="return fmemberconfirm_submit(this);" method="post">
|
||||
<input type="hidden" name="mb_id" value="<?php echo $member['mb_id'] ?>">
|
||||
<input type="hidden" name="w" value="u">
|
||||
|
||||
<!-- <fieldset>
|
||||
<span class="confirm_id">회원아이디</span>
|
||||
<span id="mb_confirm_id"><?php //echo $member['mb_id'] ?></span>
|
||||
<label for="confirm_mb_password" class="sound_only">비밀번호<strong>필수</strong></label>
|
||||
<input type="password" name="mb_password" id="confirm_mb_password" required class="required frm_input" size="15" maxLength="20" placeholder="비밀번호">
|
||||
<input type="submit" value="확인" id="btn_submit" class="btn_submit">
|
||||
</fieldset> -->
|
||||
|
||||
|
||||
<body>
|
||||
<div class="wrapper">
|
||||
<!-- Header -->
|
||||
<header class="header">
|
||||
<h1>
|
||||
<img src="../img/logo_w.svg" alt="">
|
||||
</h1>
|
||||
<div class="menu_wrap">
|
||||
<div class="menu_my"><img src="../img/ico_my.svg" alt=""></div>
|
||||
<div class="menu_ham"><img src="../img/ico_ham.svg" alt=""></div>
|
||||
</div>
|
||||
</header>
|
||||
<!-- //Header -->
|
||||
|
||||
<!--popup_wrap-->
|
||||
<div class="popup_wrap ">
|
||||
<!--popup_in-->
|
||||
<div class="popup_in">
|
||||
<hgroup>
|
||||
<div class="pop_close_wrap">
|
||||
<button class="btn_close">
|
||||
<div class="close_div"><img src="../img/ico_close.svg" alt=""></div>
|
||||
</button>
|
||||
</div>
|
||||
</hgroup>
|
||||
<!--popup_content-->
|
||||
<div class="popup_content join">
|
||||
<!--pop_join_left-->
|
||||
<div class="pop_join_left">
|
||||
<span class="bg_tit_left">My pa</span>
|
||||
<div class="join_info">
|
||||
<h1 class="h_1"> 마이페이지 </h1>
|
||||
<h3 class="h_3">
|
||||
회원님의 <em>정보 보호</em>를 <br>
|
||||
위하여 <em>비밀번호</em>를 한번 더 확인합니다.
|
||||
</h3>
|
||||
</div>
|
||||
</div>
|
||||
<!--//pop_join_right-->
|
||||
<div class="pop_input_wrap pop_join_right">
|
||||
<span class="bg_tit_right">ge</span>
|
||||
<div class="contents_wrap">
|
||||
<div class="content">
|
||||
<table class="ph">
|
||||
<tbody>
|
||||
<tr>
|
||||
<th class="h_4">비밀번호 확인</th>
|
||||
<td>
|
||||
<div class="id_wrap">
|
||||
<input type="password" name="mb_password" id="confirm_mb_password" required class="required frm_input" placeholder="비밀번호 입력" required>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<div class="join_btn_wrap">
|
||||
<button id="btn_submit" type="submit" class="btn_submit">확인</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<!--//pop_join_right-->
|
||||
</div>
|
||||
<!--//popup_content-->
|
||||
</div>
|
||||
<!--//popup_in-->
|
||||
</div>
|
||||
<!--//popup_wrap-->
|
||||
</div>
|
||||
</body>
|
||||
|
||||
</form>
|
||||
|
||||
</div>
|
||||
|
||||
<script>
|
||||
function fmemberconfirm_submit(f)
|
||||
{
|
||||
document.getElementById("btn_submit").disabled = true;
|
||||
|
||||
return true;
|
||||
}
|
||||
</script>
|
||||
<!-- } 회원 비밀번호 확인 끝 -->
|
||||
@@ -0,0 +1,145 @@
|
||||
<?php
|
||||
if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가
|
||||
|
||||
// add_stylesheet('css 구문', 출력순서); 숫자가 작을 수록 먼저 출력됨
|
||||
add_stylesheet('<link rel="stylesheet" href="'.$member_skin_url.'/style.css">', 0);
|
||||
?>
|
||||
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<title>TOVA Join</title>
|
||||
<link rel="stylesheet" href="../css/reset.css" />
|
||||
<link rel="stylesheet" href="../css/font.css" />
|
||||
<link rel="stylesheet" href="../css/style.css" />
|
||||
<script src="../js/jquery-3.6.1.min.js"></script>
|
||||
<script src="../js/common.js"></script>
|
||||
</head>
|
||||
|
||||
|
||||
<!-- 회원 비밀번호 확인 시작 { -->
|
||||
<div id="mb_confirm" class="mbskin">
|
||||
<h1><?php echo $g5['title'] ?></h1>
|
||||
|
||||
<p>
|
||||
<!-- <strong>비밀번호를 한번 더 입력해주세요.</strong> -->
|
||||
<?php if ($url == 'member_leave.php') { ?>
|
||||
비밀번호를 입력하시면 회원탈퇴가 완료됩니다.
|
||||
<?php }else{ ?>
|
||||
회원님의 정보를 안전하게 보호하기 위해 비밀번호를 한번 더 확인합니다.
|
||||
<?php } ?>
|
||||
</p>
|
||||
|
||||
<form name="fmemberconfirm" action="<?php echo $url ?>" onsubmit="return fmemberconfirm_submit(this);" method="post">
|
||||
<input type="hidden" name="mb_id" value="<?php echo $member['mb_id'] ?>">
|
||||
<input type="hidden" name="w" value="u">
|
||||
|
||||
<!-- <fieldset>
|
||||
<span class="confirm_id">회원아이디</span>
|
||||
<span id="mb_confirm_id"><?php //echo $member['mb_id'] ?></span>
|
||||
<label for="confirm_mb_password" class="sound_only">비밀번호<strong>필수</strong></label>
|
||||
<input type="password" name="mb_password" id="confirm_mb_password" required class="required frm_input" size="15" maxLength="20" placeholder="비밀번호">
|
||||
<input type="submit" value="확인" id="btn_submit" class="btn_submit">
|
||||
</fieldset> -->
|
||||
|
||||
|
||||
<body>
|
||||
<div class="wrapper">
|
||||
<!-- Header -->
|
||||
<header class="header">
|
||||
<h1>
|
||||
<img src="../img/logo_w.svg" alt="">
|
||||
</h1>
|
||||
<div class="menu_wrap">
|
||||
<div class="menu_my"><img src="../img/ico_my.svg" alt=""></div>
|
||||
<div class="menu_ham"><img src="../img/ico_ham.svg" alt=""></div>
|
||||
</div>
|
||||
</header>
|
||||
<!-- //Header -->
|
||||
|
||||
<!--popup_wrap-->
|
||||
<div class="popup_wrap ">
|
||||
<!--popup_in-->
|
||||
<div class="popup_in">
|
||||
<hgroup>
|
||||
<div class="pop_close_wrap">
|
||||
<button class="btn_close">
|
||||
<div class="close_div"><img src="../img/ico_close.svg" alt=""></div>
|
||||
</button>
|
||||
</div>
|
||||
</hgroup>
|
||||
<!--popup_content-->
|
||||
<div class="popup_content join">
|
||||
<!--pop_join_left-->
|
||||
<div class="pop_join_left">
|
||||
<?php if ($url == 'member_leave.php') { ?>
|
||||
<span class="bg_tit_left">Canc</span>
|
||||
<div class="join_info">
|
||||
<h1 class="h_1"> 회원탈퇴 </h1>
|
||||
<h3 class="h_3">
|
||||
회원님의 <em>정보 보호</em>를 <br>
|
||||
위하여 <em>비밀번호</em>를 한번 더 확인합니다.
|
||||
</h3>
|
||||
</div>
|
||||
<?php }else{ ?>
|
||||
<span class="bg_tit_left">My pa</span>
|
||||
<div class="join_info">
|
||||
<h1 class="h_1"> 마이페이지 </h1>
|
||||
<h3 class="h_3">
|
||||
회원님의 <em>정보 보호</em>를 <br>
|
||||
위하여 <em>비밀번호</em>를 한번 더 확인합니다.
|
||||
</h3>
|
||||
</div>
|
||||
<?php } ?>
|
||||
</div>
|
||||
<!--//pop_join_right-->
|
||||
<div class="pop_input_wrap pop_join_right">
|
||||
<?php if ($url == 'member_leave.php') { ?>
|
||||
<span class="bg_tit_right">el</span>
|
||||
<?php }else{ ?>
|
||||
<span class="bg_tit_right">ge</span>
|
||||
<?php } ?>
|
||||
<div class="contents_wrap">
|
||||
<div class="content">
|
||||
<table class="ph">
|
||||
<tbody>
|
||||
<tr>
|
||||
<th class="h_4">비밀번호 확인</th>
|
||||
<td>
|
||||
<div class="id_wrap">
|
||||
<input type="password" name="mb_password" id="confirm_mb_password" required class="required frm_input" placeholder="비밀번호 입력" required>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<div class="join_btn_wrap">
|
||||
<button id="btn_submit" type="submit" class="btn_submit">확인</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<!--//pop_join_right-->
|
||||
</div>
|
||||
<!--//popup_content-->
|
||||
</div>
|
||||
<!--//popup_in-->
|
||||
</div>
|
||||
<!--//popup_wrap-->
|
||||
</div>
|
||||
</body>
|
||||
|
||||
</form>
|
||||
|
||||
</div>
|
||||
|
||||
<script>
|
||||
function fmemberconfirm_submit(f)
|
||||
{
|
||||
document.getElementById("btn_submit").disabled = true;
|
||||
|
||||
return true;
|
||||
}
|
||||
</script>
|
||||
<!-- } 회원 비밀번호 확인 끝 -->
|
||||
@@ -0,0 +1,57 @@
|
||||
<?php
|
||||
if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가
|
||||
|
||||
// add_stylesheet('css 구문', 출력순서); 숫자가 작을 수록 먼저 출력됨
|
||||
add_stylesheet('<link rel="stylesheet" href="'.$member_skin_url.'/style.css">', 0);
|
||||
?>
|
||||
|
||||
<!-- 쪽지 목록 시작 { -->
|
||||
<div id="memo_list" class="new_win">
|
||||
<h1 id="win_title">
|
||||
<?php echo $g5['title'] ?>
|
||||
<div class="win_total">전체 <?php echo $kind_title ?>쪽지 <?php echo $total_count ?>통<br></div>
|
||||
</h1>
|
||||
<div class="new_win_con2">
|
||||
<ul class="win_ul">
|
||||
<li class="<?php if ($kind == 'recv') { ?>selected<?php } ?>"><a href="./memo.php?kind=recv">받은쪽지</a></li>
|
||||
<li class="<?php if ($kind == 'send') { ?>selected<?php } ?>"><a href="./memo.php?kind=send">보낸쪽지</a></li>
|
||||
<li><a href="./memo_form.php">쪽지쓰기</a></li>
|
||||
</ul>
|
||||
|
||||
<div class="memo_list">
|
||||
<ul>
|
||||
<?php
|
||||
for ($i=0; $i<count($list); $i++) {
|
||||
$readed = (substr($list[$i]['me_read_datetime'],0,1) == 0) ? '' : 'read';
|
||||
$memo_preview = utf8_strcut(strip_tags($list[$i]['me_memo']), 30, '..');
|
||||
?>
|
||||
<li class="<?php echo $readed; ?>">
|
||||
<div class="memo_li profile_big_img">
|
||||
<?php echo get_member_profile_img($list[$i]['mb_id']); ?>
|
||||
<?php if (! $readed){ ?><span class="no_read">안 읽은 쪽지</span><?php } ?>
|
||||
</div>
|
||||
<div class="memo_li memo_name">
|
||||
<?php echo $list[$i]['name']; ?> <span class="memo_datetime"><i class="fa fa-clock-o" aria-hidden="true"></i> <?php echo $list[$i]['send_datetime']; ?></span>
|
||||
<div class="memo_preview">
|
||||
<a href="<?php echo $list[$i]['view_href']; ?>"><?php echo $memo_preview; ?></a>
|
||||
</div>
|
||||
</div>
|
||||
<a href="<?php echo $list[$i]['del_href']; ?>" onclick="del(this.href); return false;" class="memo_del"><i class="fa fa-trash-o" aria-hidden="true"></i> <span class="sound_only">삭제</span></a>
|
||||
</li>
|
||||
<?php } ?>
|
||||
<?php if ($i==0) { echo '<li class="empty_table">자료가 없습니다.</li>'; } ?>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<!-- 페이지 -->
|
||||
<?php echo $write_pages; ?>
|
||||
|
||||
<p class="win_desc"><i class="fa fa-info-circle" aria-hidden="true"></i> 쪽지 보관일수는 최장 <strong><?php echo $config['cf_memo_del'] ?></strong>일 입니다.
|
||||
</p>
|
||||
|
||||
<div class="win_btn">
|
||||
<button type="button" onclick="window.close();" class="btn_close">창닫기</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- } 쪽지 목록 끝 -->
|
||||
@@ -0,0 +1,60 @@
|
||||
<?php
|
||||
if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가
|
||||
|
||||
// add_stylesheet('css 구문', 출력순서); 숫자가 작을 수록 먼저 출력됨
|
||||
add_stylesheet('<link rel="stylesheet" href="'.$member_skin_url.'/style.css">', 0);
|
||||
?>
|
||||
|
||||
<!-- 쪽지 보내기 시작 { -->
|
||||
<div id="memo_write" class="new_win">
|
||||
<h1 id="win_title"><i class="fa fa-envelope-o" aria-hidden="true"></i> 쪽지 보내기</h1>
|
||||
<div class="new_win_con2">
|
||||
<ul class="win_ul">
|
||||
<li><a href="./memo.php?kind=recv">받은쪽지</a></li>
|
||||
<li><a href="./memo.php?kind=send">보낸쪽지</a></li>
|
||||
<li class="selected"><a href="./memo_form.php">쪽지쓰기</a></li>
|
||||
</ul>
|
||||
|
||||
<form name="fmemoform" action="<?php echo $memo_action_url; ?>" onsubmit="return fmemoform_submit(this);" method="post" autocomplete="off">
|
||||
<div class="form_01">
|
||||
<h2 class="sound_only">쪽지쓰기</h2>
|
||||
<ul>
|
||||
<li>
|
||||
<label for="me_recv_mb_id" class="sound_only">받는 회원아이디<strong>필수</strong></label>
|
||||
|
||||
<input type="text" name="me_recv_mb_id" value="<?php echo $me_recv_mb_id; ?>" id="me_recv_mb_id" required class="frm_input full_input required" size="47" placeholder="받는 회원아이디">
|
||||
<span class="frm_info">여러 회원에게 보낼때는 컴마(,)로 구분하세요.</span>
|
||||
<?php if ($config['cf_memo_send_point']) { ?>
|
||||
<br ><span class="frm_info">쪽지 보낼때 회원당 <?php echo number_format($config['cf_memo_send_point']); ?>점의 포인트를 차감합니다.</span>
|
||||
<?php } ?>
|
||||
</li>
|
||||
<li>
|
||||
<label for="me_memo" class="sound_only">내용</label>
|
||||
<textarea name="me_memo" id="me_memo" required class="required"><?php echo $content ?></textarea>
|
||||
</li>
|
||||
<li>
|
||||
<span class="sound_only">자동등록방지</span>
|
||||
|
||||
<?php echo captcha_html(); ?>
|
||||
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div class="win_btn">
|
||||
<button type="submit" id="btn_submit" class="btn btn_b02 reply_btn">보내기</button>
|
||||
<button type="button" onclick="window.close();" class="btn_close">창닫기</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
|
||||
<script>
|
||||
function fmemoform_submit(f)
|
||||
{
|
||||
<?php echo chk_captcha_js(); ?>
|
||||
|
||||
return true;
|
||||
}
|
||||
</script>
|
||||
<!-- } 쪽지 보내기 끝 -->
|
||||
@@ -0,0 +1,64 @@
|
||||
<?php
|
||||
if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가
|
||||
$nick = get_sideview($mb['mb_id'], $mb['mb_nick'], $mb['mb_email'], $mb['mb_homepage']);
|
||||
if($kind == "recv") {
|
||||
$kind_str = "보낸";
|
||||
$kind_date = "받은";
|
||||
}
|
||||
else {
|
||||
$kind_str = "받는";
|
||||
$kind_date = "보낸";
|
||||
}
|
||||
|
||||
// add_stylesheet('css 구문', 출력순서); 숫자가 작을 수록 먼저 출력됨
|
||||
add_stylesheet('<link rel="stylesheet" href="'.$member_skin_url.'/style.css">', 0);
|
||||
?>
|
||||
|
||||
<!-- 쪽지보기 시작 { -->
|
||||
<div id="memo_view" class="new_win">
|
||||
<h1 id="win_title"><?php echo $g5['title'] ?></h1>
|
||||
<div class="new_win_con2">
|
||||
<!-- 쪽지함 선택 시작 { -->
|
||||
<ul class="win_ul">
|
||||
<li class="<?php if ($kind == 'recv') { ?>selected<?php } ?>"><a href="./memo.php?kind=recv">받은쪽지</a></li>
|
||||
<li class="<?php if ($kind == 'send') { ?>selected<?php } ?>"><a href="./memo.php?kind=send">보낸쪽지</a></li>
|
||||
<li><a href="./memo_form.php">쪽지쓰기</a></li>
|
||||
</ul>
|
||||
<!-- } 쪽지함 선택 끝 -->
|
||||
|
||||
<article id="memo_view_contents">
|
||||
<header>
|
||||
<h2>쪽지 내용</h2>
|
||||
</header>
|
||||
<div id="memo_view_ul">
|
||||
<div class="memo_view_li memo_view_name">
|
||||
<ul class="memo_from">
|
||||
<li class="memo_profile">
|
||||
<?php echo get_member_profile_img($mb['mb_id']); ?>
|
||||
</li>
|
||||
<li class="memo_view_nick"><?php echo $nick ?></li>
|
||||
<li class="memo_view_date"><span class="sound_only"><?php echo $kind_date ?>시간</span><i class="fa fa-clock-o" aria-hidden="true"></i> <?php echo $memo['me_send_datetime'] ?></li>
|
||||
<li class="memo_op_btn list_btn"><a href="<?php echo $list_link ?>" class="btn_b01 btn"><i class="fa fa-list" aria-hidden="true"></i><span class="sound_only">목록</span></a></li>
|
||||
<li class="memo_op_btn del_btn"><a href="<?php echo $del_link; ?>" onclick="del(this.href); return false;" class="memo_del btn_b01 btn"><i class="fa fa-trash-o" aria-hidden="true"></i> <span class="sound_only">삭제</span></a></li>
|
||||
</ul>
|
||||
<div class="memo_btn">
|
||||
<?php if($prev_link) { ?>
|
||||
<a href="<?php echo $prev_link ?>" class="btn_left"><i class="fa fa-chevron-left" aria-hidden="true"></i> 이전쪽지</a>
|
||||
<?php } ?>
|
||||
<?php if($next_link) { ?>
|
||||
<a href="<?php echo $next_link ?>" class="btn_right">다음쪽지 <i class="fa fa-chevron-right" aria-hidden="true"></i></a>
|
||||
<?php } ?>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<p>
|
||||
<?php echo conv_content($memo['me_memo'], 0) ?>
|
||||
</p>
|
||||
</article>
|
||||
<div class="win_btn">
|
||||
<?php if ($kind == 'recv') { ?><a href="./memo_form.php?me_recv_mb_id=<?php echo $mb['mb_id'] ?>&me_id=<?php echo $memo['me_id'] ?>" class="reply_btn">답장</a><?php } ?>
|
||||
<button type="button" onclick="window.close();" class="btn_close">창닫기</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- } 쪽지보기 끝 -->
|
||||
@@ -0,0 +1,150 @@
|
||||
<?php
|
||||
if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가
|
||||
|
||||
// add_stylesheet('css 구문', 출력순서); 숫자가 작을 수록 먼저 출력됨
|
||||
add_stylesheet('<link rel="stylesheet" href="'.$member_skin_url.'/style.css">', 0);
|
||||
?>
|
||||
|
||||
<!-- <head>
|
||||
<meta charset="utf-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<title>TOVA Join</title>
|
||||
<link rel="stylesheet" href="../css/reset.css" />
|
||||
<link rel="stylesheet" href="../css/font.css" />
|
||||
<link rel="stylesheet" href="../css/style.css" />
|
||||
<script src="../js/jquery-3.6.1.min.js"></script>
|
||||
<script src="../js/common.js"></script>
|
||||
</head> -->
|
||||
|
||||
|
||||
<!-- <body>
|
||||
<div class="wrapper"> -->
|
||||
<!-- Header -->
|
||||
<!-- <header class="header">
|
||||
<h1>
|
||||
<img src="../img/logo_w.svg" alt="">
|
||||
</h1>
|
||||
<div class="menu_wrap">
|
||||
<div class="menu_my"><img src="../img/ico_my.svg" alt=""></div>
|
||||
<div class="menu_ham"><img src="../img/ico_ham.svg" alt=""></div>
|
||||
</div>
|
||||
</header> -->
|
||||
<!-- //Header -->
|
||||
|
||||
<!--popup_wrap-->
|
||||
<div id="pop_mypage01" class="popup_wrap">
|
||||
<!--popup_in-->
|
||||
<div class="popup_in">
|
||||
<button class="btn_close">
|
||||
<div class="close_div"><img src="../img/ico_close.svg" alt=""></div>
|
||||
</button>
|
||||
<!--popup_content-->
|
||||
<div class="popup_container mypage">
|
||||
<!--pop_join_left-->
|
||||
<div class="popup_tit">
|
||||
<h1 class="h_1"> 마이페이지 </h1>
|
||||
<h3 class="h_3">
|
||||
소중한 <em>내 정보</em>를<br> <em>최신</em>으로 관리하세요.
|
||||
</h3>
|
||||
</div>
|
||||
<!--//pop_join_right-->
|
||||
<div class="popup_contents_wrap">
|
||||
<div class="my_info">
|
||||
<div class="name">
|
||||
<h4>김토바님<span>(A1122)</span></h4>
|
||||
<a href="<?php echo G5_BBS_URL ?>/member_confirm.php">내 정보 수정</a>
|
||||
</div>
|
||||
<ul class="detail">
|
||||
<li>
|
||||
<div class=""><i class="phone"></i>휴대전화번호</div>
|
||||
<span>010-1234-5678</span>
|
||||
</li>
|
||||
<li>
|
||||
<div><i class="email"></i>이메일</div>
|
||||
<span>A1122@naver.com</span>
|
||||
</li>
|
||||
<li>
|
||||
<div><i class="company"></i>회사정보</div>
|
||||
<span>(주)BBB XXX부</span>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="my_qna">
|
||||
<h4>내 문의</h4>
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th style="width: 10%;">번호</th>
|
||||
<th style="width: 10%;">구분</th>
|
||||
<th style="width: 45%;">제목</th>
|
||||
<th style="width: 15%;">글쓴이</th>
|
||||
<th style="width: 10%;">날짜</th>
|
||||
<th style="width: 10%;">조회</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>11</td>
|
||||
<td>사용</td>
|
||||
<td class="tit"><a href="">C기능 사용 방법 문의 <em>[1]</em></a></td>
|
||||
<td>김토바</td>
|
||||
<td>24-06-22</td>
|
||||
<td>31</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>12</td>
|
||||
<td>사용</td>
|
||||
<td class="tit"><a href="">C기능 사용 방법 문의 <em>[1]</em></a></td>
|
||||
<td>김토바</td>
|
||||
<td>24-06-23</td>
|
||||
<td>32</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>13</td>
|
||||
<td>사용</td>
|
||||
<td class="tit"><a href="">C기능 사용 방법 문의 <em>[1]</em></a></td>
|
||||
<td>김토바</td>
|
||||
<td>24-06-24</td>
|
||||
<td>33</td>
|
||||
</tr>
|
||||
<tr class="answer">
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td class="tit"><a href=""><i class="answer"></i><em>답글</em> <span>C기능 사용 방법 문의C기능 사용 방법</span> <i
|
||||
class="lock"></i> </a> </td>
|
||||
<td>관리자</td>
|
||||
<td>24-06-24</td>
|
||||
<td>33</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>13</td>
|
||||
<td>사용</td>
|
||||
<td class="tit"><a href="">C기능 사용 방법 문의 <em>[1]</em></a></td>
|
||||
<td>김토바</td>
|
||||
<td>24-06-24</td>
|
||||
<td>33</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<div class="pagination">
|
||||
<button type="button" class="btn_prev"></button>
|
||||
<ul class="pagination_list">
|
||||
<li class="on"><a href="#">1</a></li>
|
||||
<li><a href="#">2</a></li>
|
||||
<li><a href="#">3</a></li>
|
||||
<li><a href="#">4</a></li>
|
||||
<li><a href="#">5</a></li>
|
||||
</ul>
|
||||
<button type="button" class="btn_next"></button>
|
||||
</div>
|
||||
</div>
|
||||
<!--//pop_join_right-->
|
||||
</div>
|
||||
<!--//popup_content-->
|
||||
</div>
|
||||
<!--//popup_in-->
|
||||
</div>
|
||||
<!--//popup_wrap-->
|
||||
<!-- </div>
|
||||
</body> -->
|
||||
@@ -0,0 +1,159 @@
|
||||
<?php
|
||||
if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가
|
||||
|
||||
// add_stylesheet('css 구문', 출력순서); 숫자가 작을 수록 먼저 출력됨
|
||||
add_stylesheet('<link rel="stylesheet" href="'.$member_skin_url.'/style.css">', 0);
|
||||
?>
|
||||
|
||||
<!-- <head>
|
||||
<meta charset="utf-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<title>TOVA Join</title>
|
||||
<link rel="stylesheet" href="../css/reset.css" />
|
||||
<link rel="stylesheet" href="../css/font.css" />
|
||||
<link rel="stylesheet" href="../css/style.css" />
|
||||
<script src="../js/jquery-3.6.1.min.js"></script>
|
||||
<script src="../js/common.js"></script>
|
||||
</head> -->
|
||||
|
||||
|
||||
<!-- <body>
|
||||
<div class="wrapper"> -->
|
||||
<!-- Header -->
|
||||
<!-- <header class="header">
|
||||
<h1>
|
||||
<img src="../img/logo_w.svg" alt="">
|
||||
</h1>
|
||||
<div class="menu_wrap">
|
||||
<div class="menu_my"><img src="../img/ico_my.svg" alt=""></div>
|
||||
<div class="menu_ham"><img src="../img/ico_ham.svg" alt=""></div>
|
||||
</div>
|
||||
</header> -->
|
||||
<!-- //Header -->
|
||||
|
||||
<!--popup_wrap-->
|
||||
<div id="pop_mypage01" class="popup_wrap">
|
||||
<!--popup_in-->
|
||||
<div class="popup_in">
|
||||
<div class="pop_close_wrap">
|
||||
<button class="btn_close">
|
||||
<div class="close_div"><img src="../img/ico_close.svg" alt=""></div>
|
||||
</button>
|
||||
</div>
|
||||
<!--popup_content-->
|
||||
<div class="popup_content mypage">
|
||||
<!--pop_join_left-->
|
||||
<div class="pop_join_left">
|
||||
<span class="bg_tit_left">My pa</span>
|
||||
<div class="join_info">
|
||||
<h1 class="h_1"> 마이페이지 </h1>
|
||||
<h3 class="h_3">
|
||||
소중한 <em>내 정보</em>를 <br>
|
||||
<em>최신</em>으로 관리하세요.
|
||||
</h3>
|
||||
</div>
|
||||
</div>
|
||||
<!--//pop_join_right-->
|
||||
<div class="pop_input_wrap pop_join_right">
|
||||
<span class="bg_tit_right">ge</span>
|
||||
<div class="contents_wrap">
|
||||
<div class="my_info">
|
||||
<div class="name">
|
||||
<h4>김토바님<span>(A1122)</span></h4>
|
||||
<a href="<?php echo G5_BBS_URL ?>/member_confirm.php">내 정보 수정</a>
|
||||
</div>
|
||||
<ul class="detail">
|
||||
<li>
|
||||
<div class=""><i class="phone"></i>휴대전화번호</div>
|
||||
<span>010-1234-5678</span>
|
||||
</li>
|
||||
<li>
|
||||
<div><i class="email"></i>이메일</div>
|
||||
<span>A1122@naver.com</span>
|
||||
</li>
|
||||
<li>
|
||||
<div><i class="company"></i>회사정보</div>
|
||||
<span>(주)BBB XXX부</span>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="my_qna">
|
||||
<h4>내 문의</h4>
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th style="width: 10%;">번호</th>
|
||||
<th style="width: 10%;">구분</th>
|
||||
<th style="width: 45%;">제목</th>
|
||||
<th style="width: 15%;">글쓴이</th>
|
||||
<th style="width: 10%;">날짜</th>
|
||||
<th style="width: 10%;">조회</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>11</td>
|
||||
<td>사용</td>
|
||||
<td class="tit"><a href="">C기능 사용 방법 문의 <em>[1]</em></a></td>
|
||||
<td>김토바</td>
|
||||
<td>24-06-22</td>
|
||||
<td>31</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>12</td>
|
||||
<td>사용</td>
|
||||
<td class="tit"><a href="">C기능 사용 방법 문의 <em>[1]</em></a></td>
|
||||
<td>김토바</td>
|
||||
<td>24-06-23</td>
|
||||
<td>32</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>13</td>
|
||||
<td>사용</td>
|
||||
<td class="tit"><a href="">C기능 사용 방법 문의 <em>[1]</em></a></td>
|
||||
<td>김토바</td>
|
||||
<td>24-06-24</td>
|
||||
<td>33</td>
|
||||
</tr>
|
||||
<tr class="answer">
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td class="tit"><a href=""><i class="answer"></i><em>답글</em> <span>C기능 사용 방법 문의C기능 사용 방법</span> <i
|
||||
class="lock"></i> </a> </td>
|
||||
<td>관리자</td>
|
||||
<td>24-06-24</td>
|
||||
<td>33</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>13</td>
|
||||
<td>사용</td>
|
||||
<td class="tit"><a href="">C기능 사용 방법 문의 <em>[1]</em></a></td>
|
||||
<td>김토바</td>
|
||||
<td>24-06-24</td>
|
||||
<td>33</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<div class="pagination">
|
||||
<button type="button" class="btn_prev"></button>
|
||||
<ul class="pagination_list">
|
||||
<li class="on"><a href="#">1</a></li>
|
||||
<li><a href="#">2</a></li>
|
||||
<li><a href="#">3</a></li>
|
||||
<li><a href="#">4</a></li>
|
||||
<li><a href="#">5</a></li>
|
||||
</ul>
|
||||
<button type="button" class="btn_next"></button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!--//pop_join_right-->
|
||||
</div>
|
||||
<!--//popup_content-->
|
||||
</div>
|
||||
<!--//popup_in-->
|
||||
</div>
|
||||
<!--//popup_wrap-->
|
||||
<!-- </div>
|
||||
</body> -->
|
||||
@@ -0,0 +1,59 @@
|
||||
<?php
|
||||
if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가
|
||||
include_once('./_common.php');
|
||||
?>
|
||||
|
||||
<!--popup_wrap-->
|
||||
<div class="popup_wrap" id="pop_mypage01">
|
||||
<!--popup_in-->
|
||||
<div class="popup_in">
|
||||
<button class="btn_close">
|
||||
<div class="close_div"><img src="<?php echo G5_URL ?>/img/ico_close.svg" alt=""></div>
|
||||
</button>
|
||||
|
||||
<!--popup_content-->
|
||||
<div class="popup_container mypage log">
|
||||
<!--pop_join_left-->
|
||||
<div class="popup_tit">
|
||||
<h1 class="h_1"> 마이페이지 </h1>
|
||||
<h3 class="h_3">
|
||||
회원님의 <em>정보 보호</em>를 위하여<br> <em>비밀번호</em>를 한번 더 확인합니다.
|
||||
</h3>
|
||||
</div>
|
||||
<!--//pop_join_right-->
|
||||
<div class="popup_contents_wrap">
|
||||
<form id="fmyconfirmpw" name="fmyconfirmpw" action="<?php //echo $login_action_url?>" onsubmit="return fmyconfirmpw_submit(this);" method="post">
|
||||
<table> <!-- class="ph"//-->
|
||||
<tbody>
|
||||
<tr>
|
||||
<th class="h_4">비밀번호 확인</th>
|
||||
<td>
|
||||
<div class="id_wrap">
|
||||
<input type="password" id="password_mypage" name="password_mypage" placeholder="비밀번호 입력" required onkeyup="ufn_pw_onkeyup(this);">
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<div class="join_btn_wrap">
|
||||
<button type="submit" id="btn_re_pw" >확인</button> <!-- onclick="javascript:mypage02()" //-->
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
<!--//pop_join_right-->
|
||||
</div>
|
||||
<!--//popup_content-->
|
||||
</div>
|
||||
<!--//popup_in-->
|
||||
</div>
|
||||
<script>
|
||||
function ufn_pw_onkeyup(l_pw){
|
||||
if(l_pw.value.length>0){
|
||||
document.getElementById('btn_re_pw').disabled = false;
|
||||
}else{
|
||||
document.getElementById('btn_re_pw').disabled = true;
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<!--//popup_wrap-->
|
||||
@@ -0,0 +1,68 @@
|
||||
<?php
|
||||
if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가
|
||||
include_once('./_common.php');
|
||||
?>
|
||||
|
||||
<!--popup_wrap-->
|
||||
<div class="popup_wrap" id="pop_mypage01">
|
||||
<!--popup_in-->
|
||||
<div class="popup_in">
|
||||
<button class="btn_close">
|
||||
<div class="close_div"><img src="<?php echo G5_URL ?>/img/ico_close.svg" alt=""></div>
|
||||
</button>
|
||||
|
||||
<!--popup_content-->
|
||||
<div class="popup_content join">
|
||||
<!--pop_join_left-->
|
||||
<div class="pop_join_left">
|
||||
<span class="bg_tit_left">My pa</span>
|
||||
<div class="join_info">
|
||||
<h1 class="h_1"> 마이페이지 </h1>
|
||||
<h3 class="h_3">
|
||||
회원님의 <em>정보 보호</em>를 <br>
|
||||
위하여 <em>비밀번호</em>를 한번 더 확인합니다.
|
||||
</h3>
|
||||
</div>
|
||||
</div>
|
||||
<!--//pop_join_right-->
|
||||
<div class="pop_input_wrap pop_join_right">
|
||||
<span class="bg_tit_right">ge</span>
|
||||
<div class="contents_wrap">
|
||||
<form id="fmyconfirmpw" name="fmyconfirmpw" action="<?php //echo $login_action_url?>" onsubmit="return fmyconfirmpw_submit(this);" method="post">
|
||||
<div class="content">
|
||||
<table> <!-- class="ph"//-->
|
||||
<tbody>
|
||||
<tr>
|
||||
<th class="h_4">비밀번호 확인</th>
|
||||
<td>
|
||||
<div class="id_wrap">
|
||||
<input type="password" id="password_mypage" name="password_mypage" placeholder="비밀번호 입력" required onkeyup="ufn_pw_onkeyup(this);">
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<div class="join_btn_wrap">
|
||||
<button type="submit" id="btn_re_pw" >확인</button> <!-- onclick="javascript:mypage02()" //-->
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
<!--//pop_join_right-->
|
||||
</div>
|
||||
<!--//popup_content-->
|
||||
</div>
|
||||
<!--//popup_in-->
|
||||
</div>
|
||||
<script>
|
||||
function ufn_pw_onkeyup(l_pw){
|
||||
if(l_pw.value.length>0){
|
||||
document.getElementById('btn_re_pw').disabled = false;
|
||||
}else{
|
||||
document.getElementById('btn_re_pw').disabled = true;
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<!--//popup_wrap-->
|
||||
@@ -0,0 +1,159 @@
|
||||
<?php
|
||||
if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가
|
||||
|
||||
// add_stylesheet('css 구문', 출력순서); 숫자가 작을 수록 먼저 출력됨
|
||||
//add_stylesheet('<link rel="stylesheet" href="'.$member_skin_url.'/style.css">', 0);
|
||||
?>
|
||||
|
||||
<!-- <head>
|
||||
<meta charset="utf-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<title>TOVA Join</title>
|
||||
<link rel="stylesheet" href="../css/reset.css" />
|
||||
<link rel="stylesheet" href="../css/font.css" />
|
||||
<link rel="stylesheet" href="../css/style.css" />
|
||||
<script src="../js/jquery-3.6.1.min.js"></script>
|
||||
<script src="../js/common.js"></script>
|
||||
</head> -->
|
||||
|
||||
|
||||
<!-- <body>
|
||||
<div class="wrapper"> -->
|
||||
<!-- Header -->
|
||||
<!-- <header class="header">
|
||||
<h1>
|
||||
<img src="../img/logo_w.svg" alt="">
|
||||
</h1>
|
||||
<div class="menu_wrap">
|
||||
<div class="menu_my"><img src="../img/ico_my.svg" alt=""></div>
|
||||
<div class="menu_ham"><img src="../img/ico_ham.svg" alt=""></div>
|
||||
</div>
|
||||
</header> -->
|
||||
<!-- //Header -->
|
||||
|
||||
<!--popup_wrap-->
|
||||
<div id="pop_mypage02" class="popup_wrap">
|
||||
<!--popup_in-->
|
||||
<div class="popup_in">
|
||||
<button class="btn_close">
|
||||
<div class="close_div"><img src="<?php echo G5_URL ?>/img/ico_close.svg" alt="sdi"></div>
|
||||
</button>
|
||||
<!--popup_content-->
|
||||
<div class="popup_content mypage">
|
||||
<!--pop_join_left-->
|
||||
<div class="pop_join_left">
|
||||
<span class="bg_tit_left">My pa</span>
|
||||
<div class="join_info">
|
||||
<h1 class="h_1"> 마이페이지 </h1>
|
||||
<h3 class="h_3">
|
||||
소중한 <em>내 정보</em>를 <br>
|
||||
<em>최신</em>으로 관리하세요.
|
||||
</h3>
|
||||
</div>
|
||||
</div>
|
||||
<!--//pop_join_right-->
|
||||
<div class="pop_input_wrap pop_join_right">
|
||||
<span class="bg_tit_right">ge</span>
|
||||
<div class="contents_wrap">
|
||||
<div class="my_info">
|
||||
<div class="name">
|
||||
<h4>김토바님<span>(A1122)</span></h4>
|
||||
<a href="<?php echo G5_BBS_URL ?>/member_confirm.php">내 정보 수정</a>
|
||||
</div>
|
||||
<ul class="detail">
|
||||
<!-- 라이센스 구매이력 부분 -->
|
||||
<li class="license"></li>
|
||||
<li>
|
||||
<div class=""><i class="phone"></i>휴대전화번호</div>
|
||||
<span>010-1234-5678</span>
|
||||
</li>
|
||||
<li>
|
||||
<div><i class="email"></i>이메일</div>
|
||||
<span>A1122@naver.com</span>
|
||||
</li>
|
||||
<li>
|
||||
<div><i class="company"></i>회사정보</div>
|
||||
<span>(주)BBB XXX부</span>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="my_qna">
|
||||
<h4>내 문의</h4>
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th style="width: 10%;">번호</th>
|
||||
<th style="width: 10%;">구분</th>
|
||||
<th style="width: 45%;">제목</th>
|
||||
<th style="width: 15%;">글쓴이</th>
|
||||
<th style="width: 10%;">날짜</th>
|
||||
<th style="width: 10%;">조회</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>11</td>
|
||||
<td>사용</td>
|
||||
<td class="tit"><a href="">C기능 사용 방법 문의 <em>[1]</em></a></td>
|
||||
<td>김토바</td>
|
||||
<td>24-06-22</td>
|
||||
<td>31</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>12</td>
|
||||
<td>사용</td>
|
||||
<td class="tit"><a href="">C기능 사용 방법 문의 <em>[1]</em></a></td>
|
||||
<td>김토바</td>
|
||||
<td>24-06-23</td>
|
||||
<td>32</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>13</td>
|
||||
<td>사용</td>
|
||||
<td class="tit"><a href="">C기능 사용 방법 문의 <em>[1]</em></a></td>
|
||||
<td>김토바</td>
|
||||
<td>24-06-24</td>
|
||||
<td>33</td>
|
||||
</tr>
|
||||
<tr class="answer">
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td class="tit"><a href=""><i class="answer"></i><em>답글</em> <span>C기능 사용 방법 문의C기능 사용 방법</span> <i
|
||||
class="lock"></i> </a> </td>
|
||||
<td>관리자</td>
|
||||
<td>24-06-24</td>
|
||||
<td>33</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>13</td>
|
||||
<td>사용</td>
|
||||
<td class="tit"><a href="">C기능 사용 방법 문의 <em>[1]</em></a></td>
|
||||
<td>김토바</td>
|
||||
<td>24-06-24</td>
|
||||
<td>33</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<div class="pagination">
|
||||
<button type="button" class="btn_prev"></button>
|
||||
<ul class="pagination_list">
|
||||
<li class="on"><a href="#">1</a></li>
|
||||
<li><a href="#">2</a></li>
|
||||
<li><a href="#">3</a></li>
|
||||
<li><a href="#">4</a></li>
|
||||
<li><a href="#">5</a></li>
|
||||
</ul>
|
||||
<button type="button" class="btn_next"></button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!--//pop_join_right-->
|
||||
</div>
|
||||
<!--//popup_content-->
|
||||
</div>
|
||||
<!--//popup_in-->
|
||||
</div>
|
||||
<!--//popup_wrap-->
|
||||
<!-- </div>
|
||||
</body> -->
|
||||
@@ -0,0 +1,179 @@
|
||||
<?php
|
||||
if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가
|
||||
include_once('./_common.php');
|
||||
include_once(G5_LIB_PATH.'/latest.lib.php');
|
||||
|
||||
// add_stylesheet('css 구문', 출력순서); 숫자가 작을 수록 먼저 출력됨
|
||||
add_stylesheet('<link rel="stylesheet" href="'.$member_skin_url.'/style.css">', 0);
|
||||
|
||||
$session_id = isset($_SESSION['session_id']) ? $_SESSION['session_id'] : '';
|
||||
$mb_name = '';
|
||||
$mb_hp = '';
|
||||
$mb_comp_team = '';
|
||||
$mb_comp = '';
|
||||
$mb_email = '';
|
||||
$result = null;
|
||||
|
||||
if ($session_id) {
|
||||
$sql1 = " select mb_name, mb_hp, mb_comp_team, mb_email, mb_comp from {$g5['member_table']} where mb_id = '{$session_id}' ";
|
||||
$row1 = sql_fetch($sql1);
|
||||
$mb_name = isset($row1['mb_name']) ? $row1['mb_name'] : '';
|
||||
$mb_hp = isset($row1['mb_hp']) ? $row1['mb_hp'] : '';
|
||||
$mb_comp_team = isset($row1['mb_comp_team']) ? $row1['mb_comp_team'] : '';
|
||||
$mb_comp = isset($row1['mb_comp']) ? $row1['mb_comp'] : '';
|
||||
$mb_email = isset($row1['mb_email']) ? $row1['mb_email'] : '';
|
||||
$sql2 = " select * from {$g5['qa_content_table']} where mb_id = '{$session_id}' ORDER BY qa_datetime DESC limit 5";
|
||||
$result = sql_query($sql2);
|
||||
}
|
||||
// $qa_category = $row2['qa_category'];
|
||||
// $qa_subject = $row2['qa_subject'];
|
||||
// $qa_content = $row2['qa_content'];
|
||||
// $qa_datetime = $row2['qa_datetime'];
|
||||
// $qa_status = $row2['qa_status'];
|
||||
|
||||
$mylist = array();
|
||||
$num = 1;
|
||||
// $num = $total_count - ($page - 1) * $page_rows;
|
||||
// $subject_len = G5_IS_MOBILE ? $qaconfig['qa_mobile_subject_len'] : $qaconfig['qa_subject_len'];
|
||||
for($i=0; $result && $row=sql_fetch_array($result); $i++) {
|
||||
$mylist[$i] = $row;
|
||||
|
||||
$mylist[$i]['category'] = get_text($row['qa_category']);
|
||||
$mylist[$i]['subject'] = conv_subject($row['qa_subject'], $subject_len, '…');
|
||||
if ($stx) {
|
||||
$mylist[$i]['subject'] = search_font($stx, $mylist[$i]['subject']);
|
||||
}
|
||||
|
||||
$mylist[$i]['view_href'] = G5_BBS_URL.'/qaview.php?qa_id='.$row['qa_id'].$qstr;
|
||||
|
||||
$mylist[$i]['icon_file'] = '';
|
||||
if(trim($row['qa_file1']) || trim($row['qa_file2']))
|
||||
$mylist[$i]['icon_file'] = '<img src="'.$qa_skin_url.'/img/icon_file.gif">';
|
||||
|
||||
$mylist[$i]['name'] = get_text($row['qa_name']);
|
||||
|
||||
$mylist[$i]['date'] = substr($row['qa_datetime'], 2, 8);
|
||||
|
||||
$mylist[$i]['num'] = $num;
|
||||
$num += 1;
|
||||
}
|
||||
?>
|
||||
|
||||
<!-- <head>
|
||||
<meta charset="utf-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<title>TOVA Join</title>
|
||||
<link rel="stylesheet" href="../css/reset.css" />
|
||||
<link rel="stylesheet" href="../css/font.css" />
|
||||
<link rel="stylesheet" href="../css/style.css" />
|
||||
<script src="../js/jquery-3.6.1.min.js"></script>
|
||||
<script src="../js/common.js"></script>
|
||||
</head> -->
|
||||
|
||||
|
||||
<!-- <body>
|
||||
<div class="wrapper"> -->
|
||||
<!-- Header -->
|
||||
<!-- <header class="header">
|
||||
<h1>
|
||||
<img src="../img/logo_w.svg" alt="">
|
||||
</h1>
|
||||
<div class="menu_wrap">
|
||||
<div class="menu_my"><img src="../img/ico_my.svg" alt=""></div>
|
||||
<div class="menu_ham"><img src="../img/ico_ham.svg" alt=""></div>
|
||||
</div>
|
||||
</header> -->
|
||||
<!-- //Header -->
|
||||
|
||||
<!--popup_wrap-->
|
||||
<div id="pop_mypage02" class="popup_wrap">
|
||||
<!--popup_in-->
|
||||
<div class="popup_in">
|
||||
<button class="btn_close">
|
||||
<div class="close_div"><img src="<?php echo G5_URL ?>/img/ico_close.svg" alt="sdi"></div>
|
||||
</button>
|
||||
<!--popup_content-->
|
||||
<div class="popup_container mypage">
|
||||
<!--pop_join_left-->
|
||||
<div class="popup_tit">
|
||||
<h1 class="h_1"> 마이페이지 </h1>
|
||||
<h3 class="h_3">
|
||||
소중한 <em>내 정보</em>를 <br><em> 최신</em>으로 관리하세요.
|
||||
</h3>
|
||||
</div>
|
||||
<!--//pop_join_right-->
|
||||
<div class="popup_contents_wrap">
|
||||
<div class="my_info">
|
||||
<div class="name">
|
||||
<h4><?php echo $mb_name?>님<span>(<?php echo $session_id; ?>)</span></h4>
|
||||
<button onclick="javascript:mypage03();">내 정보 수정</button>
|
||||
</div>
|
||||
<ul class="detail">
|
||||
<!-- 라이센스 구매이력 부분 -->
|
||||
<li class="license"></li>
|
||||
<li>
|
||||
<div class=""><i class="phone"></i>휴대전화번호</div>
|
||||
<span id="span_hp"><?php echo $mb_hp?></span>
|
||||
</li>
|
||||
<li>
|
||||
<div><i class="email"></i>이메일</div>
|
||||
<span id="span_email"><?php echo $mb_email?></span>
|
||||
</li>
|
||||
<li>
|
||||
<div><i class="company"></i>회사정보</div>
|
||||
<!-- <span id="span_comp"><?php //echo $mb_comp.'<br>'.$mb_comp_team?></span> -->
|
||||
<span id="span_comp"><?php echo $mb_comp?></span><br>
|
||||
<span id="span_comp_team"><?php echo $mb_comp_team?></span>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="my_qna">
|
||||
<h4>내 문의</h4>
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th style="width: 7%;">번호</th>
|
||||
<th style="width: 10%;">구분</th>
|
||||
<th style="width: max-contents;">제목</th>
|
||||
<th style="width: 10%;">등록일</th>
|
||||
<th style="width: 13%;">상태</th>
|
||||
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<?php
|
||||
for ($i=0; $i<count($mylist); $i++) {
|
||||
if ($i%2==0) $lt_class = "even";
|
||||
else $lt_class = "";
|
||||
?>
|
||||
<tr class="<?php echo $lt_class ?>">
|
||||
<td class="td_num" style="text-align: center;"><?php echo $mylist[$i]['num'];?></td>
|
||||
<td class="td_subject" style="text-align: center;">
|
||||
<span class="bo_cate_link" style="width:80px;"><?php echo $mylist[$i]['category']; ?></span>
|
||||
<!-- <a href="<?php //echo $mylist[$i]['view_href']; ?>" class="bo_tit">
|
||||
<?php //echo $mylist[$i]['subject']; ?>
|
||||
<?php //if ($mylist[$i]['icon_file']) echo " <i class=\"fa fa-download\" aria-hidden=\"true\"></i>" ; ?>
|
||||
</a> -->
|
||||
</td>
|
||||
<td class="td_name"><?php echo $mylist[$i]['qa_subject']; ?></td>
|
||||
<td class="td_date"><?php echo $mylist[$i]['date']; ?></td>
|
||||
<td class="td_stat"><span class=" <?php echo ($mylist[$i]['qa_status'] ? 'txt_done' : 'txt_rdy'); ?>"><?php echo ($mylist[$i]['qa_status'] ? '답변완료' : '답변대기'); ?></span></td>
|
||||
</tr>
|
||||
<?php
|
||||
}
|
||||
?>
|
||||
|
||||
<?php if ($i == 0) { echo '<tr><td colspan="5" style="text-align:center;">게시물이 없습니다.</td></tr>'; } ?>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
<!--//pop_join_right-->
|
||||
</div>
|
||||
<!--//popup_content-->
|
||||
</div>
|
||||
<!--//popup_in-->
|
||||
</div>
|
||||
<!--//popup_wrap-->
|
||||
<!-- </div>
|
||||
</body> -->
|
||||
@@ -0,0 +1,190 @@
|
||||
<?php
|
||||
if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가
|
||||
include_once('./_common.php');
|
||||
include_once(G5_LIB_PATH.'/latest.lib.php');
|
||||
|
||||
// add_stylesheet('css 구문', 출력순서); 숫자가 작을 수록 먼저 출력됨
|
||||
add_stylesheet('<link rel="stylesheet" href="'.$member_skin_url.'/style.css">', 0);
|
||||
|
||||
$sql1 = " select mb_name, mb_hp, mb_comp_team, mb_email, mb_comp from {$g5['member_table']} where mb_id = '{$_SESSION['session_id']}' ";
|
||||
$row1 = sql_fetch($sql1);
|
||||
$mb_name = $row1['mb_name'];
|
||||
$mb_hp = $row1['mb_hp'];
|
||||
$mb_comp_team = $row1['mb_comp_team'];
|
||||
$mb_comp = $row1['mb_comp'];
|
||||
$mb_email = $row1['mb_email'];
|
||||
$sql2 = " select * from {$g5['qa_content_table']} where mb_id = '{$_SESSION['session_id']}' ORDER BY qa_datetime DESC limit 5";
|
||||
//echo $sql2."<br>";
|
||||
$result = sql_query($sql2);
|
||||
// $qa_category = $row2['qa_category'];
|
||||
// $qa_subject = $row2['qa_subject'];
|
||||
// $qa_content = $row2['qa_content'];
|
||||
// $qa_datetime = $row2['qa_datetime'];
|
||||
// $qa_status = $row2['qa_status'];
|
||||
|
||||
$mylist = array();
|
||||
$num = 1;
|
||||
// $num = $total_count - ($page - 1) * $page_rows;
|
||||
// $subject_len = G5_IS_MOBILE ? $qaconfig['qa_mobile_subject_len'] : $qaconfig['qa_subject_len'];
|
||||
for($i=0; $row=sql_fetch_array($result); $i++) {
|
||||
$mylist[$i] = $row;
|
||||
|
||||
$mylist[$i]['category'] = get_text($row['qa_category']);
|
||||
$mylist[$i]['subject'] = conv_subject($row['qa_subject'], $subject_len, '…');
|
||||
if ($stx) {
|
||||
$mylist[$i]['subject'] = search_font($stx, $mylist[$i]['subject']);
|
||||
}
|
||||
|
||||
$mylist[$i]['view_href'] = G5_BBS_URL.'/qaview.php?qa_id='.$row['qa_id'].$qstr;
|
||||
|
||||
$mylist[$i]['icon_file'] = '';
|
||||
if(trim($row['qa_file1']) || trim($row['qa_file2']))
|
||||
$mylist[$i]['icon_file'] = '<img src="'.$qa_skin_url.'/img/icon_file.gif">';
|
||||
|
||||
$mylist[$i]['name'] = get_text($row['qa_name']);
|
||||
|
||||
$mylist[$i]['date'] = substr($row['qa_datetime'], 2, 8);
|
||||
|
||||
$mylist[$i]['num'] = $num;
|
||||
$num += 1;
|
||||
}
|
||||
?>
|
||||
|
||||
<!-- <head>
|
||||
<meta charset="utf-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<title>TOVA Join</title>
|
||||
<link rel="stylesheet" href="../css/reset.css" />
|
||||
<link rel="stylesheet" href="../css/font.css" />
|
||||
<link rel="stylesheet" href="../css/style.css" />
|
||||
<script src="../js/jquery-3.6.1.min.js"></script>
|
||||
<script src="../js/common.js"></script>
|
||||
</head> -->
|
||||
|
||||
|
||||
<!-- <body>
|
||||
<div class="wrapper"> -->
|
||||
<!-- Header -->
|
||||
<!-- <header class="header">
|
||||
<h1>
|
||||
<img src="../img/logo_w.svg" alt="">
|
||||
</h1>
|
||||
<div class="menu_wrap">
|
||||
<div class="menu_my"><img src="../img/ico_my.svg" alt=""></div>
|
||||
<div class="menu_ham"><img src="../img/ico_ham.svg" alt=""></div>
|
||||
</div>
|
||||
</header> -->
|
||||
<!-- //Header -->
|
||||
|
||||
<!--popup_wrap-->
|
||||
<div id="pop_mypage02" class="popup_wrap">
|
||||
<!--popup_in-->
|
||||
<div class="popup_in">
|
||||
<button class="btn_close">
|
||||
<div class="close_div"><img src="<?php echo G5_URL ?>/img/ico_close.svg" alt="sdi"></div>
|
||||
</button>
|
||||
<!--popup_content-->
|
||||
<div class="popup_content mypage">
|
||||
<!--pop_join_left-->
|
||||
<div class="pop_join_left">
|
||||
<span class="bg_tit_left">My pa</span>
|
||||
<div class="join_info">
|
||||
<h1 class="h_1"> 마이페이지 </h1>
|
||||
<h3 class="h_3">
|
||||
소중한 <em>내 정보</em>를 <br>
|
||||
<em>최신</em>으로 관리하세요.
|
||||
</h3>
|
||||
</div>
|
||||
</div>
|
||||
<!--//pop_join_right-->
|
||||
<div class="pop_input_wrap pop_join_right">
|
||||
<span class="bg_tit_right">ge</span>
|
||||
<div class="contents_wrap">
|
||||
<div class="my_info">
|
||||
<div class="name">
|
||||
<h4><?php echo $mb_name?>님<span>(<?echo $_SESSION['session_id'];?>)</span></h4>
|
||||
<button onclick="javascript:mypage03();">내 정보 수정</button>
|
||||
</div>
|
||||
<ul class="detail">
|
||||
<!-- 라이센스 구매이력 부분 -->
|
||||
<li class="license"></li>
|
||||
<li>
|
||||
<div class=""><i class="phone"></i>휴대전화번호</div>
|
||||
<span id="span_hp"><?php echo $mb_hp?></span>
|
||||
</li>
|
||||
<li>
|
||||
<div><i class="email"></i>이메일</div>
|
||||
<span id="span_email"><?php echo $mb_email?></span>
|
||||
</li>
|
||||
<li>
|
||||
<div><i class="company"></i>회사정보</div>
|
||||
<!-- <span id="span_comp"><?php //echo $mb_comp.'<br>'.$mb_comp_team?></span> -->
|
||||
<span id="span_comp"><?php echo $mb_comp?></span><br>
|
||||
<span id="span_comp_team"><?php echo $mb_comp_team?></span>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="my_qna">
|
||||
<tbody>
|
||||
<h4>내 문의</h4>
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th style="width: 5%;">번호</th>
|
||||
<th style="width: 12%;">구분</th>
|
||||
<th style="width: 60%;">제목</th>
|
||||
<th style="width: 10%;">등록일</th>
|
||||
<th style="width: 15%;">상태</th>
|
||||
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<?php
|
||||
for ($i=0; $i<count($mylist); $i++) {
|
||||
if ($i%2==0) $lt_class = "even";
|
||||
else $lt_class = "";
|
||||
?>
|
||||
<tr class="<?php echo $lt_class ?>">
|
||||
<td class="td_num" style="text-align: center;"><?php echo $mylist[$i]['num'];?></td>
|
||||
<td class="td_subject" style="text-align: center;">
|
||||
<span class="bo_cate_link" style="width:80px;"><?php echo $mylist[$i]['category']; ?></span>
|
||||
<!-- <a href="<?php //echo $mylist[$i]['view_href']; ?>" class="bo_tit">
|
||||
<?php //echo $mylist[$i]['subject']; ?>
|
||||
<?php //if ($mylist[$i]['icon_file']) echo " <i class=\"fa fa-download\" aria-hidden=\"true\"></i>" ; ?>
|
||||
</a> -->
|
||||
</td>
|
||||
<td class="td_name"><?php echo $mylist[$i]['qa_subject']; ?></td>
|
||||
<td class="td_date"><?php echo $mylist[$i]['date']; ?></td>
|
||||
<td class="td_stat"><span class=" <?php echo ($mylist[$i]['qa_status'] ? 'txt_done' : 'txt_rdy'); ?>"><?php echo ($mylist[$i]['qa_status'] ? '답변완료' : '답변대기'); ?></span></td>
|
||||
</tr>
|
||||
<?php
|
||||
}
|
||||
?>
|
||||
|
||||
<?php if ($i == 0) { echo '<tr><td colspan="5" style="text-align:center;">게시물이 없습니다.</td></tr>'; } ?>
|
||||
</tbody>
|
||||
</table>
|
||||
</tbody>
|
||||
</div>
|
||||
<!-- <div class="pagination">
|
||||
<button type="button" class="btn_prev"></button>
|
||||
<ul class="pagination_list">
|
||||
<li class="on"><a href="#">1</a></li>
|
||||
<li><a href="#">2</a></li>
|
||||
<li><a href="#">3</a></li>
|
||||
<li><a href="#">4</a></li>
|
||||
<li><a href="#">5</a></li>
|
||||
</ul>
|
||||
<button type="button" class="btn_next"></button>
|
||||
</div> -->
|
||||
</div>
|
||||
</div>
|
||||
<!--//pop_join_right-->
|
||||
</div>
|
||||
<!--//popup_content-->
|
||||
</div>
|
||||
<!--//popup_in-->
|
||||
</div>
|
||||
<!--//popup_wrap-->
|
||||
<!-- </div>
|
||||
</body> -->
|
||||
@@ -0,0 +1,476 @@
|
||||
<?php
|
||||
if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가
|
||||
include_once('./_common.php');
|
||||
|
||||
$member = array_merge(array(
|
||||
'mb_id' => '',
|
||||
'mb_name' => '',
|
||||
'mb_hp' => '',
|
||||
'mb_comp' => '',
|
||||
'mb_comp_team' => '',
|
||||
), is_array($member) ? $member : array());
|
||||
|
||||
//add_stylesheet('<link rel="stylesheet" href="'.$member_skin_url.'/style.css">', 0);
|
||||
?>
|
||||
|
||||
<!--popup_wrap-->
|
||||
<div class="popup_wrap" id="pop_mypage03">
|
||||
<!--popup_in-->
|
||||
<div class="popup_in">
|
||||
<button class="btn_close">
|
||||
<div class="close_div"><img src="<?php echo G5_URL ?>/img/ico_close.svg" alt=""></div>
|
||||
</button>
|
||||
<!--popup_content-->
|
||||
<div class="popup_container mypage edit">
|
||||
<!--pop_join_left-->
|
||||
<div class="popup_tit">
|
||||
<h1 class="h_1">마이페이지</h1>
|
||||
<!-- <h3 class="h_3">
|
||||
소중한 <em>내 정보</em>를 <br>
|
||||
<em>최신</em>으로 관리하세요.
|
||||
</h3> -->
|
||||
</div>
|
||||
<!--//pop_join_right-->
|
||||
<div class="popup_contents_wrap">
|
||||
<fieldset>
|
||||
<!--tbl_wrap-->
|
||||
<div id="register_form" class="tbl_wrap" style="height: 400px;">
|
||||
<table>
|
||||
<tbody>
|
||||
<tr>
|
||||
<th class="h_4">아이디</th>
|
||||
<td>
|
||||
<div class="id_wrap">
|
||||
<input type="text" class="full_input" id="show_mb_id" name="mb_id" value="<?php echo $member['mb_id'] ?>" readonly style="color: #9aa0a6;">
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<th class="h_4">사번</th>
|
||||
<td>
|
||||
<div class="password_wrap">
|
||||
<input type="text" name="mb_password" id="show_mb_employeeid" class="frm_input full_input" data-editable>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<th class="h_4">이름</th>
|
||||
<td>
|
||||
<div class="name_wrap">
|
||||
<input type="text" id="show_mb_name" name="mb_name" value="<?php echo get_text($member['mb_name']) ?>" class="frm_input full_input" data-editable>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<th class="h_4">직위</th>
|
||||
<td>
|
||||
<div class="position_wrap">
|
||||
<input type="text" id="show_mb_position" name="mb_position" class="frm_input full_input" data-editable>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th class="h_4">휴대전화번호</th>
|
||||
<td>
|
||||
<div class="phone_wrap">
|
||||
<input type="text" name="mb_hp" value="<?php echo preg_replace("/[^0-9]*/s", "", $member['mb_hp']); ?>" id="show_mb_hp" class="frm_input full_input" data-editable>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr id="row_company">
|
||||
<th class="h_4">회사정보</th>
|
||||
<td>
|
||||
<div class="company_wrap">
|
||||
<input type="text" name="mb_comp" value="<?php echo get_text($member['mb_comp'])?>" id="show_mb_comp" class="frm_input" data-editable>
|
||||
<input type="text" name="mb_comp_team" value="<?php echo get_text($member['mb_comp_team'])?>" id="show_mb_comp_team" class="frm_input" data-editable>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr id="row_team_external" style="display:none;">
|
||||
<th class="h_4">소속부서</th>
|
||||
<td>
|
||||
<div class="team_wrap">
|
||||
<input type="text" name="mb_comp_team_ext" id="show_mb_comp_team_ext" class="frm_input" data-editable placeholder="소속부서">
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<div class="btn_confirm">
|
||||
<!-- <button type="button" onclick="mypage02();" class="btn_cancel">취소</button> -->
|
||||
<button type="button" id="btn_profile_edit" class="btn_submit" >정보수정</button>
|
||||
</div>
|
||||
<div class="sign_out">
|
||||
<a href="#" id="btn_delete_account"><i class="signout"></i>회원 탈퇴하기</a>
|
||||
</div>
|
||||
</fieldset>
|
||||
</div>
|
||||
<!--//pop_join_right-->
|
||||
</div>
|
||||
<!--//popup_content-->
|
||||
</div>
|
||||
<!--//popup_in-->
|
||||
</div>
|
||||
<!--//popup_wrap-->
|
||||
|
||||
<script>
|
||||
(function () {
|
||||
// === 설정 ===
|
||||
const INTERNAL_DOMAINS = [
|
||||
"hanmaceng.co.kr","samaneng.com","jangheon.co.kr",
|
||||
"hallasanup.com","pre-cast.co.kr","baroncs.co.kr"
|
||||
];
|
||||
const MAX_LOGINID_RETRY = 5;
|
||||
|
||||
// === 상태 ===
|
||||
let loginIdRetryCount = 0;
|
||||
|
||||
// === 엘리먼트 캐시 ===
|
||||
const $btn = $('#pop_mypage03 #btn_profile_edit');
|
||||
const $edit = $('[data-editable]');
|
||||
|
||||
const $id = $('#show_mb_id'); // 아이디(=이메일, readonly)
|
||||
const $empId = $('#show_mb_employeeid'); // 사번(내부)
|
||||
const $name = $('#show_mb_name'); // 이름
|
||||
const $pos = $('#show_mb_position'); // 직위(내부)
|
||||
const $phone = $('#show_mb_hp'); // 휴대전화
|
||||
const $comp = $('#show_mb_comp'); // 내부=가족사, 외부=회사명
|
||||
const $team = $('#show_mb_comp_team'); // 소속부서(내/외 공통)
|
||||
|
||||
const $rowEmp = $empId.closest('tr');
|
||||
const $rowPos = $pos.closest('tr');
|
||||
const $rowCompany = $('#row_company'); // 회사정보 행
|
||||
|
||||
// === 전화번호 포맷/검증 ===
|
||||
function autoHyphen010(inputEl) {
|
||||
let v = inputEl.value.replace(/\D/g, '').slice(0, 11); // 숫자만 11자리까지
|
||||
if (v.length < 4) { inputEl.value = v; return; }
|
||||
if (!v.startsWith('010')) { inputEl.value = v; return; }
|
||||
if (v.length <= 7) {
|
||||
inputEl.value = v.slice(0,3) + '-' + v.slice(3);
|
||||
} else {
|
||||
inputEl.value = v.slice(0,3) + '-' + v.slice(3,7) + '-' + v.slice(7);
|
||||
}
|
||||
}
|
||||
function isValidPhone010(str) {
|
||||
return /^010-\d{4}-\d{4}$/.test((str||'').trim());
|
||||
}
|
||||
|
||||
// === 유틸 ===
|
||||
function isInternal(email) {
|
||||
if (!email) return false;
|
||||
const domain = (email.split('@')[1] || '').toLowerCase();
|
||||
return INTERNAL_DOMAINS.includes(domain);
|
||||
}
|
||||
function getEmailFromUI() {
|
||||
return ($id.val() || sessionStorage.getItem('loginId') || '').trim();
|
||||
}
|
||||
function showHint($input, msg) {
|
||||
clearHint($input);
|
||||
$input.addClass('input-error').after('<span class="field-hint">'+msg+'</span>');
|
||||
}
|
||||
function clearHint($input) {
|
||||
$input.removeClass('input-error').siblings('.field-hint').remove();
|
||||
}
|
||||
function clearAllHints() {
|
||||
$edit.each(function(){ clearHint($(this)); });
|
||||
}
|
||||
|
||||
// === 내부/외부 UI 토글 ===
|
||||
function applyTenantUI(email) {
|
||||
const internal = isInternal(email);
|
||||
|
||||
if (internal) {
|
||||
$rowEmp.show();
|
||||
$rowPos.show();
|
||||
$rowCompany.show();
|
||||
|
||||
// ✅ 회사명 → 아이디와 동일한 스타일
|
||||
$comp
|
||||
.prop('readonly', true)
|
||||
.css('color', '#9aa0a6')
|
||||
.css('background-color', 'transparent') // 🔑 핵심
|
||||
.attr('placeholder', '가족사');
|
||||
|
||||
// 소속부서는 편집 가능
|
||||
$team
|
||||
.prop('readonly', false)
|
||||
.css('color', '')
|
||||
.css('background-color', '')
|
||||
.attr('placeholder', '소속부서');
|
||||
|
||||
} else {
|
||||
$rowEmp.hide().find('input').val('');
|
||||
$rowPos.hide().find('input').val('');
|
||||
$rowCompany.show();
|
||||
|
||||
// 외부 사용자 → 입력 가능
|
||||
$comp
|
||||
.prop('readonly', false)
|
||||
.css('color', '')
|
||||
.css('background-color', '') // 원복
|
||||
.attr('placeholder', '회사명');
|
||||
|
||||
$team
|
||||
.prop('readonly', false)
|
||||
.css('color', '')
|
||||
.css('background-color', '')
|
||||
.attr('placeholder', '소속부서');
|
||||
}
|
||||
}
|
||||
|
||||
// === 검증 ===
|
||||
function validate() {
|
||||
clearAllHints();
|
||||
const name = ($name.val() || '').trim();
|
||||
const phone = ($phone.val() || '').trim();
|
||||
const email = getEmailFromUI();
|
||||
const internal = isInternal(email);
|
||||
|
||||
let ok = true;
|
||||
if (!name) showHint($name, '이름을 입력해 주세요.'), ok = false;
|
||||
if (!/^[0-9\-]{9,15}$/.test(phone)) showHint($phone, '숫자(하이픈 가능) 9~15자리로 입력해 주세요.'), ok = false;
|
||||
|
||||
if (internal) {
|
||||
if (!($pos.val() || '').trim()) showHint($pos, '직위를 입력해 주세요.'), ok = false;
|
||||
if (!($comp.val() || '').trim()) showHint($comp, '가족사를 입력해 주세요.'), ok = false;
|
||||
if (!($team.val() || '').trim()) showHint($team, '소속부서를 입력해 주세요.'), ok = false;
|
||||
if (!($empId.val()|| '').trim()) showHint($empId,'사번을 입력해 주세요.'), ok = false;
|
||||
} else {
|
||||
if (!($comp.val() || '').trim()) showHint($comp, '회사명을 입력해 주세요.'), ok = false;
|
||||
if (!($team.val() || '').trim()) showHint($team, '소속부서를 입력해 주세요.'), ok = false;
|
||||
}
|
||||
return ok;
|
||||
}
|
||||
|
||||
// === 저장 ===
|
||||
function saveProfile() {
|
||||
if (!validate()) return;
|
||||
|
||||
// const refreshJwt = sessionStorage.getItem('refreshJwt') || '';
|
||||
// if (!refreshJwt) { alert('인증 정보가 만료되었습니다. 다시 로그인해 주세요.'); return; }
|
||||
|
||||
const email = getEmailFromUI();
|
||||
const internal = isInternal(email);
|
||||
|
||||
const payload = {
|
||||
email, // loginId
|
||||
name: ($name.val() || '').trim(),
|
||||
phone: ($phone.val() || '').trim(),
|
||||
position: ($pos.val() || '').trim(), // 외부여도 전송 무해
|
||||
completeForm: true
|
||||
};
|
||||
|
||||
if (internal) {
|
||||
payload.familyCompany = ($comp.val() || '').trim(); // 가족사
|
||||
payload.team = ($team.val() || '').trim(); // 소속부서
|
||||
payload.familyUniqueKey = ($empId.val() || '').trim(); // 사번
|
||||
payload.employeeId = payload.familyUniqueKey; // 호환 키
|
||||
} else {
|
||||
payload.company = ($comp.val() || '').trim(); // 회사명
|
||||
payload.team = ($team.val() || '').trim(); // 소속부서
|
||||
}
|
||||
|
||||
$.ajax({
|
||||
url: '/egbim/skin/member/basic/descope_update.php',
|
||||
type: 'POST',
|
||||
dataType: 'json',
|
||||
data: payload,
|
||||
beforeSend(){ $btn.prop('disabled', true).text('저장중…'); },
|
||||
complete(){ $btn.prop('disabled', false).text('저장'); },
|
||||
success(res){
|
||||
if (res.status === 'ok') {
|
||||
alert('정보가 저장되었습니다.');
|
||||
closeMyPagePopup(); // ✅ 저장 성공 시 팝업 닫기
|
||||
// 필요 시 전체 새고: location.reload();
|
||||
} else {
|
||||
alert(res.message || '저장에 실패했습니다.');
|
||||
}
|
||||
},
|
||||
error(xhr){
|
||||
alert('서버 오류: ' + (xhr.statusText||'') + '\n' + (xhr.responseText||''));
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
// === 팝업 닫기 ===
|
||||
function closeMyPagePopup() {
|
||||
// 닫기 버튼이 자체 로직을 가지고 있으면 그걸 트리거하는 게 가장 안전
|
||||
const $closeBtn = $('#pop_mypage03 .btn_close');
|
||||
if ($closeBtn.length) {
|
||||
$closeBtn.trigger('click');
|
||||
} else {
|
||||
// 폴백: 직접 숨김 처리
|
||||
$('#pop_mypage03').hide();
|
||||
$('body').css('overflow','');
|
||||
}
|
||||
}
|
||||
|
||||
// === 이벤트 바인딩 ===
|
||||
// 입력칸 항상 편집 가능 + 버튼은 항상 "저장"
|
||||
$edit.prop('readonly', false);
|
||||
$btn.text('저장');
|
||||
|
||||
// 전화번호 입력 바인딩(중복 방지)
|
||||
$phone.off('.hp');
|
||||
let hpWarnedOnce = false;
|
||||
$phone
|
||||
.on('input.hp', function () {
|
||||
autoHyphen010(this);
|
||||
hpWarnedOnce = false; // 다시 입력하면 경고 플래그 해제
|
||||
})
|
||||
.on('paste.hp', function () {
|
||||
const el = this;
|
||||
setTimeout(function(){ autoHyphen010(el); hpWarnedOnce = false; }, 0);
|
||||
})
|
||||
.on('blur.hp', function () {
|
||||
const v = $(this).val().trim();
|
||||
if (v && !isValidPhone010(v) && !hpWarnedOnce) {
|
||||
hpWarnedOnce = true;
|
||||
alert('휴대전화번호는 010-1234-5678 형식으로 입력해 주세요.');
|
||||
setTimeout(() => { $phone.focus(); }, 0); // 즉시 focus는 blur 루프 유발
|
||||
}
|
||||
});
|
||||
|
||||
// 버튼: 바로 저장
|
||||
$btn.off('click.mypage').on('click.mypage', function (e) {
|
||||
e.preventDefault();
|
||||
// 저장 직전 최종 포맷 체크 (한 번 더)
|
||||
if (!isValidPhone010(($phone.val()||'').trim())) {
|
||||
alert('휴대전화번호는 010-1234-5678 형식으로 입력해 주세요.');
|
||||
$phone.focus();
|
||||
return;
|
||||
}
|
||||
saveProfile(); // ✅ 한 번 클릭으로 바로 저장
|
||||
});
|
||||
|
||||
// 탈퇴 버튼 클릭 → 삭제 함수 호출
|
||||
$(document).on('click', '#btn_delete_account', function(e){
|
||||
e.preventDefault();
|
||||
deleteDescopeUser();
|
||||
});
|
||||
|
||||
// === customAttributes 안전 접근 ===
|
||||
function ca(u, keys) {
|
||||
for (const k of keys) {
|
||||
const v = u && u.customAttributes && u.customAttributes[k];
|
||||
if (v !== undefined && v !== null && String(v).length) return v;
|
||||
}
|
||||
return '';
|
||||
}
|
||||
|
||||
// === 사용자 조회 ===
|
||||
function loadDescopeUser() {
|
||||
const loginId = sessionStorage.getItem('loginId');
|
||||
if (!loginId) {
|
||||
if (loginIdRetryCount < MAX_LOGINID_RETRY) {
|
||||
loginIdRetryCount++;
|
||||
return setTimeout(loadDescopeUser, 150 * Math.pow(2, loginIdRetryCount - 1));
|
||||
}
|
||||
return;
|
||||
}
|
||||
loginIdRetryCount = 0;
|
||||
|
||||
$.ajax({
|
||||
url: '/egbim/skin/member/basic/descope_user_search.php',
|
||||
type: 'POST',
|
||||
dataType: 'json',
|
||||
data: { loginId },
|
||||
// timeout: 8000,
|
||||
success(res) {
|
||||
if (!(res.status === 'ok' && res.user)) { alert('사용자 정보를 불러올 수 없습니다.'); return; }
|
||||
const u = res.user;
|
||||
|
||||
const email = (u.loginIds && u.loginIds[0]) ? u.loginIds[0] : (u.email || loginId);
|
||||
$id.val(email);
|
||||
$name.val(u.name || '');
|
||||
$phone.val(u.phone || '');
|
||||
$pos.val(ca(u, ['position']) || '');
|
||||
|
||||
// 공통값
|
||||
$comp.val(ca(u, ['familyCompany','company']) || '');
|
||||
$team.val(ca(u, ['team']) || '');
|
||||
$empId.val(isInternal(email) ? (ca(u, ['familyUniqueKey','employeeId']) || '') : '');
|
||||
|
||||
// UI 분기
|
||||
applyTenantUI(email);
|
||||
|
||||
// 탈퇴용 ID 저장
|
||||
if (u.userId) sessionStorage.setItem('descopeUserId', u.userId);
|
||||
},
|
||||
error(xhr) {
|
||||
alert('서버 통신 오류: ' + (xhr.statusText || ''));
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
// === 외부에서 로그인 성공 시 호출됨 ===
|
||||
window.onLoginSuccess = function (loginId, sessionJwt, refreshJwt) {
|
||||
if (loginId) sessionStorage.setItem('loginId', loginId);
|
||||
if (sessionJwt) sessionStorage.setItem('sessionJwt', sessionJwt);
|
||||
if (refreshJwt) sessionStorage.setItem('refreshJwt', refreshJwt);
|
||||
loadDescopeUser();
|
||||
};
|
||||
|
||||
// === 팝업 표시될 때마다 갱신 ===
|
||||
const popupEl = document.getElementById('pop_mypage03');
|
||||
if (popupEl) {
|
||||
new MutationObserver((muts) => {
|
||||
muts.forEach((m) => {
|
||||
if (m.type === 'attributes' && (m.attributeName === 'style' || m.attributeName === 'class')) {
|
||||
const visible = $('#pop_mypage03').is(':visible') || $('#pop_mypage03').css('display') !== 'none';
|
||||
if (visible) {
|
||||
setTimeout(() => {
|
||||
loadDescopeUser();
|
||||
const email = getEmailFromUI();
|
||||
if (email) applyTenantUI(email);
|
||||
}, 50);
|
||||
}
|
||||
}
|
||||
});
|
||||
}).observe(popupEl, { attributes: true, attributeFilter: ['style','class'] });
|
||||
}
|
||||
|
||||
// === 최초 진입 ===
|
||||
document.addEventListener('DOMContentLoaded', loadDescopeUser);
|
||||
|
||||
// === 탈퇴 ===
|
||||
window.deleteDescopeUser = function () {
|
||||
// 폴백: sessionStorage → 입력칸
|
||||
const userId = sessionStorage.getItem('descopeUserId') || '';
|
||||
const uiLogin = ($('#show_mb_id').val() || '').trim();
|
||||
const loginId = sessionStorage.getItem('loginId') || uiLogin;
|
||||
|
||||
if (!userId && !loginId) return alert('대상 정보가 없습니다. 다시 로그인 후 시도해 주세요.');
|
||||
if (!confirm('정말 탈퇴하시겠습니까? 이 작업은 되돌릴 수 없습니다.')) return;
|
||||
|
||||
$.ajax({
|
||||
url: '/egbim/skin/member/basic/descope_user_delete.php',
|
||||
type: 'POST',
|
||||
dataType: 'json',
|
||||
data: { userId, loginId },
|
||||
success(res) {
|
||||
if (res.status === 'ok') {
|
||||
alert('정상적으로 탈퇴되었습니다.');
|
||||
// 🔑 sessionStorage 완전 초기화
|
||||
sessionStorage.clear();
|
||||
localStorage.clear();
|
||||
location.reload();
|
||||
} else {
|
||||
alert('탈퇴 실패: ' + (res.message || '알 수 없는 오류'));
|
||||
}
|
||||
},
|
||||
error(xhr) {
|
||||
alert('서버 오류로 탈퇴 실패: ' + (xhr.statusText || ''));
|
||||
}
|
||||
});
|
||||
};
|
||||
})();
|
||||
</script>
|
||||
|
||||
|
||||
@@ -0,0 +1,210 @@
|
||||
<?php
|
||||
if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가
|
||||
include_once('./_common.php');
|
||||
|
||||
//add_stylesheet('<link rel="stylesheet" href="'.$member_skin_url.'/style.css">', 0);
|
||||
?>
|
||||
<!--popup_wrap-->
|
||||
<div class="popup_wrap" id="pop_mypage03">
|
||||
<!--popup_in-->
|
||||
<div class="popup_in">
|
||||
<button class="btn_close">
|
||||
<div class="close_div"><img src="<?php echo G5_URL ?>/img/ico_close.svg" alt=""></div>
|
||||
</button>
|
||||
<!--popup_content-->
|
||||
<div class="popup_content mypage_edit join">
|
||||
<!--pop_join_left-->
|
||||
<div class="pop_join_left">
|
||||
<span class="bg_tit_left">My pa</span>
|
||||
<div class="join_info">
|
||||
<h1 class="h_1">내 정보 수정</h1>
|
||||
<h3 class="h_3">
|
||||
소중한 <em>내 정보</em>를 <br>
|
||||
<em>최신</em>으로 관리하세요.
|
||||
</h3>
|
||||
</div>
|
||||
</div>
|
||||
<!--//pop_join_right-->
|
||||
<div class="pop_input_wrap pop_join_right">
|
||||
<span class="bg_tit_right">ge</span>
|
||||
<form id="fregisterform_up" name="fregisterform_up" action="<?php //echo $register_action_url?>" onsubmit="return fregisterform_submit(this);" method="post" enctype="multipart/form-data" autocomplete="off">
|
||||
<!-- <input type="hidden" name="w" value="<?php echo $w ?>">
|
||||
<input type="hidden" name="url" value="<?php echo $urlencode ?>">
|
||||
<input type="hidden" name="agree" value="<?php echo $agree ?>">
|
||||
<input type="hidden" name="agree2" value="<?php echo $agree2 ?>">
|
||||
<input type="hidden" name="cert_type" value="<?php echo $member['mb_certify']; ?>">
|
||||
<input type="hidden" name="cert_no" value=""> -->
|
||||
<!-- <?php //if (isset($member['mb_sex'])) { ?><input type="hidden" name="mb_sex" value="<?php //echo $member['mb_sex'] ?>"><?php //} ?> -->
|
||||
<?php //if (isset($member['mb_nick_date']) && $member['mb_nick_date'] > date("Y-m-d", G5_SERVER_TIME - ($config['cf_nick_modify'] * 86400))) { // 닉네임수정일이 지나지 않았다면 ?>
|
||||
<!-- <input type="hidden" name="mb_nick_default" value="<?php //echo get_text($member['mb_nick']) ?>">
|
||||
<input type="hidden" name="mb_nick" value="<?php //echo get_text($member['mb_nick']) ?>"> -->
|
||||
<?php //} ?>
|
||||
<h6 class="important_msg pop_notice h_6">*항목은 필수 항목 입니다.</h6>
|
||||
<fieldset>
|
||||
<!--tbl_wrap-->
|
||||
<div id="register_form" class="tbl_wrap">
|
||||
<table>
|
||||
<tbody>
|
||||
<tr>
|
||||
<th class="h_4">아이디<span class="important_msg">*</span></th>
|
||||
<td>
|
||||
<div class="id_wrap">
|
||||
<input type="text" class="full_input" id="update_mb_id" name="mb_id" onchange="PG_pro('change');" placeholder="아이디 입력" <?php if($member['mb_id']!=""){ ?> style="width: 100% ;"<?php }?> autocomplete="off" value="<?php echo $member['mb_id'] ?>" <?php echo $required ?> <?php echo $readonly ?> maxlength="12" disabled>
|
||||
<?php if($member['mb_id']==""){ ?>
|
||||
<button type="button" class="chk_id" onclick="PG_pro('dupl_check');">중복확인</button>
|
||||
<!-- hidden --><input type="hidden" id="dupl_check_yn" name="dupl_check_yn" value="" placeholder="아이디중복확인여부YN" style="width:250px; background-color:#dfe4ea "/>
|
||||
<!-- hidden --><input type="hidden" id="GB_mb_id" name="GB_mb_id" value="<?php echo $member['mb_id'] ?>">
|
||||
<?php }else{ ?>
|
||||
<!-- hidden --><input type="hidden" id="update_mb_id" name="mb_id" value="<?php echo $member['mb_id'] ?>">
|
||||
<!-- hidden --><input type="hidden" id="dupl_check_yn" name="dupl_check_yn" value="Y" onclick="" style="width:250px; background-color:#dfe4ea "/>
|
||||
<?php } ?>
|
||||
</div>
|
||||
<span class="important_msg h_6">영문+숫자 4~12자(영문으로 시작)</span>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<th class="h_4">비밀번호<span class="important_msg">*</span></th>
|
||||
<td>
|
||||
<div class="password_wrap">
|
||||
<input type="password" name="mb_password" id="update_mb_password" <?php echo $required ?> class="frm_input full_input <?php echo $required ?>" minlength="3" maxlength="20" placeholder="비밀번호 입력">
|
||||
<input type="password" name="mb_password_re" id="update_mb_password_re" <?php echo $required ?> class="frm_input full_input <?php echo $required ?>" minlength="3" maxlength="20" placeholder="비밀번호 확인">
|
||||
</div>
|
||||
<span class="important_msg h_6">영문+숫자+특수기호 8자 이상</span>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<th class="h_4">이름<span class="important_msg">*</span></th>
|
||||
<td>
|
||||
<div class="name_wrap">
|
||||
<input type="text" id="update_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="이름 입력">
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<th class="h_4">이메일<span class="important_msg">*</span></th>
|
||||
<?php
|
||||
if($member['mb_email']){
|
||||
$mb_email_confirm = isset($member['mb_email'])?$member['mb_email']:'';
|
||||
if($mb_email_confirm!=""){
|
||||
$mb_email_temp = explode('@',$mb_email_confirm);
|
||||
$mb_email_domain = array_pop(explode('@',$mb_email_confirm));
|
||||
}
|
||||
|
||||
$array_domain = array('naver.com','gmail.com','daum.net' ,'hanmail.net','nate.com' ,'hotmail.com' ,'yahoo.com');
|
||||
$exist_domain = false;
|
||||
if (stripos(json_encode($array_domain),$mb_email_domain) !== false) {
|
||||
$exist_domain = true;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
?>
|
||||
|
||||
|
||||
<td>
|
||||
<div class="email_wrap">
|
||||
<!-- <input type="hidden" name="old_email" value="<?php //echo $member['mb_email'] ?>">
|
||||
<input type="text" name="mb_email" value="<?php //echo isset($member['mb_email'])?$member['mb_email']:''; ?>" id="reg_mb_email" required class="frm_input email full_input required" size="70" maxlength="100" placeholder="이메일 입력"> -->
|
||||
<input type="text" id="update_mb_email1" name="mb_email1" value="<?php echo $mb_email_temp[0]; ?>" required class="frm_input email full_input required" size="50" maxlength="100" placeholder="메일입력" autocomplete="off">
|
||||
<div>
|
||||
<span>@</span>
|
||||
</div>
|
||||
<input type="text" id="update_domain2" value="<?php echo $mb_email_domain; ?>" placeholder="직접 입력" style="<?php echo $exist_domain===false?"display:block":"display:none"; ?>" required>
|
||||
<select name="mb_email2" id="update_mb_email2" onchange="PG_changeSelect1(this);">
|
||||
<option value="@naver.com" <?php echo "@".$mb_email_domain=="@naver.com"?"selected":""; ?> >naver.com</option>
|
||||
<option value="@gmail.com" <?php echo "@".$mb_email_domain=="@gmail.com"?"selected":""; ?> >gmail.com</option>
|
||||
<option value="@daum.net" <?php echo "@".$mb_email_domain=="@daum.net"?"selected":""; ?> >daum.net</option>
|
||||
<option value="@hanmail.net" <?php echo "@".$mb_email_domain=="@hanmail.net"?"selected":""; ?> >hanmail.net</option>
|
||||
<option value="@nate.com" <?php echo "@".$mb_email_domain=="@nate.com"?"selected":""; ?> >nate.com</option>
|
||||
<option value="@hotmail.com" <?php echo "@".$mb_email_domain=="@hotmail.com"?"selected":""; ?> >hotmail.com</option>
|
||||
<option value="@yahoo.com" <?php echo "@".$mb_email_domain=="@yahoo.com"?"selected":""; ?> >yahoo.com</option>
|
||||
<option value="type" <?php echo $exist_domain===false?"selected":""; ?> type="text">직접입력</option>
|
||||
</select>
|
||||
<input type="hidden" name="mb_email" value="<?php echo isset($member['mb_email'])?$member['mb_email']:''; ?>" id="update_mb_email" size="50" maxlength="100">
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th class="h_4">휴대전화번호<span class="important_msg">*</span></th>
|
||||
<td>
|
||||
<div class="phone_wrap">
|
||||
<input type="text" name="mb_hp" value="<?php echo preg_replace("/[^0-9]*/s", "", $member['mb_hp']); ?>" id="update_mb_hp" <?php echo $hp_required; ?> <?php echo $hp_readonly; ?> class="frm_input full_input <?php echo $hp_required; ?> <?php echo $hp_readonly; ?>" maxlength="20" placeholder="휴대폰 번호">
|
||||
<!-- <button type="button" onclick="" name="" class="cert_number">인증번호</button> -->
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<!-- <tr class="code" style="display: none;">
|
||||
<th class="h_4">인증번호</th>
|
||||
<td>
|
||||
<div class="phone_wrap">
|
||||
<input type="text" placeholder="인증번호 입력" required>
|
||||
<span class="timer">03:00</span>
|
||||
<button type="button" onclick="" name="" class="check">확인</button>
|
||||
<button type="button " onclick="" name="" class="check complete" style="display: none;">인증완료</button>
|
||||
</div>
|
||||
</td>
|
||||
</tr> -->
|
||||
|
||||
<tr>
|
||||
<th class="h_4">회사정보<span class="important_msg">*</span></th>
|
||||
<td>
|
||||
<div class="company_wrap">
|
||||
<input type="text" name="mb_comp" value="<?php echo get_text($member['mb_comp'])?>" id="update_mb_comp" size="70" class="frm_input" maxlength="100" placeholder="회사명 입력">
|
||||
<input type="text" name="mb_comp_team" value="<?php echo get_text($member['mb_comp_team'])?>" id="update_mb_comp_team" size="70" class="frm_input" maxlength="100" placeholder="부서명 입력">
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<!--//tbl_wrap-->
|
||||
<div class="btn_confirm">
|
||||
<button type="button" onclick="mypage02();" class="btn_cancel">취소</button>
|
||||
<button type="submit" id="btn_submit" class="btn_submit" >정보수정</button>
|
||||
</div>
|
||||
<div class="sign_out">
|
||||
<a href="javascript:member_leave();"><i class="signout"></i>회원 탈퇴하기</a>
|
||||
</div>
|
||||
</fieldset>
|
||||
</form>
|
||||
</div>
|
||||
<!--//pop_join_right-->
|
||||
</div>
|
||||
<!--//popup_content-->
|
||||
</div>
|
||||
<!--//popup_in-->
|
||||
</div>
|
||||
<!--//popup_wrap-->
|
||||
<!-- <div class="join_btn_wrap">
|
||||
<button type="button" onclick="" name="" class="btn_cancel">취소</button>
|
||||
<button type="button" onclick="" name="" class="btn_regist">수정</button>
|
||||
</div>
|
||||
<div class="sign_out"><a href=""><i class="signout"></i>회원 탈퇴하기</a></div> -->
|
||||
<script>
|
||||
function PG_changeSelect1(p_list){
|
||||
if(p_list.value == 'type'){
|
||||
document.getElementById("update_domain2").style.display = "block";
|
||||
}else{
|
||||
document.getElementById("update_domain2").style.display = "none";
|
||||
}
|
||||
// if(p_list.value=='@naver.com'||p_list.value=='@gmail.com'||p_list.value=='@google.com'||p_list.value=='@hanmail.net'||p_list.value=='@nate.com'||p_list.value=='@kakao.com'){
|
||||
// document.getElementById("update_domain2").style.display = "none";
|
||||
// }else{
|
||||
// document.getElementById("update_domain2").style.display = "block";
|
||||
// }
|
||||
}
|
||||
|
||||
//이메일 직접입력 선택 시 값 초기화
|
||||
$("#update_mb_email2").change(function() {
|
||||
if($("#update_mb_email2").val() == "type"){
|
||||
$("#update_domain2").val('');
|
||||
// $(document).on('keyup','#email_direct',function(){
|
||||
// email();
|
||||
// });
|
||||
}
|
||||
});
|
||||
</script>
|
||||
@@ -0,0 +1,206 @@
|
||||
<?php
|
||||
if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가
|
||||
include_once('./_common.php');
|
||||
|
||||
//add_stylesheet('<link rel="stylesheet" href="'.$member_skin_url.'/style.css">', 0);
|
||||
?>
|
||||
<!--popup_wrap-->
|
||||
<div class="popup_wrap" id="pop_mypage03">
|
||||
<!--popup_in-->
|
||||
<div class="popup_in">
|
||||
<button class="btn_close">
|
||||
<div class="close_div"><img src="<?php echo G5_URL ?>/img/ico_close.svg" alt=""></div>
|
||||
</button>
|
||||
<!--popup_content-->
|
||||
<div class="popup_container mypage edit">
|
||||
<!--pop_join_left-->
|
||||
<div class="popup_tit">
|
||||
<h1 class="h_1">내 정보 수정</h1>
|
||||
<h3 class="h_3">
|
||||
소중한 <em>내 정보</em>를 <br>
|
||||
<em>최신</em>으로 관리하세요.
|
||||
</h3>
|
||||
</div>
|
||||
<!--//pop_join_right-->
|
||||
<div class="popup_contents_wrap">
|
||||
<form id="fregisterform_up" name="fregisterform_up" action="<?php //echo $register_action_url?>" onsubmit="return fregisterform_submit(this);" method="post" enctype="multipart/form-data" autocomplete="off">
|
||||
<!-- <input type="hidden" name="w" value="<?php echo $w ?>">
|
||||
<input type="hidden" name="url" value="<?php echo $urlencode ?>">
|
||||
<input type="hidden" name="agree" value="<?php echo $agree ?>">
|
||||
<input type="hidden" name="agree2" value="<?php echo $agree2 ?>">
|
||||
<input type="hidden" name="cert_type" value="<?php echo $member['mb_certify']; ?>">
|
||||
<input type="hidden" name="cert_no" value=""> -->
|
||||
<!-- <?php //if (isset($member['mb_sex'])) { ?><input type="hidden" name="mb_sex" value="<?php //echo $member['mb_sex'] ?>"><?php //} ?> -->
|
||||
<?php //if (isset($member['mb_nick_date']) && $member['mb_nick_date'] > date("Y-m-d", G5_SERVER_TIME - ($config['cf_nick_modify'] * 86400))) { // 닉네임수정일이 지나지 않았다면 ?>
|
||||
<!-- <input type="hidden" name="mb_nick_default" value="<?php //echo get_text($member['mb_nick']) ?>">
|
||||
<input type="hidden" name="mb_nick" value="<?php //echo get_text($member['mb_nick']) ?>"> -->
|
||||
<?php //} ?>
|
||||
<h6 class="important_msg pop_notice h_6">*항목은 필수 항목 입니다.</h6>
|
||||
<fieldset>
|
||||
<!--tbl_wrap-->
|
||||
<div id="register_form" class="tbl_wrap">
|
||||
<table>
|
||||
<tbody>
|
||||
<tr>
|
||||
<th class="h_4">아이디<span class="important_msg">*</span></th>
|
||||
<td>
|
||||
<div class="id_wrap">
|
||||
<input type="text" class="full_input" id="update_mb_id" name="mb_id" onchange="PG_pro('change');" placeholder="아이디 입력" <?php if($member['mb_id']!=""){ ?> style="width: 100% ;"<?php }?> autocomplete="off" value="<?php echo $member['mb_id'] ?>" <?php echo $required ?> <?php echo $readonly ?> maxlength="12" disabled>
|
||||
<?php if($member['mb_id']==""){ ?>
|
||||
<button type="button" class="chk_id" onclick="PG_pro('dupl_check');">중복확인</button>
|
||||
<!-- hidden --><input type="hidden" id="dupl_check_yn" name="dupl_check_yn" value="" placeholder="아이디중복확인여부YN" style="width:250px; background-color:#dfe4ea "/>
|
||||
<!-- hidden --><input type="hidden" id="GB_mb_id" name="GB_mb_id" value="<?php echo $member['mb_id'] ?>">
|
||||
<?php }else{ ?>
|
||||
<!-- hidden --><input type="hidden" id="update_mb_id" name="mb_id" value="<?php echo $member['mb_id'] ?>">
|
||||
<!-- hidden --><input type="hidden" id="dupl_check_yn" name="dupl_check_yn" value="Y" onclick="" style="width:250px; background-color:#dfe4ea "/>
|
||||
<?php } ?>
|
||||
</div>
|
||||
<span class="important_msg h_6">영문+숫자 4~12자(영문으로 시작)</span>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<th class="h_4">비밀번호<span class="important_msg">*</span></th>
|
||||
<td>
|
||||
<div class="password_wrap">
|
||||
<input type="password" name="mb_password" id="update_mb_password" <?php echo $required ?> class="frm_input full_input <?php echo $required ?>" minlength="3" maxlength="20" placeholder="비밀번호 입력">
|
||||
<input type="password" name="mb_password_re" id="update_mb_password_re" <?php echo $required ?> class="frm_input full_input <?php echo $required ?>" minlength="3" maxlength="20" placeholder="비밀번호 확인">
|
||||
</div>
|
||||
<span class="important_msg h_6">영문+숫자+특수기호 8자 이상</span>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<th class="h_4">이름<span class="important_msg">*</span></th>
|
||||
<td>
|
||||
<div class="name_wrap">
|
||||
<input type="text" id="update_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="이름 입력">
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<th class="h_4">이메일<span class="important_msg">*</span></th>
|
||||
<?php
|
||||
if($member['mb_email']){
|
||||
$mb_email_confirm = isset($member['mb_email'])?$member['mb_email']:'';
|
||||
if($mb_email_confirm!=""){
|
||||
$mb_email_temp = explode('@',$mb_email_confirm);
|
||||
$mb_email_domain = array_pop(explode('@',$mb_email_confirm));
|
||||
}
|
||||
|
||||
$array_domain = array('naver.com','gmail.com','daum.net' ,'hanmail.net','nate.com' ,'hotmail.com' ,'yahoo.com');
|
||||
$exist_domain = false;
|
||||
if (stripos(json_encode($array_domain),$mb_email_domain) !== false) {
|
||||
$exist_domain = true;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
?>
|
||||
|
||||
|
||||
<td>
|
||||
<div class="email_wrap">
|
||||
<!-- <input type="hidden" name="old_email" value="<?php //echo $member['mb_email'] ?>">
|
||||
<input type="text" name="mb_email" value="<?php //echo isset($member['mb_email'])?$member['mb_email']:''; ?>" id="reg_mb_email" required class="frm_input email full_input required" size="70" maxlength="100" placeholder="이메일 입력"> -->
|
||||
<input type="text" id="update_mb_email1" name="mb_email1" value="<?php echo $mb_email_temp[0]; ?>" required class="frm_input email full_input required" size="50" maxlength="100" placeholder="메일입력" autocomplete="off">
|
||||
<div>
|
||||
<span>@</span>
|
||||
</div>
|
||||
<input type="text" id="update_domain2" value="<?php echo $mb_email_domain; ?>" placeholder="직접 입력" style="<?php echo $exist_domain===false?"display:block":"display:none"; ?>" required>
|
||||
<select name="mb_email2" id="update_mb_email2" onchange="PG_changeSelect1(this);">
|
||||
<option value="@naver.com" <?php echo "@".$mb_email_domain=="@naver.com"?"selected":""; ?> >naver.com</option>
|
||||
<option value="@gmail.com" <?php echo "@".$mb_email_domain=="@gmail.com"?"selected":""; ?> >gmail.com</option>
|
||||
<option value="@daum.net" <?php echo "@".$mb_email_domain=="@daum.net"?"selected":""; ?> >daum.net</option>
|
||||
<option value="@hanmail.net" <?php echo "@".$mb_email_domain=="@hanmail.net"?"selected":""; ?> >hanmail.net</option>
|
||||
<option value="@nate.com" <?php echo "@".$mb_email_domain=="@nate.com"?"selected":""; ?> >nate.com</option>
|
||||
<option value="@hotmail.com" <?php echo "@".$mb_email_domain=="@hotmail.com"?"selected":""; ?> >hotmail.com</option>
|
||||
<option value="@yahoo.com" <?php echo "@".$mb_email_domain=="@yahoo.com"?"selected":""; ?> >yahoo.com</option>
|
||||
<option value="type" <?php echo $exist_domain===false?"selected":""; ?> type="text">직접입력</option>
|
||||
</select>
|
||||
<input type="hidden" name="mb_email" value="<?php echo isset($member['mb_email'])?$member['mb_email']:''; ?>" id="update_mb_email" size="50" maxlength="100">
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th class="h_4">휴대전화번호<span class="important_msg">*</span></th>
|
||||
<td>
|
||||
<div class="phone_wrap">
|
||||
<input type="text" name="mb_hp" value="<?php echo preg_replace("/[^0-9]*/s", "", $member['mb_hp']); ?>" id="update_mb_hp" <?php echo $hp_required; ?> <?php echo $hp_readonly; ?> class="frm_input full_input <?php echo $hp_required; ?> <?php echo $hp_readonly; ?>" maxlength="20" placeholder="휴대폰 번호">
|
||||
<!-- <button type="button" onclick="" name="" class="cert_number">인증번호</button> -->
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<!-- <tr class="code" style="display: none;">
|
||||
<th class="h_4">인증번호</th>
|
||||
<td>
|
||||
<div class="phone_wrap">
|
||||
<input type="text" placeholder="인증번호 입력" required>
|
||||
<span class="timer">03:00</span>
|
||||
<button type="button" onclick="" name="" class="check">확인</button>
|
||||
<button type="button " onclick="" name="" class="check complete" style="display: none;">인증완료</button>
|
||||
</div>
|
||||
</td>
|
||||
</tr> -->
|
||||
|
||||
<tr>
|
||||
<th class="h_4">회사정보<span class="important_msg">*</span></th>
|
||||
<td>
|
||||
<div class="company_wrap">
|
||||
<input type="text" name="mb_comp" value="<?php echo get_text($member['mb_comp'])?>" id="update_mb_comp" size="70" class="frm_input" maxlength="100" placeholder="회사명 입력">
|
||||
<input type="text" name="mb_comp_team" value="<?php echo get_text($member['mb_comp_team'])?>" id="update_mb_comp_team" size="70" class="frm_input" maxlength="100" placeholder="부서명 입력">
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<!--//tbl_wrap-->
|
||||
<div class="btn_confirm">
|
||||
<button type="button" onclick="mypage02();" class="btn_cancel">취소</button>
|
||||
<button type="submit" id="btn_submit" class="btn_submit" >정보수정</button>
|
||||
</div>
|
||||
<div class="sign_out">
|
||||
<a href="javascript:member_leave();"><i class="signout"></i>회원 탈퇴하기</a>
|
||||
</div>
|
||||
</fieldset>
|
||||
</form>
|
||||
</div>
|
||||
<!--//pop_join_right-->
|
||||
</div>
|
||||
<!--//popup_content-->
|
||||
</div>
|
||||
<!--//popup_in-->
|
||||
</div>
|
||||
<!--//popup_wrap-->
|
||||
<!-- <div class="join_btn_wrap">
|
||||
<button type="button" onclick="" name="" class="btn_cancel">취소</button>
|
||||
<button type="button" onclick="" name="" class="btn_regist">수정</button>
|
||||
</div>
|
||||
<div class="sign_out"><a href=""><i class="signout"></i>회원 탈퇴하기</a></div> -->
|
||||
<script>
|
||||
function PG_changeSelect1(p_list){
|
||||
if(p_list.value == 'type'){
|
||||
document.getElementById("update_domain2").style.display = "block";
|
||||
}else{
|
||||
document.getElementById("update_domain2").style.display = "none";
|
||||
}
|
||||
// if(p_list.value=='@naver.com'||p_list.value=='@gmail.com'||p_list.value=='@google.com'||p_list.value=='@hanmail.net'||p_list.value=='@nate.com'||p_list.value=='@kakao.com'){
|
||||
// document.getElementById("update_domain2").style.display = "none";
|
||||
// }else{
|
||||
// document.getElementById("update_domain2").style.display = "block";
|
||||
// }
|
||||
}
|
||||
|
||||
//이메일 직접입력 선택 시 값 초기화
|
||||
$("#update_mb_email2").change(function() {
|
||||
if($("#update_mb_email2").val() == "type"){
|
||||
$("#update_domain2").val('');
|
||||
// $(document).on('keyup','#email_direct',function(){
|
||||
// email();
|
||||
// });
|
||||
}
|
||||
});
|
||||
</script>
|
||||
@@ -0,0 +1,110 @@
|
||||
<?php
|
||||
if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가
|
||||
?>
|
||||
|
||||
|
||||
<link rel="stylesheet" href="<?php echo G5_URL ?>/css/style.css" />
|
||||
<!--popup_wrap-->
|
||||
<div id="pop_join" class="popup_wrap">
|
||||
<!--popup_in-->
|
||||
<div class="popup_in">
|
||||
<button class="btn_close">
|
||||
<div class="close_div"><img src="<?php echo G5_URL ?>/img/ico_close.svg" alt="sdi"></div>
|
||||
</button>
|
||||
<!--popup_content-->
|
||||
<!-- 2025.07 디자인팀 수정 -->
|
||||
<!-- 03 사용자 인증 -->
|
||||
<!-- 왼쪽 "03 사용자 인증"에 on -->
|
||||
<fieldset style="display: none;">
|
||||
<!--tbl_wrap-->
|
||||
<div id="register_form" class="tbl_wrap">
|
||||
|
||||
<div class="guide_txt">
|
||||
<p>계정 생성이 완료되었습니다.</p>
|
||||
사용자 인증을 위해 <em>aaa@gmail.com</em> <br>아이디로 전송된 인증번호를 입력해 주세요.
|
||||
</div>
|
||||
<div class="verify_wrap">
|
||||
<div class="code_input">
|
||||
<input type="text" maxlength="1" inputmode="numeric" pattern="[0-9]*" />
|
||||
<input type="text" maxlength="1" inputmode="numeric" pattern="[0-9]*" />
|
||||
<input type="text" maxlength="1" inputmode="numeric" pattern="[0-9]*" />
|
||||
<input type="text" maxlength="1" inputmode="numeric" pattern="[0-9]*" />
|
||||
<input type="text" maxlength="1" inputmode="numeric" pattern="[0-9]*" />
|
||||
<input type="text" maxlength="1" inputmode="numeric" pattern="[0-9]*" />
|
||||
</div>
|
||||
<div>
|
||||
<span class="important_msg h_6">인증번호 불일치</span>
|
||||
<button class="btn_send">인증번호 재전송 ⭮</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<!--//tbl_wrap-->
|
||||
<div class="btn_confirm">
|
||||
<button type="submit" id="btn_submit_otp_sign_up" class="btn_submit" >인증하기</button>
|
||||
</div>
|
||||
<script>
|
||||
const inputs = document.querySelectorAll('.code-input input');
|
||||
|
||||
inputs.forEach((input, index) => {
|
||||
console.log('dd');
|
||||
input.addEventListener('input', (e) => {
|
||||
const value = e.target.value;
|
||||
if (!/^[0-9]$/.test(value)) {
|
||||
e.target.value = '';
|
||||
return;
|
||||
}
|
||||
if (value && index < inputs.length - 1) {
|
||||
inputs[index + 1].focus();
|
||||
}
|
||||
});
|
||||
|
||||
input.addEventListener('keydown', (e) => {
|
||||
if (e.key === 'Backspace' && !e.target.value && index > 0) {
|
||||
inputs[index - 1].focus();
|
||||
}
|
||||
});
|
||||
});
|
||||
</script>
|
||||
</fieldset>
|
||||
<!-- //2025.07 디자인팀 수정-->
|
||||
|
||||
</div>
|
||||
<!--//pop_join_right-->
|
||||
<!-- 회원가입결과 시작 { register-->
|
||||
<div id="pop_result" class="popup_wrap" style="display:none;">
|
||||
<p class="reg_result_p">
|
||||
<i class="fa fa-gift" aria-hidden="true"></i><br>
|
||||
<strong><?php echo get_text($mb['mb_name']); ?></strong>님의 회원가입을 진심으로 축하합니다.
|
||||
</p>
|
||||
|
||||
<?php if (is_use_email_certify()) { ?>
|
||||
<p class="result_txt">
|
||||
회원 가입 시 입력하신 이메일 주소로 인증메일이 발송되었습니다.<br>
|
||||
발송된 인증메일을 확인하신 후 인증처리를 하시면 사이트를 원활하게 이용하실 수 있습니다.
|
||||
</p>
|
||||
<div id="result_email">
|
||||
<span>아이디</span>
|
||||
<strong><?php echo $mb['mb_id'] ?></strong><br>
|
||||
<span>이메일 주소</span>
|
||||
<strong><?php echo $mb['mb_email'] ?></strong>
|
||||
</div>
|
||||
<p>
|
||||
이메일 주소를 잘못 입력하셨다면, 사이트 관리자에게 문의해주시기 바랍니다.
|
||||
</p>
|
||||
<?php } ?>
|
||||
<!-- } 회원가입결과 끝 -->
|
||||
<div class="btn_confirm_reg">
|
||||
<a href="<?php echo G5_URL ?>/" class="reg_btn_submit">메인으로</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!--//popup_content-->
|
||||
</div>
|
||||
<!--//popup_in-->
|
||||
</div>
|
||||
<!--//popup_wrap-->
|
||||
<!-- </div>
|
||||
</body> -->
|
||||
|
||||
|
||||
@@ -0,0 +1,46 @@
|
||||
<?php
|
||||
if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가
|
||||
$delete_str = "";
|
||||
if ($w == 'x') $delete_str = "댓";
|
||||
if ($w == 'u') $g5['title'] = $delete_str."글 수정";
|
||||
else if ($w == 'd' || $w == 'x') $g5['title'] = $delete_str."글 삭제";
|
||||
else $g5['title'] = $g5['title'];
|
||||
|
||||
// add_stylesheet('css 구문', 출력순서); 숫자가 작을 수록 먼저 출력됨
|
||||
add_stylesheet('<link rel="stylesheet" href="'.$member_skin_url.'/style.css">', 0);
|
||||
?>
|
||||
|
||||
<!-- 비밀번호 확인 시작 { -->
|
||||
<div id="pw_confirm" class="mbskin">
|
||||
<h1><?php echo $g5['title'] ?></h1>
|
||||
<p>
|
||||
<?php if ($w == 'u') { ?>
|
||||
<strong>작성자만 글을 수정할 수 있습니다.</strong>
|
||||
작성자 본인이라면, 글 작성시 입력한 비밀번호를 입력하여 글을 수정할 수 있습니다.
|
||||
<?php } else if ($w == 'd' || $w == 'x') { ?>
|
||||
<strong>작성자만 글을 삭제할 수 있습니다.</strong>
|
||||
작성자 본인이라면, 글 작성시 입력한 비밀번호를 입력하여 글을 삭제할 수 있습니다.
|
||||
<?php } else { ?>
|
||||
<strong>비밀글 기능으로 보호된 글입니다.</strong>
|
||||
작성자와 관리자만 열람하실 수 있습니다.<br> 본인이라면 비밀번호를 입력하세요.
|
||||
<?php } ?>
|
||||
</p>
|
||||
|
||||
<form name="fboardpassword" action="<?php echo $action; ?>" method="post">
|
||||
<input type="hidden" name="w" value="<?php echo $w ?>">
|
||||
<input type="hidden" name="bo_table" value="<?php echo $bo_table ?>">
|
||||
<input type="hidden" name="wr_id" value="<?php echo $wr_id ?>">
|
||||
<input type="hidden" name="comment_id" value="<?php echo $comment_id ?>">
|
||||
<input type="hidden" name="sfl" value="<?php echo $sfl ?>">
|
||||
<input type="hidden" name="stx" value="<?php echo $stx ?>">
|
||||
<input type="hidden" name="page" value="<?php echo $page ?>">
|
||||
|
||||
<fieldset>
|
||||
<label for="pw_wr_password" class="sound_only">비밀번호<strong>필수</strong></label>
|
||||
<input type="password" name="wr_password" id="password_wr_password" required class="frm_input required" size="15" maxLength="20" placeholder="비밀번호">
|
||||
<input type="submit" value="확인" class="btn_submit">
|
||||
</fieldset>
|
||||
</form>
|
||||
|
||||
</div>
|
||||
<!-- } 비밀번호 확인 끝 -->
|
||||
@@ -0,0 +1,118 @@
|
||||
<?php
|
||||
if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가
|
||||
|
||||
// add_stylesheet('css 구문', 출력순서); 숫자가 작을 수록 먼저 출력됨
|
||||
add_stylesheet('<link rel="stylesheet" href="'.$member_skin_url.'/style.css">', 0);
|
||||
|
||||
if($config['cf_cert_use'] && ($config['cf_cert_simple'] || $config['cf_cert_ipin'] || $config['cf_cert_hp'])) { ?>
|
||||
<script src="<?php echo G5_JS_URL ?>/certify.js?v=<?php echo G5_JS_VER; ?>"></script>
|
||||
<?php } ?>
|
||||
|
||||
<!-- 회원정보 찾기 시작 { -->
|
||||
<div id="find_info" class="new_win<?php if($config['cf_cert_use'] != 0 && $config['cf_cert_find'] != 0) { ?> cert<?php } ?>">
|
||||
<div class="new_win_con">
|
||||
<form name="fpasswordlost" action="<?php echo $action_url ?>" onsubmit="return fpasswordlost_submit(this);" method="post" autocomplete="off">
|
||||
<input type="hidden" name="cert_no" value="">
|
||||
<h3>이메일로 찾기</h3>
|
||||
<fieldset id="info_fs">
|
||||
<p>
|
||||
회원가입 시 등록하신 이메일 주소를 입력해 주세요.<br>
|
||||
해당 이메일로 아이디와 비밀번호 정보를 보내드립니다.
|
||||
</p>
|
||||
<label for="mb_email" class="sound_only">E-mail 주소<strong class="sound_only">필수</strong></label>
|
||||
<input type="text" name="mb_email" id="mb_email" required class="required frm_input full_input email" size="30" placeholder="E-mail 주소">
|
||||
</fieldset>
|
||||
<?php echo captcha_html(); ?>
|
||||
|
||||
<div class="win_btn">
|
||||
<button type="submit" class="btn_submit">인증메일 보내기</button>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
<?php if($config['cf_cert_use'] != 0 && $config['cf_cert_find'] != 0) { ?>
|
||||
<div class="new_win_con find_btn">
|
||||
<h3>본인인증으로 찾기</h3>
|
||||
<div class="cert_btn">
|
||||
<?php if(!empty($config['cf_cert_simple'])) { ?>
|
||||
<button type="button" id="win_sa_kakao_cert" class="btn_submit win_sa_cert" data-type="">간편인증</button>
|
||||
<?php } if(!empty($config['cf_cert_hp']) || !empty($config['cf_cert_ipin'])) { ?>
|
||||
<?php if(!empty($config['cf_cert_hp'])) { ?>
|
||||
<button type="button" id="win_hp_cert" class="btn_submit">휴대폰 본인확인</button>
|
||||
<?php } if(!empty($config['cf_cert_ipin'])) { ?>
|
||||
<button type="button" id="win_ipin_cert" class="btn_submit">아이핀 본인확인</button>
|
||||
<?php } ?>
|
||||
<?php } ?>
|
||||
</div>
|
||||
</div>
|
||||
<?php } ?>
|
||||
</div>
|
||||
<script>
|
||||
$(function() {
|
||||
$("#reg_zip_find").css("display", "inline-block");
|
||||
var pageTypeParam = "pageType=find";
|
||||
|
||||
<?php if($config['cf_cert_use'] && $config['cf_cert_simple']) { ?>
|
||||
// TOSS 간편인증
|
||||
var url = "<?php echo G5_INICERT_URL; ?>/ini_request.php";
|
||||
var type = "";
|
||||
var params = "";
|
||||
var request_url = "";
|
||||
|
||||
|
||||
$(".win_sa_cert").click(function() {
|
||||
type = $(this).data("type");
|
||||
params = "?directAgency=" + type + "&" + pageTypeParam;
|
||||
request_url = url + params;
|
||||
call_sa(request_url);
|
||||
});
|
||||
<?php } ?>
|
||||
<?php if($config['cf_cert_use'] && $config['cf_cert_ipin']) { ?>
|
||||
// 아이핀인증
|
||||
var params = "";
|
||||
$("#win_ipin_cert").click(function() {
|
||||
params = "?" + pageTypeParam;
|
||||
var url = "<?php echo G5_OKNAME_URL; ?>/ipin1.php"+params;
|
||||
certify_win_open('kcb-ipin', url);
|
||||
return;
|
||||
});
|
||||
|
||||
<?php } ?>
|
||||
<?php if($config['cf_cert_use'] && $config['cf_cert_hp']) { ?>
|
||||
// 휴대폰인증
|
||||
var params = "";
|
||||
$("#win_hp_cert").click(function() {
|
||||
params = "?" + pageTypeParam;
|
||||
<?php
|
||||
switch($config['cf_cert_hp']) {
|
||||
case 'kcb':
|
||||
$cert_url = G5_OKNAME_URL.'/hpcert1.php';
|
||||
$cert_type = 'kcb-hp';
|
||||
break;
|
||||
case 'kcp':
|
||||
$cert_url = G5_KCPCERT_URL.'/kcpcert_form.php';
|
||||
$cert_type = 'kcp-hp';
|
||||
break;
|
||||
case 'lg':
|
||||
$cert_url = G5_LGXPAY_URL.'/AuthOnlyReq.php';
|
||||
$cert_type = 'lg-hp';
|
||||
break;
|
||||
default:
|
||||
echo 'alert("기본환경설정에서 휴대폰 본인확인 설정을 해주십시오");';
|
||||
echo 'return false;';
|
||||
break;
|
||||
}
|
||||
?>
|
||||
|
||||
certify_win_open("<?php echo $cert_type; ?>", "<?php echo $cert_url; ?>"+params);
|
||||
return;
|
||||
});
|
||||
<?php } ?>
|
||||
});
|
||||
function fpasswordlost_submit(f)
|
||||
{
|
||||
<?php echo chk_captcha_js(); ?>
|
||||
|
||||
return true;
|
||||
}
|
||||
</script>
|
||||
<!-- } 회원정보 찾기 끝 -->
|
||||
@@ -0,0 +1,404 @@
|
||||
<!--popup_wrap-->
|
||||
<div id="pop_search" class="popup_wrap">
|
||||
<!--popup_in-->
|
||||
<div class="popup_in">
|
||||
<button class="btn_close" onclick="$('#view_result').html('');">
|
||||
<div class="close_div"><img src="<?php echo G5_URL ?>/img/ico_close.svg" alt=""></div>
|
||||
</button>
|
||||
<!--popup_content-->
|
||||
<div class="popup_container search">
|
||||
<!--pop_join_left-->
|
||||
<div class="popup_tit">
|
||||
<h1 class="h_1">비밀번호 <br>재설정</h1>
|
||||
</div>
|
||||
|
||||
|
||||
<!-- 2025.07 다지인팀 수정 -->
|
||||
<!-- pop_join_right-->
|
||||
<div class="popup_contents_wrap" style="display: none;">
|
||||
<button class="btn_back" onclick="goLogin();">로그인</button>
|
||||
<div class="tbl_wrap">
|
||||
<div class="guide_txt"><em>계정 생성에 사용한 아이디</em>를 입력해 주세요.<br>입력하신 메일 주소로 인증 링크가 발송됩니다.</div>
|
||||
<div class="guide_txt"><em>(인증 링크는 3분 후 만료됩니다.)</em></div>
|
||||
<table>
|
||||
<tbody>
|
||||
<tr>
|
||||
<th class="h_4">아이디</th>
|
||||
<td>
|
||||
<div class="id_wrap">
|
||||
<input id="txt_name" type="text" placeholder="example@eg-bim.co.kr" required>
|
||||
</div>
|
||||
<!-- <span class="important_msg h_6">이메일 형식으로 작성</span> -->
|
||||
<p id="email_feedback" class="important_msg h_6" style="display:none; margin-top:4px;"></p>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<div class="join_btn_wrap">
|
||||
<button type="button" id="btn_id" onclick="ufn_btn_id_click();">아이디 확인</button>
|
||||
</div>
|
||||
<div class="inquiry">
|
||||
계정이 기억나지 않을 경우<br class="brk"> <em>baroncs@baroncs.co.kr</em>로 문의하시기 바랍니다.
|
||||
</div>
|
||||
</div>
|
||||
<!--비밀번호 재설정 otp 입력 화면 -->
|
||||
<!-- <div class="popup_contents_wrap" style="_display: none;">
|
||||
<button class="btn_back">다른 아이디로 변경하기</button>
|
||||
<div id="register_form" class="tbl_wrap">
|
||||
<div class="guide_txt">
|
||||
사용자 인증을 위해 <em>aaa@gmail.com</em> <br>아이디로 전송된 인증번호를 입력해 주세요.
|
||||
</div>
|
||||
<div class="verify_wrap">
|
||||
<div class="code_input">
|
||||
<input type="text" maxlength="1" inputmode="numeric" pattern="[0-9]*" />
|
||||
<input type="text" maxlength="1" inputmode="numeric" pattern="[0-9]*" />
|
||||
<input type="text" maxlength="1" inputmode="numeric" pattern="[0-9]*" />
|
||||
<input type="text" maxlength="1" inputmode="numeric" pattern="[0-9]*" />
|
||||
<input type="text" maxlength="1" inputmode="numeric" pattern="[0-9]*" />
|
||||
<input type="text" maxlength="1" inputmode="numeric" pattern="[0-9]*" />
|
||||
</div>
|
||||
<div>
|
||||
<span class="important_msg h_6">인증번호 불일치</span>
|
||||
<button class="btn_send">인증번호 재전송 ⭮</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="btn_confirm">
|
||||
<button type="submit" id="btn_submit" class="btn_submit" >인증하기</button>
|
||||
</div>
|
||||
<script>
|
||||
const inputs = document.querySelectorAll('.code-input input');
|
||||
|
||||
inputs.forEach((input, index) => {
|
||||
console.log('dd');
|
||||
input.addEventListener('input', (e) => {
|
||||
const value = e.target.value;
|
||||
if (!/^[0-9]$/.test(value)) {
|
||||
e.target.value = '';
|
||||
return;
|
||||
}
|
||||
if (value && index < inputs.length - 1) {
|
||||
inputs[index + 1].focus();
|
||||
}
|
||||
});
|
||||
|
||||
input.addEventListener('keydown', (e) => {
|
||||
if (e.key === 'Backspace' && !e.target.value && index > 0) {
|
||||
inputs[index - 1].focus();
|
||||
}
|
||||
});
|
||||
});
|
||||
</script>
|
||||
</div> -->
|
||||
<div id="password_reset" class="popup_contents_wrap" style="display: none;">
|
||||
<div class="tbl_wrap">
|
||||
<!-- <div class="guide_txt">
|
||||
<em>${email}</em> 계정의 새 비밀번호를 입력하세요.
|
||||
</div> -->
|
||||
<div class="guide_txt">
|
||||
새로운 비밀번호를 입력하세요.
|
||||
</div>
|
||||
<table>
|
||||
<tbody>
|
||||
<tr>
|
||||
<th class="h_4">새 비밀번호</th>
|
||||
<td>
|
||||
<input type="password" id="pw_reset1" placeholder="새 비밀번호" autocomplete="new-password">
|
||||
<!-- 새 비밀번호 피드백 위치 -->
|
||||
<p id="pw_reset1_feedback" class="important_msg h_6" style="display:none; margin-top:4px;"></p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th class="h_4">비밀번호 확인</th>
|
||||
<td>
|
||||
<input type="password" id="pw_reset2" placeholder="비밀번호 확인" autocomplete="new-password">
|
||||
<!-- 비밀번호 확인 피드백 위치 -->
|
||||
<p id="pw_reset2_feedback" class="important_msg h_6" style="display:none; margin-top:4px;"></p>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
</tbody>
|
||||
</table>
|
||||
<p id="pw_reset_feedback" class="important_msg h_6" style="display:none;">
|
||||
비밀번호는 영문자 · 숫자 · 특수문자를 포함한 12자 이상이어야 합니다.
|
||||
</p>
|
||||
</div>
|
||||
<div class="join_btn_wrap">
|
||||
<button type="button" id="btn_pw_reset" onclick="resetPassword();">비밀번호 재설정</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!--//pop_join_right-->
|
||||
|
||||
<!-- //2025.07 다지인팀 수정 -->
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
<!--//popup_content-->
|
||||
</div>
|
||||
<!--//popup_in-->
|
||||
</div>
|
||||
|
||||
|
||||
<script>
|
||||
// 이메일 유효성 정규식
|
||||
function isValidEmail(email) {
|
||||
return /^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(email);
|
||||
}
|
||||
|
||||
$('#txt_name').on('input', function() {
|
||||
const email = $(this).val().trim();
|
||||
const fb = $('#email_feedback');
|
||||
|
||||
if (!email) {
|
||||
fb.hide();
|
||||
$('#btn_id').prop('disabled', true);
|
||||
return;
|
||||
}
|
||||
|
||||
if (isValidEmail(email)) {
|
||||
fb.text('올바른 이메일 형식입니다.').css('color', 'green').show();
|
||||
$('#btn_id').prop('disabled', false);
|
||||
} else {
|
||||
fb.text('이메일 형식으로 작성해주세요.').css('color', 'red').show();
|
||||
$('#btn_id').prop('disabled', true);
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
//비밀번호 재설정 인증링크 보내기
|
||||
$('#txt_name').on('input', function() {
|
||||
if ($(this).val().trim().length > 0) {
|
||||
$('#btn_id').prop('disabled', false);
|
||||
} else {
|
||||
$('#btn_id').prop('disabled', true);
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
function ufn_btn_id_click() {
|
||||
var email = $('#txt_name').val().trim();
|
||||
if (!email) {
|
||||
alert('이메일(아이디)을 입력하세요.');
|
||||
$('#txt_name').focus();
|
||||
return;
|
||||
}
|
||||
|
||||
// 비밀번호 재설정 메일 요청
|
||||
$.ajax({
|
||||
url: '/egbim/skin/member/basic/descope_send_otp.php', // PHP 처리 파일 경로에 맞게 수정
|
||||
method: 'POST',
|
||||
dataType: 'json',
|
||||
data: { email: email },
|
||||
success: function(res) {
|
||||
if (res.status === 'ok') {
|
||||
alert('인증링크가 이메일로 발송되었습니다.');
|
||||
// 다음 스텝(OTP 입력창) show/hide 처리
|
||||
// 예시: $('#pop_reset_otp').show(); // 또는 다음 .popup_contents_wrap show
|
||||
} else {
|
||||
alert(res.message || '전송 실패');
|
||||
}
|
||||
},
|
||||
error: function(xhr) {
|
||||
alert('서버 통신 오류');
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
//로그인 화면으로 돌아가기
|
||||
function goLogin() {
|
||||
// 전체 이동 (페이지로)
|
||||
// location.href = '/login.php';
|
||||
|
||||
// 팝업방식 (예시)
|
||||
$('#pop_search').hide();
|
||||
$('#pop_login').show();
|
||||
}
|
||||
|
||||
// //비밀번호 두 값이 모두 있을 경우에만 enabled
|
||||
// $('#pw_reset1, #pw_reset2').on('input', function() {
|
||||
// var pw1 = $('#pw_reset1').val();
|
||||
// var pw2 = $('#pw_reset2').val();
|
||||
// if (pw1.length > 0 && pw2.length > 0) {
|
||||
// $('#btn_pw_reset').prop('disabled', false);
|
||||
// } else {
|
||||
// $('#btn_pw_reset').prop('disabled', true);
|
||||
// }
|
||||
// });
|
||||
|
||||
// //비밀번호 재설정 업데이트
|
||||
// function resetPassword() {
|
||||
// var pw1 = $('#pw_reset1').val();
|
||||
// var pw2 = $('#pw_reset2').val();
|
||||
|
||||
// if (!pw1 || !pw2) {
|
||||
// alert('비밀번호를 모두 입력하세요.');
|
||||
// return;
|
||||
// }
|
||||
// if (pw1 !== pw2) {
|
||||
// alert('비밀번호가 일치하지 않습니다.');
|
||||
// return;
|
||||
// }
|
||||
|
||||
// // 쿼리스트링 t(토큰) 읽어서 같이 전송
|
||||
// var resetToken = new URLSearchParams(window.location.search).get('t');
|
||||
// var email = window.resetEmail || ''; // 상황에 따라 email 세팅
|
||||
// if (!resetToken) {
|
||||
// alert('유효하지 않은 접근입니다.');
|
||||
// return;
|
||||
// }
|
||||
|
||||
// $.ajax({
|
||||
// url: '/egbim1/skin/member/basic/descope_reset_password.php',
|
||||
// type: 'POST',
|
||||
// dataType: 'json',
|
||||
// data: { email: email, password: pw1, token: resetToken },
|
||||
// success: function(res) {
|
||||
// if (res.status === 'ok') {
|
||||
// alert('비밀번호가 성공적으로 변경되었습니다!\n로그인해주세요.');
|
||||
// location.href = '/login.php';
|
||||
// } else {
|
||||
// alert(res.message || '비밀번호 변경 실패');
|
||||
// }
|
||||
// },
|
||||
// error: function(xhr) {
|
||||
// alert('통신 오류: ' + xhr.statusText);
|
||||
// }
|
||||
// });
|
||||
// }
|
||||
|
||||
|
||||
let refreshJwt = '';
|
||||
let resetEmail = '';
|
||||
|
||||
$(document).ready(function () {
|
||||
// 1. URL에서 매직링크 토큰 추출 (t 파라미터)
|
||||
const resetToken = new URLSearchParams(window.location.search).get('t');
|
||||
if (!resetToken) return;
|
||||
|
||||
// 2. Magic Link 검증: 서버에 토큰을 보내서 refreshJwt, email 받아옴
|
||||
$.ajax({
|
||||
url: '/egbim/skin/member/basic/descope_verify_magiclink.php',
|
||||
type: 'POST',
|
||||
dataType: 'json',
|
||||
data: { token: resetToken },
|
||||
success: function (res) {
|
||||
if (res.status === 'ok') {
|
||||
refreshJwt = res.refreshJwt;
|
||||
resetEmail = res.email;
|
||||
$('#password_reset').show(); // 비번입력창 보이기
|
||||
|
||||
// [추가] 인증 완료 alert를 한 번만 띄움
|
||||
if (!sessionStorage.getItem('verifiedAlertShown')) {
|
||||
alert('인증이 완료되었습니다!');
|
||||
// alert(JSON.stringify(res, null, 2));
|
||||
sessionStorage.setItem('verifiedAlertShown', '1');
|
||||
}
|
||||
} else {
|
||||
alert(res.message || '링크 인증 실패');
|
||||
}
|
||||
},
|
||||
error: function () {
|
||||
alert('서버 통신 오류');
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
// 비밀번호 두 값이 모두 있을 경우에만 enabled
|
||||
$('#pw_reset1, #pw_reset2').on('input', function () {
|
||||
var pw1 = $('#pw_reset1').val();
|
||||
var pw2 = $('#pw_reset2').val();
|
||||
$('#btn_pw_reset').prop('disabled', pw1.length === 0 || pw2.length === 0);
|
||||
});
|
||||
|
||||
// 비밀번호 재설정
|
||||
function resetPassword() {
|
||||
var pw1 = $('#pw_reset1').val();
|
||||
var pw2 = $('#pw_reset2').val();
|
||||
if (!pw1 || !pw2) return alert('비밀번호를 모두 입력하세요.');
|
||||
if (pw1 !== pw2) return alert('비밀번호가 일치하지 않습니다.');
|
||||
if (!refreshJwt || !resetEmail) return alert('인증 세션이 만료되었습니다. 다시 시도해 주세요.');
|
||||
|
||||
$.ajax({
|
||||
url: '/egbim/skin/member/basic/descope_reset_password.php',
|
||||
type: 'POST',
|
||||
dataType: 'json',
|
||||
data: {
|
||||
email: resetEmail,
|
||||
password: pw1,
|
||||
refreshJwt: refreshJwt
|
||||
},
|
||||
success: function (res) {
|
||||
// alert(res);
|
||||
if (res.status === 'ok') {
|
||||
alert('비밀번호가 성공적으로 변경되었습니다!\n로그인해주세요.');
|
||||
location.href = 'https://eg-bim.com/egbim/index.php';
|
||||
} else {
|
||||
alert(res.message + '비밀번호 변경 실패');
|
||||
}
|
||||
},
|
||||
error: function () {
|
||||
alert('서버 통신 오류');
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
// (기존 validatePassword 함수가 없다면 추가)
|
||||
function validatePassword(pw) {
|
||||
if (pw.length < 12) return { ok: false, reason: '12자 이상이어야 합니다.' };
|
||||
if (!/[A-Za-z]/.test(pw)) return { ok: false, reason: '영문자가 포함되어야 합니다.' };
|
||||
if (!/[0-9]/.test(pw)) return { ok: false, reason: '숫자가 포함되어야 합니다.' };
|
||||
if (!/[!@#$%^&*(),.\[\]{}\\\/~`_+\-=\|;:'"<>\?]/.test(pw))
|
||||
return { ok: false, reason: '특수문자가 포함되어야 합니다.' };
|
||||
return { ok: true };
|
||||
}
|
||||
|
||||
|
||||
// 실시간 피드백
|
||||
$('#pw_reset1').on('input', function() {
|
||||
const pw1 = $(this).val().trim();
|
||||
const fb1 = $('#pw_reset1_feedback');
|
||||
const check = validatePassword(pw1);
|
||||
|
||||
if (!pw1) {
|
||||
fb1.hide();
|
||||
} else if (!check.ok) {
|
||||
fb1.text(check.reason).show();
|
||||
} else {
|
||||
fb1.hide();
|
||||
}
|
||||
|
||||
// 버튼 활성화 토글은 아래에서 처리
|
||||
toggleResetButton();
|
||||
});
|
||||
|
||||
$('#pw_reset2').on('input', function() {
|
||||
const pw1 = $('#pw_reset1').val().trim();
|
||||
const pw2 = $(this).val().trim();
|
||||
const fb2 = $('#pw_reset2_feedback');
|
||||
|
||||
if (!pw2) {
|
||||
fb2.hide();
|
||||
} else if (pw1 !== pw2) {
|
||||
fb2.text('비밀번호가 일치하지 않습니다.').show();
|
||||
} else {
|
||||
fb2.hide();
|
||||
}
|
||||
|
||||
toggleResetButton();
|
||||
});
|
||||
|
||||
// 버튼 활성화/비활성화 함수
|
||||
function toggleResetButton() {
|
||||
const pw1 = $('#pw_reset1').val().trim();
|
||||
const pw2 = $('#pw_reset2').val().trim();
|
||||
const check = validatePassword(pw1);
|
||||
const ok = pw1 && pw2 && check.ok && (pw1 === pw2);
|
||||
$('#btn_pw_reset').prop('disabled', !ok);
|
||||
}
|
||||
|
||||
|
||||
</script>
|
||||
@@ -0,0 +1,203 @@
|
||||
<!-- 회원정보 찾기 시작 { -->
|
||||
<!-- <head>
|
||||
<meta charset="utf-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<title>TOVA Join</title>
|
||||
<link rel="stylesheet" href="../css/reset.css" />
|
||||
<link rel="stylesheet" href="../css/font.css" />
|
||||
<link rel="stylesheet" href="../css/style.css" />
|
||||
<script src="../js/jquery-3.6.1.min.js"></script>
|
||||
<script src="../js/common.js"></script>
|
||||
</head> -->
|
||||
|
||||
|
||||
<!-- <body>
|
||||
<div class="wrapper"> -->
|
||||
<!-- Header -->
|
||||
<!-- <header class="header">
|
||||
<h1>
|
||||
<img src="../img/logo_w.svg" alt="">
|
||||
</h1>
|
||||
<div class="menu_wrap">
|
||||
<div class="menu_my"><img src="../img/ico_my.svg" alt=""></div>
|
||||
<div class="menu_ham"><img src="../img/ico_ham.svg" alt=""></div>
|
||||
</div>
|
||||
</header> -->
|
||||
<!-- //Header -->
|
||||
|
||||
<!--popup_wrap-->
|
||||
<div id="pop_search" class="popup_wrap">
|
||||
<!--popup_in-->
|
||||
<div class="popup_in">
|
||||
<div class="pop_close_wrap">
|
||||
<button class="btn_close">
|
||||
<div class="close_div"><img src="<?php echo G5_URL ?>/img/ico_close.svg" alt=""></div>
|
||||
</button>
|
||||
</div>
|
||||
<!--popup_content-->
|
||||
<div class="popup_content search join">
|
||||
<!--pop_join_left-->
|
||||
<div class="pop_join_left">
|
||||
<span class="bg_tit_left">ID/P</span>
|
||||
<div class="join_info">
|
||||
<h1 class="h_1">아이디/ <br> 비밀번호 찾기 </h1>
|
||||
<h3 class="h_3">
|
||||
가입 시 등록된 이메일로<br>
|
||||
<strong>아이디 및 비밀번호를 발송</strong>
|
||||
합니다.
|
||||
</h3>
|
||||
</div>
|
||||
</div>
|
||||
<!--//pop_join_right-->
|
||||
<div class="pop_input_wrap pop_join_right">
|
||||
<span class="bg_tit_right">W</span>
|
||||
<div class="contents_wrap">
|
||||
<!-- 아이디/비번찾기 -->
|
||||
<ul class="btn_wrap">
|
||||
<li class="btn_id on"><span>아이디 찾기</span></li>
|
||||
<li class="btn_pw "><span>비밀번호 찾기</span></li>
|
||||
</ul>
|
||||
<!-- // 아이디/비번찾기 -->
|
||||
<div class="content id">
|
||||
<div class="box">
|
||||
<!-- 휴대전화 / 이메일 라디오 버튼 -->
|
||||
<div class="radio_wrap">
|
||||
<label><input type="radio" class="find_ph on" checked> 휴대전화 번호로 찾기</label>
|
||||
<label><input type="radio" class="find_email"> 이메일 주소로 찾기</label>
|
||||
</div>
|
||||
<!-- // 휴대전화 / 이메일 라디오 버튼 -->
|
||||
<!-- 휴대전화 -->
|
||||
<table class="ph">
|
||||
<tbody>
|
||||
<tr>
|
||||
<th class="h_4">이름</th>
|
||||
<td>
|
||||
<div class="id_wrap">
|
||||
<input type="text" placeholder="이름 입력" required>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th class="h_4">휴대전화번호</th>
|
||||
<td>
|
||||
<div class="id_wrap">
|
||||
<input type="text" placeholder="휴대전화번호 입력" required>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<!-- //휴대전화 -->
|
||||
<!-- 이메일 -->
|
||||
<table class="email" style="display: none;">
|
||||
<tbody>
|
||||
<tr>
|
||||
<th class="h_4">이름</th>
|
||||
<td>
|
||||
<div class="id_wrap">
|
||||
<input type="text" placeholder="이름 입력" required>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th class="h_4">이메일</th>
|
||||
<td>
|
||||
<div class="email_wrap">
|
||||
<input type="text" placeholder="이메일 입력" class="e_id" required>
|
||||
<div><span>@</span></div>
|
||||
<input type="text" id="custom-domain" placeholder="직접 입력" style="display: none;" required>
|
||||
<select name="" id="domain-list" class="domain_list" required >
|
||||
<option value="" hidden="" disabled="disabled" selected="selected">선택</option>
|
||||
<option value="naver">naver.com</option>
|
||||
<option value="gmail">gmail.com</option>
|
||||
<option value="daum">daum.net</option>
|
||||
<option value="nate">nate.com</option>
|
||||
<option value="hotmail">hotmail.com</option>
|
||||
<option value="yahoo">yahoo.com</option>
|
||||
<option value="type" id="domain-txt" type="text">직접입력</option>
|
||||
</select>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<!-- //이메일 -->
|
||||
</div>
|
||||
<div class="join_btn_wrap">
|
||||
<button type="button">확인</button>
|
||||
</div>
|
||||
<div class="inquiry">계정이 기억나지 않을 경우 <em>tova@hanmaceng.co.kr</em>로 문의하시기 바랍니다.</div>
|
||||
</div>
|
||||
<div class="content pw" style="display: none;">
|
||||
<div class="box">
|
||||
<table>
|
||||
<tbody>
|
||||
<tr>
|
||||
<th class="h_4">아이디</th>
|
||||
<td>
|
||||
<div class="id_wrap">
|
||||
<input type="text" placeholder="아이디 입력" required>
|
||||
<button type="button" onclick="" name="" class="chk_id">중복확인</button>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th class="h_4">이메일</th>
|
||||
<td class="email_confirm">
|
||||
<div class="email_wrap">
|
||||
<input type="text" placeholder="이메일 입력" class="e_id" required>
|
||||
<div><span>@</span></div>
|
||||
<input type="text" id="custom-domain" placeholder="직접 입력" style="display: none;" required>
|
||||
<select name="" id="domain-list" required>
|
||||
<option value="" hidden="" disabled="disabled" selected="selected">선택</option>
|
||||
<option value="naver">naver.com</option>
|
||||
<option value="gmail">gmail.com</option>
|
||||
<option value="daum">daum.net</option>
|
||||
<option value="nate">nate.com</option>
|
||||
<option value="hotmail">hotmail.com</option>
|
||||
<option value="yahoo">yahoo.com</option>
|
||||
<option value="type" id="domain-txt" type="text">직접입력</option>
|
||||
</select>
|
||||
</div>
|
||||
<button type="button" onclick="" name="" class="cert_number">인증번호</button>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr class="code" style="display: none;">
|
||||
<th class="h_4">인증번호</th>
|
||||
<td>
|
||||
<div class="phone_wrap">
|
||||
<input type="text" placeholder="인증번호 입력" required>
|
||||
<button type="button" onclick="" name="" class="check">확인</button>
|
||||
<button type="button " onclick="" name="" class="check complete" style="display: none;">인증완료</button>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<div class="join_btn_wrap">
|
||||
<button type="button">확인</button>
|
||||
</div>
|
||||
<div class="inquiry">계정이 기억나지 않을 경우 <em>tova@hanmaceng.co.kr</em>로 문의하시기 바랍니다.</div>
|
||||
</div>
|
||||
<!-- 전송완료 -->
|
||||
<div class="messages pw" style="display: none;">
|
||||
<i class="send"></i>
|
||||
<span><em> tova@hanmaceng.co.kr</em> 로 <br>임시 비밀번호를 전송하였습니다.
|
||||
<a href="pop_login.html" class="btn_regist">로그인</a></span>
|
||||
</div>
|
||||
<!-- //전송완료 -->
|
||||
</div>
|
||||
</div>
|
||||
<!--//pop_join_right-->
|
||||
</div>
|
||||
<!--//popup_content-->
|
||||
</div>
|
||||
<!--//popup_in-->
|
||||
</div>
|
||||
<!--//popup_wrap-->
|
||||
<!-- </div>
|
||||
</body> -->
|
||||
|
||||
<!-- } 회원정보 찾기 끝 -->
|
||||
@@ -0,0 +1,387 @@
|
||||
<!-- 회원정보 찾기 시작 { -->
|
||||
<!-- <head>
|
||||
<meta charset="utf-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<title>TOVA Join</title>
|
||||
<link rel="stylesheet" href="../css/reset.css" />
|
||||
<link rel="stylesheet" href="../css/font.css" />
|
||||
<link rel="stylesheet" href="../css/style.css" />
|
||||
<script src="../js/jquery-3.6.1.min.js"></script>
|
||||
<script src="../js/common.js"></script>
|
||||
</head> -->
|
||||
|
||||
|
||||
<!-- <body>
|
||||
<div class="wrapper"> -->
|
||||
<!-- Header -->
|
||||
<!-- <header class="header">
|
||||
<h1>
|
||||
<img src="../img/logo_w.svg" alt="">
|
||||
</h1>
|
||||
<div class="menu_wrap">
|
||||
<div class="menu_my"><img src="../img/ico_my.svg" alt=""></div>
|
||||
<div class="menu_ham"><img src="../img/ico_ham.svg" alt=""></div>
|
||||
</div>
|
||||
</header> -->
|
||||
<!-- //Header -->
|
||||
|
||||
<!--popup_wrap-->
|
||||
<div id="pop_search" class="popup_wrap">
|
||||
<!--popup_in-->
|
||||
<div class="popup_in">
|
||||
<div class="pop_close_wrap">
|
||||
<button class="btn_close" onclick="$('#view_result').html('');">
|
||||
<div class="close_div"><img src="<?php echo G5_URL ?>/img/ico_close.svg" alt=""></div>
|
||||
</button>
|
||||
</div>
|
||||
<!--popup_content-->
|
||||
<div class="popup_content search join">
|
||||
<!--pop_join_left-->
|
||||
<div class="pop_join_left">
|
||||
<span class="bg_tit_left">ID/P</span>
|
||||
<div class="join_info">
|
||||
<h1 class="h_1">아이디 찾기/ <br> 비밀번호 변경 </h1>
|
||||
<h3 id="view_result" class="h_3"></h3>
|
||||
<!--
|
||||
가입 시 등록된 이메일로<br>
|
||||
<strong>아이디 및 비밀번호를 발송</strong>
|
||||
합니다.
|
||||
//-->
|
||||
</div>
|
||||
</div>
|
||||
<!--//pop_join_right-->
|
||||
<div class="pop_input_wrap pop_join_right">
|
||||
<span class="bg_tit_right">W</span>
|
||||
<div class="contents_wrap">
|
||||
<!-- 아이디/비번찾기 -->
|
||||
<ul class="btn_wrap">
|
||||
<li class="btn_id on" onclick="ufn_view_result('btn_id');"><span>아이디 찾기</span></li>
|
||||
<li class="btn_pw " onclick="ufn_view_result('btn_pw');"><span>비밀번호 변경</span></li>
|
||||
</ul>
|
||||
<!-- // 아이디/비번찾기 -->
|
||||
<div class="content id">
|
||||
<div class="box">
|
||||
<!-- 휴대전화 / 이메일 라디오 버튼 -->
|
||||
<div class="radio_wrap">
|
||||
<label><input type="radio" id="rdo_hp" class="find_ph on" checked> 휴대전화 번호로 찾기</label>
|
||||
<label><input type="radio" id="rdo_email" class="find_email"> 이메일 주소로 찾기</label>
|
||||
</div>
|
||||
<!-- // 휴대전화 / 이메일 라디오 버튼 -->
|
||||
<!-- 휴대전화 -->
|
||||
<table class="ph">
|
||||
<tbody>
|
||||
<tr>
|
||||
<th class="h_4">이름</th>
|
||||
<td>
|
||||
<div class="id_wrap">
|
||||
<input id="txt_name" type="text" placeholder="이름 입력" required>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th class="h_4">휴대전화번호</th>
|
||||
<td>
|
||||
<div class="id_wrap">
|
||||
<input id="txt_hp" type="text" onkeyup="ufn_losthp_onkeyup(this);" placeholder="휴대전화번호 입력" required>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<!-- //휴대전화 -->
|
||||
<!-- 이메일 -->
|
||||
<table class="email" style="display: none;">
|
||||
<tbody>
|
||||
<tr>
|
||||
<th class="h_4">이름</th>
|
||||
<td>
|
||||
<div class="id_wrap">
|
||||
<input type="text" id="txt_name2" placeholder="이름 입력" required>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th class="h_4">이메일</th>
|
||||
<td>
|
||||
<div class="email_wrap">
|
||||
<input type="text" id="txt_email" onkeyup="ufn_email_onkeyup(this);" placeholder="이메일 입력" class="e_id" required>
|
||||
<div><span>@</span></div>
|
||||
<input type="text" id="custom_domain1" placeholder="직접 입력" style="display: none;" required>
|
||||
<select id="domain_list1" class="domain_list" required onchange="ufn_domain_list1_change(this);">
|
||||
<option value="-" hidden="" disabled="disabled" selected="selected">선택</option>
|
||||
<option value="naver.com">naver.com</option>
|
||||
<option value="gmail.com">gmail.com</option>
|
||||
<option value="daum.net">daum.net</option>
|
||||
<option value="hanmail.net">hanmail.net</option>
|
||||
<option value="nate.com">nate.com</option>
|
||||
<option value="hotmail.com">hotmail.com</option>
|
||||
<option value="yahoo.com">yahoo.com</option>
|
||||
<option value="type" type="text">직접입력</option>
|
||||
</select>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<!-- //이메일 -->
|
||||
</div>
|
||||
<div class="join_btn_wrap">
|
||||
<button type="button" id="btn_id" onclick="ufn_btn_id_click();">확인</button>
|
||||
</div>
|
||||
<div class="inquiry">계정이 기억나지 않을 경우 <em>baroncs@baroncs.co.kr</em>로 문의하시기 바랍니다.</div>
|
||||
</div>
|
||||
<div id="div_pw" class="content pw" style="display: none;">
|
||||
<div class="box">
|
||||
<table>
|
||||
<tbody>
|
||||
<tr>
|
||||
<th class="h_4">아이디</th>
|
||||
<td>
|
||||
<div class="id_wrap">
|
||||
<input type="text" id="txt_lost_id" placeholder="아이디 입력" required>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th class="h_4">이메일</th>
|
||||
<td class="email_confirm">
|
||||
<div class="email_wrap">
|
||||
<input id="txt_lost_email2" onkeyup="ufn_email2_onkeyup(this);" type="text" placeholder="이메일 입력" class="e_id" required>
|
||||
<div><span>@</span></div>
|
||||
<input type="text" id="custom_domain2" placeholder="직접 입력" style="display: none;" required>
|
||||
<select id="domain_list2" class="domain_list" required onchange="ufn_domain_list2_change(this);">
|
||||
<option value="-" hidden="" disabled="disabled" selected="selected">선택</option>
|
||||
<option value="naver.com">naver.com</option>
|
||||
<option value="gmail.com">gmail.com</option>
|
||||
<option value="daum.net">daum.net</option>
|
||||
<option value="hanmail.net">hanmail.net</option>
|
||||
<option value="nate.com">nate.com</option>
|
||||
<option value="hotmail.com">hotmail.com</option>
|
||||
<option value="yahoo.com">yahoo.com</option>
|
||||
<option value="type" type="text">직접입력</option>
|
||||
</select>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<div class="join_btn_wrap">
|
||||
<button type="button" id="btn_pw2" onclick="ufn_btn_pw2_click()">확인</button>
|
||||
</div>
|
||||
<div class="inquiry">계정이 기억나지 않을 경우 <em>baroncs@baroncs.co.kr</em>로 문의하시기 바랍니다.</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!--//pop_join_right-->
|
||||
</div>
|
||||
<!--//popup_content-->
|
||||
</div>
|
||||
<!--//popup_in-->
|
||||
</div>
|
||||
<script>
|
||||
|
||||
function ufn_view_result(l_gbn){
|
||||
if(l_gbn == "btn_id"){
|
||||
$("#view_result").html("");
|
||||
}else{
|
||||
$("#view_result").html("아이디와 이메일 일치시에 비밀번호는<br><strong>등록된 휴대전화번호</strong>로 변경됩니다.");
|
||||
}
|
||||
}
|
||||
|
||||
function ufn_domain_list1_change(l_list){
|
||||
if(l_list.value == 'type'){
|
||||
document.getElementById("custom_domain1").style.display = "block";
|
||||
}else{
|
||||
document.getElementById("custom_domain1").style.display = "none";
|
||||
}
|
||||
}
|
||||
|
||||
function ufn_domain_list2_change(l_list){
|
||||
if(l_list.value == 'type'){
|
||||
document.getElementById("custom_domain2").style.display = "block";
|
||||
}else{
|
||||
document.getElementById("custom_domain2").style.display = "none";
|
||||
}
|
||||
}
|
||||
|
||||
function ufn_email_onkeyup(l_email){
|
||||
if(l_email.value.length>0){
|
||||
document.getElementById('btn_id').disabled = false;
|
||||
}else{
|
||||
document.getElementById('btn_id').disabled = true;
|
||||
}
|
||||
}
|
||||
|
||||
function ufn_email2_onkeyup(l_email){
|
||||
if(l_email.value.length>0){
|
||||
document.getElementById('btn_pw2').disabled = false;
|
||||
}else{
|
||||
document.getElementById('btn_pw2').disabled = true;
|
||||
}
|
||||
}
|
||||
|
||||
function ufn_losthp_onkeyup(l_hp){
|
||||
if(l_hp.value.length>0){
|
||||
document.getElementById('btn_id').disabled = false;
|
||||
}else{
|
||||
document.getElementById('btn_id').disabled = true;
|
||||
}
|
||||
}
|
||||
|
||||
//아이디찾기
|
||||
function ufn_btn_id_click(){
|
||||
|
||||
let l_name = $('#txt_name').val();
|
||||
let l_hp = $('#txt_hp').val();
|
||||
let l_email = "";
|
||||
let l_domain = "";
|
||||
if(document.getElementById('rdo_email').checked){
|
||||
if(document.getElementById('domain_list1').value == '-'){
|
||||
alert("메일도메인을 선택해 주세요.");
|
||||
document.getElementById('domain_list1').focus();
|
||||
return false;
|
||||
}
|
||||
if(document.getElementById('domain_list1').value == 'type'){
|
||||
if(document.getElementById('custom_domain1').value=="" || document.getElementById('custom_domain1').value=="type" ){
|
||||
alert("메일도메인을 입력해 주세요.");
|
||||
document.getElementById('custom_domain1').focus();
|
||||
return false;
|
||||
}
|
||||
l_domain = document.getElementById('custom_domain1').value;
|
||||
}else{
|
||||
l_domain = document.getElementById('domain_list1').value;
|
||||
}
|
||||
|
||||
l_name = $('#txt_name2').val();
|
||||
l_email = $('#txt_email').val() + '@' + l_domain ;
|
||||
//alert(l_email);
|
||||
}
|
||||
|
||||
$.ajax({
|
||||
url: '<?php echo G5_URL ?>/bbs/lost.php',
|
||||
type: "POST",
|
||||
datatype: "json",
|
||||
contentType: 'application/json; charset=utf-8',
|
||||
data: JSON.stringify({ // 데이터를 JSON 문자열로 변환
|
||||
'mb_name': l_name,
|
||||
'mb_hp': l_hp,
|
||||
'mb_email': l_email,
|
||||
}),
|
||||
success: function(data) {
|
||||
var ss = '';
|
||||
for (i = 0; i < data.length; i++) {
|
||||
if(i == 3 ||i == 4 ||i == 5){
|
||||
ss = ss + "*";
|
||||
}
|
||||
else{
|
||||
ss = ss + data[i];
|
||||
}
|
||||
ss = ss.replace('"','').replace('"','');
|
||||
}
|
||||
//alert(ss);
|
||||
if(ss.length > 0){
|
||||
if(ss == "nul*"){
|
||||
$("#view_result").html("<strong>일치하는 정보가 없습니다.</strong>");
|
||||
}else{
|
||||
if(document.getElementById('rdo_email').checked){
|
||||
$('#txt_name2').val('');
|
||||
$('#txt_email').val('');
|
||||
$('#custom_domain1').val('');
|
||||
}
|
||||
$('#txt_name').val('');
|
||||
$('#txt_hp').val('');
|
||||
|
||||
document.getElementById('btn_id').disabled = true;
|
||||
$("#view_result").html("등록된 아이디는<br><strong>"+ss+"</strong> 입니다.");
|
||||
}
|
||||
}else{
|
||||
alert("일치하는 정보가 없습니다.");
|
||||
}
|
||||
|
||||
},
|
||||
error: function(err) {
|
||||
console.error("Error occurred:", err); // 콘솔에 에러 로그 출력
|
||||
alert("서버와의 통신 중 오류가 발생했습니다."); // 사용자에게 의미 있는 메시지 출력
|
||||
}
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
//비밀번호 변경
|
||||
function ufn_btn_pw2_click(){
|
||||
|
||||
let l_id = $('#txt_lost_id').val();
|
||||
let l_email = "";
|
||||
let l_domain = "";
|
||||
|
||||
if(document.getElementById('domain_list2').value == '-'){
|
||||
alert("메일도메인을 선택해 주세요.");
|
||||
document.getElementById('domain_list2').focus();
|
||||
return false;
|
||||
}
|
||||
if(document.getElementById('domain_list2').value == 'type'){
|
||||
if(document.getElementById('custom_domain2').value=="" || document.getElementById('custom_domain2').value=="type" ){
|
||||
alert("메일도메인을 입력해 주세요.");
|
||||
document.getElementById('custom_domain2').focus();
|
||||
return false;
|
||||
}
|
||||
l_domain = document.getElementById('custom_domain2').value;
|
||||
}else{
|
||||
l_domain = document.getElementById('domain_list2').value;
|
||||
}
|
||||
|
||||
l_email = $('#txt_lost_email2').val() + '@' + l_domain ;
|
||||
|
||||
$.ajax({
|
||||
url: '<?php echo G5_URL ?>/bbs/lost.php',
|
||||
type: "POST",
|
||||
datatype: "json",
|
||||
contentType: 'application/json; charset=utf-8',
|
||||
data: JSON.stringify({ // 데이터를 JSON 문자열로 변환
|
||||
'mb_id': l_id,
|
||||
'mb_email': l_email,
|
||||
}),
|
||||
success: function(data) {
|
||||
var ss = '';
|
||||
for (i = 0; i < data.length; i++) {
|
||||
if(i == 3 ||i == 4 ||i == 5){
|
||||
ss = ss + "*";
|
||||
}
|
||||
else{
|
||||
ss = ss + data[i];
|
||||
}
|
||||
ss = ss.replace('"','').replace('"','');
|
||||
}
|
||||
//alert(ss);
|
||||
if(ss.length > 0){
|
||||
if(ss == "nul*"){
|
||||
$("#view_result").html("<strong>일치하는 정보가 없습니다.</strong>");
|
||||
}else{
|
||||
|
||||
$('#txt_lost_id').val('');
|
||||
$('#txt_lost_email2').val('');
|
||||
|
||||
document.getElementById('btn_pw2').disabled = true;
|
||||
|
||||
$("#view_result").html("비밀번호를<br><strong>휴대전화번호</strong>로<br> 변경했습니다.");
|
||||
alert("비밀번호를 등록하신 휴대전화번호로 변경했습니다.");
|
||||
}
|
||||
//$("#view_result").html(ss);
|
||||
}else{
|
||||
alert("일치하는 정보가 없습니다.");
|
||||
}
|
||||
},
|
||||
error: function(err) {
|
||||
console.error("Error occurred:", err); // 콘솔에 에러 로그 출력
|
||||
alert("서버와의 통신 중 오류가 발생했습니다."); // 사용자에게 의미 있는 메시지 출력
|
||||
}
|
||||
});
|
||||
|
||||
}
|
||||
</script>
|
||||
<!--//popup_wrap-->
|
||||
<!-- </div>
|
||||
</body> -->
|
||||
|
||||
<!-- } 회원정보 찾기 끝 -->
|
||||
@@ -0,0 +1,39 @@
|
||||
<?php
|
||||
if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가
|
||||
|
||||
// add_stylesheet('css 구문', 출력순서); 숫자가 작을 수록 먼저 출력됨
|
||||
add_stylesheet('<link rel="stylesheet" href="' . $member_skin_url . '/style.css">', 0);
|
||||
?>
|
||||
|
||||
<!-- 비밀번호 재설정 시작 { -->
|
||||
<div id="pw_reset" class="new_win">
|
||||
<div class="new_win_con">
|
||||
<form name="fpasswordreset" action="<?php echo $action_url; ?>" onsubmit="return fpasswordreset_submit(this);" method="post" autocomplete="off">
|
||||
<fieldset id="info_fs">
|
||||
<p>새로운 비밀번호를 입력해주세요.</p>
|
||||
<label for="mb_id" class="sound_only">아이디</label>
|
||||
<br>
|
||||
<b>회원 아이디 : <?php echo get_text($_POST['mb_id']); ?></b>
|
||||
<label for="mb_pw" class="sound_only">새 비밀번호<strong class="sound_only">필수</strong></label>
|
||||
<input type="password" name="mb_password" id="mb_pw" required class="required frm_input full_input" size="30" placeholder="새 비밀번호">
|
||||
<label for="mb_pw2" class="sound_only">새 비밀번호 확인<strong class="sound_only">필수</strong></label>
|
||||
<input type="password" name="mb_password_re" id="mb_pw2" required class="required frm_input full_input" size="30" placeholder="새 비밀번호 확인">
|
||||
</fieldset>
|
||||
<div class="win_btn">
|
||||
<button type="submit" class="btn_submit">확인</button>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script>
|
||||
function fpasswordreset_submit(f) {
|
||||
if ($("#mb_pw").val() == $("#mb_pw2").val()) {
|
||||
alert("비밀번호 변경되었습니다. 다시 로그인해 주세요.");
|
||||
} else {
|
||||
alert("새 비밀번호와 비밀번호 확인이 일치하지 않습니다.");
|
||||
return false;
|
||||
}
|
||||
}
|
||||
</script>
|
||||
<!-- } 비밀번호 재설정 끝 -->
|
||||
@@ -0,0 +1,77 @@
|
||||
<?php
|
||||
if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가
|
||||
|
||||
// add_stylesheet('css 구문', 출력순서); 숫자가 작을 수록 먼저 출력됨
|
||||
add_stylesheet('<link rel="stylesheet" href="'.$member_skin_url.'/style.css">', 0);
|
||||
?>
|
||||
|
||||
<div id="point" class="new_win">
|
||||
<h1 id="win_title"><?php echo $g5['title'] ?></h1>
|
||||
|
||||
<div class="new_win_con2">
|
||||
<ul class="point_all">
|
||||
<li class="full_li">
|
||||
보유포인트
|
||||
<span><?php echo number_format($member['mb_point']); ?></span>
|
||||
</li>
|
||||
</ul>
|
||||
<ul class="point_list">
|
||||
<?php
|
||||
$sum_point1 = $sum_point2 = $sum_point3 = 0;
|
||||
|
||||
$i = 0;
|
||||
foreach((array) $list as $row){
|
||||
$point1 = $point2 = 0;
|
||||
$point_use_class = '';
|
||||
if ($row['po_point'] > 0) {
|
||||
$point1 = '+' .number_format($row['po_point']);
|
||||
$sum_point1 += $row['po_point'];
|
||||
} else {
|
||||
$point2 = number_format($row['po_point']);
|
||||
$sum_point2 += $row['po_point'];
|
||||
$point_use_class = 'point_use';
|
||||
}
|
||||
|
||||
$po_content = $row['po_content'];
|
||||
|
||||
$expr = '';
|
||||
if($row['po_expired'] == 1)
|
||||
$expr = ' txt_expired';
|
||||
?>
|
||||
<li class="<?php echo $point_use_class; ?>">
|
||||
<div class="point_top">
|
||||
<span class="point_tit"><?php echo $po_content; ?></span>
|
||||
<span class="point_num"><?php if ($point1) echo $point1; else echo $point2; ?></span>
|
||||
</div>
|
||||
<span class="point_date1"><i class="fa fa-clock-o" aria-hidden="true"></i> <?php echo $row['po_datetime']; ?></span>
|
||||
<span class="point_date<?php echo $expr; ?>">
|
||||
<?php if ($row['po_expired'] == 1) { ?>
|
||||
만료 <?php echo substr(str_replace('-', '', $row['po_expire_date']), 2); ?>
|
||||
<?php } else echo $row['po_expire_date'] == '9999-12-31' ? ' ' : $row['po_expire_date']; ?>
|
||||
</span>
|
||||
</li>
|
||||
<?php
|
||||
$i++;
|
||||
} // end foreach
|
||||
|
||||
if ($i == 0)
|
||||
echo '<li class="empty_li">자료가 없습니다.</li>';
|
||||
else {
|
||||
if ($sum_point1 > 0)
|
||||
$sum_point1 = "+" . number_format($sum_point1);
|
||||
$sum_point2 = number_format($sum_point2);
|
||||
}
|
||||
?>
|
||||
|
||||
<li class="point_status">
|
||||
소계
|
||||
<span><?php echo $sum_point1; ?></span>
|
||||
<span><?php echo $sum_point2; ?></span>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<?php echo get_paging(G5_IS_MOBILE ? $config['cf_mobile_pages'] : $config['cf_write_pages'], $page, $total_page, $_SERVER['SCRIPT_NAME'].'?'.$qstr.'&page='); ?>
|
||||
|
||||
<button type="button" onclick="javascript:window.close();" class="btn_close">창닫기</button>
|
||||
</div>
|
||||
@@ -0,0 +1,614 @@
|
||||
<?php include_once __DIR__ . '/asset_urls.php'; ?>
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
|
||||
<head>
|
||||
<!-- Google tag (gtag.js) -->
|
||||
<!-- Google tag (gtag.js) -->
|
||||
<script async src="https://www.googletagmanager.com/gtag/js?id=G-STZ2R5Q7HG"></script>
|
||||
<script>
|
||||
window.dataLayer = window.dataLayer || [];
|
||||
|
||||
function gtag() {
|
||||
dataLayer.push(arguments);
|
||||
}
|
||||
gtag('js', new Date());
|
||||
|
||||
gtag('config', 'G-STZ2R5Q7HG');
|
||||
</script>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>주요기능</title>
|
||||
<link rel="stylesheet" href="../css/reset.css" />
|
||||
<link rel="stylesheet" href="../css/font.css" />
|
||||
<link rel="stylesheet" href="../css/style.css" />
|
||||
<link rel="stylesheet" href="https://unpkg.com/aos@2.3.1/dist/aos.css" type="text/css" />
|
||||
<script src="https://unpkg.com/aos@2.3.1/dist/aos.js"></script>
|
||||
<script src="https://unpkg.com/lenis@1.1.9/dist/lenis.min.js"></script>
|
||||
<link rel="stylesheet" href="https://unpkg.com/lenis@1.1.9/dist/lenis.css">
|
||||
<script type="text/javascript" src="../js/jquery-3.6.1.min.js"></script>
|
||||
<script type="text/javascript" src="../js/jquery.mousewheel.min.js"></script>
|
||||
<script src="https://cdn.jsdelivr.net/npm/gsap@3.12.5/dist/gsap.min.js"></script>
|
||||
<script src="https://cdn.jsdelivr.net/npm/gsap@3.12.5/dist/ScrollTrigger.min.js"></script>
|
||||
<script src="https://cdn.jsdelivr.net/npm/gsap@3.12.5/dist/ScrollToPlugin.min.js"></script>
|
||||
<script type="text/javascript" src="../js/common.js"></script>
|
||||
<script type="text/javascript" src="../js/popup.js"></script>
|
||||
<script type="text/javascript" src="../js/primary.js"></script>
|
||||
<script>
|
||||
function goto(id) {
|
||||
console.log('로그발생');
|
||||
document.getElementById(id).scrollIntoView({
|
||||
behavior: "instant"
|
||||
});
|
||||
}
|
||||
</script>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<!-- "js__"로 시작하는 클래스는 only 자바스크립트용입니다. -->
|
||||
<!-- XXXX js__넣어서 css 작성 금지 XXXX -->
|
||||
<div class="wrapper">
|
||||
<input id="hid_mb_id" type="hidden" value="<?echo $_SESSION['session_id'];?>"></input>
|
||||
<!-- HEADER -->
|
||||
<?php include_once($member_skin_path.'/main_header.skin.php'); ?>
|
||||
<!-- //Header -->
|
||||
|
||||
|
||||
<!-- 모든 팝업페이지 경로 -->
|
||||
<?php
|
||||
include_once($member_skin_path.'/login.skin.php');
|
||||
include_once($member_skin_path.'/mypage01.skin.php');
|
||||
include_once($member_skin_path.'/register.skin.php');
|
||||
include_once($member_skin_path.'/register_form.skin.php');
|
||||
include_once($member_skin_path.'/mypage02.skin.php');
|
||||
include_once($member_skin_path.'/mypage03.skin.php');
|
||||
include_once($member_skin_path.'/sitemap.skin.php');
|
||||
include_once($member_skin_path.'/privacy.skin.php');
|
||||
include_once($member_skin_path.'/password_lost.skin.php');
|
||||
?>
|
||||
<!-- 모든 팝업페이지 경로 -->
|
||||
<!-- 컨텐츠 시작 -->
|
||||
<div class="container primary">
|
||||
<div class="mouse_mark js__mouse_mark" style="display:none"><span>SCROLL</span></div>
|
||||
<section class="intro">
|
||||
<div class="top js__dark">
|
||||
<h2 data-aos="fade-down" data-aos-duration="1000">주요기능</h2>
|
||||
<span>쉽고 편리하게 작업 할 수 있는 다양한 기능 탑재</span>
|
||||
</div>
|
||||
<div class="keyword">
|
||||
<i class="egbim_obj k"></i>
|
||||
<span>수많은 명령어들을 기능별로 그룹화하여<br><br class="brk">
|
||||
페이지별로 한눈에 볼수 있게 제공</span>
|
||||
<p>EG-BIM에는 1000여개가 넘는 수많은 기능과<br class="brk"> 명령어가 있습니다. <br>
|
||||
사용자가 찾기 쉽고 사용하기 쉽게<br class="brk"> 기능별 페이지를 구성하여 제공합니다.</p>
|
||||
</div>
|
||||
<div class="diagram_wrap" data-aos="fade-up" data-aos-duration="1000">
|
||||
<div class="dia_circles_wrap">
|
||||
<div class="circle_core"><span>명령어<br>전체보기</span></div>
|
||||
<div class="circle_dots">
|
||||
<div class="dot"></div>
|
||||
<div class="dot"></div>
|
||||
<div class="dot"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="dia_element e01">
|
||||
<i></i>
|
||||
<span class="dia_tit">디스플레이/ 보조기능<br><em>My Setting</em></span>
|
||||
</div>
|
||||
<div class="dia_element e02">
|
||||
<i></i>
|
||||
<span class="dia_tit">Draw/Edit +<br class="brk"> 분야별 특화명령어<br><em>명령어그룹</em></span>
|
||||
</div>
|
||||
<div class="dia_element e03">
|
||||
<i></i>
|
||||
<span class="dia_tit"><em>for Civil</em><br>특화명령어</span>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
<section class="route js__mouse_area">
|
||||
<div class="fix">
|
||||
<ul class="subs">
|
||||
<li>
|
||||
<span class="sub_tit">작업환경을<br class="brk"> 내스타일에 맞게 설정</span>
|
||||
<span class="mid_tit">My Setting</span>
|
||||
<span class="sub_text">
|
||||
작업공간의 색상 및 마우스 기능 설정 등 기본적인 Setting 항목과 그리드 및 스냅 등 <br>
|
||||
작업 중 수시로 변경해야하는 ON/OFF 항목으로 페이지를 구분하여 제공합니다.
|
||||
</span>
|
||||
</li>
|
||||
<li>
|
||||
<span class="sub_tit">Draw/Edit 명령어와 특화명령어가<br class="brk"> 기본으로 제공되는</span>
|
||||
<span class="mid_tit"><em>명령어그룹</em></span>
|
||||
<span class="sub_text">
|
||||
수많은 명령어들을 도형, 편집 등 기능별로 그룹화하여 제공 및 <br>
|
||||
별도 설치하여 사용하였던 분야별 특화명령어를 기본으로 제공
|
||||
</span>
|
||||
</li>
|
||||
<li>
|
||||
<span class="sub_tit">도로 및 구조의<br class="brk"> 특정 설계도면 작업을 위한</span>
|
||||
<span class="mid_tit"><em>for Civil</em></span>
|
||||
<span class="sub_text">
|
||||
설계도면 중 도로 분야의 도로 선형 및 횡단 작업을 위한 명령어와<br>
|
||||
구조분야의 철근배근 및 철근상세도, 집계표 작업을 위한 명령어 제공
|
||||
</span>
|
||||
</li>
|
||||
</ul>
|
||||
<div class="content">
|
||||
<!-- <div class="scroll_m">SCROLL</div> -->
|
||||
<ul class="tabs js__mouse_not">
|
||||
<li class="tabs_li"><a onclick="window.goto('sec1')">
|
||||
<b>My Setting</b>
|
||||
<ul>
|
||||
<li>디스플레이/마우스</li>
|
||||
<li>보조기능</li>
|
||||
</ul>
|
||||
</a></li>
|
||||
<li class="tabs_li"><a onclick="window.goto('sec2')">
|
||||
<b>Command</b>
|
||||
<ul>
|
||||
<li>도형</li>
|
||||
<li>수정</li>
|
||||
<li>편집</li>
|
||||
<li>문자</li>
|
||||
<li>치수/연산</li>
|
||||
<li>블록</li>
|
||||
<li>레이어</li>
|
||||
<li>뷰</li>
|
||||
<li>선택/조회</li>
|
||||
</ul>
|
||||
</a></li>
|
||||
<li class="tabs_li"><a onclick="window.goto('sec3')">
|
||||
<b>for Civil</b>
|
||||
<ul>
|
||||
<li>선형/횡단</li>
|
||||
<li>구조/배근</li>
|
||||
</ul>
|
||||
</a></li>
|
||||
</ul>
|
||||
<ul class="imgs">
|
||||
<li><a><img src="<?php echo egbim_img_url('primary_route_01.png'); ?>" alt=""></a></li>
|
||||
<li><a><img src="<?php echo egbim_img_url('primary_route_02.png'); ?>" alt=""></a></li>
|
||||
<li><a><img src="<?php echo egbim_img_url('primary_route_03.png'); ?>" alt=""></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<div id="sec1"></div>
|
||||
<div id="sec2"></div>
|
||||
<div id="sec3"></div>
|
||||
</section>
|
||||
<section class="layout_fix_left process">
|
||||
<div class="left" data-aos="fade-right" data-aos-duration="1000" data-aos-offest="-180">
|
||||
<div class="bg js__fixLeft_bg on"></div>
|
||||
<div class="bg js__fixLeft_bg"></div>
|
||||
<div class="bg js__fixLeft_bg"></div>
|
||||
<span class="mid_tit js__fixLeft_tit on">
|
||||
<font class="num">01. </font><em>스타일 상세보기창</em>
|
||||
</span>
|
||||
<span class="mid_tit js__fixLeft_tit">
|
||||
<font class="num">02. </font><em>블록창</em>
|
||||
</span>
|
||||
<span class="mid_tit js__fixLeft_tit">
|
||||
<font class="num">03. </font><em>인쇄창</em>
|
||||
</span>
|
||||
</div>
|
||||
<div class="right js__fixLeft_secs">
|
||||
<span class="mid_tit m" style="display: none;">
|
||||
<font class="num">01. </font>스타일 상세보기창
|
||||
</span>
|
||||
<div id="content1" class="style">
|
||||
<span class="sub_tit">
|
||||
선, 문자, 치수의<br class="brk"> 상세 스타일의 생성 및 수정
|
||||
</span>
|
||||
<div class="sub_text">
|
||||
사용하고 있는 스타일의 목록을 보여주며 상세한 미리보기창과 설정가능한 모든 옵션사항을 보여줍니다. <br>새로운 스타일을 생성하거나 수정할 수 있는 기능을 제공합니다.
|
||||
</div>
|
||||
<div class="sub_figs">
|
||||
<div class="imgs">
|
||||
<img src="<?php echo egbim_img_url('style_img_01.png'); ?>" alt="">
|
||||
</div>
|
||||
<div class="text">
|
||||
<b>선 스타일</b>
|
||||
<ul>
|
||||
<li>선꼴, 블록, 문자 등을 조합하여 원하는 선스타일을 제작</li>
|
||||
<li>미리보기창에서 선간격, 블록 및 문자간격 등 설정</li>
|
||||
<li>건설CALS의 표준 선꼴을 제공</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<div class="sub_figs">
|
||||
<div class="imgs">
|
||||
<img src="<?php echo egbim_img_url('style_img_02.png'); ?>" alt="">
|
||||
</div>
|
||||
<div class="text">
|
||||
<b>문자 스타일</b>
|
||||
<ul>
|
||||
<li>사용가능한 글꼴을 그룹화하여 제공</li>
|
||||
<li>미리보기창에서 크기,기울기 등 형상에 대한 옵션 설정</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<div class="sub_figs">
|
||||
<div class="imgs">
|
||||
<img src="<?php echo egbim_img_url('style_img_03.png'); ?>" alt="">
|
||||
</div>
|
||||
<div class="text">
|
||||
<b>치수 스타일</b>
|
||||
<ul>
|
||||
<li>치수선 형상 및 값에 대한 상세 옵션을 기능별로 구분</li>
|
||||
<li>이미지와 함께 표현 하여 이해도를 높임</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<span class="mid_tit m" style="display: none;">
|
||||
<font class="num">02. </font>블록창
|
||||
</span>
|
||||
<div id="content2" class="block">
|
||||
<span class="sub_tit">
|
||||
효율적인 작업을 위해<br class="brk"> 블록 라이브러리와 통합 블록창을 제공
|
||||
</span>
|
||||
<div class="sub_text">
|
||||
<span>
|
||||
다양한 종류의 블록을 라이브러리 형태로 쉽게 찾을 수 있게 제공하며,<br>
|
||||
블록의 생성과 함께 속성정보 확인 및 수정 등 관리 할 수 있는 통합블록창을 제공합니다.
|
||||
</span>
|
||||
</div>
|
||||
<div class="sub_figs">
|
||||
<div class="imgs">
|
||||
<div class="fig01"><span>블록 라이브러리</span></div>
|
||||
<div class="fig02"><span>블록 상세창</span></div>
|
||||
<i></i>
|
||||
</div>
|
||||
<div class="text">
|
||||
<b>블록 라이브러리와 연결</b>
|
||||
<ul>
|
||||
<li>일반블록, 속성블록, 외부블록(참조)을 하나의 관리창 안에서 확인 및 수정기능 제공</li>
|
||||
<li>블록 라이브러리와 연계하여 원하는 블록을 쉽게 찾아 추가</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<span class="mid_tit m" style="display: none;">
|
||||
<font class="num">03. </font>인쇄창
|
||||
</span>
|
||||
<div id="content3" class="print_area">
|
||||
<span class="sub_tit">
|
||||
도곽인식기능으로 도면마다<br class="brk"> 영역지정 없이 한번에 편리하게 인쇄
|
||||
</span>
|
||||
<div class="sub_text">
|
||||
도곽영역을 자동으로 인식하여 한 파일 안에 여러장의 도면도, 긴 도면도 문제 없이 쉽게 출력 할 수 있습니다.
|
||||
</div>
|
||||
<div class="sub_figs">
|
||||
<div class="imgs">
|
||||
<div class="fig01"><span>여러장 도면 인쇄</span></div>
|
||||
<div class="fig02"><span>길이가 긴 도면 인쇄</span></div>
|
||||
</div>
|
||||
<div class="text">
|
||||
<b>인쇄영역 자동지정 및 도곽영역 및 스케일 자동인식</b>
|
||||
<ul>
|
||||
<li>인쇄영역을 일일이 지정하거나 용지길이를 조정할 필요없이 자동으로 인쇄영역을 잡아주는 기능</li>
|
||||
<li>도곽인식기능으로 여러장의 도면도, 길이가 긴 도면도 관계없이 한번에 출력 가능</li>
|
||||
<li>사용자가 지정한 블록도 인쇄영역으로 지정 가능</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
</div>
|
||||
<!-- //컨텐츠 시작 -->
|
||||
<!-- FOOTER -->
|
||||
<?php include_once($member_skin_path.'/main_footer.skin.php'); ?>
|
||||
<!-- //FOOTER -->
|
||||
</div>
|
||||
|
||||
<script>
|
||||
AOS.init();
|
||||
|
||||
const lenis = new Lenis()
|
||||
lenis.on('scroll', (e) => {
|
||||
// console.log(e)
|
||||
})
|
||||
lenis.on('scroll', ScrollTrigger.update)
|
||||
gsap.ticker.add((time) => {
|
||||
lenis.raf(time * 1000)
|
||||
})
|
||||
gsap.ticker.lagSmoothing(0)
|
||||
</script>
|
||||
</body>
|
||||
|
||||
<script>
|
||||
$(function(){
|
||||
// footer family site toggle
|
||||
$('.family_btn').click(function(e){
|
||||
e.stopPropagation();
|
||||
$('.family_list, .family_btn').toggleClass('family_on');
|
||||
});
|
||||
$(document).click(function(e){
|
||||
if(!$(e.target).closest('.family_wrap').length){
|
||||
$('.family_list, .family_btn').removeClass('family_on');
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
// 회원 탈퇴
|
||||
function member_leave() {
|
||||
if (confirm("회원에서 탈퇴 하시겠습니까?"))
|
||||
location.href = '<?php echo G5_BBS_URL ?>/member_leave.php';
|
||||
}
|
||||
// 회원 탈퇴
|
||||
|
||||
|
||||
let x = document.cookie;
|
||||
if(x.includes("tmp_1=John")){
|
||||
deleteCookie("tmp_1");
|
||||
$('#pop_mypage02').show();
|
||||
}
|
||||
|
||||
function deleteCookie(name) {
|
||||
document.cookie = name + "=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/egbim;";
|
||||
document.cookie = name + "=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/egbim/bbs;";
|
||||
document.cookie = name + "=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/egbim/faq;";
|
||||
document.cookie = name + "=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/egbim/qa;";
|
||||
}
|
||||
function getCookie(cname) {
|
||||
let name = cname + "=";
|
||||
let decodedCookie = decodeURIComponent(document.cookie);
|
||||
let ca = decodedCookie.split(';');
|
||||
for(let i = 0; i <ca.length; i++) {
|
||||
let c = ca[i];
|
||||
while (c.charAt(0) == ' ') {
|
||||
c = c.substring(1);
|
||||
}
|
||||
if (c.indexOf(name) == 0) {
|
||||
return c.substring(name.length, c.length);
|
||||
}
|
||||
}
|
||||
return "";
|
||||
}
|
||||
|
||||
//descope 로그인, 로그아웃 js
|
||||
function updateHeaderMenu() {
|
||||
var isLoggedIn = !!sessionStorage.getItem("sessionJwt");
|
||||
// role 체크 예시 (로그인 시 저장해놓은 값)
|
||||
var isAdmin = sessionStorage.getItem('userRole') === 'super';
|
||||
|
||||
if (isLoggedIn) {
|
||||
$('.my_join2, .my_login2').show();
|
||||
$('.my_join, .my_login').hide();
|
||||
|
||||
// 마이페이지/관리자 메뉴 동적 출력
|
||||
if (isAdmin) {
|
||||
$('#my_join2').html("<a href='http://eg-bim.com/egbim/adm/index.php' target='_blank'>관리페이지</a>");
|
||||
} else {
|
||||
$('#my_join2').html("<a href='javascript:mypage03();'>마이페이지</a>");
|
||||
}
|
||||
} else {
|
||||
$('.my_join2, .my_login2').hide();
|
||||
$('.my_join, .my_login').show();
|
||||
$('#my_join2').html(""); // 혹시모를 내용 초기화
|
||||
}
|
||||
}
|
||||
|
||||
function descopeLogout() {
|
||||
fetch('/egbim/skin/member/basic/descope_logout.php', {
|
||||
method: 'POST',
|
||||
credentials: 'include' // PHPSESSID 쿠키 전송
|
||||
})
|
||||
.then(res => {
|
||||
if (!res.ok) throw new Error('서버 로그아웃 실패');
|
||||
// 1) 로컬 저장소 정리
|
||||
// sessionStorage.removeItem("refreshJwt");
|
||||
// sessionStorage.removeItem("sessionJwt");
|
||||
// sessionStorage.removeItem("userRole");
|
||||
// sessionStorage.removeItem("userName");
|
||||
// sessionStorage.removeItem("loginId");
|
||||
|
||||
sessionStorage.clear();
|
||||
localStorage.clear();
|
||||
// 2) UI 갱신
|
||||
updateHeaderMenu();
|
||||
// 3) 로그인 페이지로 이동
|
||||
window.location.href = '/egbim/index.php';
|
||||
})
|
||||
.catch(err => {
|
||||
console.error(err);
|
||||
alert('로그아웃 중 오류가 발생했습니다.');
|
||||
});
|
||||
}
|
||||
|
||||
$(document).ready(function() {
|
||||
// 기존에 있던 updateHeaderMenu() 호출 뒤에
|
||||
$('#my_login2 a').off('click').on('click', function(e){
|
||||
e.preventDefault();
|
||||
descopeLogout();
|
||||
});
|
||||
});
|
||||
|
||||
$(document).ready(function() {
|
||||
updateHeaderMenu();
|
||||
// (필요하다면, 로그인 성공 후에도 항상 updateHeaderMenu(); 호출)
|
||||
});
|
||||
|
||||
//descope login
|
||||
$('#flogin button[type=submit]').click(function(e){
|
||||
e.preventDefault();
|
||||
let mb_id = $('#login_id').val();
|
||||
let mb_password = $('#login_pw').val();
|
||||
|
||||
$.ajax({
|
||||
url : '/egbim/skin/member/basic/descope_login.php',
|
||||
data : {
|
||||
'mb_id' : mb_id,
|
||||
'mb_password' : mb_password
|
||||
},
|
||||
type : "POST",
|
||||
dataType : "json",
|
||||
success : function(res){
|
||||
if(res.status === "ok") {
|
||||
// 토큰 저장
|
||||
// sessionStorage.setItem("refreshJwt", res.refreshJwt);
|
||||
sessionStorage.setItem("sessionJwt", res.sessionJwt);
|
||||
|
||||
// ✅ 사용자 정보 저장
|
||||
if (res.user) {
|
||||
sessionStorage.setItem("loginId", res.user.loginIds?.[0] || '');
|
||||
sessionStorage.setItem("userName", res.user.name || '');
|
||||
sessionStorage.setItem("company", res.user.customAttributes?.company || '');
|
||||
sessionStorage.setItem("familyCompany", res.user.customAttributes?.familyCompany || '');
|
||||
sessionStorage.setItem("position", res.user.customAttributes?.position || '');
|
||||
sessionStorage.setItem("team", res.user.customAttributes?.team || '');
|
||||
sessionStorage.setItem("familyUniqueKey", res.user.customAttributes?.familyUniqueKey || '');
|
||||
sessionStorage.setItem("phone", res.user.phone || '');
|
||||
}
|
||||
|
||||
// ✅ 추가: 관리자 등 정보 저장
|
||||
if(res.user && res.user.roleNames && res.user.roleNames[0])
|
||||
sessionStorage.setItem("userRole", res.user.roleNames[0]);
|
||||
else
|
||||
sessionStorage.removeItem("userRole");
|
||||
|
||||
// ✅ 로그인 후 메뉴 갱신
|
||||
updateHeaderMenu();
|
||||
|
||||
// UI 처리
|
||||
$('.popup_wrap').hide();
|
||||
$('body').css('overflow', '');
|
||||
lenis.start();
|
||||
// alert('로그인 하셨습니다.');
|
||||
} else {
|
||||
alert(res.message || "로그인 실패");
|
||||
|
||||
// 🔴 실패 횟수에 따라 안내 배너 교체
|
||||
if (res.failCount && res.failCount >= 8) {
|
||||
updateLoginBanner("fail");
|
||||
}
|
||||
}
|
||||
},
|
||||
error : function(err){
|
||||
alert(err.statusText || "통신 오류");
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
// ✅ 배너 교체 함수
|
||||
function updateLoginBanner(type = "default") {
|
||||
const $banner = $('#login_notice_banner');
|
||||
if (!$banner.length) return;
|
||||
|
||||
if (type === "default") {
|
||||
$banner.css({ background: "#063e01ff", color: "#fff" });
|
||||
$banner.find("strong").text("[로그인 시스템 변경 안내]");
|
||||
$banner.find("p.left").html(`
|
||||
더 나은 보안을 위해 2025년 8월 8일부터 로그인 시스템이 변경되었습니다.<br>
|
||||
기존 회원 또한 신규 시스템에 맞춰 재가입을 진행해주시기 바랍니다.
|
||||
`);
|
||||
$banner.find("p:last").html(`※ 로그인 및 가입 관련 문의: <strong>010-8721-7453</strong>`);
|
||||
}
|
||||
|
||||
if (type === "fail") {
|
||||
$banner.css({ background: "#6a0202ff", color: "#faf6f6ff" });
|
||||
$banner.find("strong").text("[로그인 시도 제한 안내]");
|
||||
$banner.find("p.left").html(`
|
||||
비밀번호 입력을 <strong>7회 이상 연속 실패</strong>하셨습니다.<br>
|
||||
<strong>8번째 시도부터 3분 대기</strong>가 적용됩니다.<br>
|
||||
10회 이상 실패 시 계정이 잠금 처리됩니다.
|
||||
`);
|
||||
$banner.find("p:last").text("");
|
||||
}
|
||||
}
|
||||
|
||||
//회원가입 약관동의
|
||||
// $('#fregister button[type=submit]').click(function(e){
|
||||
// e.preventDefault();
|
||||
// let agree11 = $('#agree11').val();
|
||||
// let agree21 = $('#agree21').val();
|
||||
// $.ajax({
|
||||
// url : '<?php echo G5_URL ?>/bbs/register_form.php',
|
||||
// type : "POST",
|
||||
// datatype : "json",
|
||||
// contentType: 'application/json; charset=utf-8',
|
||||
// data : {
|
||||
// 'agree11' : agree11,
|
||||
// 'agree21' : agree21
|
||||
// },
|
||||
// success : function(data){
|
||||
// var ss='';
|
||||
// for(i=0; i<data.length; i++){
|
||||
// ss=ss + data[i];
|
||||
// }
|
||||
// },
|
||||
// error : function(err){
|
||||
// alert(err);
|
||||
// }
|
||||
// });
|
||||
// });
|
||||
|
||||
// 이지빔 프로그램 회원가입 url 쿼리스트링 파싱 함수
|
||||
function getQueryString(name) {
|
||||
const intro = document.querySelector('.intro_wrap');
|
||||
intro.style.display = "none";
|
||||
const mainMask = document.querySelector('.main_mask');
|
||||
mainMask.classList.add('skip');
|
||||
// mainMask.style.aimation = 'none';
|
||||
const urlParams = new URLSearchParams(window.location.search);
|
||||
return urlParams.get(name);
|
||||
}
|
||||
|
||||
$(document).ready(function() {
|
||||
const popupParam = getQueryString('popup');
|
||||
|
||||
if (popupParam === 'signup') {
|
||||
console.log('쿼리 감지: signup → 회원가입 팝업 자동 오픈 시도');
|
||||
$('#pop_agreement').show(); // 팝업 보여주기
|
||||
|
||||
// 스크롤 잠금 (사용 중이면)
|
||||
$('body').css('overflow', 'hidden');
|
||||
if (typeof lenis !== 'undefined') {
|
||||
lenis.stop();
|
||||
}
|
||||
}
|
||||
|
||||
// 팝업 닫기 버튼 이벤트 연결
|
||||
$('#pop_agreement .btn_close').on('click', function() {
|
||||
$('#pop_agreement').hide();
|
||||
$('body').css('overflow', '');
|
||||
if (typeof lenis !== 'undefined') {
|
||||
lenis.start();
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
//이지빔 프로그램 비밀번호 재설정 url 쿼리스트링 파싱 함수
|
||||
$(document).ready(function() {
|
||||
const urlParams = new URLSearchParams(window.location.search);
|
||||
const popup = urlParams.get('popup');
|
||||
const token = urlParams.get('t');
|
||||
|
||||
if (popup === 'pwreset') {
|
||||
// 팝업 전체 열기
|
||||
$('#pop_search').show();
|
||||
$('body').css('overflow', 'hidden');
|
||||
|
||||
// 내부 컨텐츠 모두 숨기기
|
||||
$('#pop_search .popup_contents_wrap').hide();
|
||||
|
||||
if (token) {
|
||||
// 토큰이 있으면 비밀번호 재설정 단계
|
||||
if (!sessionStorage.getItem('pwreset_shown')) {
|
||||
$('#password_reset').show();
|
||||
sessionStorage.setItem('pwreset_shown', '1');
|
||||
}
|
||||
} else {
|
||||
// 토큰이 없으면 아이디 입력 단계 (첫 번째 .popup_contents_wrap)
|
||||
$('#pop_search .popup_contents_wrap').first().show();
|
||||
}
|
||||
}
|
||||
|
||||
// 닫기 버튼
|
||||
$('#pop_search .btn_close').on('click', function() {
|
||||
$('#pop_search').hide();
|
||||
$('body').css('overflow', '');
|
||||
});
|
||||
});
|
||||
</script>
|
||||
@@ -0,0 +1,799 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<!-- Google tag (gtag.js) -->
|
||||
<!-- Google tag (gtag.js) -->
|
||||
<script async src="https://www.googletagmanager.com/gtag/js?id=G-STZ2R5Q7HG"></script>
|
||||
<script>
|
||||
window.dataLayer = window.dataLayer || [];
|
||||
function gtag(){dataLayer.push(arguments);}
|
||||
gtag('js', new Date());
|
||||
|
||||
gtag('config', 'G-STZ2R5Q7HG');
|
||||
</script>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>주요기능</title>
|
||||
<link rel="stylesheet" href="../css/reset.css"/>
|
||||
<link rel="stylesheet" href="../css/font.css"/>
|
||||
<link rel="stylesheet" href="../css/style.css"/>
|
||||
<link rel="stylesheet" href="https://unpkg.com/aos@2.3.1/dist/aos.css" type="text/css"/>
|
||||
<script src="https://unpkg.com/aos@2.3.1/dist/aos.js"></script>
|
||||
<script src="https://unpkg.com/lenis@1.1.9/dist/lenis.min.js"></script>
|
||||
<link rel="stylesheet" href="https://unpkg.com/lenis@1.1.9/dist/lenis.css">
|
||||
<script type="text/javascript" src="../js/jquery-3.6.1.min.js"></script>
|
||||
<script type="text/javascript" src="../js/jquery.mousewheel.min.js"></script>
|
||||
<script src="https://cdn.jsdelivr.net/npm/gsap@3.12.5/dist/gsap.min.js"></script>
|
||||
<script src="https://cdn.jsdelivr.net/npm/gsap@3.12.5/dist/ScrollTrigger.min.js"></script>
|
||||
<script src="https://cdn.jsdelivr.net/npm/gsap@3.12.5/dist/ScrollToPlugin.min.js"></script>
|
||||
<script type="text/javascript" src="../js/common.js"></script>
|
||||
<script type="text/javascript" src="../js/popup.js"></script>
|
||||
<script type="text/javascript" src="../js/primary.js"></script>
|
||||
<script>
|
||||
function goto(id) {
|
||||
console.log('로그발생');
|
||||
document.getElementById(id).scrollIntoView({behavior: "instant"});
|
||||
}
|
||||
</script>
|
||||
</head>
|
||||
<body>
|
||||
<!-- "js__"로 시작하는 클래스는 only 자바스크립트용입니다. -->
|
||||
<!-- XXXX js__넣어서 css 작성 금지 XXXX -->
|
||||
<div class="wrapper">
|
||||
<input id="hid_mb_id" type="hidden" value="<?echo $_SESSION['session_id'];?>"></input>
|
||||
<!-- HEADER -->
|
||||
<header class="js__header">
|
||||
<?php include_once($member_skin_path.'/main_header.skin.php'); ?>
|
||||
</header>
|
||||
<!-- //Header -->
|
||||
<!-- floating_menu -->
|
||||
<div class="floating_menu">
|
||||
<ul>
|
||||
<li class="floating_faq"><a href="<?php echo G5_BBS_URL ?>/faq.php">
|
||||
<i></i>
|
||||
<span>FAQ</span>
|
||||
</a></li>
|
||||
<li class="floating_buy"><a href="<?php echo G5_BBS_URL ?>/buy.php">
|
||||
<i></i>
|
||||
<span>구매하기</span>
|
||||
</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<!-- //floating_menu -->
|
||||
|
||||
<!-- 모든 팝업페이지 경로 -->
|
||||
<?php
|
||||
include_once($member_skin_path.'/login.skin.php');
|
||||
include_once($member_skin_path.'/mypage01.skin.php');
|
||||
include_once($member_skin_path.'/register.skin.php');
|
||||
include_once($member_skin_path.'/register_form.skin.php');
|
||||
include_once($member_skin_path.'/mypage02.skin.php');
|
||||
include_once($member_skin_path.'/mypage03.skin.php');
|
||||
include_once($member_skin_path.'/sitemap.skin.php');
|
||||
include_once($member_skin_path.'/privacy.skin.php');
|
||||
include_once($member_skin_path.'/password_lost.skin.php');
|
||||
?>
|
||||
<!-- 모든 팝업페이지 경로 -->
|
||||
<!-- 컨텐츠 시작 -->
|
||||
<div class="container primary">
|
||||
<div class="mouse_mark js__mouse_mark" style="display:none"><span>SCROLL</span></div>
|
||||
<section class="intro">
|
||||
<div class="top js__dark">
|
||||
<h2 data-aos="fade-down" data-aos-duration="1000">주요기능</h2>
|
||||
<span>쉽고 편리하게 작업 할 수 있는 다양한 기능 탑재</span>
|
||||
</div>
|
||||
<div class="keyword">
|
||||
<i class="egbim_obj k"></i>
|
||||
<span>수많은 명령어들을 기능별로 그룹화하여<br>
|
||||
페이지별로 한눈에 볼수 있게 제공</span>
|
||||
<p>EG-BIM에는 1000여개가 넘는 수많은 기능과 명령어가 있습니다. <br>
|
||||
사용자가 찾기 쉽고 사용하기 쉽게 기능별 페이지를 구성하여 제공합니다.</p>
|
||||
</div>
|
||||
<div class="condition">
|
||||
<div class="diagram_wrap" data-aos="fade-up" data-aos-duration="1000">
|
||||
<div class="dia_element_top">
|
||||
<div class="dia_element dia_element01">
|
||||
<i></i>
|
||||
<span class="dia_tit">디스플레이/ 보조기능<br><em>My Setting</em></span>
|
||||
</div>
|
||||
<div class="dia_element dia_element02">
|
||||
<i></i>
|
||||
<span class="dia_tit">Draw/Edit +분야별 특화명령어<br><em>명령어그룹</em></span>
|
||||
</div>
|
||||
<div class="dia_element dia_element03">
|
||||
<i></i>
|
||||
<span class="dia_tit"><em>for Civil</em><br>특화명령어</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="quantum_wrap">
|
||||
<div class="quantum">
|
||||
<div class="dia_circles_wrap">
|
||||
<div class="circle_core">
|
||||
<span>명령어<br>전체보기</span>
|
||||
</div>
|
||||
<div class="circle_dots">
|
||||
<div class="dot"></div>
|
||||
<div class="dot"></div>
|
||||
<div class="dot"></div>
|
||||
</div>
|
||||
</div>
|
||||
<img class="atom_all" src="../img/atom_obj.svg" width='100%'>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section class="route js__mouse_area">
|
||||
<div class="fix">
|
||||
<ul class="subs">
|
||||
<li>
|
||||
<span class="sub_tit">작업환경을 내스타일에 맞게 설정</span>
|
||||
<span class="mid_tit">My Setting</span>
|
||||
<span class="sub_text">
|
||||
작업공간의 색상 및 마우스 기능 설정등 기본적인 Setting 항목과 그리드 및 스냅 등 <br>
|
||||
작업 중 수시로 변경해야하는 ON/OFF 항목으로 페이지를 구분하여 제공합니다
|
||||
</span>
|
||||
</li>
|
||||
<li>
|
||||
<span class="sub_tit">Draw/Edit 명령어와 특화명령어가 기본으로 제공되는</span>
|
||||
<span class="mid_tit"><em>명령어그룹</em></span>
|
||||
<span class="sub_text">
|
||||
수많은 명령어들을 도형,편집 등 기능별로 그룹화하여 제공 <br>
|
||||
별도 설치하여 사용하였던 분야별 특화명령어를 기본으로 제공
|
||||
</span>
|
||||
</li>
|
||||
<li>
|
||||
<span class="sub_tit">도로 및 구조의 특정 설계도면 작업을 위한</span>
|
||||
<span class="mid_tit"><em>for Civil</em></span>
|
||||
<span class="sub_text">
|
||||
설계도면 중 도로분야의 도로 선형 및 횡단 작업을 위한 명령어와<br>
|
||||
구조분야의 철근배근 및 철근상세도, 집계표 작업을 위한 명령어 제공
|
||||
</span>
|
||||
</li>
|
||||
</ul>
|
||||
<div class="content">
|
||||
<ul class="tabs js__mouse_not">
|
||||
<li class="tabs_li"><a onclick="window.goto('sec1')">
|
||||
<b>My Setting</b>
|
||||
<ul>
|
||||
<li>디스플레이/마우스</li>
|
||||
<li>보조기능</li>
|
||||
</ul>
|
||||
</a></li>
|
||||
<li class="tabs_li"><a onclick="window.goto('sec2')">
|
||||
<b>Command</b>
|
||||
<ul>
|
||||
<li>도형</li>
|
||||
<li>수정</li>
|
||||
<li>편집</li>
|
||||
<li>문자</li>
|
||||
<li>치수/연산</li>
|
||||
<li>블록</li>
|
||||
<li>레이어</li>
|
||||
<li>뷰</li>
|
||||
<li>선택/조회</li>
|
||||
</ul>
|
||||
</a></li>
|
||||
<li class="tabs_li"><a onclick="window.goto('sec3')">
|
||||
<b>for Civil</b>
|
||||
<ul>
|
||||
<li>선형/횡단</li>
|
||||
<li>구조/배근</li>
|
||||
</ul>
|
||||
</a></li>
|
||||
</ul>
|
||||
|
||||
<ul class="imgs">
|
||||
<li><a><img src="../img/primary_route_01.png" alt=""></a></li>
|
||||
<li><a><img src="../img/primary_route_02.png" alt=""></a></li>
|
||||
<li><a><img src="../img/primary_route_03.png" alt=""></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<div id="sec1"></div>
|
||||
<div id="sec2"></div>
|
||||
<div id="sec3"></div>
|
||||
</section>
|
||||
|
||||
<section class="layout_fix_left process">
|
||||
<div class="left" data-aos="fade-right" data-aos-duration="1000">
|
||||
<div class="bg js__fixLeft_bg on"></div>
|
||||
<div class="bg js__fixLeft_bg"></div>
|
||||
<div class="bg js__fixLeft_bg"></div>
|
||||
<span class="mid_tit js__fixLeft_tit on"><font class="num">01. </font><em>스타일 상세보기창</em></span>
|
||||
<span class="mid_tit js__fixLeft_tit"><font class="num">02. </font><em>블록창</em></span>
|
||||
<span class="mid_tit js__fixLeft_tit"><font class="num">03. </font><em>인쇄창</em></span>
|
||||
</div>
|
||||
<div class="right js__fixLeft_secs">
|
||||
<div class="style">
|
||||
<span class="sub_tit">
|
||||
선, 문자, 치수의 상세 스타일의 생성 및 수정
|
||||
</span>
|
||||
<div class="sub_text">
|
||||
사용하고 있는 스타일의 목록을 보여주며 상세한 미리보기창과 설정가능한 모든 옵션사항을 보여줍니다. <br>새로운 스타일을 생성하거나 수정할 수 있는 기능을 제공합니다.
|
||||
</div>
|
||||
<div class="sub_figs">
|
||||
<div class="imgs">
|
||||
<img src="../img/style_img_01.png" alt="">
|
||||
</div>
|
||||
<div class="text">
|
||||
<b>선 스타일</b>
|
||||
<ul>
|
||||
<li>선꼴,블록,문자등을 조합하여 원하는 선스타일을 제작</li>
|
||||
<li>미리보기창에서 선간격, 블록 및 문자간격 등 설정</li>
|
||||
<li>건설CALS의 표준 선꼴을 제공</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<div class="sub_figs">
|
||||
<div class="imgs">
|
||||
<img src="../img/style_img_02.png" alt="">
|
||||
</div>
|
||||
<div class="text">
|
||||
<b>문자 스타일</b>
|
||||
<ul>
|
||||
<li>사용가능한 글꼴을 그룹화하여 제공</li>
|
||||
<li>미리보기창에서 크기,기울기 등 형상에 대한 옵션 설정</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<div class="sub_figs">
|
||||
<div class="imgs">
|
||||
<img src="../img/style_img_03.png" alt="">
|
||||
</div>
|
||||
<div class="text">
|
||||
<b>치수 스타일</b>
|
||||
<ul>
|
||||
<li>치수선 형상 및 값에 대한 상세 옵션을 기능별로 구분</li>
|
||||
<li>이미지와 함께 표현 하여 이해도를 높임</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="block">
|
||||
<span class="sub_tit">
|
||||
효율적인 작업을 위해 블록 라이브러리와 통합 블록창을 제공
|
||||
</span>
|
||||
<div class="sub_text">
|
||||
<span>
|
||||
다양한 종류의 블록을 라이브러리 형태로 쉽게 찾을수 있게 제공하며,<br>
|
||||
블록의 생성과 함께 속성정보 확인 및 수정 등 관리 할수 있는 통합블록창을 제공합니다.
|
||||
</span>
|
||||
</div>
|
||||
<div class="sub_figs">
|
||||
<div class="imgs">
|
||||
<img src="../img/block_img_01.png" alt="">
|
||||
</div>
|
||||
<div class="text">
|
||||
<b>블록라이브러리와 연결</b>
|
||||
<ul>
|
||||
<li>일반블록, 속성블록, 외부블록(참조)을 하나의 관리창 안에서 확인 및 수정기능 제공</li>
|
||||
<li>블록라이브러리와 연계하여 원하는 블록을 쉽게 찾아 추가</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="print_area">
|
||||
<span class="sub_tit">
|
||||
도곽인식기능으로 도면마다 영역지정 없이 한번에 편리하게 인쇄
|
||||
</span>
|
||||
<div class="sub_text">
|
||||
도곽영역을 자동으로 인식하여 한 파일안에 여러장의 도면도, 긴도면도 문제 없이쉽게 출력 할 수 있습니다
|
||||
</div>
|
||||
<div class="sub_figs">
|
||||
<div class="imgs">
|
||||
<img src="../img/printarea_img_01.png" alt="">
|
||||
</div>
|
||||
<div class="text">
|
||||
<b>인쇄영역 자동지정 및 도곽영역 및 스케일 자동인식</b>
|
||||
<ul>
|
||||
<li>인쇄영역을 일일이 지정하거나 용지길이를 조정할 필요없이 자동으로 인쇄영역을 잡아주는 기능</li>
|
||||
<li>도곽인식기능으로 여러장의 도면도, 길이가 긴 도면도 관계없이 한번에 출력 가능</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
</div>
|
||||
<!-- //컨텐츠 시작 -->
|
||||
<!-- FOOTER -->
|
||||
<button class="btn_top js__top" onclick="window.scrollTo(0,0);"><div class="arrow"></div></button>
|
||||
<footer class="footer_off">
|
||||
<?php include_once($member_skin_path.'/main_footer.skin.php'); ?>
|
||||
</footer>
|
||||
<!-- //FOOTER -->
|
||||
</div>
|
||||
<script>
|
||||
AOS.init();
|
||||
|
||||
const lenis = new Lenis()
|
||||
lenis.on('scroll', (e) => {
|
||||
// console.log(e)
|
||||
})
|
||||
lenis.on('scroll', ScrollTrigger.update)
|
||||
gsap.ticker.add((time)=>{
|
||||
lenis.raf(time * 1000)
|
||||
})
|
||||
gsap.ticker.lagSmoothing(0)
|
||||
</script>
|
||||
|
||||
</body>
|
||||
|
||||
<script>
|
||||
// 회원 탈퇴
|
||||
function member_leave() {
|
||||
if (confirm("회원에서 탈퇴 하시겠습니까?"))
|
||||
location.href = '<?php echo G5_BBS_URL ?>/member_leave.php';
|
||||
}
|
||||
// 회원 탈퇴
|
||||
|
||||
if($('#hid_mb_id').val()==''){
|
||||
document.getElementById('my_join2').style.display = 'none';
|
||||
document.getElementById('my_login2').style.display = 'none';
|
||||
document.getElementById('my_join').style.display = '';
|
||||
document.getElementById('my_login').style.display = '';
|
||||
}else{
|
||||
document.getElementById('my_join2').style.display = '';
|
||||
document.getElementById('my_login2').style.display = '';
|
||||
document.getElementById('my_join').style.display = 'none';
|
||||
document.getElementById('my_login').style.display = 'none';
|
||||
}
|
||||
let x = document.cookie;
|
||||
if(x.includes("tmp_1=John")){
|
||||
deleteCookie("tmp_1");
|
||||
$('#pop_mypage02').show();
|
||||
}
|
||||
function deleteCookie(name) {
|
||||
document.cookie = name + "=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/egbim;";
|
||||
document.cookie = name + "=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/egbim/bbs;";
|
||||
document.cookie = name + "=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/egbim/faq;";
|
||||
document.cookie = name + "=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/egbim/qa;";
|
||||
}
|
||||
function getCookie(cname) {
|
||||
let name = cname + "=";
|
||||
let decodedCookie = decodeURIComponent(document.cookie);
|
||||
let ca = decodedCookie.split(';');
|
||||
for(let i = 0; i <ca.length; i++) {
|
||||
let c = ca[i];
|
||||
while (c.charAt(0) == ' ') {
|
||||
c = c.substring(1);
|
||||
}
|
||||
if (c.indexOf(name) == 0) {
|
||||
return c.substring(name.length, c.length);
|
||||
}
|
||||
}
|
||||
return "";
|
||||
}
|
||||
//alert(getCookie("tmp_1"));
|
||||
//로그인
|
||||
$('#flogin button[type=submit]').click(function(e){
|
||||
e.preventDefault();
|
||||
let mb_id = $('#login_id').val();
|
||||
let mb_password = $('#login_pw').val();
|
||||
//alert('<?php echo G5_URL ?>/bbs/login.php');
|
||||
$.ajax({
|
||||
url : '<?php echo G5_URL ?>/bbs/login_check_tova.php',
|
||||
data : {
|
||||
'mb_id' : mb_id,
|
||||
'mb_password' : mb_password
|
||||
},
|
||||
type : "POST",
|
||||
datatype : "json",
|
||||
success : function(data){
|
||||
var ss='';
|
||||
for(i=0; i<data.length; i++){
|
||||
ss=ss + data[i];
|
||||
}
|
||||
//alert(ss.replace('"','').replace('"',''));
|
||||
if(ss.replace('"','').replace('"','') == "success" || ss.replace('"','').replace('"','') == "super"){
|
||||
//$(".popup_wrap").show();
|
||||
$('.btn_close').hide();
|
||||
$('#pop_login').hide();
|
||||
$('#hid_mb_id').val(mb_id);
|
||||
document.getElementById('my_join2').style.display = '';
|
||||
document.getElementById('my_login2').style.display = '';
|
||||
document.getElementById('my_join').style.display = 'none';
|
||||
document.getElementById('my_login').style.display = 'none';
|
||||
//location.href="<?php echo G5_URL ?>/bbs/session.php?id="+mb_id;
|
||||
if(ss.replace('"','').replace('"','') == "super"){
|
||||
$('#my_join2').html("<a href='http://eg-bim.com/egbim/adm/index.php' target='_blank'>관리페이지</a>");
|
||||
}else{
|
||||
$('#my_join2').html("<a href='javascript:mypage01();'>마이페이지</a>");
|
||||
}
|
||||
}else
|
||||
{
|
||||
alert(trim(ss));
|
||||
}
|
||||
},
|
||||
error : function(err){
|
||||
//alert(err);
|
||||
alert(err.status);
|
||||
alert(err.statusText);
|
||||
}
|
||||
});
|
||||
});
|
||||
//회원가입 약관동의
|
||||
$('#fregister button[type=submit]').click(function(e){
|
||||
e.preventDefault();
|
||||
let agree11 = $('#agree11').val();
|
||||
let agree21 = $('#agree21').val();
|
||||
$.ajax({
|
||||
url : '<?php echo G5_URL ?>/bbs/register_form.php',
|
||||
type : "POST",
|
||||
datatype : "json",
|
||||
contentType: 'application/json; charset=utf-8',
|
||||
data : {
|
||||
'agree11' : agree11,
|
||||
'agree21' : agree21
|
||||
},
|
||||
success : function(data){
|
||||
var ss='';
|
||||
for(i=0; i<data.length; i++){
|
||||
ss=ss + data[i];
|
||||
}
|
||||
},
|
||||
error : function(err){
|
||||
alert(err);
|
||||
}
|
||||
});
|
||||
});
|
||||
//회원가입 정보입력
|
||||
$('#fregisterform button[type=submit]').click(function(e){
|
||||
e.preventDefault();
|
||||
|
||||
let mb_id = $('#reg_mb_id').val();
|
||||
let mb_password = $('#reg_mb_password').val();
|
||||
let mb_password_re = $('#reg_mb_password_re').val();
|
||||
let mb_name = $('#reg_mb_name').val();
|
||||
let mb_email1 = $('#reg_mb_email1').val();
|
||||
let mb_email2 = $('#mb_email2').val();
|
||||
let reg_domain2 = $('#register_domain2').val();
|
||||
let mb_hp = $('#reg_mb_hp').val();
|
||||
let mb_comp = $('#reg_mb_comp').val();
|
||||
let mb_comp_team = $('#reg_mb_comp_team').val();
|
||||
//alert(mb_password+' '+mb_password_re+' '+mb_name+' '+mb_email1+' '+mb_email2+' '+mb_hp+' '+mb_comp+' '+mb_comp_team);
|
||||
if (mb_id.length < 4) {
|
||||
alert("아이디를 4글자 이상 입력하십시오.");
|
||||
mb_id.focus();
|
||||
return false;
|
||||
}
|
||||
var special_pattern = /[`~!@#$%^&*|\\\'\";:\/?]/gi
|
||||
if (special_pattern.test(mb_id) == true) {
|
||||
alert("아이디는 특수문자를 사용할수 없습니다.");
|
||||
mb_id.focus();
|
||||
return false;
|
||||
}
|
||||
|
||||
// 비밀번호 검사
|
||||
if(!/^(?=.*[a-zA-Z])(?=.*[!@#$%^*+=-])(?=.*[0-9]).{8,25}$/.test(mb_password)){
|
||||
alert('비밀번호는 숫자+영문자+특수문자 조합으로 8자리 이상 사용해야 합니다.');
|
||||
mb_password.focus();
|
||||
return false;
|
||||
}
|
||||
// if (mb_password_re.length < 8 || mb_password.length < 8) {
|
||||
// alert("비밀번호를 8글자 이상 입력하십시오.");
|
||||
// mb_password.focus();
|
||||
// return false;
|
||||
// }
|
||||
|
||||
// 비밀번호 & 2차비밀번호 검사
|
||||
if (mb_password != mb_password_re) {
|
||||
alert("비밀번호가 같지 않습니다.");
|
||||
mb_password_re.focus();
|
||||
return false;
|
||||
}
|
||||
|
||||
// 이름 검사
|
||||
if (mb_name == "") {
|
||||
if (mb_name.length < 1) {
|
||||
alert("이름을 입력하십시오.");
|
||||
mb_name.focus();
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
// 메일 검사
|
||||
if (mb_email1 == "") {
|
||||
if (mb_email1.length < 1) {
|
||||
alert("메일 주소를 입력하십시오.");
|
||||
mb_email1.focus();
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
if (mb_email2 == "type"){
|
||||
mb_email2 = '@' + reg_domain2;
|
||||
}
|
||||
|
||||
// 핸드폰 번호 검사
|
||||
if (mb_hp.length < 11) {
|
||||
alert("휴대전화번호 11자리를 입력하십시오.");
|
||||
mb_hp.focus();
|
||||
return false;
|
||||
}
|
||||
if(isNaN(mb_hp)){
|
||||
alert("휴대전화번호는 숫자만 입력가능합니다.");
|
||||
mb_hp.focus();
|
||||
return false;
|
||||
}
|
||||
// 회사명 검사
|
||||
if (mb_comp == "") {
|
||||
if (mb_comp.length < 1) {
|
||||
alert("회사명을 입력하십시오");
|
||||
mb_comp.focus();
|
||||
return false;
|
||||
}
|
||||
}
|
||||
// 팀명 검사
|
||||
if (mb_comp_team == "") {
|
||||
if (mb_comp_team.length < 1) {
|
||||
alert("팀명을 입력하십시오");
|
||||
mb_comp_team.focus();
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
$.ajax({
|
||||
url : '<?php echo G5_URL ?>/bbs/register_form_update.php',
|
||||
data : {
|
||||
'mb_id' : mb_id,
|
||||
'mb_password' : mb_password,
|
||||
'mb_password_re' : mb_password_re,
|
||||
'mb_name' : mb_name,
|
||||
'mb_email1' : mb_email1,
|
||||
'mb_email2' : mb_email2,
|
||||
'mb_hp' : mb_hp,
|
||||
'mb_comp' : mb_comp,
|
||||
'mb_comp_team' : mb_comp_team,
|
||||
},
|
||||
type : "POST",
|
||||
datatype : "json",
|
||||
success : function(data){
|
||||
var ss='';
|
||||
for(i=0; i<data.length; i++){
|
||||
ss=ss + data[i];
|
||||
}
|
||||
if(ss){
|
||||
// $(".popup_wrap").show();
|
||||
$('.btn_close').hide();
|
||||
$('#pop_login').hide();
|
||||
$('#pop_agreement').hide();
|
||||
$('#pop_join').hide();
|
||||
$('#pop_mypage01').hide();
|
||||
$('#pop_search').hide();
|
||||
$('#pop_mypage02').hide();
|
||||
$('#pop_mypage03').hide();
|
||||
$('#pop_privacy').hide();
|
||||
// $('.register_fs').hide();
|
||||
// $('.join_progress .join_step').removeClass('on');
|
||||
// $('.join_progress .join_step').eq(2).addClass('on');
|
||||
// $('.messages').show();
|
||||
alert('회원가입이 완료됐습니다.\n다시 로그인 해주세요');
|
||||
$('#reg_mb_id').val('');
|
||||
$('#reg_mb_password').val('');
|
||||
$('#reg_mb_password_re').val('');
|
||||
$('#reg_mb_name').val('');
|
||||
$('#reg_mb_email1').val('');
|
||||
$('#reg_mb_hp').val('');
|
||||
$('#reg_mb_comp').val('');
|
||||
$('#reg_mb_comp_team').val('');
|
||||
$('#dupl_check_yn').val('N');
|
||||
|
||||
}else{
|
||||
alert('실패했습니다.');
|
||||
}
|
||||
},
|
||||
error : function(err){
|
||||
alert('에러');
|
||||
alert(err);
|
||||
alert(err.status);
|
||||
alert(err.statusText);
|
||||
}
|
||||
});
|
||||
// $.removeCookie(mb_id,{path:'<?php //echo G5_URL ?>/bbs/register_form_update.php'});
|
||||
});
|
||||
|
||||
//회원정보 수정
|
||||
$('#fregisterform_up button[type=submit]').click(function(e){
|
||||
e.preventDefault();
|
||||
let mb_id = $('#update_mb_id').val();
|
||||
let mb_password = $('#update_mb_password').val();
|
||||
let mb_password_re = $('#update_mb_password_re').val();
|
||||
let mb_name = $('#update_mb_name').val();
|
||||
let mb_email1 = $('#update_mb_email1').val();
|
||||
let mb_email2 = $('#update_mb_email2').val();
|
||||
let update_domain2 = $('#update_domain2').val();
|
||||
if (mb_email2 == "type"){
|
||||
mb_email2 = '@' + update_domain2;
|
||||
}
|
||||
let mb_hp = $('#update_mb_hp').val();
|
||||
let mb_comp = $('#update_mb_comp').val();
|
||||
let mb_comp_team = $('#update_mb_comp_team').val();
|
||||
|
||||
//alert(mb_password+' '+mb_password_re+' '+mb_name+' '+mb_email1+' '+mb_email2+' '+mb_hp+' '+mb_comp+' '+mb_comp_team);
|
||||
if (mb_id.length < 4) {
|
||||
alert('1');
|
||||
alert("아이디를 4글자 이상 입력하십시오.");
|
||||
mb_id.focus();
|
||||
return false;
|
||||
}
|
||||
var special_pattern = /[`~!@#$%^&*|\\\'\";:\/?]/gi
|
||||
if (special_pattern.test(mb_id) == true) {
|
||||
alert("아이디는 특수문자를 사용할수 없습니다.");
|
||||
mb_id.focus();
|
||||
return false;
|
||||
}
|
||||
|
||||
// 비밀번호 검사
|
||||
if(!/^(?=.*[a-zA-Z])(?=.*[!@#$%^*+=-])(?=.*[0-9]).{8,25}$/.test(mb_password)){
|
||||
alert('비밀번호는 숫자+영문자+특수문자 조합으로 8자리 이상 사용해야 합니다.');
|
||||
mb_password.focus();
|
||||
return false;
|
||||
}
|
||||
// if (mb_password_re.length < 8 || mb_password.length < 8) {
|
||||
// alert("비밀번호를 8글자 이상 입력하십시오.");
|
||||
// mb_password.focus();
|
||||
// return false;
|
||||
// }
|
||||
|
||||
// 비밀번호 & 2차비밀번호 검사
|
||||
if (mb_password != mb_password_re) {
|
||||
alert(mb_password_re);
|
||||
alert("비밀번호가 같지 않습니다.");
|
||||
mb_password_re.focus();
|
||||
return false;
|
||||
}
|
||||
|
||||
// 이름 검사
|
||||
if (mb_name == "") {
|
||||
if (mb_name.length < 1) {
|
||||
alert("이름을 입력하십시오.");
|
||||
mb_name.focus();
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
// 메일 검사
|
||||
if (mb_email1 == "") {
|
||||
if (mb_email1.length < 1) {
|
||||
alert("메일 주소를 입력하십시오.");
|
||||
mb_email1.focus();
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
// 핸드폰 번호 검사
|
||||
if (mb_hp.length < 11) {
|
||||
alert("휴대전화번호 11자리를 입력하십시오.");
|
||||
mb_hp.focus();
|
||||
return false;
|
||||
}
|
||||
if(isNaN(mb_hp)){
|
||||
alert("휴대전화번호는 숫자만 입력가능합니다.");
|
||||
mb_hp.focus();
|
||||
return false;
|
||||
}
|
||||
// 회사명 검사
|
||||
if (mb_comp == "") {
|
||||
if (mb_comp.length < 1) {
|
||||
alert("회사명을 입력하십시오");
|
||||
mb_comp.focus();
|
||||
return false;
|
||||
}
|
||||
}
|
||||
// 팀명 검사
|
||||
if (mb_comp_team == "") {
|
||||
if (mb_comp_team.length < 1) {
|
||||
alert("팀명을 입력하십시오");
|
||||
mb_comp_team.focus();
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
$.ajax({
|
||||
url : '<?php echo G5_URL ?>/bbs/mypage03.php',
|
||||
data : {
|
||||
'mb_id' : mb_id,
|
||||
'mb_password' : mb_password,
|
||||
'mb_password_re' : mb_password_re,
|
||||
'mb_name' : mb_name,
|
||||
'mb_email1' : mb_email1,
|
||||
'mb_email2' : mb_email2,
|
||||
'mb_hp' : mb_hp,
|
||||
'mb_comp' : mb_comp,
|
||||
'mb_comp_team' : mb_comp_team,
|
||||
},
|
||||
type : "POST",
|
||||
datatype : "json",
|
||||
success : function(data){
|
||||
var ss='';
|
||||
for(i=0; i<data.length; i++){
|
||||
ss=ss + data[i];
|
||||
}
|
||||
|
||||
if(ss.replace('"','').replace('"','') == "success"){
|
||||
|
||||
// $(".popup_wrap").show();
|
||||
$('.btn_close').show();
|
||||
$('#pop_login').hide();
|
||||
$('#pop_agreement').hide();
|
||||
$('#pop_join').hide();
|
||||
$('#pop_mypage01').hide();
|
||||
$('#pop_search').hide();
|
||||
$('#pop_mypage02').show();
|
||||
$('#pop_mypage03').hide();
|
||||
$('#pop_privacy').hide();
|
||||
// $('.register_fs').hide();
|
||||
// $('.join_progress .join_step').removeClass('on');
|
||||
// $('.join_progress .join_step').eq(2).addClass('on');
|
||||
// $('.messages').show();
|
||||
alert('회원정보 수정이 완료됐습니다.');
|
||||
document.getElementById("span_email").innerText=mb_email1+mb_email2;
|
||||
document.getElementById("span_hp").innerText=mb_hp;
|
||||
document.getElementById("span_comp").innerText=mb_comp;
|
||||
document.getElementById("span_comp_team").innerText=mb_comp_team;
|
||||
// $('#update_mb_id').val('');
|
||||
// $('#update_mb_password').val('');
|
||||
// $('#update_mb_password_re').val('');
|
||||
// $('#update_mb_name').val('');
|
||||
// $('#update_mb_email1').val('');
|
||||
// $('#update_mb_hp').val('');
|
||||
// $('#update_mb_comp').val('');
|
||||
// $('#update_mb_comp_team').val('');
|
||||
// $('#dupl_check_yn').val('N');
|
||||
|
||||
}else{
|
||||
alert('실패했습니다.');
|
||||
}
|
||||
},
|
||||
error : function(err){
|
||||
alert('에러');
|
||||
alert(err);
|
||||
alert(err.status);
|
||||
alert(err.statusText);
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
$('#fmyconfirmpw button[type=submit]').click(function(e){
|
||||
e.preventDefault();
|
||||
|
||||
let l_mb_password = $('#password_mypage').val();
|
||||
let l_mb_id = $('#hid_mb_id').val();
|
||||
|
||||
$.ajax({
|
||||
url : '<?php echo G5_URL ?>/bbs/mypage02.php',
|
||||
data : {
|
||||
'mb_id' : l_mb_id,
|
||||
'mb_password' : l_mb_password,
|
||||
},
|
||||
type : "POST",
|
||||
datatype : "json",
|
||||
success : function(data){
|
||||
var ss='';
|
||||
for(i=0; i<data.length; i++){
|
||||
ss=ss + data[i];
|
||||
}
|
||||
//alert(ss.replace('"','').replace('"',''));
|
||||
if(ss.replace('"','').replace('"','') == "success"){
|
||||
$('#password_mypage').val('');
|
||||
//mypage02();
|
||||
document.cookie = "tmp_1=John";
|
||||
location.href="<?php echo G5_URL ?>/bbs/primary.php";
|
||||
}else
|
||||
{
|
||||
alert(trim(ss));
|
||||
$('#password_mypage').select();
|
||||
}
|
||||
},
|
||||
error : function(err){
|
||||
alert(err);
|
||||
alert(err.status);
|
||||
alert(err.statusText);
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
</script>
|
||||
@@ -0,0 +1,803 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<!-- Google tag (gtag.js) -->
|
||||
<!-- Google tag (gtag.js) -->
|
||||
<script async src="https://www.googletagmanager.com/gtag/js?id=G-STZ2R5Q7HG"></script>
|
||||
<script>
|
||||
window.dataLayer = window.dataLayer || [];
|
||||
function gtag(){dataLayer.push(arguments);}
|
||||
gtag('js', new Date());
|
||||
|
||||
gtag('config', 'G-STZ2R5Q7HG');
|
||||
</script>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>주요기능</title>
|
||||
<link rel="stylesheet" href="../css/reset.css"/>
|
||||
<link rel="stylesheet" href="../css/font.css"/>
|
||||
<link rel="stylesheet" href="../css/style.css"/>
|
||||
<link rel="stylesheet" href="https://unpkg.com/aos@2.3.1/dist/aos.css" type="text/css"/>
|
||||
<script src="https://unpkg.com/aos@2.3.1/dist/aos.js"></script>
|
||||
<script src="https://unpkg.com/lenis@1.1.9/dist/lenis.min.js"></script>
|
||||
<link rel="stylesheet" href="https://unpkg.com/lenis@1.1.9/dist/lenis.css">
|
||||
<script type="text/javascript" src="../js/jquery-3.6.1.min.js"></script>
|
||||
<script type="text/javascript" src="../js/jquery.mousewheel.min.js"></script>
|
||||
<script src="https://cdn.jsdelivr.net/npm/gsap@3.12.5/dist/gsap.min.js"></script>
|
||||
<script src="https://cdn.jsdelivr.net/npm/gsap@3.12.5/dist/ScrollTrigger.min.js"></script>
|
||||
<script src="https://cdn.jsdelivr.net/npm/gsap@3.12.5/dist/ScrollToPlugin.min.js"></script>
|
||||
<script type="text/javascript" src="../js/common.js"></script>
|
||||
<script type="text/javascript" src="../js/popup.js"></script>
|
||||
<script type="text/javascript" src="../js/primary.js"></script>
|
||||
<script>
|
||||
function goto(id) {
|
||||
console.log('로그발생');
|
||||
document.getElementById(id).scrollIntoView({behavior: "instant"});
|
||||
}
|
||||
</script>
|
||||
</head>
|
||||
<body>
|
||||
<!-- "js__"로 시작하는 클래스는 only 자바스크립트용입니다. -->
|
||||
<!-- XXXX js__넣어서 css 작성 금지 XXXX -->
|
||||
<div class="wrapper">
|
||||
<input id="hid_mb_id" type="hidden" value="<?echo $_SESSION['session_id'];?>"></input>
|
||||
<!-- HEADER -->
|
||||
<header class="js__header">
|
||||
<?php include_once($member_skin_path.'/main_header.skin.php'); ?>
|
||||
</header>
|
||||
<!-- //Header -->
|
||||
<!-- floating_menu -->
|
||||
<div class="floating_menu">
|
||||
<ul>
|
||||
<li class="floating_faq"><a href="<?php echo G5_BBS_URL ?>/faq.php">
|
||||
<i></i>
|
||||
<span>FAQ</span>
|
||||
</a></li>
|
||||
<li class="floating_buy"><a href="<?php echo G5_BBS_URL ?>/buy.php">
|
||||
<i></i>
|
||||
<span>구매하기</span>
|
||||
</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<!-- //floating_menu -->
|
||||
|
||||
<!-- 모든 팝업페이지 경로 -->
|
||||
<?php
|
||||
include_once($member_skin_path.'/login.skin.php');
|
||||
include_once($member_skin_path.'/mypage01.skin.php');
|
||||
include_once($member_skin_path.'/register.skin.php');
|
||||
include_once($member_skin_path.'/register_form.skin.php');
|
||||
include_once($member_skin_path.'/mypage02.skin.php');
|
||||
include_once($member_skin_path.'/mypage03.skin.php');
|
||||
include_once($member_skin_path.'/sitemap.skin.php');
|
||||
include_once($member_skin_path.'/privacy.skin.php');
|
||||
include_once($member_skin_path.'/password_lost.skin.php');
|
||||
?>
|
||||
<!-- 모든 팝업페이지 경로 -->
|
||||
<!-- 컨텐츠 시작 -->
|
||||
<div class="container primary">
|
||||
<div class="mouse_mark js__mouse_mark" style="display:none"><span>SCROLL</span></div>
|
||||
<section class="intro">
|
||||
<div class="top js__dark">
|
||||
<h2 data-aos="fade-down" data-aos-duration="1000">주요기능</h2>
|
||||
<span>쉽고 편리하게 작업 할 수 있는 다양한 기능 탑재</span>
|
||||
</div>
|
||||
<div class="keyword">
|
||||
<i class="egbim_obj k"></i>
|
||||
<span>수많은 명령어들을 기능별로 그룹화하여<br><br class="brk">
|
||||
페이지별로 한눈에 볼수 있게 제공</span>
|
||||
<p>EG-BIM에는 1000여개가 넘는 수많은 기능과<br class="brk"> 명령어가 있습니다. <br>
|
||||
사용자가 찾기 쉽고 사용하기 쉽게<br class="brk"> 기능별 페이지를 구성하여 제공합니다.</p>
|
||||
</div>
|
||||
<div class="diagram_wrap" data-aos="fade-up" data-aos-duration="1000">
|
||||
<div class="dia_circles_wrap">
|
||||
<div class="circle_core"><span>명령어<br>전체보기</span></div>
|
||||
<div class="circle_dots">
|
||||
<div class="dot"></div>
|
||||
<div class="dot"></div>
|
||||
<div class="dot"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="dia_element e01">
|
||||
<i></i>
|
||||
<span class="dia_tit">디스플레이/ 보조기능<br><em>My Setting</em></span>
|
||||
</div>
|
||||
<div class="dia_element e02">
|
||||
<i></i>
|
||||
<span class="dia_tit">Draw/Edit +<br class="brk"> 분야별 특화명령어<br><em>명령어그룹</em></span>
|
||||
</div>
|
||||
<div class="dia_element e03">
|
||||
<i></i>
|
||||
<span class="dia_tit"><em>for Civil</em><br>특화명령어</span>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
<section class="route js__mouse_area">
|
||||
<div class="fix">
|
||||
<ul class="subs">
|
||||
<li>
|
||||
<span class="sub_tit">작업환경을<br class="brk"> 내스타일에 맞게 설정</span>
|
||||
<span class="mid_tit">My Setting</span>
|
||||
<span class="sub_text">
|
||||
작업공간의 색상 및 마우스 기능 설정 등 기본적인 Setting 항목과 그리드 및 스냅 등 <br>
|
||||
작업 중 수시로 변경해야하는 ON/OFF 항목으로 페이지를 구분하여 제공합니다.
|
||||
</span>
|
||||
</li>
|
||||
<li>
|
||||
<span class="sub_tit">Draw/Edit 명령어와 특화명령어가<br class="brk"> 기본으로 제공되는</span>
|
||||
<span class="mid_tit"><em>명령어그룹</em></span>
|
||||
<span class="sub_text">
|
||||
수많은 명령어들을 도형, 편집 등 기능별로 그룹화하여 제공 및 <br>
|
||||
별도 설치하여 사용하였던 분야별 특화명령어를 기본으로 제공
|
||||
</span>
|
||||
</li>
|
||||
<li>
|
||||
<span class="sub_tit">도로 및 구조의<br class="brk"> 특정 설계도면 작업을 위한</span>
|
||||
<span class="mid_tit"><em>for Civil</em></span>
|
||||
<span class="sub_text">
|
||||
설계도면 중 도로 분야의 도로 선형 및 횡단 작업을 위한 명령어와<br>
|
||||
구조분야의 철근배근 및 철근상세도, 집계표 작업을 위한 명령어 제공
|
||||
</span>
|
||||
</li>
|
||||
</ul>
|
||||
<div class="content">
|
||||
<!-- <div class="scroll_m">SCROLL</div> -->
|
||||
<ul class="tabs js__mouse_not">
|
||||
<li class="tabs_li"><a onclick="window.goto('sec1')">
|
||||
<b>My Setting</b>
|
||||
<ul>
|
||||
<li>디스플레이/마우스</li>
|
||||
<li>보조기능</li>
|
||||
</ul>
|
||||
</a></li>
|
||||
<li class="tabs_li"><a onclick="window.goto('sec2')">
|
||||
<b>Command</b>
|
||||
<ul>
|
||||
<li>도형</li>
|
||||
<li>수정</li>
|
||||
<li>편집</li>
|
||||
<li>문자</li>
|
||||
<li>치수/연산</li>
|
||||
<li>블록</li>
|
||||
<li>레이어</li>
|
||||
<li>뷰</li>
|
||||
<li>선택/조회</li>
|
||||
</ul>
|
||||
</a></li>
|
||||
<li class="tabs_li"><a onclick="window.goto('sec3')">
|
||||
<b>for Civil</b>
|
||||
<ul>
|
||||
<li>선형/횡단</li>
|
||||
<li>구조/배근</li>
|
||||
</ul>
|
||||
</a></li>
|
||||
</ul>
|
||||
<ul class="imgs">
|
||||
<li><a><img src="../img/primary_route_01.png" alt=""></a></li>
|
||||
<li><a><img src="../img/primary_route_02.png" alt=""></a></li>
|
||||
<li><a><img src="../img/primary_route_03.png" alt=""></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<div id="sec1"></div>
|
||||
<div id="sec2"></div>
|
||||
<div id="sec3"></div>
|
||||
</section>
|
||||
<section class="layout_fix_left process">
|
||||
<div class="left" data-aos="fade-right" data-aos-duration="1000">
|
||||
<div class="bg js__fixLeft_bg on"></div>
|
||||
<div class="bg js__fixLeft_bg"></div>
|
||||
<div class="bg js__fixLeft_bg"></div>
|
||||
<span class="mid_tit js__fixLeft_tit on"><font class="num">01. </font><em>스타일 상세보기창</em></span>
|
||||
<span class="mid_tit js__fixLeft_tit"><font class="num">02. </font><em>블록창</em></span>
|
||||
<span class="mid_tit js__fixLeft_tit"><font class="num">03. </font><em>인쇄창</em></span>
|
||||
</div>
|
||||
<div class="right js__fixLeft_secs">
|
||||
<span class="mid_tit m" style="display: none;"><font class="num">01. </font>스타일 상세보기창</span>
|
||||
<div class="style">
|
||||
<span class="sub_tit">
|
||||
선, 문자, 치수의<br class="brk"> 상세 스타일의 생성 및 수정
|
||||
</span>
|
||||
<div class="sub_text">
|
||||
사용하고 있는 스타일의 목록을 보여주며 상세한 미리보기창과 설정가능한 모든 옵션사항을 보여줍니다. <br>새로운 스타일을 생성하거나 수정할 수 있는 기능을 제공합니다.
|
||||
</div>
|
||||
<div class="sub_figs">
|
||||
<div class="imgs">
|
||||
<img src="../img/style_img_01.png" alt="">
|
||||
</div>
|
||||
<div class="text">
|
||||
<b>선 스타일</b>
|
||||
<ul>
|
||||
<li>선꼴, 블록, 문자 등을 조합하여 원하는 선스타일을 제작</li>
|
||||
<li>미리보기창에서 선간격, 블록 및 문자간격 등 설정</li>
|
||||
<li>건설CALS의 표준 선꼴을 제공</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<div class="sub_figs">
|
||||
<div class="imgs">
|
||||
<img src="../img/style_img_02.png" alt="">
|
||||
</div>
|
||||
<div class="text">
|
||||
<b>문자 스타일</b>
|
||||
<ul>
|
||||
<li>사용가능한 글꼴을 그룹화하여 제공</li>
|
||||
<li>미리보기창에서 크기,기울기 등 형상에 대한 옵션 설정</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<div class="sub_figs">
|
||||
<div class="imgs">
|
||||
<img src="../img/style_img_03.png" alt="">
|
||||
</div>
|
||||
<div class="text">
|
||||
<b>치수 스타일</b>
|
||||
<ul>
|
||||
<li>치수선 형상 및 값에 대한 상세 옵션을 기능별로 구분</li>
|
||||
<li>이미지와 함께 표현 하여 이해도를 높임</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<span class="mid_tit m" style="display: none;"><font class="num">02. </font>블록창</span>
|
||||
<div class="block">
|
||||
<span class="sub_tit">
|
||||
효율적인 작업을 위해<br class="brk"> 블록 라이브러리와 통합 블록창을 제공
|
||||
</span>
|
||||
<div class="sub_text">
|
||||
<span>
|
||||
다양한 종류의 블록을 라이브러리 형태로 쉽게 찾을 수 있게 제공하며,<br>
|
||||
블록의 생성과 함께 속성정보 확인 및 수정 등 관리 할 수 있는 통합블록창을 제공합니다.
|
||||
</span>
|
||||
</div>
|
||||
<div class="sub_figs">
|
||||
<div class="imgs">
|
||||
<div class="fig01"><span>블록 라이브러리</span></div>
|
||||
<div class="fig02"><span>블록 상세창</span></div>
|
||||
<i></i>
|
||||
</div>
|
||||
<div class="text">
|
||||
<b>블록 라이브러리와 연결</b>
|
||||
<ul>
|
||||
<li>일반블록, 속성블록, 외부블록(참조)을 하나의 관리창 안에서 확인 및 수정기능 제공</li>
|
||||
<li>블록 라이브러리와 연계하여 원하는 블록을 쉽게 찾아 추가</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<span class="mid_tit m" style="display: none;"><font class="num">03. </font>인쇄창</span>
|
||||
<div class="print_area">
|
||||
<span class="sub_tit">
|
||||
도곽인식기능으로 도면마다<br class="brk"> 영역지정 없이 한번에 편리하게 인쇄
|
||||
</span>
|
||||
<div class="sub_text">
|
||||
도곽영역을 자동으로 인식하여 한 파일 안에 여러장의 도면도, 긴 도면도 문제 없이 쉽게 출력 할 수 있습니다.
|
||||
</div>
|
||||
<div class="sub_figs">
|
||||
<div class="imgs">
|
||||
<div class="fig01"><span>여러장 도면 인쇄</span></div>
|
||||
<div class="fig02"><span>길이가 긴 도면 인쇄</span></div>
|
||||
</div>
|
||||
<div class="text">
|
||||
<b>인쇄영역 자동지정 및 도곽영역 및 스케일 자동인식</b>
|
||||
<ul>
|
||||
<li>인쇄영역을 일일이 지정하거나 용지길이를 조정할 필요없이 자동으로 인쇄영역을 잡아주는 기능</li>
|
||||
<li>도곽인식기능으로 여러장의 도면도, 길이가 긴 도면도 관계없이 한번에 출력 가능</li>
|
||||
<li>사용자가 지정한 블록도 인쇄영역으로 지정 가능</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
</div>
|
||||
<!-- //컨텐츠 시작 -->
|
||||
<!-- FOOTER -->
|
||||
<button class="btn_top js__top" onclick="window.scrollTo(0,0);"><div class="arrow"></div></button>
|
||||
<footer class="footer_off">
|
||||
<?php include_once($member_skin_path.'/main_footer.skin.php'); ?>
|
||||
</footer>
|
||||
<!-- //FOOTER -->
|
||||
</div>
|
||||
|
||||
<script>
|
||||
AOS.init();
|
||||
|
||||
const lenis = new Lenis()
|
||||
lenis.on('scroll', (e) => {
|
||||
// console.log(e)
|
||||
})
|
||||
lenis.on('scroll', ScrollTrigger.update)
|
||||
gsap.ticker.add((time)=>{
|
||||
lenis.raf(time * 1000)
|
||||
})
|
||||
gsap.ticker.lagSmoothing(0)
|
||||
</script>
|
||||
</body>
|
||||
|
||||
<script>
|
||||
// 회원 탈퇴
|
||||
function member_leave() {
|
||||
if (confirm("회원에서 탈퇴 하시겠습니까?"))
|
||||
location.href = '<?php echo G5_BBS_URL ?>/member_leave.php';
|
||||
}
|
||||
// 회원 탈퇴
|
||||
|
||||
if($('#hid_mb_id').val()==''){
|
||||
document.getElementById('my_join2').style.display = 'none';
|
||||
document.getElementById('my_login2').style.display = 'none';
|
||||
document.getElementById('my_join').style.display = '';
|
||||
document.getElementById('my_login').style.display = '';
|
||||
}else{
|
||||
document.getElementById('my_join2').style.display = '';
|
||||
document.getElementById('my_login2').style.display = '';
|
||||
document.getElementById('my_join').style.display = 'none';
|
||||
document.getElementById('my_login').style.display = 'none';
|
||||
}
|
||||
let x = document.cookie;
|
||||
if(x.includes("tmp_1=John")){
|
||||
deleteCookie("tmp_1");
|
||||
$('#pop_mypage02').show();
|
||||
}
|
||||
function deleteCookie(name) {
|
||||
document.cookie = name + "=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/egbim;";
|
||||
document.cookie = name + "=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/egbim/bbs;";
|
||||
document.cookie = name + "=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/egbim/faq;";
|
||||
document.cookie = name + "=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/egbim/qa;";
|
||||
}
|
||||
function getCookie(cname) {
|
||||
let name = cname + "=";
|
||||
let decodedCookie = decodeURIComponent(document.cookie);
|
||||
let ca = decodedCookie.split(';');
|
||||
for(let i = 0; i <ca.length; i++) {
|
||||
let c = ca[i];
|
||||
while (c.charAt(0) == ' ') {
|
||||
c = c.substring(1);
|
||||
}
|
||||
if (c.indexOf(name) == 0) {
|
||||
return c.substring(name.length, c.length);
|
||||
}
|
||||
}
|
||||
return "";
|
||||
}
|
||||
//alert(getCookie("tmp_1"));
|
||||
//로그인
|
||||
$('#flogin button[type=submit]').click(function(e){
|
||||
e.preventDefault();
|
||||
let mb_id = $('#login_id').val();
|
||||
let mb_password = $('#login_pw').val();
|
||||
//alert('<?php echo G5_URL ?>/bbs/login.php');
|
||||
$.ajax({
|
||||
url : '<?php echo G5_URL ?>/bbs/login_check_tova.php',
|
||||
data : {
|
||||
'mb_id' : mb_id,
|
||||
'mb_password' : mb_password
|
||||
},
|
||||
type : "POST",
|
||||
datatype : "json",
|
||||
success : function(data){
|
||||
var ss='';
|
||||
for(i=0; i<data.length; i++){
|
||||
ss=ss + data[i];
|
||||
}
|
||||
//alert(ss.replace('"','').replace('"',''));
|
||||
if(ss.replace('"','').replace('"','') == "success" || ss.replace('"','').replace('"','') == "super"){
|
||||
//$(".popup_wrap").show();
|
||||
// $('.btn_close').hide();
|
||||
// $('#pop_login').hide();
|
||||
// ------유나 추가
|
||||
$('.popup_wrap').hide();
|
||||
$('body').css('overflow', ''); // 기본 스크롤 상태로 복귀
|
||||
lenis.start();
|
||||
console.log('로그인 완료 및 lenis 재시작/유나 추가')
|
||||
$('#hid_mb_id').val(mb_id);
|
||||
document.getElementById('my_join2').style.display = '';
|
||||
document.getElementById('my_login2').style.display = '';
|
||||
document.getElementById('my_join').style.display = 'none';
|
||||
document.getElementById('my_login').style.display = 'none';
|
||||
//location.href="<?php echo G5_URL ?>/bbs/session.php?id="+mb_id;
|
||||
if(ss.replace('"','').replace('"','') == "super"){
|
||||
$('#my_join2').html("<a href='http://eg-bim.com/egbim/adm/index.php' target='_blank'>관리페이지</a>");
|
||||
}else{
|
||||
$('#my_join2').html("<a href='javascript:mypage01();'>마이페이지</a>");
|
||||
}
|
||||
}else
|
||||
{
|
||||
alert(trim(ss));
|
||||
}
|
||||
},
|
||||
error : function(err){
|
||||
//alert(err);
|
||||
alert(err.status);
|
||||
alert(err.statusText);
|
||||
}
|
||||
});
|
||||
});
|
||||
//회원가입 약관동의
|
||||
$('#fregister button[type=submit]').click(function(e){
|
||||
e.preventDefault();
|
||||
let agree11 = $('#agree11').val();
|
||||
let agree21 = $('#agree21').val();
|
||||
$.ajax({
|
||||
url : '<?php echo G5_URL ?>/bbs/register_form.php',
|
||||
type : "POST",
|
||||
datatype : "json",
|
||||
contentType: 'application/json; charset=utf-8',
|
||||
data : {
|
||||
'agree11' : agree11,
|
||||
'agree21' : agree21
|
||||
},
|
||||
success : function(data){
|
||||
var ss='';
|
||||
for(i=0; i<data.length; i++){
|
||||
ss=ss + data[i];
|
||||
}
|
||||
},
|
||||
error : function(err){
|
||||
alert(err);
|
||||
}
|
||||
});
|
||||
});
|
||||
//회원가입 정보입력
|
||||
$('#fregisterform button[type=submit]').click(function(e){
|
||||
e.preventDefault();
|
||||
|
||||
let mb_id = $('#reg_mb_id').val();
|
||||
let mb_password = $('#reg_mb_password').val();
|
||||
let mb_password_re = $('#reg_mb_password_re').val();
|
||||
let mb_name = $('#reg_mb_name').val();
|
||||
let mb_email1 = $('#reg_mb_email1').val();
|
||||
let mb_email2 = $('#mb_email2').val();
|
||||
let reg_domain2 = $('#register_domain2').val();
|
||||
let mb_hp = $('#reg_mb_hp').val();
|
||||
let mb_comp = $('#reg_mb_comp').val();
|
||||
let mb_comp_team = $('#reg_mb_comp_team').val();
|
||||
//alert(mb_password+' '+mb_password_re+' '+mb_name+' '+mb_email1+' '+mb_email2+' '+mb_hp+' '+mb_comp+' '+mb_comp_team);
|
||||
if (mb_id.length < 4) {
|
||||
alert("아이디를 4글자 이상 입력하십시오.");
|
||||
mb_id.focus();
|
||||
return false;
|
||||
}
|
||||
var special_pattern = /[`~!@#$%^&*|\\\'\";:\/?]/gi
|
||||
if (special_pattern.test(mb_id) == true) {
|
||||
alert("아이디는 특수문자를 사용할수 없습니다.");
|
||||
mb_id.focus();
|
||||
return false;
|
||||
}
|
||||
|
||||
// 비밀번호 검사
|
||||
if(!/^(?=.*[a-zA-Z])(?=.*[!@#$%^*+=-])(?=.*[0-9]).{8,25}$/.test(mb_password)){
|
||||
alert('비밀번호는 숫자+영문자+특수문자 조합으로 8자리 이상 사용해야 합니다.');
|
||||
mb_password.focus();
|
||||
return false;
|
||||
}
|
||||
// if (mb_password_re.length < 8 || mb_password.length < 8) {
|
||||
// alert("비밀번호를 8글자 이상 입력하십시오.");
|
||||
// mb_password.focus();
|
||||
// return false;
|
||||
// }
|
||||
|
||||
// 비밀번호 & 2차비밀번호 검사
|
||||
if (mb_password != mb_password_re) {
|
||||
alert("비밀번호가 같지 않습니다.");
|
||||
mb_password_re.focus();
|
||||
return false;
|
||||
}
|
||||
|
||||
// 이름 검사
|
||||
if (mb_name == "") {
|
||||
if (mb_name.length < 1) {
|
||||
alert("이름을 입력하십시오.");
|
||||
mb_name.focus();
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
// 메일 검사
|
||||
if (mb_email1 == "") {
|
||||
if (mb_email1.length < 1) {
|
||||
alert("메일 주소를 입력하십시오.");
|
||||
mb_email1.focus();
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
if (mb_email2 == "type"){
|
||||
mb_email2 = '@' + reg_domain2;
|
||||
}
|
||||
|
||||
// 핸드폰 번호 검사
|
||||
if (mb_hp.length < 11) {
|
||||
alert("휴대전화번호 11자리를 입력하십시오.");
|
||||
mb_hp.focus();
|
||||
return false;
|
||||
}
|
||||
if(isNaN(mb_hp)){
|
||||
alert("휴대전화번호는 숫자만 입력가능합니다.");
|
||||
mb_hp.focus();
|
||||
return false;
|
||||
}
|
||||
// 회사명 검사
|
||||
if (mb_comp == "") {
|
||||
if (mb_comp.length < 1) {
|
||||
alert("회사명을 입력하십시오");
|
||||
mb_comp.focus();
|
||||
return false;
|
||||
}
|
||||
}
|
||||
// 팀명 검사
|
||||
if (mb_comp_team == "") {
|
||||
if (mb_comp_team.length < 1) {
|
||||
alert("팀명을 입력하십시오");
|
||||
mb_comp_team.focus();
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
$.ajax({
|
||||
url : '<?php echo G5_URL ?>/bbs/register_form_update.php',
|
||||
data : {
|
||||
'mb_id' : mb_id,
|
||||
'mb_password' : mb_password,
|
||||
'mb_password_re' : mb_password_re,
|
||||
'mb_name' : mb_name,
|
||||
'mb_email1' : mb_email1,
|
||||
'mb_email2' : mb_email2,
|
||||
'mb_hp' : mb_hp,
|
||||
'mb_comp' : mb_comp,
|
||||
'mb_comp_team' : mb_comp_team,
|
||||
},
|
||||
type : "POST",
|
||||
datatype : "json",
|
||||
success : function(data){
|
||||
var ss='';
|
||||
for(i=0; i<data.length; i++){
|
||||
ss=ss + data[i];
|
||||
}
|
||||
if(ss){
|
||||
// $(".popup_wrap").show();
|
||||
// $('.btn_close').hide();
|
||||
// $('#pop_login').hide();
|
||||
// $('#pop_agreement').hide();
|
||||
// $('#pop_join').hide();
|
||||
// $('#pop_mypage01').hide();
|
||||
// $('#pop_search').hide();
|
||||
// $('#pop_mypage02').hide();
|
||||
// $('#pop_mypage03').hide();
|
||||
// $('#pop_privacy').hide();
|
||||
// $('.register_fs').hide();
|
||||
// $('.join_progress .join_step').removeClass('on');
|
||||
// $('.join_progress .join_step').eq(2).addClass('on');
|
||||
// $('.messages').show();
|
||||
alert('회원가입이 완료됐습니다.\n다시 로그인 해주세요');
|
||||
$('#reg_mb_id').val('');
|
||||
$('#reg_mb_password').val('');
|
||||
$('#reg_mb_password_re').val('');
|
||||
$('#reg_mb_name').val('');
|
||||
$('#reg_mb_email1').val('');
|
||||
$('#reg_mb_hp').val('');
|
||||
$('#reg_mb_comp').val('');
|
||||
$('#reg_mb_comp_team').val('');
|
||||
$('#dupl_check_yn').val('N');
|
||||
// ------유나 추가
|
||||
$('.popup_wrap').hide();
|
||||
$('body').css('overflow', ''); // 기본 스크롤 상태로 복귀
|
||||
lenis.start();
|
||||
console.log('로그인 완료 및 lenis 재시작/유나 추가')
|
||||
|
||||
}else{
|
||||
alert('실패했습니다.');
|
||||
}
|
||||
},
|
||||
error : function(err){
|
||||
alert('에러');
|
||||
alert(err);
|
||||
alert(err.status);
|
||||
alert(err.statusText);
|
||||
}
|
||||
});
|
||||
// $.removeCookie(mb_id,{path:'<?php //echo G5_URL ?>/bbs/register_form_update.php'});
|
||||
});
|
||||
|
||||
//회원정보 수정
|
||||
$('#fregisterform_up button[type=submit]').click(function(e){
|
||||
e.preventDefault();
|
||||
let mb_id = $('#update_mb_id').val();
|
||||
let mb_password = $('#update_mb_password').val();
|
||||
let mb_password_re = $('#update_mb_password_re').val();
|
||||
let mb_name = $('#update_mb_name').val();
|
||||
let mb_email1 = $('#update_mb_email1').val();
|
||||
let mb_email2 = $('#update_mb_email2').val();
|
||||
let update_domain2 = $('#update_domain2').val();
|
||||
if (mb_email2 == "type"){
|
||||
mb_email2 = '@' + update_domain2;
|
||||
}
|
||||
let mb_hp = $('#update_mb_hp').val();
|
||||
let mb_comp = $('#update_mb_comp').val();
|
||||
let mb_comp_team = $('#update_mb_comp_team').val();
|
||||
|
||||
//alert(mb_password+' '+mb_password_re+' '+mb_name+' '+mb_email1+' '+mb_email2+' '+mb_hp+' '+mb_comp+' '+mb_comp_team);
|
||||
if (mb_id.length < 4) {
|
||||
alert('1');
|
||||
alert("아이디를 4글자 이상 입력하십시오.");
|
||||
mb_id.focus();
|
||||
return false;
|
||||
}
|
||||
var special_pattern = /[`~!@#$%^&*|\\\'\";:\/?]/gi
|
||||
if (special_pattern.test(mb_id) == true) {
|
||||
alert("아이디는 특수문자를 사용할수 없습니다.");
|
||||
mb_id.focus();
|
||||
return false;
|
||||
}
|
||||
|
||||
// 비밀번호 검사
|
||||
if(!/^(?=.*[a-zA-Z])(?=.*[!@#$%^*+=-])(?=.*[0-9]).{8,25}$/.test(mb_password)){
|
||||
alert('비밀번호는 숫자+영문자+특수문자 조합으로 8자리 이상 사용해야 합니다.');
|
||||
mb_password.focus();
|
||||
return false;
|
||||
}
|
||||
// if (mb_password_re.length < 8 || mb_password.length < 8) {
|
||||
// alert("비밀번호를 8글자 이상 입력하십시오.");
|
||||
// mb_password.focus();
|
||||
// return false;
|
||||
// }
|
||||
|
||||
// 비밀번호 & 2차비밀번호 검사
|
||||
if (mb_password != mb_password_re) {
|
||||
alert(mb_password_re);
|
||||
alert("비밀번호가 같지 않습니다.");
|
||||
mb_password_re.focus();
|
||||
return false;
|
||||
}
|
||||
|
||||
// 이름 검사
|
||||
if (mb_name == "") {
|
||||
if (mb_name.length < 1) {
|
||||
alert("이름을 입력하십시오.");
|
||||
mb_name.focus();
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
// 메일 검사
|
||||
if (mb_email1 == "") {
|
||||
if (mb_email1.length < 1) {
|
||||
alert("메일 주소를 입력하십시오.");
|
||||
mb_email1.focus();
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
// 핸드폰 번호 검사
|
||||
if (mb_hp.length < 11) {
|
||||
alert("휴대전화번호 11자리를 입력하십시오.");
|
||||
mb_hp.focus();
|
||||
return false;
|
||||
}
|
||||
if(isNaN(mb_hp)){
|
||||
alert("휴대전화번호는 숫자만 입력가능합니다.");
|
||||
mb_hp.focus();
|
||||
return false;
|
||||
}
|
||||
// 회사명 검사
|
||||
if (mb_comp == "") {
|
||||
if (mb_comp.length < 1) {
|
||||
alert("회사명을 입력하십시오");
|
||||
mb_comp.focus();
|
||||
return false;
|
||||
}
|
||||
}
|
||||
// 팀명 검사
|
||||
if (mb_comp_team == "") {
|
||||
if (mb_comp_team.length < 1) {
|
||||
alert("팀명을 입력하십시오");
|
||||
mb_comp_team.focus();
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
$.ajax({
|
||||
url : '<?php echo G5_URL ?>/bbs/mypage03.php',
|
||||
data : {
|
||||
'mb_id' : mb_id,
|
||||
'mb_password' : mb_password,
|
||||
'mb_password_re' : mb_password_re,
|
||||
'mb_name' : mb_name,
|
||||
'mb_email1' : mb_email1,
|
||||
'mb_email2' : mb_email2,
|
||||
'mb_hp' : mb_hp,
|
||||
'mb_comp' : mb_comp,
|
||||
'mb_comp_team' : mb_comp_team,
|
||||
},
|
||||
type : "POST",
|
||||
datatype : "json",
|
||||
success : function(data){
|
||||
var ss='';
|
||||
for(i=0; i<data.length; i++){
|
||||
ss=ss + data[i];
|
||||
}
|
||||
|
||||
if(ss.replace('"','').replace('"','') == "success"){
|
||||
|
||||
// $(".popup_wrap").show();
|
||||
$('.btn_close').show();
|
||||
$('#pop_login').hide();
|
||||
$('#pop_agreement').hide();
|
||||
$('#pop_join').hide();
|
||||
$('#pop_mypage01').hide();
|
||||
$('#pop_search').hide();
|
||||
$('#pop_mypage02').show();
|
||||
$('#pop_mypage03').hide();
|
||||
$('#pop_privacy').hide();
|
||||
// $('.register_fs').hide();
|
||||
// $('.join_progress .join_step').removeClass('on');
|
||||
// $('.join_progress .join_step').eq(2).addClass('on');
|
||||
// $('.messages').show();
|
||||
alert('회원정보 수정이 완료됐습니다.');
|
||||
document.getElementById("span_email").innerText=mb_email1+mb_email2;
|
||||
document.getElementById("span_hp").innerText=mb_hp;
|
||||
document.getElementById("span_comp").innerText=mb_comp;
|
||||
document.getElementById("span_comp_team").innerText=mb_comp_team;
|
||||
// $('#update_mb_id').val('');
|
||||
// $('#update_mb_password').val('');
|
||||
// $('#update_mb_password_re').val('');
|
||||
// $('#update_mb_name').val('');
|
||||
// $('#update_mb_email1').val('');
|
||||
// $('#update_mb_hp').val('');
|
||||
// $('#update_mb_comp').val('');
|
||||
// $('#update_mb_comp_team').val('');
|
||||
// $('#dupl_check_yn').val('N');
|
||||
|
||||
}else{
|
||||
alert('실패했습니다.');
|
||||
}
|
||||
},
|
||||
error : function(err){
|
||||
alert('에러');
|
||||
alert(err);
|
||||
alert(err.status);
|
||||
alert(err.statusText);
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
$('#fmyconfirmpw button[type=submit]').click(function(e){
|
||||
e.preventDefault();
|
||||
|
||||
let l_mb_password = $('#password_mypage').val();
|
||||
let l_mb_id = $('#hid_mb_id').val();
|
||||
|
||||
$.ajax({
|
||||
url : '<?php echo G5_URL ?>/bbs/mypage02.php',
|
||||
data : {
|
||||
'mb_id' : l_mb_id,
|
||||
'mb_password' : l_mb_password,
|
||||
},
|
||||
type : "POST",
|
||||
datatype : "json",
|
||||
success : function(data){
|
||||
var ss='';
|
||||
for(i=0; i<data.length; i++){
|
||||
ss=ss + data[i];
|
||||
}
|
||||
//alert(ss.replace('"','').replace('"',''));
|
||||
if(ss.replace('"','').replace('"','') == "success"){
|
||||
$('#password_mypage').val('');
|
||||
//mypage02();
|
||||
document.cookie = "tmp_1=John";
|
||||
location.href="<?php echo G5_URL ?>/bbs/primary.php";
|
||||
}else
|
||||
{
|
||||
alert(trim(ss));
|
||||
$('#password_mypage').select();
|
||||
}
|
||||
},
|
||||
error : function(err){
|
||||
alert(err);
|
||||
alert(err.status);
|
||||
alert(err.statusText);
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
</script>
|
||||
@@ -0,0 +1,543 @@
|
||||
<?php
|
||||
|
||||
?>
|
||||
|
||||
<!--popup_wrap-->
|
||||
<div class="popup_wrap" id="pop_privacy">
|
||||
<!--popup_in-->
|
||||
<div class="popup_in">
|
||||
<button class="btn_close">
|
||||
<div class="close_div"><img src="<?php echo G5_URL ?>/img/ico_close.svg" alt=""></div>
|
||||
</button>
|
||||
<!--popup_wrap-->
|
||||
<div class="popup_container privacy">
|
||||
<div class="contents_wrap">
|
||||
<ul class="tab_wrap">
|
||||
<li class="tab_privacy on"><span>개인정보 보호정책</span></li>
|
||||
<li class="tab_agreement"><span>이용약관</span></li>
|
||||
</ul>
|
||||
<div class="content pri show">
|
||||
<ul class="list_1">
|
||||
<li><span class="tit">제1조. 목적</span>
|
||||
<ul class="list_2" maker="1">
|
||||
<li>바론컨설턴트(이하 "회사")는 EG-BIM 서비스(이하 "서비스")를 이용하는 고객(이하 "이용자")의<br>
|
||||
개인정보를 보호하고, 「개인정보 보호법」에 따라 책임과 의무를 다하기 위해 본 개인정보처리방침을<br>
|
||||
마련했습니다. 본 방침은 이용자가 제공한 개인정보가 어떻게 수집, 이용, 보관, 보호되는지를 설명합니다.</li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<ul class="list_1">
|
||||
<li><span class="tit">제2조. 개인정보의 처리목적</span>
|
||||
<ul class="list_2">
|
||||
<li>회사는 다음의 목적을 위해 개인정보를 처리합니다.<br>
|
||||
처리하고 있는 개인정보는 다음의 목적 이외의 용도로는 이용되지 않으며, 이용 목적이 변경되는 경우에는 <br>
|
||||
「개인정보 보호법」 제18조에 따라 별도의 동의를 받는 등 필요한 조치를 이행할 예정입니다.<br>
|
||||
<ul class="list_3">
|
||||
<li>본인확인: 회원가입 및 관리를 위한 본인 확인, 전화 또는 이메일을 통한 연락</li>
|
||||
<li>서비스 제공: 각종 통보 및 서비스 제공을 위한 업무 처리</li>
|
||||
<li>제품소개서 다운로드: 설명자료 전달</li>
|
||||
<li>상담 및 데모 신청: 상담 제공 및 데모 제공, 계약 처리자 정보 수집</li>
|
||||
<li>행사 참가 신청: 참석 안내 및 세미나/설명회/교육 제공</li>
|
||||
<li>보안가이드 제공: 안내자료 전달</li>
|
||||
<li>기술지원 문의: 서비스 사용 지원</li>
|
||||
<li>서비스 개선 의견 접수: 서비스 품질 개선</li>
|
||||
<li>마케팅 활동: 동의한 고객에 한해 뉴스레터 및 매거진 발송</li>
|
||||
</ul>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<ul class="list_1">
|
||||
<li><span class="tit">제3조. 개인정보의 처리 및 보유 기간</span>
|
||||
<ul class="list_2">
|
||||
<li>회사는 법령에 따른 개인정보 보유 및 이용기간 또는 정보주체로부터 개인정보를 수집 시 동의받은 개인정보 보유 및 이용기간 내에서
|
||||
개인정보를 처리 및 보유합니다.</li>
|
||||
<li>각각의 개인정보 처리 및 보유 기간은 다음과 같습니다:
|
||||
<ul class="list_3">
|
||||
<li>회원정보: 회원가입일부터 회원탈퇴 후 1년까지</li>
|
||||
<li>홍보, 상담, 계약용 개인정보: 2년</li>
|
||||
</ul>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<ul class="list_1">
|
||||
<li><span class="tit">제4조. 개인정보의 제3자 제공</span>
|
||||
<ul class="list_2">
|
||||
<li>회사는 정보주체의 개인정보를 제2조에서 명시한 범위 내에서만 처리하며, 정보 주체의 동의, 법률의 특별한 규정 등 「개인정보
|
||||
보호법」 제17조 및
|
||||
제18조에 해당하는 경우에만 개인정보를 제3자에게 제공합니다.</li>
|
||||
<li>회사는 다음과 같이 개인정보를 제3자에게 제공하고 있습니다:
|
||||
<ul class="list_3">
|
||||
<li>제공받는 자: 수사기관 및 유관기관, 피신고업체</li>
|
||||
<li>이용 목적: 개인정보 침해 민원 처리</li>
|
||||
<li>제공하는 개인정보 항목: 성명, 연락처, 이메일</li>
|
||||
<li>보유 및 이용기간: 법령에서 정한 보존기간 및 제공목적 달성 시 파기</li>
|
||||
</ul>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<ul class="list_1">
|
||||
<li><span class="tit">제5조. 개인정보 처리 위탁</span>
|
||||
<ul class="list_2">
|
||||
<li>회사는 개인정보 처리업무를 외부 업체에 위탁하지 않으며, 자체적으로 처리하고 있습니다.</li>
|
||||
<li>회사가 특정 업무(예: 채용 업무)를 외부 업체에 위탁할 경우, <br>개인정보 처리방침 시행 전 회사 홈페이지에서 공지한 후
|
||||
정보주체의 동의를 받은 후 위탁합니다.</li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<ul class="list_1">
|
||||
<li><span class="tit">제6조. 정보주체의 권리·의무 및 행사 방법</span>
|
||||
<ul class="list_2">
|
||||
<li>정보주체는 회사에 대해 언제든지 개인정보 열람, 정정, 삭제, 처리정지 요구 등의 권리를 행사할 수 있습니다.</li>
|
||||
<li>권리 행사는 다음과 같은 방법으로 할 수 있습니다:
|
||||
<ul class="list_3">
|
||||
<li>서면: 회사 주소로 서면 제출</li>
|
||||
<li>전자우편: 회사 이메일로 요청</li>
|
||||
<li>모사전송(FAX): 회사 FAX로 요청</li>
|
||||
</ul>
|
||||
<li>권리 행사는 정보주체의 법정대리인이나 위임을 받은 자를 통해 대리로도 가능합니다. 이 경우 “개인정보 처리 방법에 관한 고시”
|
||||
별지 제11호 서식에 따른 위임장을 제출해야 합니다.</li>
|
||||
<li>개인정보 열람 및 처리정지 요구는 「개인정보 보호법」 제35조 제4항, 제37조 제2항에 따라 제한될 수 있습니다.</li>
|
||||
<li>개인정보의 정정 및 삭제 요구는 다른 법령에 따라 수집된 개인정보인 경우 제한될 수 있습니다.</li>
|
||||
<li>회사는 권리 행사를 요청한 자가 본인 또는 정당한 대리인인지를 확인합니다.</li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<ul class="list_1">
|
||||
<li><span class="tit">제7조. 처리하는 개인정보의 항목</span>
|
||||
<ul class="list_2">
|
||||
<li>회사는 다음의 개인정보 항목을 처리합니다:</li>
|
||||
<li>수집 항목
|
||||
<ul class="list_3">
|
||||
<li>필수 항목: 성명, 휴대전화번호, 이메일</li>
|
||||
<li>선택 항목: 회사전화번호, 문의사항</li>
|
||||
<li>수집 방법: 홈페이지, 전화, 이메일을 통해 수집</li>
|
||||
</ul>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<ul class="list_1">
|
||||
<li><span class="tit">제8조. 개인정보의 파기</span>
|
||||
<ul class="list_2">
|
||||
<li>회사는 개인정보 보유 기간의 경과, 처리 목적 달성 등 개인정보가 불필요하게 되었을 때 지체 없이 해당 개인정보를 파기합니다.
|
||||
</li>
|
||||
<li>정보주체로부터 동의받은 개인정보 보유 기간이 경과하거나 처리 목적이 달성된 경우에도 다른 법령에 따라 개인정보를 계속 보존해야 할
|
||||
경우에는, 해당 개인정보를 별도의 데이터베이스(DB)로 옮기거나 보관 장소를 달리하여 보존합니다.</li>
|
||||
<li>개인정보 파기의 절차 및 방법은 다음과 같습니다:
|
||||
<ul class="list_3">
|
||||
<li>파기 절차: 회사는 파기 사유가 발생한 개인정보를 선정하고, 개인정보 보호책임자의 승인을 받아 개인정보를
|
||||
파기합니다.</li>
|
||||
<li>파기 방법: 전자적 파일 형태로 기록된 개인정보는 복구할 수 없도록 기술적 방법을 사용해 삭제하며, 종이 문서에
|
||||
기록된 개인정보는 분쇄기로
|
||||
분쇄하거나 소각하여 파기합니다.</li>
|
||||
</ul>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<ul class="list_1">
|
||||
<li><span class="tit">제9조. 개인정보의 안전성 확보 조치</span>
|
||||
<ul class="list_2">
|
||||
<li>회사는 개인정보의 안전성 확보를 위해 다음과 같은 조치를 취합니다:
|
||||
<ul class="list_3">
|
||||
<li>관리적 조치: 내부관리계획 수립·시행, 정기적 직원 교육</li>
|
||||
<li>기술적 조치: 개인정보처리시스템 접근 권한 관리, 접근통제시스템 설치, 고유식별정보 암호화, 보안 프로그램 설치
|
||||
</li>
|
||||
<li>물리적 조치: 전산실 및 자료보관실 접근 통제</li>
|
||||
</ul>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<ul class="list_1">
|
||||
<li><span class="tit">제10조. 개인정보 자동 수집 장치의 설치·운영 및 거부에 관한 사항</span>
|
||||
<ul class="list_2">
|
||||
<li>회사는 쿠키(Cookie)를 사용하지 않습니다. 쿠키는 이용자의 이용 정보를 저장하고 수시로 불러오는 작은 파일로,
|
||||
EG-BIM 서비스에서는 쿠키를 사용하지 않습니다.
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<ul class="list_1">
|
||||
<li><span class="tit">제11조. 개인정보 보호책임자</span>
|
||||
<ul class="list_2">
|
||||
<li>회사는 개인정보 처리에 관한 업무를 총괄하여 책임지고, 개인정보 처리와 관련된 정보주체의 불만처리 및 피해구제를 위해 개인정보
|
||||
보호책임자를 지정하고 있습니다.</li>
|
||||
<li>개인정보 보호책임자:
|
||||
<ul class="list_3">
|
||||
<li>성명: 염승호</li>
|
||||
<li>직책: 수석연구원</li>
|
||||
<li>연락처: 02-2141-7448</li>
|
||||
<li>팩스번호: 02-2141-7599</li>
|
||||
<li>이메일: b23008@baroncs.co.kr</li>
|
||||
</ul>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<ul class="list_1">
|
||||
<li><span class="tit">제12조. 개인정보 열람청구</span>
|
||||
<ul class="list_2">
|
||||
<li>정보주체는 「개인정보 보호법」 제35조에 따른 개인정보 열람 청구를 아래 부서에 할 수 있습니다. 회사는 정보주체의 개인정보
|
||||
열람청구가 신속하게 처리되도록 노력하겠습니다.</li>
|
||||
<li>개인정보 열람청구 접수·처리 부서:
|
||||
<ul class="list_3">
|
||||
<li>부서명: 총괄기획실</li>
|
||||
<li>담당자: 권혁진</li>
|
||||
<li>연락처: 02-2141-7465</li>
|
||||
<li>팩스번호: 02-2141-7599</li>
|
||||
<li>이메일: baroncs@baroncs.co.kr</li>
|
||||
</ul>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<ul class="list_1">
|
||||
<li><span class="tit">제13조. 권익침해 구제방법</span>
|
||||
<ul class="list_2">
|
||||
<li>정보주체는 개인정보 침해로 인한 구제를 위해 개인정보분쟁조정위원회, 한국인터넷진흥원 개인정보침해신고센터 등에 분쟁 해결이나 상담을
|
||||
신청할 수 있습니다.
|
||||
<ul class="list_3">
|
||||
<li>개인정보분쟁조정위원회: (국번없이) 1833-6972 (www.kopico.go.kr)</li>
|
||||
<li>개인정보침해신고센터: (국번없이) 118 (privacy.kisa.or.kr)</li>
|
||||
<li>대검찰청: (국번없이) 1301 (www.spo.go.kr)</li>
|
||||
<li>팩스번호: 02-408-1927</li>
|
||||
<li>경찰청: (국번없이) 182 (www.police.go.kr)</li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<ul class="list_1">
|
||||
<li><span class="tit">제14조. 개인정보 처리방침의 변경</span>
|
||||
<ul class="list_2">
|
||||
<li>본 개인정보처리방침은 법령, 정책 또는 보안 기술의 변경에 따라 내용의 추가, 삭제 및 수정이 있을 시, 개정 최소 7일 전에
|
||||
홈페이지를 통해 사전
|
||||
공지합니다.</li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<ul class="list_1">
|
||||
<li><span class="tit">부칙</span>
|
||||
<ul class="list_2">
|
||||
<li>제 1조 (시행일자)
|
||||
<ul class="list_3">
|
||||
<li>이 개인정보처리방침은 2024년 10월 1일부터 시행됩니다.</li>
|
||||
</li>
|
||||
</ul>
|
||||
<li>제2조 (개정 및 고지의 의무)
|
||||
<ul class="list_3">
|
||||
<li>회사는 개인정보처리방침을 변경하는 경우, 변경사항을 시행일자 7일 전부터 서비스 내 공지사항 페이지를 통해 고지할 것입니다.
|
||||
다만, 이용자의 권리나
|
||||
의무에 중대한 변경이 발생하는 경우에는 시행일자 30일 전부터 고지합니다.</li>
|
||||
</li>
|
||||
</ul>
|
||||
<li>제3조 (유효성)
|
||||
<ul class="list_3">
|
||||
<li>본 개인정보처리방침의 일부 조항이 법적 또는 기타 사유로 인해 무효화되거나 시행할 수 없는 경우, 나머지 조항들은 계속해서 유효합니다.
|
||||
무효화된 조항은
|
||||
관련 법령에 부합하는 방식으로 수정되어 효력을 지속합니다.</li>
|
||||
</li>
|
||||
</ul>
|
||||
<li>제4조 (변경 통지의 방법)<br>
|
||||
회사는 개인정보처리방침의 변경 시, 다음의 방법으로 이용자에게 고지합니다:
|
||||
<ul class="list_3">
|
||||
<li>서비스 초기화면 또는 팝업 공지</li>
|
||||
<li>이메일 발송</li>
|
||||
<li>회사 홈페이지 공지사항</li>
|
||||
</li>
|
||||
</ul>
|
||||
<li>제5조 (비회원의 개인정보 보호)
|
||||
<ul class="list_3">
|
||||
<li>회사는 비회원의 개인정보도 회원과 동일한 수준으로 보호합니다. 비회원이 개인정보 제공을 거부할 경우 일부 서비스 이용에 제한이 있을 수
|
||||
있습니다.</li>
|
||||
</li>
|
||||
</ul>
|
||||
<li>제6조 (14세 미만 아동의 개인정보 보호)
|
||||
<ul class="list_3">
|
||||
<li>회사는 14세 미만 아동의 개인정보를 수집하지 않습니다. 만일 14세 미만 아동의 개인정보가 수집된 경우, 법정 대리인의 동의를 받아야
|
||||
하며, 법정
|
||||
대리인의 동의 없이 수집된 경우 이를 지체 없이 파기합니다.</li>
|
||||
</li>
|
||||
</ul>
|
||||
<li>제7조 (개인정보의 국외 이전)
|
||||
<ul class="list_3">
|
||||
<li>회사는 이용자의 개인정보를 국외로 이전하지 않으며, 향후 필요한 경우, 사전에 이용자의 동의를 받습니다.</li>
|
||||
</li>
|
||||
</ul>
|
||||
<li>제8조 (기타)
|
||||
<ul class="list_3">
|
||||
<li>본 방침에 명시되지 않은 사항은 회사의 내부 방침과 관련 법령에 따릅니다.</li>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="content agr">
|
||||
<ul class="list_1">
|
||||
<li><span class="tit">제1장 총칙</span>
|
||||
<ul class="list_2" maker="1">
|
||||
<li>제1조 (목적)
|
||||
<ul class="list_3">
|
||||
<li>이 약관은 바론컨설턴트(이하 "회사"라 합니다)가 제공하는 EG-BIM 소프트웨어(이하 "서비스"라 합니다)를 이용함에
|
||||
있어 회사와 이용자 간의 권리,
|
||||
의무 및 책임사항과 기타 필요한 사항을 정하는 것을 목적으로 합니다.</li>
|
||||
</ul>
|
||||
<li>제2조 (용어의 정의)<br>
|
||||
본 약관에서 사용하는 용어의 정의는 다음과 같습니다:
|
||||
<ul class="list_3">
|
||||
<li>“서비스”란 회사가 제공하는 소프트웨어 및 관련 제반 서비스를 의미합니다.</li>
|
||||
<li>“이용자”란 회사의 서비스에 접속하여 본 약관에 따라 회사가 제공하는 서비스를 이용하는 회원 및 비회원을 말합니다.
|
||||
</li>
|
||||
<li>“회원”이란 본 약관에 동의하고 회사와 이용계약을 체결한 자를 의미합니다.</li>
|
||||
<li>“비회원”이란 회원가입을 하지 않고 회사가 제공하는 일부 서비스를 이용하는 자를 말합니다.</li>
|
||||
</ul>
|
||||
<li>제3조 (약관의 효력 및 변경)<br>
|
||||
본 약관에서 사용하는 용어의 정의는 다음과 같습니다:
|
||||
<ul class="list_3">
|
||||
<li>본 약관은 이용자가 본 약관에 동의하고, 회사가 이에 대한 승낙을 완료함으로써 효력이 발생합니다.</li>
|
||||
<li>회사는 필요한 경우 본 약관을 변경할 수 있으며, 변경된 약관은 서비스 화면에 공지된 후 효력이 발생합니다.
|
||||
</li>
|
||||
</ul>
|
||||
<li>제4조 (약관 외 준칙)
|
||||
<ul class="list_3">
|
||||
<li>본 약관에 명시되지 않은 사항에 대해서는 대한민국의 관련 법령과 상관습에 따릅니다.</li>
|
||||
</ul>
|
||||
</li>
|
||||
</li>
|
||||
</ul>
|
||||
</ul>
|
||||
|
||||
<ul class="list_1">
|
||||
<li><span class="tit">제2장 서비스 이용계약</span>
|
||||
<ul class="list_2" maker="1">
|
||||
<li>제5조 (이용계약의 성립)
|
||||
<ul class="list_3">
|
||||
<li>이용계약은 이용자가 약관의 내용에 동의하고, 회사가 제공하는 소정의 회원가입 신청서를 작성하여 가입을 완료한 후,
|
||||
회사가 이를 승인함으로써 성립합니다.</li>
|
||||
</ul>
|
||||
<li>제6조 (이용계약의 유보와 거절)<br>
|
||||
회사는 다음 각 호에 해당하는 경우 이용계약의 성립을 유보하거나 거절할 수 있습니다:
|
||||
<ul class="list_3">
|
||||
<li>신청서의 내용이 허위로 판명된 경우</li>
|
||||
<li>서비스 제공이 기술적으로 어려운 경우</li>
|
||||
</ul>
|
||||
|
||||
<li>제7조 (계약사항의 변경)<br>
|
||||
<ul class="list_3">
|
||||
<li>회원은 개인정보 관리 메뉴를 통해 언제든지 자신의 정보를 열람하고 수정할 수 있습니다. 회원의 정보가 변경된 경우
|
||||
즉시 수정해야 하며, 수정하지 않아
|
||||
발생하는 문제의 책임은 회원에게 있습니다.</li>
|
||||
</ul>
|
||||
</li>
|
||||
</li>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<ul class="list_1">
|
||||
<li><span class="tit">제3장 개인정보 보호</span>
|
||||
<ul class="list_2" maker="1">
|
||||
<li>제8조 (개인정보 보호의 원칙)
|
||||
<ul class="list_3">
|
||||
<li>회원의 개인정보는 관련 법령에 따라 보호됩니다.</li>
|
||||
<li>회사는 개인정보 보호와 관련된 세부 사항을 별도로 마련한 개인정보처리방침에 따라 관리하며, 이용자는 언제든지 해당
|
||||
방침을 통해 개인정보 관리에 대한
|
||||
자세한 내용을 확인할 수 있습니다.</li>
|
||||
</ul>
|
||||
<li>제9조 (개인정보처리방침 준수)
|
||||
<ul class="list_3">
|
||||
<li>회사는 개인정보 보호와 관련된 구체적인 사항을 개인정보처리방침에 따라 관리합니다.</li>
|
||||
<li>개인정보의 수집, 이용, 제공, 보관, 보호 등에 관한 사항은 회사의 개인정보처리방침을 따르며, 이용자는 회사
|
||||
웹사이트에서 이를 확인할 수
|
||||
있습니다.</li>
|
||||
<li>회사는 개인정보 보호를 위해 최선을 다하며, 관련 법령에 따라 이용자의 개인정보를 안전하게 관리합니다.</li>
|
||||
</ul>
|
||||
|
||||
<li>제10조 (14세 미만 아동의 개인정보 보호)<br>
|
||||
<ul class="list_3">
|
||||
<li>회사는 14세 미만 아동의 개인정보를 수집할 경우, 반드시 법정대리인의 동의를 받아야 합니다.</li>
|
||||
<li>법정대리인은 아동의 개인정보 열람, 수정, 삭제를 요청할 수 있으며, 회사는 이를 신속하게 처리합니다.</li>
|
||||
<li>14세 미만 아동의 개인정보 보호와 관련된 구체적인 사항은 개인정보처리방침에 명시되어 있습니다.</li>
|
||||
</ul>
|
||||
</li>
|
||||
</li>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<ul class="list_1">
|
||||
<li><span class="tit">제4장 서비스 제공 및 이용</span>
|
||||
<ul class="list_2" maker="1">
|
||||
<li>제11조 (서비스 제공)
|
||||
<ul class="list_3">
|
||||
<li>회사는 회원의 이용 신청을 승인한 때부터 서비스를 개시합니다. 서비스 이용은 연중무휴 24시간을 원칙으로 합니다.
|
||||
</li>
|
||||
</ul>
|
||||
<li>제12조 (서비스의 변경 및 중단)
|
||||
<ul class="list_3">
|
||||
<li>회사는 서비스 제공이 어려운 경우 사전 고지 후 서비스를 변경하거나 중단할 수 있습니다.</li>
|
||||
</ul>
|
||||
|
||||
<li>제10조 (14세 미만 아동의 개인정보 보호)<br>
|
||||
<ul class="list_3">
|
||||
<li>회사는 14세 미만 아동의 개인정보를 수집할 경우, 반드시 법정대리인의 동의를 받아야 합니다.</li>
|
||||
<li>법정대리인은 아동의 개인정보 열람, 수정, 삭제를 요청할 수 있으며, 회사는 이를 신속하게 처리합니다.</li>
|
||||
<li>14세 미만 아동의 개인정보 보호와 관련된 구체적인 사항은 개인정보처리방침에 명시되어 있습니다.</li>
|
||||
</ul>
|
||||
</li>
|
||||
</li>
|
||||
</ul>
|
||||
</ul>
|
||||
|
||||
<ul class="list_1">
|
||||
<li><span class="tit">제5장 정보 제공 및 광고</span>
|
||||
<ul class="list_2" maker="1">
|
||||
<li>제13조 (정보 제공 및 광고)
|
||||
<ul class="list_3">
|
||||
<li>회사는 서비스 이용 중 필요하다고 인정되는 정보 및 광고를 제공할 수 있습니다.</li>
|
||||
<li>회원은 원치 않는 정보를 수신 거부할 수 있습니다.</li>
|
||||
</ul>
|
||||
</li>
|
||||
</li>
|
||||
</ul>
|
||||
</ul>
|
||||
|
||||
<ul class="list_1">
|
||||
<li><span class="tit">제6장 게시물 관리</span>
|
||||
<ul class="list_2" maker="1">
|
||||
<li>제14조 (게시물의 관리)
|
||||
<ul class="list_3">
|
||||
<li>회사는 회원이 게시한 내용이 불법적이거나 약관에 위배될 경우 이를 삭제할 수 있습니다.</li>
|
||||
</ul>
|
||||
<li>제15조 (게시물의 저작권)
|
||||
<ul class="list_3">
|
||||
<li>게시물의 저작권은 회원에게 있으며, 회사는 이를 서비스 홍보 및 개선 목적으로 사용할 수 있습니다.</li>
|
||||
</ul>
|
||||
</li>
|
||||
</li>
|
||||
</ul>
|
||||
</ul>
|
||||
|
||||
<ul class="list_1">
|
||||
<li><span class="tit">제7장 계약 해지 및 이용 제한</span>
|
||||
<ul class="list_2" maker="1">
|
||||
<li>제16조 (계약 해지)
|
||||
<ul class="list_3">
|
||||
<li>회원은 언제든지 계약 해지를 요청할 수 있으며, 회사는 신속하게 처리합니다.</li>
|
||||
</ul>
|
||||
<li>제17조 (이용 제한)
|
||||
<ul class="list_3">
|
||||
<li>회사는 회원이 약관을 위반할 경우 서비스 이용을 제한할 수 있습니다.</li>
|
||||
</ul>
|
||||
</li>
|
||||
</li>
|
||||
</ul>
|
||||
</ul>
|
||||
|
||||
<ul class="list_1">
|
||||
<li><span class="tit">제8장 손해 배상 및 면책 조항</span>
|
||||
<ul class="list_2" maker="1">
|
||||
<li>제18조 (손해 배상)
|
||||
<ul class="list_3">
|
||||
<li>회사는 무료로 제공되는 서비스와 관련하여 회원에게 발생한 손해에 대해 책임을 지지 않습니다.</li>
|
||||
</ul>
|
||||
<li>제19조 (면책 조항)
|
||||
<ul class="list_3">
|
||||
<li>회사는 천재지변 등 불가항력적인 사유로 인해 서비스를 제공하지 못하는 경우 책임을 지지 않습니다.</li>
|
||||
</ul>
|
||||
</li>
|
||||
</li>
|
||||
</ul>
|
||||
</ul>
|
||||
|
||||
<ul class="list_1">
|
||||
<li><span class="tit">제9장 유료 서비스</span>
|
||||
<ul class="list_2" maker="1">
|
||||
<li>제20조 (유료 서비스의 이용)
|
||||
<ul class="list_3">
|
||||
<li>회사는 회원에게 특정 서비스에 대해 유료로 제공할 수 있습니다.</li>
|
||||
<li>유료 서비스의 이용 요금, 결제 방식, 환불 절차 등에 대한 상세 내용은 서비스 안내 페이지와 결제 화면에
|
||||
명시합니다.</li>
|
||||
<li>유료 서비스 이용 요금은 회사가 정한 결제 방식에 따라 결제됩니다. 회원은 신용카드, 계좌이체, 휴대전화 결제 등
|
||||
회사가 제공하는 다양한 결제
|
||||
방식을 통해 요금을 납부할 수 있습니다.</li>
|
||||
<li>유료 서비스의 이용 요금은 선불 결제를 원칙으로 하며, 이용 기간 중 서비스 중지 및 해지 시 남은 이용 기간에
|
||||
대한 환불은 회사의 환불 정책에
|
||||
따라 처리됩니다.</li>
|
||||
<li>회사는 회원의 유료 서비스 이용과 관련하여 발생한 문제에 대해 최선을 다해 해결하도록 노력합니다. 다만, 회사의
|
||||
고의 또는 중대한 과실이 없는 한
|
||||
회원이 유료 서비스 이용 중 입은 손해에 대해서는 책임을 지지 않습니다</li>
|
||||
</ul>
|
||||
<li>21조 (환불 정책)
|
||||
<ul class="list_3">
|
||||
<li>회원은 결제 후 7일 이내에 서비스 이용을 시작하지 않은 경우, 요금 전액을 환불받을 수 있습니다.</li>
|
||||
<li>유료 서비스 이용 중 부득이한 사유로 서비스가 중지된 경우, 회사는 이용하지 않은 부분에 대해 환불 절차를
|
||||
밟습니다.</li>
|
||||
<li>회원의 귀책사유로 인해 서비스 이용이 중지된 경우, 환불이 불가능합니다.</li>
|
||||
<li>환불은 회원이 지정한 계좌로 환불 절차를 거치며, 환불 요청 후 7일 이내에 처리됩니다.</li>
|
||||
</ul>
|
||||
<li>제22조 (유료 서비스의 중지 및 해지)
|
||||
<ul class="list_3">
|
||||
<li>회원이 유료 서비스를 해지하고자 하는 경우, 회사의 고객 지원 센터에 해지 신청을 해야 합니다.</li>
|
||||
<li>회사는 회원이 약관을 위반하거나 부정한 방법으로 유료 서비스를 이용한 경우, 유료 서비스 이용을 즉시 중지하고
|
||||
계약을 해지할 수 있습니다.</li>
|
||||
</ul>
|
||||
</li>
|
||||
</li>
|
||||
</ul>
|
||||
</ul>
|
||||
|
||||
<ul class="list_1">
|
||||
<li><span class="tit">제10장 양도 금지</span>
|
||||
<ul class="list_2" maker="1">
|
||||
<li>제23조 (양도 금지)
|
||||
<ul class="list_3">
|
||||
<li>회원은 서비스 이용권한, 기타 이용계약상의 지위를 제3자에게 양도, 증여할 수 없으며, 이를 담보로 제공할 수
|
||||
없습니다.</li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<ul class="list_1">
|
||||
<li><span class="tit">제11장 관할 법원</span>
|
||||
<ul class="list_2" maker="1">
|
||||
<li>제24조 (분쟁 해결)
|
||||
<ul class="list_3">
|
||||
<li>서비스 이용과 관련하여 분쟁이 발생한 경우, 회사와 회원은 성실히 협의하여 해결합니다.</li>
|
||||
</ul>
|
||||
<li>제25조 (관할 법원)
|
||||
<ul class="list_3">
|
||||
<li>본 약관에 따른 분쟁은 서울중앙지방법원을 관할 법원으로 합니다.</li>
|
||||
</ul>
|
||||
</li>
|
||||
</li>
|
||||
</ul>
|
||||
</ul>
|
||||
|
||||
<ul class="list_1">
|
||||
<li><span class="tit">부칙</span>
|
||||
<ul class="list_2" maker="1">
|
||||
<li>본 약관은 2024년 10월 1일부터 시행됩니다.
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!--//popup_in-->
|
||||
</div>
|
||||
<!--//popup_wrap-->
|
||||
@@ -0,0 +1,543 @@
|
||||
<?php
|
||||
|
||||
?>
|
||||
|
||||
<!--popup_wrap-->
|
||||
<div class="popup_wrap" id="pop_privacy">
|
||||
<!--popup_in-->
|
||||
<div class="popup_in">
|
||||
<button class="btn_close">
|
||||
<div class="close_div"><img src="<?php echo G5_URL ?>/img/ico_close.svg" alt=""></div>
|
||||
</button>
|
||||
<!--popup_wrap-->
|
||||
<div class="popup_content privacy">
|
||||
<div class="contents_wrap">
|
||||
<ul class="tab_wrap">
|
||||
<li class="tab_privacy on"><span>개인정보 보호정책</span></li>
|
||||
<li class="tab_agreement"><span>이용약관</span></li>
|
||||
</ul>
|
||||
<div class="content pri show">
|
||||
<ul class="list_1">
|
||||
<li><span class="tit">제1조. 목적</span>
|
||||
<ul class="list_2" maker="1">
|
||||
<li>바론컨설턴트(이하 "회사")는 EG-BIM 서비스(이하 "서비스")를 이용하는 고객(이하 "이용자")의<br>
|
||||
개인정보를 보호하고, 「개인정보 보호법」에 따라 책임과 의무를 다하기 위해 본 개인정보처리방침을<br>
|
||||
마련했습니다. 본 방침은 이용자가 제공한 개인정보가 어떻게 수집, 이용, 보관, 보호되는지를 설명합니다.</li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<ul class="list_1">
|
||||
<li><span class="tit">제2조. 개인정보의 처리목적</span>
|
||||
<ul class="list_2">
|
||||
<li>회사는 다음의 목적을 위해 개인정보를 처리합니다.<br>
|
||||
처리하고 있는 개인정보는 다음의 목적 이외의 용도로는 이용되지 않으며, 이용 목적이 변경되는 경우에는 <br>
|
||||
「개인정보 보호법」 제18조에 따라 별도의 동의를 받는 등 필요한 조치를 이행할 예정입니다.<br>
|
||||
<ul class="list_3">
|
||||
<li>본인확인: 회원가입 및 관리를 위한 본인 확인, 전화 또는 이메일을 통한 연락</li>
|
||||
<li>서비스 제공: 각종 통보 및 서비스 제공을 위한 업무 처리</li>
|
||||
<li>제품소개서 다운로드: 설명자료 전달</li>
|
||||
<li>상담 및 데모 신청: 상담 제공 및 데모 제공, 계약 처리자 정보 수집</li>
|
||||
<li>행사 참가 신청: 참석 안내 및 세미나/설명회/교육 제공</li>
|
||||
<li>보안가이드 제공: 안내자료 전달</li>
|
||||
<li>기술지원 문의: 서비스 사용 지원</li>
|
||||
<li>서비스 개선 의견 접수: 서비스 품질 개선</li>
|
||||
<li>마케팅 활동: 동의한 고객에 한해 뉴스레터 및 매거진 발송</li>
|
||||
</ul>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<ul class="list_1">
|
||||
<li><span class="tit">제3조. 개인정보의 처리 및 보유 기간</span>
|
||||
<ul class="list_2">
|
||||
<li>회사는 법령에 따른 개인정보 보유 및 이용기간 또는 정보주체로부터 개인정보를 수집 시 동의받은 개인정보 보유 및 이용기간 내에서
|
||||
개인정보를 처리 및 보유합니다.</li>
|
||||
<li>각각의 개인정보 처리 및 보유 기간은 다음과 같습니다:
|
||||
<ul class="list_3">
|
||||
<li>회원정보: 회원가입일부터 회원탈퇴 후 1년까지</li>
|
||||
<li>홍보, 상담, 계약용 개인정보: 2년</li>
|
||||
</ul>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<ul class="list_1">
|
||||
<li><span class="tit">제4조. 개인정보의 제3자 제공</span>
|
||||
<ul class="list_2">
|
||||
<li>회사는 정보주체의 개인정보를 제2조에서 명시한 범위 내에서만 처리하며, 정보 주체의 동의, 법률의 특별한 규정 등 「개인정보
|
||||
보호법」 제17조 및
|
||||
제18조에 해당하는 경우에만 개인정보를 제3자에게 제공합니다.</li>
|
||||
<li>회사는 다음과 같이 개인정보를 제3자에게 제공하고 있습니다:
|
||||
<ul class="list_3">
|
||||
<li>제공받는 자: 수사기관 및 유관기관, 피신고업체</li>
|
||||
<li>이용 목적: 개인정보 침해 민원 처리</li>
|
||||
<li>제공하는 개인정보 항목: 성명, 연락처, 이메일</li>
|
||||
<li>보유 및 이용기간: 법령에서 정한 보존기간 및 제공목적 달성 시 파기</li>
|
||||
</ul>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<ul class="list_1">
|
||||
<li><span class="tit">제5조. 개인정보 처리 위탁</span>
|
||||
<ul class="list_2">
|
||||
<li>회사는 개인정보 처리업무를 외부 업체에 위탁하지 않으며, 자체적으로 처리하고 있습니다.</li>
|
||||
<li>회사가 특정 업무(예: 채용 업무)를 외부 업체에 위탁할 경우, <br>개인정보 처리방침 시행 전 회사 홈페이지에서 공지한 후
|
||||
정보주체의 동의를 받은 후 위탁합니다.</li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<ul class="list_1">
|
||||
<li><span class="tit">제6조. 정보주체의 권리·의무 및 행사 방법</span>
|
||||
<ul class="list_2">
|
||||
<li>정보주체는 회사에 대해 언제든지 개인정보 열람, 정정, 삭제, 처리정지 요구 등의 권리를 행사할 수 있습니다.</li>
|
||||
<li>권리 행사는 다음과 같은 방법으로 할 수 있습니다:
|
||||
<ul class="list_3">
|
||||
<li>서면: 회사 주소로 서면 제출</li>
|
||||
<li>전자우편: 회사 이메일로 요청</li>
|
||||
<li>모사전송(FAX): 회사 FAX로 요청</li>
|
||||
</ul>
|
||||
<li>권리 행사는 정보주체의 법정대리인이나 위임을 받은 자를 통해 대리로도 가능합니다. 이 경우 “개인정보 처리 방법에 관한 고시”
|
||||
별지 제11호 서식에 따른 위임장을 제출해야 합니다.</li>
|
||||
<li>개인정보 열람 및 처리정지 요구는 「개인정보 보호법」 제35조 제4항, 제37조 제2항에 따라 제한될 수 있습니다.</li>
|
||||
<li>개인정보의 정정 및 삭제 요구는 다른 법령에 따라 수집된 개인정보인 경우 제한될 수 있습니다.</li>
|
||||
<li>회사는 권리 행사를 요청한 자가 본인 또는 정당한 대리인인지를 확인합니다.</li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<ul class="list_1">
|
||||
<li><span class="tit">제7조. 처리하는 개인정보의 항목</span>
|
||||
<ul class="list_2">
|
||||
<li>회사는 다음의 개인정보 항목을 처리합니다:</li>
|
||||
<li>수집 항목
|
||||
<ul class="list_3">
|
||||
<li>필수 항목: 성명, 휴대전화번호, 이메일</li>
|
||||
<li>선택 항목: 회사전화번호, 문의사항</li>
|
||||
<li>수집 방법: 홈페이지, 전화, 이메일을 통해 수집</li>
|
||||
</ul>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<ul class="list_1">
|
||||
<li><span class="tit">제8조. 개인정보의 파기</span>
|
||||
<ul class="list_2">
|
||||
<li>회사는 개인정보 보유 기간의 경과, 처리 목적 달성 등 개인정보가 불필요하게 되었을 때 지체 없이 해당 개인정보를 파기합니다.
|
||||
</li>
|
||||
<li>정보주체로부터 동의받은 개인정보 보유 기간이 경과하거나 처리 목적이 달성된 경우에도 다른 법령에 따라 개인정보를 계속 보존해야 할
|
||||
경우에는, 해당 개인정보를 별도의 데이터베이스(DB)로 옮기거나 보관 장소를 달리하여 보존합니다.</li>
|
||||
<li>개인정보 파기의 절차 및 방법은 다음과 같습니다:
|
||||
<ul class="list_3">
|
||||
<li>파기 절차: 회사는 파기 사유가 발생한 개인정보를 선정하고, 개인정보 보호책임자의 승인을 받아 개인정보를
|
||||
파기합니다.</li>
|
||||
<li>파기 방법: 전자적 파일 형태로 기록된 개인정보는 복구할 수 없도록 기술적 방법을 사용해 삭제하며, 종이 문서에
|
||||
기록된 개인정보는 분쇄기로
|
||||
분쇄하거나 소각하여 파기합니다.</li>
|
||||
</ul>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<ul class="list_1">
|
||||
<li><span class="tit">제9조. 개인정보의 안전성 확보 조치</span>
|
||||
<ul class="list_2">
|
||||
<li>회사는 개인정보의 안전성 확보를 위해 다음과 같은 조치를 취합니다:
|
||||
<ul class="list_3">
|
||||
<li>관리적 조치: 내부관리계획 수립·시행, 정기적 직원 교육</li>
|
||||
<li>기술적 조치: 개인정보처리시스템 접근 권한 관리, 접근통제시스템 설치, 고유식별정보 암호화, 보안 프로그램 설치
|
||||
</li>
|
||||
<li>물리적 조치: 전산실 및 자료보관실 접근 통제</li>
|
||||
</ul>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<ul class="list_1">
|
||||
<li><span class="tit">제10조. 개인정보 자동 수집 장치의 설치·운영 및 거부에 관한 사항</span>
|
||||
<ul class="list_2">
|
||||
<li>회사는 쿠키(Cookie)를 사용하지 않습니다. 쿠키는 이용자의 이용 정보를 저장하고 수시로 불러오는 작은 파일로,
|
||||
EG-BIM 서비스에서는 쿠키를 사용하지 않습니다.
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<ul class="list_1">
|
||||
<li><span class="tit">제11조. 개인정보 보호책임자</span>
|
||||
<ul class="list_2">
|
||||
<li>회사는 개인정보 처리에 관한 업무를 총괄하여 책임지고, 개인정보 처리와 관련된 정보주체의 불만처리 및 피해구제를 위해 개인정보
|
||||
보호책임자를 지정하고 있습니다.</li>
|
||||
<li>개인정보 보호책임자:
|
||||
<ul class="list_3">
|
||||
<li>성명: 박진</li>
|
||||
<li>직책: 책임연구원</li>
|
||||
<li>연락처: 02-2141-7485</li>
|
||||
<li>팩스번호: 02-2141-7599</li>
|
||||
<li>이메일: jpark@baroncs.co.kr</li>
|
||||
</ul>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<ul class="list_1">
|
||||
<li><span class="tit">제12조. 개인정보 열람청구</span>
|
||||
<ul class="list_2">
|
||||
<li>정보주체는 「개인정보 보호법」 제35조에 따른 개인정보 열람 청구를 아래 부서에 할 수 있습니다. 회사는 정보주체의 개인정보
|
||||
열람청구가 신속하게 처리되도록 노력하겠습니다.</li>
|
||||
<li>개인정보 열람청구 접수·처리 부서:
|
||||
<ul class="list_3">
|
||||
<li>부서명: 총괄기획실</li>
|
||||
<li>담당자: 권혁진</li>
|
||||
<li>연락처: 02-2141-7465</li>
|
||||
<li>팩스번호: 02-2141-7599</li>
|
||||
<li>이메일: baroncs@baroncs.co.kr</li>
|
||||
</ul>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<ul class="list_1">
|
||||
<li><span class="tit">제13조. 권익침해 구제방법</span>
|
||||
<ul class="list_2">
|
||||
<li>정보주체는 개인정보 침해로 인한 구제를 위해 개인정보분쟁조정위원회, 한국인터넷진흥원 개인정보침해신고센터 등에 분쟁 해결이나 상담을
|
||||
신청할 수 있습니다.
|
||||
<ul class="list_3">
|
||||
<li>개인정보분쟁조정위원회: (국번없이) 1833-6972 (www.kopico.go.kr)</li>
|
||||
<li>개인정보침해신고센터: (국번없이) 118 (privacy.kisa.or.kr)</li>
|
||||
<li>대검찰청: (국번없이) 1301 (www.spo.go.kr)</li>
|
||||
<li>팩스번호: 02-408-1927</li>
|
||||
<li>경찰청: (국번없이) 182 (www.police.go.kr)</li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<ul class="list_1">
|
||||
<li><span class="tit">제14조. 개인정보 처리방침의 변경</span>
|
||||
<ul class="list_2">
|
||||
<li>본 개인정보처리방침은 법령, 정책 또는 보안 기술의 변경에 따라 내용의 추가, 삭제 및 수정이 있을 시, 개정 최소 7일 전에
|
||||
홈페이지를 통해 사전
|
||||
공지합니다.</li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<ul class="list_1">
|
||||
<li><span class="tit">부칙</span>
|
||||
<ul class="list_2">
|
||||
<li>제 1조 (시행일자)
|
||||
<ul class="list_3">
|
||||
<li>이 개인정보처리방침은 2024년 10월 1일부터 시행됩니다.</li>
|
||||
</li>
|
||||
</ul>
|
||||
<li>제2조 (개정 및 고지의 의무)
|
||||
<ul class="list_3">
|
||||
<li>회사는 개인정보처리방침을 변경하는 경우, 변경사항을 시행일자 7일 전부터 서비스 내 공지사항 페이지를 통해 고지할 것입니다.
|
||||
다만, 이용자의 권리나
|
||||
의무에 중대한 변경이 발생하는 경우에는 시행일자 30일 전부터 고지합니다.</li>
|
||||
</li>
|
||||
</ul>
|
||||
<li>제3조 (유효성)
|
||||
<ul class="list_3">
|
||||
<li>본 개인정보처리방침의 일부 조항이 법적 또는 기타 사유로 인해 무효화되거나 시행할 수 없는 경우, 나머지 조항들은 계속해서 유효합니다.
|
||||
무효화된 조항은
|
||||
관련 법령에 부합하는 방식으로 수정되어 효력을 지속합니다.</li>
|
||||
</li>
|
||||
</ul>
|
||||
<li>제4조 (변경 통지의 방법)<br>
|
||||
회사는 개인정보처리방침의 변경 시, 다음의 방법으로 이용자에게 고지합니다:
|
||||
<ul class="list_3">
|
||||
<li>서비스 초기화면 또는 팝업 공지</li>
|
||||
<li>이메일 발송</li>
|
||||
<li>회사 홈페이지 공지사항</li>
|
||||
</li>
|
||||
</ul>
|
||||
<li>제5조 (비회원의 개인정보 보호)
|
||||
<ul class="list_3">
|
||||
<li>회사는 비회원의 개인정보도 회원과 동일한 수준으로 보호합니다. 비회원이 개인정보 제공을 거부할 경우 일부 서비스 이용에 제한이 있을 수
|
||||
있습니다.</li>
|
||||
</li>
|
||||
</ul>
|
||||
<li>제6조 (14세 미만 아동의 개인정보 보호)
|
||||
<ul class="list_3">
|
||||
<li>회사는 14세 미만 아동의 개인정보를 수집하지 않습니다. 만일 14세 미만 아동의 개인정보가 수집된 경우, 법정 대리인의 동의를 받아야
|
||||
하며, 법정
|
||||
대리인의 동의 없이 수집된 경우 이를 지체 없이 파기합니다.</li>
|
||||
</li>
|
||||
</ul>
|
||||
<li>제7조 (개인정보의 국외 이전)
|
||||
<ul class="list_3">
|
||||
<li>회사는 이용자의 개인정보를 국외로 이전하지 않으며, 향후 필요한 경우, 사전에 이용자의 동의를 받습니다.</li>
|
||||
</li>
|
||||
</ul>
|
||||
<li>제8조 (기타)
|
||||
<ul class="list_3">
|
||||
<li>본 방침에 명시되지 않은 사항은 회사의 내부 방침과 관련 법령에 따릅니다.</li>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="content agr">
|
||||
<ul class="list_1">
|
||||
<li><span class="tit">제1장 총칙</span>
|
||||
<ul class="list_2" maker="1">
|
||||
<li>제1조 (목적)
|
||||
<ul class="list_3">
|
||||
<li>이 약관은 바론컨설턴트(이하 "회사"라 합니다)가 제공하는 EG-BIM 소프트웨어(이하 "서비스"라 합니다)를 이용함에
|
||||
있어 회사와 이용자 간의 권리,
|
||||
의무 및 책임사항과 기타 필요한 사항을 정하는 것을 목적으로 합니다.</li>
|
||||
</ul>
|
||||
<li>제2조 (용어의 정의)<br>
|
||||
본 약관에서 사용하는 용어의 정의는 다음과 같습니다:
|
||||
<ul class="list_3">
|
||||
<li>“서비스”란 회사가 제공하는 소프트웨어 및 관련 제반 서비스를 의미합니다.</li>
|
||||
<li>“이용자”란 회사의 서비스에 접속하여 본 약관에 따라 회사가 제공하는 서비스를 이용하는 회원 및 비회원을 말합니다.
|
||||
</li>
|
||||
<li>“회원”이란 본 약관에 동의하고 회사와 이용계약을 체결한 자를 의미합니다.</li>
|
||||
<li>“비회원”이란 회원가입을 하지 않고 회사가 제공하는 일부 서비스를 이용하는 자를 말합니다.</li>
|
||||
</ul>
|
||||
<li>제3조 (약관의 효력 및 변경)<br>
|
||||
본 약관에서 사용하는 용어의 정의는 다음과 같습니다:
|
||||
<ul class="list_3">
|
||||
<li>본 약관은 이용자가 본 약관에 동의하고, 회사가 이에 대한 승낙을 완료함으로써 효력이 발생합니다.</li>
|
||||
<li>회사는 필요한 경우 본 약관을 변경할 수 있으며, 변경된 약관은 서비스 화면에 공지된 후 효력이 발생합니다.
|
||||
</li>
|
||||
</ul>
|
||||
<li>제4조 (약관 외 준칙)
|
||||
<ul class="list_3">
|
||||
<li>본 약관에 명시되지 않은 사항에 대해서는 대한민국의 관련 법령과 상관습에 따릅니다.</li>
|
||||
</ul>
|
||||
</li>
|
||||
</li>
|
||||
</ul>
|
||||
</ul>
|
||||
|
||||
<ul class="list_1">
|
||||
<li><span class="tit">제2장 서비스 이용계약</span>
|
||||
<ul class="list_2" maker="1">
|
||||
<li>제5조 (이용계약의 성립)
|
||||
<ul class="list_3">
|
||||
<li>이용계약은 이용자가 약관의 내용에 동의하고, 회사가 제공하는 소정의 회원가입 신청서를 작성하여 가입을 완료한 후,
|
||||
회사가 이를 승인함으로써 성립합니다.</li>
|
||||
</ul>
|
||||
<li>제6조 (이용계약의 유보와 거절)<br>
|
||||
회사는 다음 각 호에 해당하는 경우 이용계약의 성립을 유보하거나 거절할 수 있습니다:
|
||||
<ul class="list_3">
|
||||
<li>신청서의 내용이 허위로 판명된 경우</li>
|
||||
<li>서비스 제공이 기술적으로 어려운 경우</li>
|
||||
</ul>
|
||||
|
||||
<li>제7조 (계약사항의 변경)<br>
|
||||
<ul class="list_3">
|
||||
<li>회원은 개인정보 관리 메뉴를 통해 언제든지 자신의 정보를 열람하고 수정할 수 있습니다. 회원의 정보가 변경된 경우
|
||||
즉시 수정해야 하며, 수정하지 않아
|
||||
발생하는 문제의 책임은 회원에게 있습니다.</li>
|
||||
</ul>
|
||||
</li>
|
||||
</li>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<ul class="list_1">
|
||||
<li><span class="tit">제3장 개인정보 보호</span>
|
||||
<ul class="list_2" maker="1">
|
||||
<li>제8조 (개인정보 보호의 원칙)
|
||||
<ul class="list_3">
|
||||
<li>회원의 개인정보는 관련 법령에 따라 보호됩니다.</li>
|
||||
<li>회사는 개인정보 보호와 관련된 세부 사항을 별도로 마련한 개인정보처리방침에 따라 관리하며, 이용자는 언제든지 해당
|
||||
방침을 통해 개인정보 관리에 대한
|
||||
자세한 내용을 확인할 수 있습니다.</li>
|
||||
</ul>
|
||||
<li>제9조 (개인정보처리방침 준수)
|
||||
<ul class="list_3">
|
||||
<li>회사는 개인정보 보호와 관련된 구체적인 사항을 개인정보처리방침에 따라 관리합니다.</li>
|
||||
<li>개인정보의 수집, 이용, 제공, 보관, 보호 등에 관한 사항은 회사의 개인정보처리방침을 따르며, 이용자는 회사
|
||||
웹사이트에서 이를 확인할 수
|
||||
있습니다.</li>
|
||||
<li>회사는 개인정보 보호를 위해 최선을 다하며, 관련 법령에 따라 이용자의 개인정보를 안전하게 관리합니다.</li>
|
||||
</ul>
|
||||
|
||||
<li>제10조 (14세 미만 아동의 개인정보 보호)<br>
|
||||
<ul class="list_3">
|
||||
<li>회사는 14세 미만 아동의 개인정보를 수집할 경우, 반드시 법정대리인의 동의를 받아야 합니다.</li>
|
||||
<li>법정대리인은 아동의 개인정보 열람, 수정, 삭제를 요청할 수 있으며, 회사는 이를 신속하게 처리합니다.</li>
|
||||
<li>14세 미만 아동의 개인정보 보호와 관련된 구체적인 사항은 개인정보처리방침에 명시되어 있습니다.</li>
|
||||
</ul>
|
||||
</li>
|
||||
</li>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<ul class="list_1">
|
||||
<li><span class="tit">제4장 서비스 제공 및 이용</span>
|
||||
<ul class="list_2" maker="1">
|
||||
<li>제11조 (서비스 제공)
|
||||
<ul class="list_3">
|
||||
<li>회사는 회원의 이용 신청을 승인한 때부터 서비스를 개시합니다. 서비스 이용은 연중무휴 24시간을 원칙으로 합니다.
|
||||
</li>
|
||||
</ul>
|
||||
<li>제12조 (서비스의 변경 및 중단)
|
||||
<ul class="list_3">
|
||||
<li>회사는 서비스 제공이 어려운 경우 사전 고지 후 서비스를 변경하거나 중단할 수 있습니다.</li>
|
||||
</ul>
|
||||
|
||||
<li>제10조 (14세 미만 아동의 개인정보 보호)<br>
|
||||
<ul class="list_3">
|
||||
<li>회사는 14세 미만 아동의 개인정보를 수집할 경우, 반드시 법정대리인의 동의를 받아야 합니다.</li>
|
||||
<li>법정대리인은 아동의 개인정보 열람, 수정, 삭제를 요청할 수 있으며, 회사는 이를 신속하게 처리합니다.</li>
|
||||
<li>14세 미만 아동의 개인정보 보호와 관련된 구체적인 사항은 개인정보처리방침에 명시되어 있습니다.</li>
|
||||
</ul>
|
||||
</li>
|
||||
</li>
|
||||
</ul>
|
||||
</ul>
|
||||
|
||||
<ul class="list_1">
|
||||
<li><span class="tit">제5장 정보 제공 및 광고</span>
|
||||
<ul class="list_2" maker="1">
|
||||
<li>제13조 (정보 제공 및 광고)
|
||||
<ul class="list_3">
|
||||
<li>회사는 서비스 이용 중 필요하다고 인정되는 정보 및 광고를 제공할 수 있습니다.</li>
|
||||
<li>회원은 원치 않는 정보를 수신 거부할 수 있습니다.</li>
|
||||
</ul>
|
||||
</li>
|
||||
</li>
|
||||
</ul>
|
||||
</ul>
|
||||
|
||||
<ul class="list_1">
|
||||
<li><span class="tit">제6장 게시물 관리</span>
|
||||
<ul class="list_2" maker="1">
|
||||
<li>제14조 (게시물의 관리)
|
||||
<ul class="list_3">
|
||||
<li>회사는 회원이 게시한 내용이 불법적이거나 약관에 위배될 경우 이를 삭제할 수 있습니다.</li>
|
||||
</ul>
|
||||
<li>제15조 (게시물의 저작권)
|
||||
<ul class="list_3">
|
||||
<li>게시물의 저작권은 회원에게 있으며, 회사는 이를 서비스 홍보 및 개선 목적으로 사용할 수 있습니다.</li>
|
||||
</ul>
|
||||
</li>
|
||||
</li>
|
||||
</ul>
|
||||
</ul>
|
||||
|
||||
<ul class="list_1">
|
||||
<li><span class="tit">제7장 계약 해지 및 이용 제한</span>
|
||||
<ul class="list_2" maker="1">
|
||||
<li>제16조 (계약 해지)
|
||||
<ul class="list_3">
|
||||
<li>회원은 언제든지 계약 해지를 요청할 수 있으며, 회사는 신속하게 처리합니다.</li>
|
||||
</ul>
|
||||
<li>제17조 (이용 제한)
|
||||
<ul class="list_3">
|
||||
<li>회사는 회원이 약관을 위반할 경우 서비스 이용을 제한할 수 있습니다.</li>
|
||||
</ul>
|
||||
</li>
|
||||
</li>
|
||||
</ul>
|
||||
</ul>
|
||||
|
||||
<ul class="list_1">
|
||||
<li><span class="tit">제8장 손해 배상 및 면책 조항</span>
|
||||
<ul class="list_2" maker="1">
|
||||
<li>제18조 (손해 배상)
|
||||
<ul class="list_3">
|
||||
<li>회사는 무료로 제공되는 서비스와 관련하여 회원에게 발생한 손해에 대해 책임을 지지 않습니다.</li>
|
||||
</ul>
|
||||
<li>제19조 (면책 조항)
|
||||
<ul class="list_3">
|
||||
<li>회사는 천재지변 등 불가항력적인 사유로 인해 서비스를 제공하지 못하는 경우 책임을 지지 않습니다.</li>
|
||||
</ul>
|
||||
</li>
|
||||
</li>
|
||||
</ul>
|
||||
</ul>
|
||||
|
||||
<ul class="list_1">
|
||||
<li><span class="tit">제9장 유료 서비스</span>
|
||||
<ul class="list_2" maker="1">
|
||||
<li>제20조 (유료 서비스의 이용)
|
||||
<ul class="list_3">
|
||||
<li>회사는 회원에게 특정 서비스에 대해 유료로 제공할 수 있습니다.</li>
|
||||
<li>유료 서비스의 이용 요금, 결제 방식, 환불 절차 등에 대한 상세 내용은 서비스 안내 페이지와 결제 화면에
|
||||
명시합니다.</li>
|
||||
<li>유료 서비스 이용 요금은 회사가 정한 결제 방식에 따라 결제됩니다. 회원은 신용카드, 계좌이체, 휴대전화 결제 등
|
||||
회사가 제공하는 다양한 결제
|
||||
방식을 통해 요금을 납부할 수 있습니다.</li>
|
||||
<li>유료 서비스의 이용 요금은 선불 결제를 원칙으로 하며, 이용 기간 중 서비스 중지 및 해지 시 남은 이용 기간에
|
||||
대한 환불은 회사의 환불 정책에
|
||||
따라 처리됩니다.</li>
|
||||
<li>회사는 회원의 유료 서비스 이용과 관련하여 발생한 문제에 대해 최선을 다해 해결하도록 노력합니다. 다만, 회사의
|
||||
고의 또는 중대한 과실이 없는 한
|
||||
회원이 유료 서비스 이용 중 입은 손해에 대해서는 책임을 지지 않습니다</li>
|
||||
</ul>
|
||||
<li>21조 (환불 정책)
|
||||
<ul class="list_3">
|
||||
<li>회원은 결제 후 7일 이내에 서비스 이용을 시작하지 않은 경우, 요금 전액을 환불받을 수 있습니다.</li>
|
||||
<li>유료 서비스 이용 중 부득이한 사유로 서비스가 중지된 경우, 회사는 이용하지 않은 부분에 대해 환불 절차를
|
||||
밟습니다.</li>
|
||||
<li>회원의 귀책사유로 인해 서비스 이용이 중지된 경우, 환불이 불가능합니다.</li>
|
||||
<li>환불은 회원이 지정한 계좌로 환불 절차를 거치며, 환불 요청 후 7일 이내에 처리됩니다.</li>
|
||||
</ul>
|
||||
<li>제22조 (유료 서비스의 중지 및 해지)
|
||||
<ul class="list_3">
|
||||
<li>회원이 유료 서비스를 해지하고자 하는 경우, 회사의 고객 지원 센터에 해지 신청을 해야 합니다.</li>
|
||||
<li>회사는 회원이 약관을 위반하거나 부정한 방법으로 유료 서비스를 이용한 경우, 유료 서비스 이용을 즉시 중지하고
|
||||
계약을 해지할 수 있습니다.</li>
|
||||
</ul>
|
||||
</li>
|
||||
</li>
|
||||
</ul>
|
||||
</ul>
|
||||
|
||||
<ul class="list_1">
|
||||
<li><span class="tit">제10장 양도 금지</span>
|
||||
<ul class="list_2" maker="1">
|
||||
<li>제23조 (양도 금지)
|
||||
<ul class="list_3">
|
||||
<li>회원은 서비스 이용권한, 기타 이용계약상의 지위를 제3자에게 양도, 증여할 수 없으며, 이를 담보로 제공할 수
|
||||
없습니다.</li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<ul class="list_1">
|
||||
<li><span class="tit">제11장 관할 법원</span>
|
||||
<ul class="list_2" maker="1">
|
||||
<li>제24조 (분쟁 해결)
|
||||
<ul class="list_3">
|
||||
<li>서비스 이용과 관련하여 분쟁이 발생한 경우, 회사와 회원은 성실히 협의하여 해결합니다.</li>
|
||||
</ul>
|
||||
<li>제25조 (관할 법원)
|
||||
<ul class="list_3">
|
||||
<li>본 약관에 따른 분쟁은 서울중앙지방법원을 관할 법원으로 합니다.</li>
|
||||
</ul>
|
||||
</li>
|
||||
</li>
|
||||
</ul>
|
||||
</ul>
|
||||
|
||||
<ul class="list_1">
|
||||
<li><span class="tit">부칙</span>
|
||||
<ul class="list_2" maker="1">
|
||||
<li>본 약관은 2024년 10월 1일부터 시행됩니다.
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!--//popup_content-->
|
||||
</div>
|
||||
<!--//popup_in-->
|
||||
@@ -0,0 +1,52 @@
|
||||
<?php
|
||||
if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가
|
||||
|
||||
// add_stylesheet('css 구문', 출력순서); 숫자가 작을 수록 먼저 출력됨
|
||||
add_stylesheet('<link rel="stylesheet" href="'.$member_skin_url.'/style.css">', 0);
|
||||
?>
|
||||
|
||||
<!-- 자기소개 시작 { -->
|
||||
<div id="profile" class="new_win">
|
||||
<h1 id="win_title"><?php echo $mb_nick ?>님의 프로필</h1>
|
||||
<div class="profile_name">
|
||||
<span class="my_profile_img">
|
||||
<?php echo get_member_profile_img($mb['mb_id']); ?>
|
||||
</span>
|
||||
<?php echo $mb_nick ?>
|
||||
</div>
|
||||
<div class="tbl_head02 tbl_wrap new_win_con">
|
||||
<table>
|
||||
<tbody>
|
||||
<tr>
|
||||
<th scope="row"><i class="fa fa-star-o" aria-hidden="true"></i> 회원권한</th>
|
||||
<td><?php echo $mb['mb_level'] ?></td>
|
||||
<th scope="row"><i class="fa fa-database" aria-hidden="true"></i> 포인트</th>
|
||||
<td><?php echo number_format($mb['mb_point']) ?></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row"><i class="fa fa-clock-o" aria-hidden="true"></i> 회원가입일</th>
|
||||
<td><?php echo ($member['mb_level'] >= $mb['mb_level']) ? substr($mb['mb_datetime'],0,10) ." (".number_format($mb_reg_after)." 일)" : "알 수 없음"; ?></td>
|
||||
<th scope="row"><i class="fa fa-clock-o" aria-hidden="true"></i> 최종접속일</th>
|
||||
<td><?php echo ($member['mb_level'] >= $mb['mb_level']) ? $mb['mb_today_login'] : "알 수 없음"; ?></td>
|
||||
</tr>
|
||||
<?php if ($mb_homepage) { ?>
|
||||
<tr>
|
||||
<th scope="row"><i class="fa fa-home" aria-hidden="true"></i> 홈페이지</th>
|
||||
<td colspan="3"><a href="<?php echo $mb_homepage ?>" target="_blank"><?php echo $mb_homepage ?></a></td>
|
||||
</tr>
|
||||
<?php } ?>
|
||||
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
|
||||
<section>
|
||||
<h2>인사말</h2>
|
||||
<p><?php echo $mb_profile ?></p>
|
||||
</section>
|
||||
</div>
|
||||
<div class="win_btn">
|
||||
<button type="button" onclick="window.close();" class="btn_close">창닫기</button>
|
||||
</div>
|
||||
</div>
|
||||
<!-- } 자기소개 끝 -->
|
||||
@@ -0,0 +1,5 @@
|
||||
<?php
|
||||
if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가
|
||||
?>
|
||||
<div>recruit test</div>
|
||||
|
||||
@@ -0,0 +1,104 @@
|
||||
<?php
|
||||
if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가
|
||||
|
||||
// add_stylesheet('css 구문', 출력순서); 숫자가 작을 수록 먼저 출력됨
|
||||
add_stylesheet('<link rel="stylesheet" href="'.$member_skin_url.'/style.css">', 0);
|
||||
?>
|
||||
|
||||
<!-- 회원가입약관 동의 시작 { -->
|
||||
<div class="register">
|
||||
|
||||
<form name="fregister" id="fregister" action="<?php echo $register_action_url ?>" onsubmit="return fregister_submit(this);" method="POST" autocomplete="off">
|
||||
|
||||
<p><i class="fa fa-check-circle" aria-hidden="true"></i> 회원가입약관 및 개인정보 수집 및 이용의 내용에 동의하셔야 회원가입 하실 수 있습니다.</p>
|
||||
|
||||
<?php
|
||||
// 소셜로그인 사용시 소셜로그인 버튼
|
||||
@include_once(get_social_skin_path().'/social_register.skin.php');
|
||||
?>
|
||||
<section id="fregister_term">
|
||||
<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">
|
||||
<label for="agree11"><span></span><b class="sound_only">회원가입약관의 내용에 동의합니다.</b></label>
|
||||
</fieldset>
|
||||
</section>
|
||||
|
||||
<section id="fregister_private">
|
||||
<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>
|
||||
|
||||
<div class="btn_confirm">
|
||||
<a href="<?php echo G5_URL ?>" class="btn_close">취소</a>
|
||||
<button type="submit" class="btn_submit">회원가입</button>
|
||||
</div>
|
||||
|
||||
</form>
|
||||
|
||||
<script>
|
||||
function fregister_submit(f)
|
||||
{
|
||||
if (!f.agree.checked) {
|
||||
alert("회원가입약관의 내용에 동의하셔야 회원가입 하실 수 있습니다.");
|
||||
f.agree.focus();
|
||||
return false;
|
||||
}
|
||||
|
||||
if (!f.agree2.checked) {
|
||||
alert("개인정보 수집 및 이용의 내용에 동의하셔야 회원가입 하실 수 있습니다.");
|
||||
f.agree2.focus();
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
jQuery(function($){
|
||||
// 모두선택
|
||||
$("input[name=chk_all]").click(function() {
|
||||
if ($(this).prop('checked')) {
|
||||
$("input[name^=agree]").prop('checked', true);
|
||||
} else {
|
||||
$("input[name^=agree]").prop("checked", false);
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
</script>
|
||||
</div>
|
||||
<!-- } 회원가입 약관 동의 끝 -->
|
||||
@@ -0,0 +1,452 @@
|
||||
<?php
|
||||
// if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가
|
||||
|
||||
// add_stylesheet('css 구문', 출력순서); 숫자가 작을 수록 먼저 출력됨
|
||||
// add_stylesheet('<link rel="stylesheet" href="'.$member_skin_url.'/style.css">', 0);
|
||||
|
||||
if (!isset($register_action_url)) {
|
||||
$register_action_url = '';
|
||||
}
|
||||
?>
|
||||
<!-- <head> -->
|
||||
<!-- <meta charset="utf-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<title>TOVA Join</title>
|
||||
<link rel="stylesheet" href="../css/reset.css" />
|
||||
<link rel="stylesheet" href="../css/font.css" />
|
||||
<link rel="stylesheet" href="../css/style.css" />
|
||||
<script src="../js/jquery-3.6.1.min.js"></script> -->
|
||||
<!-- </head> -->
|
||||
<script src="<?php echo G5_URL ?>/js/common.js"></script>
|
||||
<script src="<?php echo G5_URL ?>/js/popup.js?v=20260723"></script>
|
||||
|
||||
<!-- 회원가입약관 동의 시작 { -->
|
||||
<!-- <body>
|
||||
<div class="register"> -->
|
||||
<!-- <div class="wrapper"> -->
|
||||
<!-- Header -->
|
||||
<!-- <header class="header">
|
||||
<h1>
|
||||
<img src="../img/logo_w.svg" alt="">
|
||||
</h1>
|
||||
<div class="menu_wrap">
|
||||
<div class="menu_my"><img src="../img/ico_my.svg" alt=""></div>
|
||||
<div class="menu_ham"><img src="../img/ico_ham.svg" alt=""></div>
|
||||
</div>
|
||||
</header> -->
|
||||
<!-- //Header -->
|
||||
|
||||
<!--popup_wrap-->
|
||||
<div id="pop_agreement" class="popup_wrap">
|
||||
<!--popup_in-->
|
||||
<div class="popup_in">
|
||||
<button class="btn_close">
|
||||
<div class="close_div"><img src="<?php echo G5_URL ?>/img/ico_close.svg" alt="sdi"></div>
|
||||
</button>
|
||||
<!--popup_container-->
|
||||
<div class="popup_container register">
|
||||
<!--popup_tit-->
|
||||
<div class="popup_tit">
|
||||
<h1 class="h_1">회원가입</h1>
|
||||
<!-- <ul>
|
||||
<li class="join_step on">
|
||||
<h4 class="h_4">01</h4>
|
||||
<h4 class="h_4 txt">약관동의</h4>
|
||||
</li>
|
||||
<li class="join_step">
|
||||
<h4 class="h_4">02</h4>
|
||||
<h4 class="h_4 txt">계정 생성</h4>
|
||||
</li>
|
||||
<li class="join_step">
|
||||
<h4 class="h_4">03</h4>
|
||||
<h4 class="h_4 txt">사용자 인증</h4>
|
||||
</li>
|
||||
<li class="join_step">
|
||||
<h4 class="h_4">04</h4>
|
||||
<h4 class="h_4 txt">추가정보 입력</h4>
|
||||
</li>
|
||||
</ul> -->
|
||||
</div>
|
||||
<!--//pop_join_right-->
|
||||
<div class="popup_contents_wrap">
|
||||
<form name="fregister" id="fregister" action="<?php echo $register_action_url ?>" onsubmit="return fregister_submit(this);" method="POST" autocomplete="off">
|
||||
<div class="tbl_wrap">
|
||||
<div class="terms_wrap">
|
||||
<div class="checkbox_wrap">
|
||||
<h4>이용약관</h4>
|
||||
<input type="checkbox" name="agree" value="1" id="agree11">
|
||||
</div>
|
||||
<div class="terms">
|
||||
<em>EG-BIM 소프트웨어 이용약관</em> <br>
|
||||
<br>
|
||||
<em>제1장 총칙</em> <br>
|
||||
<em>제1조 (목적)</em><br>
|
||||
이 약관은 바론컨설턴트(이하 "회사"라 합니다)가 제공하는 EG-BIM 소프트웨어(이하 "서비스"라 합니다)를 이용함에 있어 회사와 이용자 간의 권리,
|
||||
의무 및 책임사항과 기타 필요한 사항을 정하는 것을 목적으로 합니다.<br>
|
||||
<em>제2조 (용어의 정의)</em> <br>
|
||||
① 본 약관에서 사용하는 용어의 정의는 다음과 같습니다:<br>
|
||||
- “서비스”란 회사가 제공하는 소프트웨어 및 관련 제반 서비스를 의미합니다.<br>
|
||||
- “이용자”란 회사의 서비스에 접속하여 본 약관에 따라 회사가 제공하는 서비스를 이용하는 회원 및 비회원을 말합니다.<br>
|
||||
- “회원”이란 본 약관에 동의하고 회사와 이용계약을 체결한 자를 의미합니다.<br>
|
||||
- “비회원”이란 회원가입을 하지 않고 회사가 제공하는 일부 서비스를 이용하는 자를 말합니다.<br>
|
||||
|
||||
<em>제3조 (약관의 효력 및 변경)</em><br>
|
||||
① 본 약관은 이용자가 본 약관에 동의하고, 회사가 이에 대한 승낙을 완료함으로써 효력이 발생합니다.
|
||||
② 회사는 필요한 경우 본 약관을 변경할 수 있으며, 변경된 약관은 서비스 화면에 공지된 후 효력이 발생합니다.<br>
|
||||
|
||||
<em>제4조 (약관 외 준칙)</em><br>
|
||||
본 약관에 명시되지 않은 사항에 대해서는 대한민국의 관련 법령과 상관습에 따릅니다.<br>
|
||||
|
||||
<em>제2장 서비스 이용계약</em><br>
|
||||
<em>제5조 (이용계약의 성립)</em><br>
|
||||
이용계약은 이용자가 약관의 내용에 동의하고, 회사가 제공하는 소정의 회원가입 신청서를 작성하여 가입을 완료한 후, 회사가 이를 승인함으로써 성립합니다.<br>
|
||||
|
||||
<em>제6조 (이용계약의 유보와 거절)</em><br>
|
||||
① 회사는 다음 각 호에 해당하는 경우 이용계약의 성립을 유보하거나 거절할 수 있습니다:
|
||||
- 신청서의 내용이 허위로 판명된 경우
|
||||
- 서비스 제공이 기술적으로 어려운 경우<br>
|
||||
|
||||
<em>제7조 (계약사항의 변경)</em><br>
|
||||
회원은 개인정보 관리 메뉴를 통해 언제든지 자신의 정보를 열람하고 수정할 수 있습니다. 회원의 정보가 변경된 경우 즉시 수정해야 하며, 수정하지 않아
|
||||
발생하는 문제의 책임은 회원에게 있습니다.<br>
|
||||
|
||||
<em>제3장 개인정보 보호</em><br>
|
||||
|
||||
<em>제8조 (개인정보 보호의 원칙)</em><br>
|
||||
① 회원의 개인정보는 관련 법령에 따라 보호됩니다.
|
||||
② 회사는 개인정보 보호와 관련된 세부 사항을 별도로 마련한 개인정보처리방침에 따라 관리하며, 이용자는 언제든지 해당 방침을 통해 개인정보 관리에 대한
|
||||
자세한 내용을 확인할 수 있습니다.<br>
|
||||
|
||||
<em>제9조 (개인정보처리방침 준수)</em><br>
|
||||
① 회사는 개인정보 보호와 관련된 구체적인 사항을 개인정보처리방침에 따라 관리합니다.
|
||||
② 개인정보의 수집, 이용, 제공, 보관, 보호 등에 관한 사항은 회사의 개인정보처리방침을 따르며, 이용자는 회사 웹사이트에서 이를 확인할 수
|
||||
있습니다.
|
||||
③ 회사는 개인정보 보호를 위해 최선을 다하며, 관련 법령에 따라 이용자의 개인정보를 안전하게 관리합니다.<br>
|
||||
|
||||
<em>제10조 (14세 미만 아동의 개인정보 보호)</em><br>
|
||||
① 회사는 14세 미만 아동의 개인정보를 수집할 경우, 반드시 법정대리인의 동의를 받아야 합니다.
|
||||
② 법정대리인은 아동의 개인정보 열람, 수정, 삭제를 요청할 수 있으며, 회사는 이를 신속하게 처리합니다.
|
||||
③ 14세 미만 아동의 개인정보 보호와 관련된 구체적인 사항은 개인정보처리방침에 명시되어 있습니다.<br>
|
||||
|
||||
<em>제4장 서비스 제공 및 이용</em><br>
|
||||
제11조 (서비스 제공)<br>
|
||||
회사는 회원의 이용 신청을 승인한 때부터 서비스를 개시합니다. 서비스 이용은 연중무휴 24시간을 원칙으로 합니다.<br>
|
||||
|
||||
<em>제12조 (서비스의 변경 및 중단)</em> <br>
|
||||
회사는 서비스 제공이 어려운 경우 사전 고지 후 서비스를 변경하거나 중단할 수 있습니다.<br>
|
||||
|
||||
<em>제5장 정보 제공 및 광고</em><br>
|
||||
제13조 (정보 제공 및 광고)<br>
|
||||
① 회사는 서비스 이용 중 필요하다고 인정되는 정보 및 광고를 제공할 수 있습니다.
|
||||
② 회원은 원치 않는 정보를 수신 거부할 수 있습니다.<br>
|
||||
|
||||
<em>제6장 게시물 관리</em><br>
|
||||
<em>제14조 (게시물의 관리)</em><br>
|
||||
회사는 회원이 게시한 내용이 불법적이거나 약관에 위배될 경우 이를 삭제할 수 있습니다.<br>
|
||||
|
||||
<em>제15조 (게시물의 저작권)</em><br>
|
||||
게시물의 저작권은 회원에게 있으며, 회사는 이를 서비스 홍보 및 개선 목적으로 사용할 수 있습니다.<br>
|
||||
|
||||
<em>제7장 계약 해지 및 이용 제한</em><br>
|
||||
<em>제16조 (계약 해지)</em> <br>
|
||||
회원은 언제든지 계약 해지를 요청할 수 있으며, 회사는 신속하게 처리합니다.<br>
|
||||
|
||||
<em>제17조 (이용 제한)</em><br>
|
||||
회사는 회원이 약관을 위반할 경우 서비스 이용을 제한할 수 있습니다.<br>
|
||||
|
||||
<em>제8장 손해 배상 및 면책 조항</em><br>
|
||||
<em>제18조 (손해 배상)</em><br>
|
||||
회사는 무료로 제공되는 서비스와 관련하여 회원에게 발생한 손해에 대해 책임을 지지 않습니다.<br>
|
||||
|
||||
<em>제19조 (면책 조항)</em><br>
|
||||
회사는 천재지변 등 불가항력적인 사유로 인해 서비스를 제공하지 못하는 경우 책임을 지지 않습니다.<br>
|
||||
|
||||
<em>제9장 유료 서비스</em> <br>
|
||||
<em>20조 (유료 서비스의 이용)</em><br>
|
||||
① 회사는 회원에게 특정 서비스에 대해 유료로 제공할 수 있습니다.
|
||||
② 유료 서비스의 이용 요금, 결제 방식, 환불 절차 등에 대한 상세 내용은 서비스 안내 페이지와 결제 화면에 명시합니다.
|
||||
③ 유료 서비스 이용 요금은 회사가 정한 결제 방식에 따라 결제됩니다. 회원은 신용카드, 계좌이체, 휴대전화 결제 등 회사가 제공하는 다양한 결제
|
||||
방식을 통해 요금을 납부할 수 있습니다.
|
||||
④ 유료 서비스의 이용 요금은 선불 결제를 원칙으로 하며, 이용 기간 중 서비스 중지 및 해지 시 남은 이용 기간에 대한 환불은 회사의 환불 정책에
|
||||
따라 처리됩니다.
|
||||
⑤ 회사는 회원의 유료 서비스 이용과 관련하여 발생한 문제에 대해 최선을 다해 해결하도록 노력합니다. 다만, 회사의 고의 또는 중대한 과실이 없는 한
|
||||
회원이 유료 서비스 이용 중 입은 손해에 대해서는 책임을 지지 않습니다.<br>
|
||||
|
||||
<em>제21조(환불 정책)</em> <br>
|
||||
① 회원은 결제 후 7일 이내에 서비스 이용을 시작하지 않은 경우, 요금 전액을 환불받을 수 있습니다.
|
||||
② 유료 서비스 이용 중 부득이한 사유로 서비스가 중지된 경우, 회사는 이용하지 않은 부분에 대해 환불 절차를 밟습니다.
|
||||
③ 회원의 귀책사유로 인해 서비스 이용이 중지된 경우, 환불이 불가능합니다.
|
||||
④ 환불은 회원이 지정한 계좌로 환불 절차를 거치며, 환불 요청 후 7일 이내에 처리됩니다.<br>
|
||||
|
||||
<em>제22조 (유료 서비스의 중지 및 해지)</em><br>
|
||||
① 회원이 유료 서비스를 해지하고자 하는 경우, 회사의 고객 지원 센터에 해지 신청을 해야 합니다.
|
||||
② 회사는 회원이 약관을 위반하거나 부정한 방법으로 유료 서비스를 이용한 경우, 유료 서비스 이용을 즉시 중지하고 계약을 해지할 수 있습니다.<br>
|
||||
|
||||
<em>제10장 양도 금지</em><br>
|
||||
<em>제23조 (양도 금지)</em><br>
|
||||
회원은 서비스 이용권한, 기타 이용계약상의 지위를 제3자에게 양도, 증여할 수 없으며, 이를 담보로 제공할 수 없습니다.<br>
|
||||
|
||||
<em>제11장 관할 법원</em><br>
|
||||
<em>제24조 (분쟁 해결)</em><br>
|
||||
서비스 이용과 관련하여 분쟁이 발생한 경우, 회사와 회원은 성실히 협의하여 해결합니다.<br>
|
||||
|
||||
<em>제25조 (관할 법원)</em><br>
|
||||
본 약관에 따른 분쟁은 서울중앙지방법원을 관할 법원으로 합니다.<br>
|
||||
|
||||
<em>부칙</em><br>
|
||||
본 약관은 2024년 10월 1일부터 시행됩니다.<br>
|
||||
</div>
|
||||
</div>
|
||||
<div class="terms_wrap">
|
||||
<div class="checkbox_wrap">
|
||||
<h4>개인정보 수집 및 이용 동의</h4>
|
||||
<input type="checkbox" name="agree2" value="1" id="agree21">
|
||||
</div>
|
||||
<div class="terms">
|
||||
<em>EG-BIM 서비스 개인정보처리방침</em> <br>
|
||||
<br>
|
||||
<em>제1조 (목적)</em><br>
|
||||
바론컨설턴트(이하 "회사")는 EG-BIM 서비스(이하 "서비스")를 이용하는 고객(이하 "이용자")의 개인정보를 보호하고, 「개인정보 보호법」에 따라
|
||||
책임과 의무를 다하기 위해 본 개인정보처리방침을 마련했습니다. 본 방침은 이용자가 제공한 개인정보가 어떻게 수집, 이용, 보관, 보호되는지를
|
||||
설명합니다.<br>
|
||||
|
||||
<em>제2조 (개인정보의 처리목적)</em><br>
|
||||
회사는 다음의 목적을 위해 개인정보를 처리합니다. 처리하고 있는 개인정보는 다음의 목적 이외의 용도로는 이용되지 않으며, 이용 목적이 변경되는 경우에는
|
||||
「개인정보 보호법」 제18조에 따라 별도의 동의를 받는 등 필요한 조치를 이행할 예정입니다.<br>
|
||||
- 본인확인: 회원가입 및 관리를 위한 본인 확인, 전화 또는 이메일을 통한 연락<br>
|
||||
- 서비스 제공: 각종 통보 및 서비스 제공을 위한 업무 처리<br>
|
||||
- 제품소개서 다운로드: 설명자료 전달<br>
|
||||
- 상담 및 데모 신청: 상담 제공 및 데모 제공, 계약 처리자 정보 수집<br>
|
||||
- 행사 참가 신청: 참석 안내 및 세미나/설명회/교육 제공<br>
|
||||
- 보안가이드 제공: 안내자료 전달<br>
|
||||
- 기술지원 문의: 서비스 사용 지원<br>
|
||||
- 서비스 개선 의견 접수: 서비스 품질 개선<br>
|
||||
- 마케팅 활동: 동의한 고객에 한해 뉴스레터 및 매거진 발송<br>
|
||||
|
||||
<em>제3조 (개인정보의 처리 및 보유 기간)</em><br>
|
||||
① 회사는 법령에 따른 개인정보 보유 및 이용기간 또는 정보주체로부터 개인정보를 수집 시 동의받은 개인정보 보유 및 이용기간 내에서 개인정보를 처리 및
|
||||
보유합니다.<br>
|
||||
② 각각의 개인정보 처리 및 보유 기간은 다음과 같습니다:<br>
|
||||
- 회원정보: 회원가입일부터 회원탈퇴 후 1년까지<br>
|
||||
- 홍보, 상담, 계약용 개인정보: 2년<br>
|
||||
|
||||
<em>제4조 (개인정보의 제3자 제공)</em><br>
|
||||
① 회사는 정보주체의 개인정보를 제2조에서 명시한 범위 내에서만 처리하며, 정보 주체의 동의, 법률의 특별한 규정 등 「개인정보 보호법」 제17조 및
|
||||
제18조에 해당하는 경우에만 개인정보를 제3자에게 제공합니다.<br>
|
||||
② 회사는 다음과 같이 개인정보를 제3자에게 제공하고 있습니다:<br>
|
||||
- 제공받는 자: 수사기관 및 유관기관, 피신고업체<br>
|
||||
- 이용 목적: 개인정보 침해 민원 처리<br>
|
||||
- 제공하는 개인정보 항목: 성명, 연락처, 이메일<br>
|
||||
- 보유 및 이용기간: 법령에서 정한 보존기간 및 제공목적 달성 시 파기<br>
|
||||
|
||||
<em>제5조 (개인정보 처리 위탁)</em><br>
|
||||
① 회사는 개인정보 처리업무를 외부 업체에 위탁하지 않으며, 자체적으로 처리하고 있습니다.<br>
|
||||
② 회사가 특정 업무(예: 채용 업무)를 외부 업체에 위탁할 경우, 개인정보 처리방침 시행 전 회사 홈페이지에서 공지한 후 정보주체의 동의를 받은 후
|
||||
위탁합니다.<br>
|
||||
|
||||
<em>제6조 (정보주체의 권리·의무 및 행사 방법)</em><br>
|
||||
① 정보주체는 회사에 대해 언제든지 개인정보 열람, 정정, 삭제, 처리정지 요구 등의 권리를 행사할 수 있습니다.<br>
|
||||
② 권리 행사는 다음과 같은 방법으로 할 수 있습니다:<br>
|
||||
- 서면: 회사 주소로 서면 제출<br>
|
||||
- 전자우편: 회사 이메일로 요청<br>
|
||||
- 모사전송(FAX): 회사 FAX로 요청<br>
|
||||
③ 권리 행사는 정보주체의 법정대리인이나 위임을 받은 자를 통해 대리로도 가능합니다. 이 경우 “개인정보 처리 방법에 관한 고시” 별지 제11호 서식에
|
||||
따른 위임장을 제출해야 합니다.<br>
|
||||
④ 개인정보 열람 및 처리정지 요구는 「개인정보 보호법」 제35조 제4항, 제37조 제2항에 따라 제한될 수 있습니다.<br>
|
||||
⑤ 개인정보의 정정 및 삭제 요구는 다른 법령에 따라 수집된 개인정보인 경우 제한될 수 있습니다.<br>
|
||||
⑥ 회사는 권리 행사를 요청한 자가 본인 또는 정당한 대리인인지를 확인합니다.<br>
|
||||
|
||||
<em>제7조 (처리하는 개인정보의 항목)</em><br>
|
||||
회사는 다음의 개인정보 항목을 처리합니다:<br>
|
||||
- 수집 항목:<br>
|
||||
- 필수 항목: 성명, 휴대전화번호, 이메일<br>
|
||||
- 선택 항목: 회사전화번호, 문의사항<br>
|
||||
- 수집 방법:<br>
|
||||
- 홈페이지, 전화, 이메일을 통해 수집<br>
|
||||
|
||||
<em>제8조 (개인정보의 파기)</em><br>
|
||||
① 회사는 개인정보 보유 기간의 경과, 처리 목적 달성 등 개인정보가 불필요하게 되었을 때 지체 없이 해당 개인정보를 파기합니다.<br>
|
||||
② 정보주체로부터 동의받은 개인정보 보유 기간이 경과하거나 처리 목적이 달성된 경우에도 다른 법령에 따라 개인정보를 계속 보존해야 할 경우에는, 해당
|
||||
개인정보를 별도의 데이터베이스(DB)로 옮기거나 보관 장소를 달리하여 보존합니다.<br>
|
||||
③ 개인정보 파기의 절차 및 방법은 다음과 같습니다:<br>
|
||||
- 파기 절차: 회사는 파기 사유가 발생한 개인정보를 선정하고, 개인정보 보호책임자의 승인을 받아 개인정보를 파기합니다.<br>
|
||||
- 파기 방법: 전자적 파일 형태로 기록된 개인정보는 복구할 수 없도록 기술적 방법을 사용해 삭제하며, 종이 문서에 기록된 개인정보는 분쇄기로
|
||||
분쇄하거나 소각하여 파기합니다.<br>
|
||||
|
||||
<em>제9조 (개인정보의 안전성 확보 조치)</em><br>
|
||||
회사는 개인정보의 안전성 확보를 위해 다음과 같은 조치를 취합니다:<br>
|
||||
- 관리적 조치: 내부관리계획 수립·시행, 정기적 직원 교육<br>
|
||||
- 기술적 조치: 개인정보처리시스템 접근 권한 관리, 접근통제시스템 설치, 고유식별정보 암호화, 보안 프로그램 설치<br>
|
||||
- 물리적 조치: 전산실 및 자료보관실 접근 통제<br>
|
||||
|
||||
<em>제10조 (개인정보 자동 수집 장치의 설치·운영 및 거부에 관한 사항)</em><br>
|
||||
회사는 쿠키(Cookie)를 사용하지 않습니다. 쿠키는 이용자의 이용 정보를 저장하고 수시로 불러오는 작은 파일로, EG-BIM 서비스에서는 쿠키를
|
||||
사용하지 않습니다.<br>
|
||||
|
||||
<em>제11조 (개인정보 보호책임자)</em><br>
|
||||
회사는 개인정보 처리에 관한 업무를 총괄하여 책임지고, 개인정보 처리와 관련된 정보주체의 불만처리 및 피해구제를 위해 개인정보 보호책임자를 지정하고
|
||||
있습니다.<br>
|
||||
개인정보 보호책임자:<br>
|
||||
- 성명: 염승호<br>
|
||||
- 직책: 수석연구원<br>
|
||||
- 연락처: 02-2141-7448<br>
|
||||
- 팩스번호: 02-2141-7599<br>
|
||||
- 이메일: b23008@baroncs.co.kr<br>
|
||||
|
||||
<em>제12조 (개인정보 열람청구)</em><br>
|
||||
정보주체는 「개인정보 보호법」 제35조에 따른 개인정보 열람 청구를 아래 부서에 할 수 있습니다. 회사는 정보주체의 개인정보 열람청구가 신속하게
|
||||
처리되도록 노력하겠습니다.<br>
|
||||
개인정보 열람청구 접수·처리 부서:<br>
|
||||
- 부서명: 총괄기획실<br>
|
||||
- 담당자: 권혁진<br>
|
||||
- 연락처: 02-2141-7465<br>
|
||||
- 팩스번호: 02-2141-7599<br>
|
||||
- 이메일: baroncs@baroncs.co.kr<br>
|
||||
|
||||
<em>제13조 (권익침해 구제방법)</em><br>
|
||||
정보주체는 개인정보 침해로 인한 구제를 위해 개인정보분쟁조정위원회, 한국인터넷진흥원 개인정보해신고센터 등에 분쟁 해결이나 상담을 신청할 수 있습니다.<br>
|
||||
- 개인정보분쟁조정위원회: (국번없이) 1833-6972 (www.kopico.go.kr)<br>
|
||||
- 개인정보침해신고센터: (국번없이) 118 (privacy.kisa.or.kr)<br>
|
||||
- 대검찰청: (국번없이) 1301 (www.spo.go.kr)<br>
|
||||
- 경찰청: (국번없이) 182 (www.police.go.kr)<br>
|
||||
|
||||
<em>제14조 (개인정보 처리방침의 변경)</em><br>
|
||||
본 개인정보처리방침은 법령, 정책 또는 보안 기술의 변경에 따라 내용의 추가, 삭제 및 수정이 있을 시, 개정 최소 7일 전에 홈페이지를 통해 사전
|
||||
공지합니다.<br>
|
||||
|
||||
<br>
|
||||
<em>부칙</em><br>
|
||||
|
||||
<em>제1조 (시행일자)</em><br>
|
||||
이 개인정보처리방침은 2024년 10월 1일부터 시행됩니다.<br>
|
||||
|
||||
<em>제2조 (개정 및 고지의 의무)</em><br>
|
||||
회사는 개인정보처리방침을 변경하는 경우, 변경사항을 시행일자 7일 전부터 서비스 내 공지사항 페이지를 통해 고지할 것입니다. 다만, 이용자의 권리나
|
||||
의무에 중대한 변경이 발생하는 경우에는 시행일자 30일 전부터 고지합니다.<br>
|
||||
|
||||
<em>제3조 (유효성)</em><br>
|
||||
본 개인정보처리방침의 일부 조항이 법적 또는 기타 사유로 인해 무효화되거나 시행할 수 없는 경우, 나머지 조항들은 계속해서 유효합니다. 무효화된 조항은
|
||||
관련 법령에 부합하는 방식으로 수정되어 효력을 지속합니다.<br>
|
||||
|
||||
<em>제4조 (변경 통지의 방법)</em><br>
|
||||
회사는 개인정보처리방침의 변경 시, 다음의 방법으로 이용자에게 고지합니다:<br>
|
||||
- 서비스 초기화면 또는 팝업 공지<br>
|
||||
- 이메일 발송<br>
|
||||
- 회사 홈페이지 공지사항<br>
|
||||
|
||||
<em>제5조 (비회원의 개인정보 보호)</em><br>
|
||||
회사는 비회원의 개인정보도 회원과 동일한 수준으로 보호합니다. 비회원이 개인정보 제공을 거부할 경우 일부 서비스 이용에 제한이 있을 수 있습니다.<br>
|
||||
|
||||
<em>제6조 (14세 미만 아동의 개인정보 보호)</em><br>
|
||||
회사는 14세 미만 아동의 개인정보를 수집하지 않습니다. 만일 14세 미만 아동의 개인정보가 수집된 경우, 법정 대리인의 동의를 받아야 하며, 법정
|
||||
대리인의 동의 없이 수집된 경우 이를 지체 없이 파기합니다.<br>
|
||||
|
||||
<em>제7조 (개인정보의 국외 이전)</em><br>
|
||||
회사는 이용자의 개인정보를 국외로 이전하지 않으며, 향후 필요한 경우, 사전에 이용자의 동의를 받습니다.<br>
|
||||
|
||||
<em>제8조 (기타)</em><br>
|
||||
본 방침에 명시되지 않은 사항은 회사의 내부 방침과 관련 법령에 따릅니다.<br>
|
||||
</div>
|
||||
</div>
|
||||
<div class="checkbox_wrap all">
|
||||
<h4>약관에 모두 동의합니다.</h4>
|
||||
<input type="checkbox" name="chk_all">
|
||||
</div>
|
||||
</div>
|
||||
<div class="join_btn_wrap">
|
||||
<!-- <button type="submit" onclick="javascript:join();">동의</button> -->
|
||||
<button type="submit" id="btn_agree">동의</button>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
<!--//pop_join_right-->
|
||||
</div>
|
||||
<!--//popup_container-->
|
||||
</div>
|
||||
<!--//popup_in-->
|
||||
</div>
|
||||
<!--//popup_wrap-->
|
||||
<!-- </div>
|
||||
</body> -->
|
||||
|
||||
<script>
|
||||
// function fregister_submit(f)
|
||||
// {
|
||||
// if (!f.agree11.checked) {
|
||||
// alert("회원가입약관의 내용에 동의하셔야 회원가입 하실 수 있습니다.");
|
||||
// f.agree11.focus();
|
||||
// return false;
|
||||
// }
|
||||
|
||||
// if (!f.agree21.checked) {
|
||||
// alert("개인정보 수집 및 이용의 내용에 동의하셔야 회원가입 하실 수 있습니다.");
|
||||
// f.agree21.focus();
|
||||
// return false;
|
||||
// }
|
||||
|
||||
// return true;
|
||||
// }
|
||||
|
||||
jQuery(function($){
|
||||
// 모두선택
|
||||
$("input[name=chk_all]").click(function() {
|
||||
if ($(this).prop('checked')) {
|
||||
$("input[name^=agree]").prop('checked', true);
|
||||
} else {
|
||||
$("input[name^=agree]").prop("checked", false);
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
</script>
|
||||
<script>
|
||||
(function($){
|
||||
function isAgreedAll(){
|
||||
return $('#agree11').is(':checked') && $('#agree21').is(':checked');
|
||||
}
|
||||
|
||||
// 혹시 다른 바인딩이 있으면 제거
|
||||
$('#btn_agree').off('click');
|
||||
$('#fregister').off('submit'); // 엔터키/기본 submit 방지
|
||||
|
||||
// 폼 submit도 막아둠
|
||||
$('#fregister').on('submit', function(e){
|
||||
e.preventDefault();
|
||||
return false;
|
||||
});
|
||||
|
||||
// 동의 버튼 클릭
|
||||
$('#btn_agree').on('click', function(e){
|
||||
e.preventDefault();
|
||||
e.stopPropagation();
|
||||
e.stopImmediatePropagation();
|
||||
|
||||
if (!isAgreedAll()){
|
||||
alert('약관에 모두 동의해주세요.');
|
||||
return false; // 절대 넘어가지 않음
|
||||
}
|
||||
|
||||
// 체크 완료 시에만 다음 단계로
|
||||
$('#pop_agreement').hide();
|
||||
$('#pop_join').show(); // 실제 다음 팝업 ID로 교체
|
||||
$('body').css('overflow','hidden');
|
||||
});
|
||||
|
||||
// (선택) 전체동의 ↔ 개별동의 동기화
|
||||
const $all = $('input[name="chk_all"]');
|
||||
const $a1 = $('#agree11');
|
||||
const $a2 = $('#agree21');
|
||||
|
||||
$all.on('change', function(){
|
||||
const on = $(this).is(':checked');
|
||||
$a1.prop('checked', on);
|
||||
$a2.prop('checked', on);
|
||||
});
|
||||
$a1.add($a2).on('change', function(){
|
||||
$all.prop('checked', $a1.is(':checked') && $a2.is(':checked'));
|
||||
});
|
||||
|
||||
})(jQuery);
|
||||
</script>
|
||||
<!-- </div> -->
|
||||
<!-- } 회원가입 약관 동의 끝 -->
|
||||
@@ -0,0 +1,403 @@
|
||||
<?php
|
||||
// if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가
|
||||
|
||||
// add_stylesheet('css 구문', 출력순서); 숫자가 작을 수록 먼저 출력됨
|
||||
// add_stylesheet('<link rel="stylesheet" href="'.$member_skin_url.'/style.css">', 0);
|
||||
?>
|
||||
<!-- <head> -->
|
||||
<!-- <meta charset="utf-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<title>TOVA Join</title>
|
||||
<link rel="stylesheet" href="../css/reset.css" />
|
||||
<link rel="stylesheet" href="../css/font.css" />
|
||||
<link rel="stylesheet" href="../css/style.css" />
|
||||
<script src="../js/jquery-3.6.1.min.js"></script> -->
|
||||
<!-- </head> -->
|
||||
<script src="<?php echo G5_URL ?>/js/common.js"></script>
|
||||
<script src="<?php echo G5_URL ?>/js/popup.js"></script>
|
||||
|
||||
<!-- 회원가입약관 동의 시작 { -->
|
||||
<!-- <body>
|
||||
<div class="register"> -->
|
||||
<!-- <div class="wrapper"> -->
|
||||
<!-- Header -->
|
||||
<!-- <header class="header">
|
||||
<h1>
|
||||
<img src="../img/logo_w.svg" alt="">
|
||||
</h1>
|
||||
<div class="menu_wrap">
|
||||
<div class="menu_my"><img src="../img/ico_my.svg" alt=""></div>
|
||||
<div class="menu_ham"><img src="../img/ico_ham.svg" alt=""></div>
|
||||
</div>
|
||||
</header> -->
|
||||
<!-- //Header -->
|
||||
|
||||
<!--popup_wrap-->
|
||||
<div id="pop_agreement" class="popup_wrap">
|
||||
<!--popup_in-->
|
||||
<div class="popup_in">
|
||||
<button class="btn_close">
|
||||
<div class="close_div"><img src="<?php echo G5_URL ?>/img/ico_close.svg" alt="sdi"></div>
|
||||
</button>
|
||||
<!--popup_content-->
|
||||
<div class="popup_content agreement">
|
||||
<!--pop_join_left-->
|
||||
<div class="pop_join_left">
|
||||
<span class="bg_tit_left">Sign u</span>
|
||||
<div class="join_info">
|
||||
<h1 class="h_1">회원가입</h1>
|
||||
<h3 class="h_3">
|
||||
EG-BIM 회원이 되시면<br>
|
||||
<strong>1:1구매문의및 제품안내 서비스</strong>를<br>
|
||||
이용하실 수 있습니다.
|
||||
</h3>
|
||||
</div>
|
||||
<ul class="join_progress">
|
||||
<li class="join_step on">
|
||||
<h4 class="h_4">01</h4>
|
||||
<h4 class="h_4 txt">약관동의</h4>
|
||||
</li>
|
||||
<li class="join_step">
|
||||
<h4 class="h_4">02</h4>
|
||||
<h4 class="h_4 txt">정보입력</h4>
|
||||
</li>
|
||||
<li class="join_step">
|
||||
<h4 class="h_4">03</h4>
|
||||
<h4 class="h_4 txt">가입완료</h4>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<!--//pop_join_right-->
|
||||
<div class="pop_input_wrap pop_join_right">
|
||||
<span class="bg_tit_right">p</span>
|
||||
<form name="fregister" id="fregister" action="<?php echo $register_action_url ?>" onsubmit="return fregister_submit(this);" method="POST" autocomplete="off">
|
||||
<h6 class="important_msg pop_notice h_6">*항목은 필수 항목 입니다.</h6>
|
||||
<div class="terms_wrap">
|
||||
<div class="checkbox_wrap">
|
||||
<h4>이용약관<span class="important_msg">*</span></h4>
|
||||
<input type="checkbox" name="agree" value="1" id="agree11">
|
||||
</div>
|
||||
<div class="terms">
|
||||
<em>EG-BIM 소프트웨어 이용약관</em> <br>
|
||||
<br>
|
||||
<em>제1장 총칙</em> <br>
|
||||
<em>제1조 (목적)</em><br>
|
||||
이 약관은 바론컨설턴트(이하 "회사"라 합니다)가 제공하는 EG-BIM 소프트웨어(이하 "서비스"라 합니다)를 이용함에 있어 회사와 이용자 간의 권리,
|
||||
의무 및 책임사항과 기타 필요한 사항을 정하는 것을 목적으로 합니다.<br>
|
||||
<em>제2조 (용어의 정의)</em> <br>
|
||||
① 본 약관에서 사용하는 용어의 정의는 다음과 같습니다:<br>
|
||||
- “서비스”란 회사가 제공하는 소프트웨어 및 관련 제반 서비스를 의미합니다.<br>
|
||||
- “이용자”란 회사의 서비스에 접속하여 본 약관에 따라 회사가 제공하는 서비스를 이용하는 회원 및 비회원을 말합니다.<br>
|
||||
- “회원”이란 본 약관에 동의하고 회사와 이용계약을 체결한 자를 의미합니다.<br>
|
||||
- “비회원”이란 회원가입을 하지 않고 회사가 제공하는 일부 서비스를 이용하는 자를 말합니다.<br>
|
||||
|
||||
<em>제3조 (약관의 효력 및 변경)</em><br>
|
||||
① 본 약관은 이용자가 본 약관에 동의하고, 회사가 이에 대한 승낙을 완료함으로써 효력이 발생합니다.
|
||||
② 회사는 필요한 경우 본 약관을 변경할 수 있으며, 변경된 약관은 서비스 화면에 공지된 후 효력이 발생합니다.<br>
|
||||
|
||||
<em>제4조 (약관 외 준칙)</em><br>
|
||||
본 약관에 명시되지 않은 사항에 대해서는 대한민국의 관련 법령과 상관습에 따릅니다.<br>
|
||||
|
||||
<em>제2장 서비스 이용계약</em><br>
|
||||
<em>제5조 (이용계약의 성립)</em><br>
|
||||
이용계약은 이용자가 약관의 내용에 동의하고, 회사가 제공하는 소정의 회원가입 신청서를 작성하여 가입을 완료한 후, 회사가 이를 승인함으로써 성립합니다.<br>
|
||||
|
||||
<em>제6조 (이용계약의 유보와 거절)</em><br>
|
||||
① 회사는 다음 각 호에 해당하는 경우 이용계약의 성립을 유보하거나 거절할 수 있습니다:
|
||||
- 신청서의 내용이 허위로 판명된 경우
|
||||
- 서비스 제공이 기술적으로 어려운 경우<br>
|
||||
|
||||
<em>제7조 (계약사항의 변경)</em><br>
|
||||
회원은 개인정보 관리 메뉴를 통해 언제든지 자신의 정보를 열람하고 수정할 수 있습니다. 회원의 정보가 변경된 경우 즉시 수정해야 하며, 수정하지 않아
|
||||
발생하는 문제의 책임은 회원에게 있습니다.<br>
|
||||
|
||||
<em>제3장 개인정보 보호</em><br>
|
||||
|
||||
<em>제8조 (개인정보 보호의 원칙)</em><br>
|
||||
① 회원의 개인정보는 관련 법령에 따라 보호됩니다.
|
||||
② 회사는 개인정보 보호와 관련된 세부 사항을 별도로 마련한 개인정보처리방침에 따라 관리하며, 이용자는 언제든지 해당 방침을 통해 개인정보 관리에 대한
|
||||
자세한 내용을 확인할 수 있습니다.<br>
|
||||
|
||||
<em>제9조 (개인정보처리방침 준수)</em><br>
|
||||
① 회사는 개인정보 보호와 관련된 구체적인 사항을 개인정보처리방침에 따라 관리합니다.
|
||||
② 개인정보의 수집, 이용, 제공, 보관, 보호 등에 관한 사항은 회사의 개인정보처리방침을 따르며, 이용자는 회사 웹사이트에서 이를 확인할 수
|
||||
있습니다.
|
||||
③ 회사는 개인정보 보호를 위해 최선을 다하며, 관련 법령에 따라 이용자의 개인정보를 안전하게 관리합니다.<br>
|
||||
|
||||
<em>제10조 (14세 미만 아동의 개인정보 보호)</em><br>
|
||||
① 회사는 14세 미만 아동의 개인정보를 수집할 경우, 반드시 법정대리인의 동의를 받아야 합니다.
|
||||
② 법정대리인은 아동의 개인정보 열람, 수정, 삭제를 요청할 수 있으며, 회사는 이를 신속하게 처리합니다.
|
||||
③ 14세 미만 아동의 개인정보 보호와 관련된 구체적인 사항은 개인정보처리방침에 명시되어 있습니다.<br>
|
||||
|
||||
<em>제4장 서비스 제공 및 이용</em><br>
|
||||
제11조 (서비스 제공)<br>
|
||||
회사는 회원의 이용 신청을 승인한 때부터 서비스를 개시합니다. 서비스 이용은 연중무휴 24시간을 원칙으로 합니다.<br>
|
||||
|
||||
<em>제12조 (서비스의 변경 및 중단)</em> <br>
|
||||
회사는 서비스 제공이 어려운 경우 사전 고지 후 서비스를 변경하거나 중단할 수 있습니다.<br>
|
||||
|
||||
<em>제5장 정보 제공 및 광고</em><br>
|
||||
제13조 (정보 제공 및 광고)<br>
|
||||
① 회사는 서비스 이용 중 필요하다고 인정되는 정보 및 광고를 제공할 수 있습니다.
|
||||
② 회원은 원치 않는 정보를 수신 거부할 수 있습니다.<br>
|
||||
|
||||
<em>제6장 게시물 관리</em><br>
|
||||
<em>제14조 (게시물의 관리)</em><br>
|
||||
회사는 회원이 게시한 내용이 불법적이거나 약관에 위배될 경우 이를 삭제할 수 있습니다.<br>
|
||||
|
||||
<em>제15조 (게시물의 저작권)</em><br>
|
||||
게시물의 저작권은 회원에게 있으며, 회사는 이를 서비스 홍보 및 개선 목적으로 사용할 수 있습니다.<br>
|
||||
|
||||
<em>제7장 계약 해지 및 이용 제한</em><br>
|
||||
<em>제16조 (계약 해지)</em> <br>
|
||||
회원은 언제든지 계약 해지를 요청할 수 있으며, 회사는 신속하게 처리합니다.<br>
|
||||
|
||||
<em>제17조 (이용 제한)</em><br>
|
||||
회사는 회원이 약관을 위반할 경우 서비스 이용을 제한할 수 있습니다.<br>
|
||||
|
||||
<em>제8장 손해 배상 및 면책 조항</em><br>
|
||||
<em>제18조 (손해 배상)</em><br>
|
||||
회사는 무료로 제공되는 서비스와 관련하여 회원에게 발생한 손해에 대해 책임을 지지 않습니다.<br>
|
||||
|
||||
<em>제19조 (면책 조항)</em><br>
|
||||
회사는 천재지변 등 불가항력적인 사유로 인해 서비스를 제공하지 못하는 경우 책임을 지지 않습니다.<br>
|
||||
|
||||
<em>제9장 유료 서비스</em> <br>
|
||||
<em>20조 (유료 서비스의 이용)</em><br>
|
||||
① 회사는 회원에게 특정 서비스에 대해 유료로 제공할 수 있습니다.
|
||||
② 유료 서비스의 이용 요금, 결제 방식, 환불 절차 등에 대한 상세 내용은 서비스 안내 페이지와 결제 화면에 명시합니다.
|
||||
③ 유료 서비스 이용 요금은 회사가 정한 결제 방식에 따라 결제됩니다. 회원은 신용카드, 계좌이체, 휴대전화 결제 등 회사가 제공하는 다양한 결제
|
||||
방식을 통해 요금을 납부할 수 있습니다.
|
||||
④ 유료 서비스의 이용 요금은 선불 결제를 원칙으로 하며, 이용 기간 중 서비스 중지 및 해지 시 남은 이용 기간에 대한 환불은 회사의 환불 정책에
|
||||
따라 처리됩니다.
|
||||
⑤ 회사는 회원의 유료 서비스 이용과 관련하여 발생한 문제에 대해 최선을 다해 해결하도록 노력합니다. 다만, 회사의 고의 또는 중대한 과실이 없는 한
|
||||
회원이 유료 서비스 이용 중 입은 손해에 대해서는 책임을 지지 않습니다.<br>
|
||||
|
||||
<em>제21조(환불 정책)</em> <br>
|
||||
① 회원은 결제 후 7일 이내에 서비스 이용을 시작하지 않은 경우, 요금 전액을 환불받을 수 있습니다.
|
||||
② 유료 서비스 이용 중 부득이한 사유로 서비스가 중지된 경우, 회사는 이용하지 않은 부분에 대해 환불 절차를 밟습니다.
|
||||
③ 회원의 귀책사유로 인해 서비스 이용이 중지된 경우, 환불이 불가능합니다.
|
||||
④ 환불은 회원이 지정한 계좌로 환불 절차를 거치며, 환불 요청 후 7일 이내에 처리됩니다.<br>
|
||||
|
||||
<em>제22조 (유료 서비스의 중지 및 해지)</em><br>
|
||||
① 회원이 유료 서비스를 해지하고자 하는 경우, 회사의 고객 지원 센터에 해지 신청을 해야 합니다.
|
||||
② 회사는 회원이 약관을 위반하거나 부정한 방법으로 유료 서비스를 이용한 경우, 유료 서비스 이용을 즉시 중지하고 계약을 해지할 수 있습니다.<br>
|
||||
|
||||
<em>제10장 양도 금지</em><br>
|
||||
<em>제23조 (양도 금지)</em><br>
|
||||
회원은 서비스 이용권한, 기타 이용계약상의 지위를 제3자에게 양도, 증여할 수 없으며, 이를 담보로 제공할 수 없습니다.<br>
|
||||
|
||||
<em>제11장 관할 법원</em><br>
|
||||
<em>제24조 (분쟁 해결)</em><br>
|
||||
서비스 이용과 관련하여 분쟁이 발생한 경우, 회사와 회원은 성실히 협의하여 해결합니다.<br>
|
||||
|
||||
<em>제25조 (관할 법원)</em><br>
|
||||
본 약관에 따른 분쟁은 서울중앙지방법원을 관할 법원으로 합니다.<br>
|
||||
|
||||
<em>부칙</em><br>
|
||||
본 약관은 2024년 10월 1일부터 시행됩니다.<br>
|
||||
</div>
|
||||
</div>
|
||||
<div class="terms_wrap">
|
||||
<div class="checkbox_wrap">
|
||||
<h4>개인정보 수집 및 이용 동의<span class="important_msg">*</span></h4>
|
||||
<input type="checkbox" name="agree2" value="1" id="agree21">
|
||||
</div>
|
||||
<div class="terms">
|
||||
<em>EG-BIM 서비스 개인정보처리방침</em> <br>
|
||||
<br>
|
||||
<em>제1조 (목적)</em><br>
|
||||
바론컨설턴트(이하 "회사")는 EG-BIM 서비스(이하 "서비스")를 이용하는 고객(이하 "이용자")의 개인정보를 보호하고, 「개인정보 보호법」에 따라
|
||||
책임과 의무를 다하기 위해 본 개인정보처리방침을 마련했습니다. 본 방침은 이용자가 제공한 개인정보가 어떻게 수집, 이용, 보관, 보호되는지를
|
||||
설명합니다.<br>
|
||||
|
||||
<em>제2조 (개인정보의 처리목적)</em><br>
|
||||
회사는 다음의 목적을 위해 개인정보를 처리합니다. 처리하고 있는 개인정보는 다음의 목적 이외의 용도로는 이용되지 않으며, 이용 목적이 변경되는 경우에는
|
||||
「개인정보 보호법」 제18조에 따라 별도의 동의를 받는 등 필요한 조치를 이행할 예정입니다.<br>
|
||||
- 본인확인: 회원가입 및 관리를 위한 본인 확인, 전화 또는 이메일을 통한 연락<br>
|
||||
- 서비스 제공: 각종 통보 및 서비스 제공을 위한 업무 처리<br>
|
||||
- 제품소개서 다운로드: 설명자료 전달<br>
|
||||
- 상담 및 데모 신청: 상담 제공 및 데모 제공, 계약 처리자 정보 수집<br>
|
||||
- 행사 참가 신청: 참석 안내 및 세미나/설명회/교육 제공<br>
|
||||
- 보안가이드 제공: 안내자료 전달<br>
|
||||
- 기술지원 문의: 서비스 사용 지원<br>
|
||||
- 서비스 개선 의견 접수: 서비스 품질 개선<br>
|
||||
- 마케팅 활동: 동의한 고객에 한해 뉴스레터 및 매거진 발송<br>
|
||||
|
||||
<em>제3조 (개인정보의 처리 및 보유 기간)</em><br>
|
||||
① 회사는 법령에 따른 개인정보 보유 및 이용기간 또는 정보주체로부터 개인정보를 수집 시 동의받은 개인정보 보유 및 이용기간 내에서 개인정보를 처리 및
|
||||
보유합니다.<br>
|
||||
② 각각의 개인정보 처리 및 보유 기간은 다음과 같습니다:<br>
|
||||
- 회원정보: 회원가입일부터 회원탈퇴 후 1년까지<br>
|
||||
- 홍보, 상담, 계약용 개인정보: 2년<br>
|
||||
|
||||
<em>제4조 (개인정보의 제3자 제공)</em><br>
|
||||
① 회사는 정보주체의 개인정보를 제2조에서 명시한 범위 내에서만 처리하며, 정보 주체의 동의, 법률의 특별한 규정 등 「개인정보 보호법」 제17조 및
|
||||
제18조에 해당하는 경우에만 개인정보를 제3자에게 제공합니다.<br>
|
||||
② 회사는 다음과 같이 개인정보를 제3자에게 제공하고 있습니다:<br>
|
||||
- 제공받는 자: 수사기관 및 유관기관, 피신고업체<br>
|
||||
- 이용 목적: 개인정보 침해 민원 처리<br>
|
||||
- 제공하는 개인정보 항목: 성명, 연락처, 이메일<br>
|
||||
- 보유 및 이용기간: 법령에서 정한 보존기간 및 제공목적 달성 시 파기<br>
|
||||
|
||||
<em>제5조 (개인정보 처리 위탁)</em><br>
|
||||
① 회사는 개인정보 처리업무를 외부 업체에 위탁하지 않으며, 자체적으로 처리하고 있습니다.<br>
|
||||
② 회사가 특정 업무(예: 채용 업무)를 외부 업체에 위탁할 경우, 개인정보 처리방침 시행 전 회사 홈페이지에서 공지한 후 정보주체의 동의를 받은 후
|
||||
위탁합니다.<br>
|
||||
|
||||
<em>제6조 (정보주체의 권리·의무 및 행사 방법)</em><br>
|
||||
① 정보주체는 회사에 대해 언제든지 개인정보 열람, 정정, 삭제, 처리정지 요구 등의 권리를 행사할 수 있습니다.<br>
|
||||
② 권리 행사는 다음과 같은 방법으로 할 수 있습니다:<br>
|
||||
- 서면: 회사 주소로 서면 제출<br>
|
||||
- 전자우편: 회사 이메일로 요청<br>
|
||||
- 모사전송(FAX): 회사 FAX로 요청<br>
|
||||
③ 권리 행사는 정보주체의 법정대리인이나 위임을 받은 자를 통해 대리로도 가능합니다. 이 경우 “개인정보 처리 방법에 관한 고시” 별지 제11호 서식에
|
||||
따른 위임장을 제출해야 합니다.<br>
|
||||
④ 개인정보 열람 및 처리정지 요구는 「개인정보 보호법」 제35조 제4항, 제37조 제2항에 따라 제한될 수 있습니다.<br>
|
||||
⑤ 개인정보의 정정 및 삭제 요구는 다른 법령에 따라 수집된 개인정보인 경우 제한될 수 있습니다.<br>
|
||||
⑥ 회사는 권리 행사를 요청한 자가 본인 또는 정당한 대리인인지를 확인합니다.<br>
|
||||
|
||||
<em>제7조 (처리하는 개인정보의 항목)</em><br>
|
||||
회사는 다음의 개인정보 항목을 처리합니다:<br>
|
||||
- 수집 항목:<br>
|
||||
- 필수 항목: 성명, 휴대전화번호, 이메일<br>
|
||||
- 선택 항목: 회사전화번호, 문의사항<br>
|
||||
- 수집 방법:<br>
|
||||
- 홈페이지, 전화, 이메일을 통해 수집<br>
|
||||
|
||||
<em>제8조 (개인정보의 파기)</em><br>
|
||||
① 회사는 개인정보 보유 기간의 경과, 처리 목적 달성 등 개인정보가 불필요하게 되었을 때 지체 없이 해당 개인정보를 파기합니다.<br>
|
||||
② 정보주체로부터 동의받은 개인정보 보유 기간이 경과하거나 처리 목적이 달성된 경우에도 다른 법령에 따라 개인정보를 계속 보존해야 할 경우에는, 해당
|
||||
개인정보를 별도의 데이터베이스(DB)로 옮기거나 보관 장소를 달리하여 보존합니다.<br>
|
||||
③ 개인정보 파기의 절차 및 방법은 다음과 같습니다:<br>
|
||||
- 파기 절차: 회사는 파기 사유가 발생한 개인정보를 선정하고, 개인정보 보호책임자의 승인을 받아 개인정보를 파기합니다.<br>
|
||||
- 파기 방법: 전자적 파일 형태로 기록된 개인정보는 복구할 수 없도록 기술적 방법을 사용해 삭제하며, 종이 문서에 기록된 개인정보는 분쇄기로
|
||||
분쇄하거나 소각하여 파기합니다.<br>
|
||||
|
||||
<em>제9조 (개인정보의 안전성 확보 조치)</em><br>
|
||||
회사는 개인정보의 안전성 확보를 위해 다음과 같은 조치를 취합니다:<br>
|
||||
- 관리적 조치: 내부관리계획 수립·시행, 정기적 직원 교육<br>
|
||||
- 기술적 조치: 개인정보처리시스템 접근 권한 관리, 접근통제시스템 설치, 고유식별정보 암호화, 보안 프로그램 설치<br>
|
||||
- 물리적 조치: 전산실 및 자료보관실 접근 통제<br>
|
||||
|
||||
<em>제10조 (개인정보 자동 수집 장치의 설치·운영 및 거부에 관한 사항)</em><br>
|
||||
회사는 쿠키(Cookie)를 사용하지 않습니다. 쿠키는 이용자의 이용 정보를 저장하고 수시로 불러오는 작은 파일로, EG-BIM 서비스에서는 쿠키를
|
||||
사용하지 않습니다.<br>
|
||||
|
||||
<em>제11조 (개인정보 보호책임자)</em><br>
|
||||
회사는 개인정보 처리에 관한 업무를 총괄하여 책임지고, 개인정보 처리와 관련된 정보주체의 불만처리 및 피해구제를 위해 개인정보 보호책임자를 지정하고
|
||||
있습니다.<br>
|
||||
개인정보 보호책임자:<br>
|
||||
- 성명: 박진<br>
|
||||
- 직책: 책임연구원<br>
|
||||
- 연락처: 02-2141-7485<br>
|
||||
- 팩스번호: 02-2141-7599<br>
|
||||
- 이메일: jpark@baroncs.co.kr<br>
|
||||
|
||||
<em>제12조 (개인정보 열람청구)</em><br>
|
||||
정보주체는 「개인정보 보호법」 제35조에 따른 개인정보 열람 청구를 아래 부서에 할 수 있습니다. 회사는 정보주체의 개인정보 열람청구가 신속하게
|
||||
처리되도록 노력하겠습니다.<br>
|
||||
개인정보 열람청구 접수·처리 부서:<br>
|
||||
- 부서명: 총괄기획실<br>
|
||||
- 담당자: 권혁진<br>
|
||||
- 연락처: 02-2141-7465<br>
|
||||
- 팩스번호: 02-2141-7599<br>
|
||||
- 이메일: baroncs@baroncs.co.kr<br>
|
||||
|
||||
<em>제13조 (권익침해 구제방법)</em><br>
|
||||
정보주체는 개인정보 침해로 인한 구제를 위해 개인정보분쟁조정위원회, 한국인터넷진흥원 개인정보해신고센터 등에 분쟁 해결이나 상담을 신청할 수 있습니다.<br>
|
||||
- 개인정보분쟁조정위원회: (국번없이) 1833-6972 (www.kopico.go.kr)<br>
|
||||
- 개인정보침해신고센터: (국번없이) 118 (privacy.kisa.or.kr)<br>
|
||||
- 대검찰청: (국번없이) 1301 (www.spo.go.kr)<br>
|
||||
- 경찰청: (국번없이) 182 (www.police.go.kr)<br>
|
||||
|
||||
<em>제14조 (개인정보 처리방침의 변경)</em><br>
|
||||
본 개인정보처리방침은 법령, 정책 또는 보안 기술의 변경에 따라 내용의 추가, 삭제 및 수정이 있을 시, 개정 최소 7일 전에 홈페이지를 통해 사전
|
||||
공지합니다.<br>
|
||||
|
||||
<br>
|
||||
<em>부칙</em><br>
|
||||
|
||||
<em>제1조 (시행일자)</em><br>
|
||||
이 개인정보처리방침은 2024년 10월 1일부터 시행됩니다.<br>
|
||||
|
||||
<em>제2조 (개정 및 고지의 의무)</em><br>
|
||||
회사는 개인정보처리방침을 변경하는 경우, 변경사항을 시행일자 7일 전부터 서비스 내 공지사항 페이지를 통해 고지할 것입니다. 다만, 이용자의 권리나
|
||||
의무에 중대한 변경이 발생하는 경우에는 시행일자 30일 전부터 고지합니다.<br>
|
||||
|
||||
<em>제3조 (유효성)</em><br>
|
||||
본 개인정보처리방침의 일부 조항이 법적 또는 기타 사유로 인해 무효화되거나 시행할 수 없는 경우, 나머지 조항들은 계속해서 유효합니다. 무효화된 조항은
|
||||
관련 법령에 부합하는 방식으로 수정되어 효력을 지속합니다.<br>
|
||||
|
||||
<em>제4조 (변경 통지의 방법)</em><br>
|
||||
회사는 개인정보처리방침의 변경 시, 다음의 방법으로 이용자에게 고지합니다:<br>
|
||||
- 서비스 초기화면 또는 팝업 공지<br>
|
||||
- 이메일 발송<br>
|
||||
- 회사 홈페이지 공지사항<br>
|
||||
|
||||
<em>제5조 (비회원의 개인정보 보호)</em><br>
|
||||
회사는 비회원의 개인정보도 회원과 동일한 수준으로 보호합니다. 비회원이 개인정보 제공을 거부할 경우 일부 서비스 이용에 제한이 있을 수 있습니다.<br>
|
||||
|
||||
<em>제6조 (14세 미만 아동의 개인정보 보호)</em><br>
|
||||
회사는 14세 미만 아동의 개인정보를 수집하지 않습니다. 만일 14세 미만 아동의 개인정보가 수집된 경우, 법정 대리인의 동의를 받아야 하며, 법정
|
||||
대리인의 동의 없이 수집된 경우 이를 지체 없이 파기합니다.<br>
|
||||
|
||||
<em>제7조 (개인정보의 국외 이전)</em><br>
|
||||
회사는 이용자의 개인정보를 국외로 이전하지 않으며, 향후 필요한 경우, 사전에 이용자의 동의를 받습니다.<br>
|
||||
|
||||
<em>제8조 (기타)</em><br>
|
||||
본 방침에 명시되지 않은 사항은 회사의 내부 방침과 관련 법령에 따릅니다.<br>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="checkbox_wrap all">
|
||||
<h4>약관에 모두 동의합니다.</h4>
|
||||
<input type="checkbox" name="chk_all">
|
||||
</div>
|
||||
<div class="join_btn_wrap">
|
||||
<button type="submit" onclick="javascript:join();">동의</button>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
<!--//pop_join_right-->
|
||||
</div>
|
||||
<!--//popup_content-->
|
||||
</div>
|
||||
<!--//popup_in-->
|
||||
</div>
|
||||
<!--//popup_wrap-->
|
||||
<!-- </div>
|
||||
</body> -->
|
||||
|
||||
<script>
|
||||
function fregister_submit(f)
|
||||
{
|
||||
if (!f.agree11.checked) {
|
||||
alert("회원가입약관의 내용에 동의하셔야 회원가입 하실 수 있습니다.");
|
||||
f.agree11.focus();
|
||||
return false;
|
||||
}
|
||||
|
||||
if (!f.agree21.checked) {
|
||||
alert("개인정보 수집 및 이용의 내용에 동의하셔야 회원가입 하실 수 있습니다.");
|
||||
f.agree21.focus();
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
jQuery(function($){
|
||||
// 모두선택
|
||||
$("input[name=chk_all]").click(function() {
|
||||
if ($(this).prop('checked')) {
|
||||
$("input[name^=agree]").prop('checked', true);
|
||||
} else {
|
||||
$("input[name^=agree]").prop("checked", false);
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
</script>
|
||||
<!-- </div> -->
|
||||
<!-- } 회원가입 약관 동의 끝 -->
|
||||
@@ -0,0 +1,483 @@
|
||||
<?php
|
||||
if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가
|
||||
|
||||
// add_stylesheet('css 구문', 출력순서); 숫자가 작을 수록 먼저 출력됨
|
||||
// add_stylesheet('<link rel="stylesheet" href="'.$member_skin_url.'/style.css">', 0);
|
||||
//add_javascript('<script src="'.G5_JS_URL.'/jquery.register_form.js"></script>', 0);
|
||||
// if ($config['cf_cert_use'] && ($config['cf_cert_simple'] || $config['cf_cert_ipin'] || $config['cf_cert_hp']))
|
||||
// add_javascript('<script src="'.G5_JS_URL.'/certify.js?v='.G5_JS_VER.'"></script>', 0);
|
||||
//add_stylesheet('<link rel="stylesheet" href="'.$member_skin_url.'/style.css">', 0);
|
||||
?>
|
||||
|
||||
<!-- 회원정보 입력/수정 시작 { -->
|
||||
<!-- <head>
|
||||
<meta charset="utf-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<title>TOVA Join</title>
|
||||
<link rel="stylesheet" href="../css/reset.css" />
|
||||
<link rel="stylesheet" href="../css/font.css" />
|
||||
<link rel="stylesheet" href="../css/style.css" />
|
||||
<script src="../js/jquery-3.6.1.min.js"></script>
|
||||
<script src="../js/common.js"></script>
|
||||
</head> -->
|
||||
<link rel="stylesheet" href="<?php echo G5_URL ?>/css/style.css" />
|
||||
|
||||
<!-- <body>
|
||||
<div class="wrapper"> -->
|
||||
<!-- Header -->
|
||||
<!-- <header class="header">
|
||||
<h1>
|
||||
<img src="../img/logo_w.svg" alt="">
|
||||
</h1>
|
||||
<div class="menu_wrap">
|
||||
<div class="menu_my"><img src="../img/ico_my.svg" alt=""></div>
|
||||
<div class="menu_ham"><img src="../img/ico_ham.svg" alt=""></div>
|
||||
</div>
|
||||
</header> -->
|
||||
<!-- //Header -->
|
||||
|
||||
<!--popup_wrap-->
|
||||
<div id="pop_join" class="popup_wrap">
|
||||
<!--popup_in-->
|
||||
<div class="popup_in">
|
||||
<button class="btn_close">
|
||||
<div class="close_div"><img src="<?php echo G5_URL ?>/img/ico_close.svg" alt="sdi"></div>
|
||||
</button>
|
||||
<!--popup_content-->
|
||||
<div class="popup_container register">
|
||||
<!--pop_join_left-->
|
||||
<div class="popup_tit">
|
||||
<h1 class="h_1">회원가입</h1>
|
||||
<ul>
|
||||
<li class="join_step">
|
||||
<h4 class="h_4">01</h4>
|
||||
<h4 class="h_4 txt">약관동의</h4>
|
||||
</li>
|
||||
<li class="join_step on">
|
||||
<h4 class="h_4">02</h4>
|
||||
<h4 class="h_4 txt">계정 생성</h4>
|
||||
</li>
|
||||
<li class="join_step">
|
||||
<h4 class="h_4">03</h4>
|
||||
<h4 class="h_4 txt">사용자 인증</h4>
|
||||
</li>
|
||||
<li class="join_step">
|
||||
<h4 class="h_4">04</h4>
|
||||
<h4 class="h_4 txt">추가정보 입력</h4>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<!--pop_join_right-->
|
||||
<div id="reg_form_join" class="popup_contents_wrap">
|
||||
<form id="fregisterform" name="fregisterform" action="<?php echo $register_action_url?>" onsubmit="return fregisterform_submit(this);" method="post" enctype="multipart/form-data" autocomplete="off">
|
||||
<input type="hidden" name="w" value="<?php echo $w ?>">
|
||||
<input type="hidden" name="url" value="<?php echo $urlencode ?>">
|
||||
<input type="hidden" name="agree" value="<?php echo $agree ?>">
|
||||
<input type="hidden" name="agree2" value="<?php echo $agree2 ?>">
|
||||
<input type="hidden" name="cert_type" value="<?php echo $member['mb_certify']; ?>">
|
||||
<input type="hidden" name="cert_no" value="">
|
||||
<!-- <?php //if (isset($member['mb_sex'])) { ?><input type="hidden" name="mb_sex" value="<?php //echo $member['mb_sex'] ?>"><?php //} ?> -->
|
||||
<?php //if (isset($member['mb_nick_date']) && $member['mb_nick_date'] > date("Y-m-d", G5_SERVER_TIME - ($config['cf_nick_modify'] * 86400))) { // 닉네임수정일이 지나지 않았다면 ?>
|
||||
<!-- <input type="hidden" name="mb_nick_default" value="<?php //echo get_text($member['mb_nick']) ?>">
|
||||
<input type="hidden" name="mb_nick" value="<?php //echo get_text($member['mb_nick']) ?>"> -->
|
||||
<?php //} ?>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<!-- 2025.07 디자인팀 수정 -->
|
||||
<!-- 02 계정생성 -->
|
||||
<!-- 왼쪽 "02 계정생성"에 on -->
|
||||
<fieldset style="_display: none;">
|
||||
<!--tbl_wrap-->
|
||||
<div id="register_form" class="tbl_wrap">
|
||||
<div class="guide_txt">
|
||||
<p>계정을 생성합니다.</p>
|
||||
<em>아이디와 비밀번호</em>를 입력해 주세요.
|
||||
</div>
|
||||
<table>
|
||||
<tbody>
|
||||
<tr>
|
||||
<th class="h_4">아이디</th>
|
||||
<td>
|
||||
<div class="id_wrap">
|
||||
<input type="text" class="frm_input full_input" id="reg_mb_id" name="mb_id" onchange="PG_pro('change');" placeholder="아이디 입력" <?php if($member['mb_id']!=""){ ?> style="width: 100% ;"<?php }?> autocomplete="off" value="<?php echo $member['mb_id'] ?>" <?php echo $required ?> <?php echo $readonly ?> maxlength="30"/>
|
||||
<?php if($member['mb_id']==""){ ?>
|
||||
<!-- <button type="button" class="chk_id" onclick="PG_pro('dupl_check');">중복확인</button> -->
|
||||
<button type="button" class="chk_id" onclick="descopeEmailCheck();">중복확인</button>
|
||||
<!-- hidden --><input type="hidden" id="dupl_check_yn" name="dupl_check_yn" value="" placeholder="아이디중복확인여부YN" style="width:250px; background-color:#dfe4ea "/>
|
||||
<!-- hidden --><input type="hidden" id="GB_mb_id" name="GB_mb_id" value="<?php echo $member['mb_id'] ?>">
|
||||
<?php }else{ ?>
|
||||
<!-- hidden --><input type="hidden" id="reg_mb_id" name="mb_id" value="<?php echo $member['mb_id'] ?>">
|
||||
<!-- hidden --><input type="hidden" id="dupl_check_yn" name="dupl_check_yn" value="Y" onclick="" style="width:250px; background-color:#dfe4ea "/>
|
||||
<?php } ?>
|
||||
</div>
|
||||
<span class="important_msg h_6">이메일 형식으로 작성</span>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<th class="h_4">비밀번호</th>
|
||||
<td>
|
||||
<div class="password_wrap">
|
||||
<input type="password" name="mb_password" id="reg_mb_password" <?php echo $required ?> class="frm_input full_input <?php echo $required ?>" minlength="3" maxlength="20" placeholder="비밀번호 입력">
|
||||
<input type="password" name="mb_password_re" id="reg_mb_password_re" <?php echo $required ?> class="frm_input full_input <?php echo $required ?>" minlength="3" maxlength="20" placeholder="비밀번호 확인">
|
||||
</div>
|
||||
<span class="important_msg h_6">영문+숫자+특수기호 8자 이상</span>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<!--//tbl_wrap-->
|
||||
<div class="btn_confirm">
|
||||
<button type="submit" id="btn_submit" class="btn_submit" >생성하기</button>
|
||||
</div>
|
||||
</fieldset>
|
||||
|
||||
<!-- 03 사용자 인증 -->
|
||||
<!-- 왼쪽 "03 사용자 인증"에 on -->
|
||||
<fieldset style="display: none;">
|
||||
<!--tbl_wrap-->
|
||||
<div id="register_form" class="tbl_wrap">
|
||||
|
||||
<div class="guide_txt">
|
||||
<p>계정 생성이 완료되었습니다.</p>
|
||||
사용자 인증을 위해 <em>aaa@gmail.com</em> <br>아이디로 전송된 인증번호를 입력해 주세요.
|
||||
</div>
|
||||
<div class="verify_wrap">
|
||||
<div class="code_input">
|
||||
<input type="text" maxlength="1" inputmode="numeric" pattern="[0-9]*" />
|
||||
<input type="text" maxlength="1" inputmode="numeric" pattern="[0-9]*" />
|
||||
<input type="text" maxlength="1" inputmode="numeric" pattern="[0-9]*" />
|
||||
<input type="text" maxlength="1" inputmode="numeric" pattern="[0-9]*" />
|
||||
<input type="text" maxlength="1" inputmode="numeric" pattern="[0-9]*" />
|
||||
<input type="text" maxlength="1" inputmode="numeric" pattern="[0-9]*" />
|
||||
</div>
|
||||
<div>
|
||||
<span class="important_msg h_6">인증번호 불일치</span>
|
||||
<button class="btn_send">인증번호 재전송 ⭮</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<!--//tbl_wrap-->
|
||||
<div class="btn_confirm">
|
||||
<button type="submit" id="btn_submit" class="btn_submit" >인증하기</button>
|
||||
</div>
|
||||
<script>
|
||||
const inputs = document.querySelectorAll('.code-input input');
|
||||
|
||||
inputs.forEach((input, index) => {
|
||||
console.log('dd');
|
||||
input.addEventListener('input', (e) => {
|
||||
const value = e.target.value;
|
||||
if (!/^[0-9]$/.test(value)) {
|
||||
e.target.value = '';
|
||||
return;
|
||||
}
|
||||
if (value && index < inputs.length - 1) {
|
||||
inputs[index + 1].focus();
|
||||
}
|
||||
});
|
||||
|
||||
input.addEventListener('keydown', (e) => {
|
||||
if (e.key === 'Backspace' && !e.target.value && index > 0) {
|
||||
inputs[index - 1].focus();
|
||||
}
|
||||
});
|
||||
});
|
||||
</script>
|
||||
</fieldset>
|
||||
|
||||
<!-- 04 추가정보 입력 -->
|
||||
<!-- 왼쪽 "04 추가정보 입력"에 on -->
|
||||
<fieldset style="display: none;">
|
||||
<!--tbl_wrap-->
|
||||
<div id="register_form" class="tbl_wrap">
|
||||
<div class="guide_txt"><em>추가 정보를 입력</em>하여 <br class="brk">회원가입을 완료해 주세요.</div>
|
||||
<table>
|
||||
<tbody>
|
||||
|
||||
<tr>
|
||||
<th class="h_4">가족사</th>
|
||||
<td>
|
||||
<div class="radio_wrap">
|
||||
<label><input type="radio" class="on" name="family" value="hanmac" checked>한맥기술</label>
|
||||
<label><input type="radio" name="family" value="saman">삼안</label>
|
||||
<label><input type="radio" name="family" value="saman">장헌산업</label>
|
||||
<label><input type="radio" name="family" value="saman">PTC</label>
|
||||
<label><input type="radio" name="family" value="saman">바론컨설턴트</label>
|
||||
<label><input type="radio" name="family" value="saman">한라산업개발</label>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<th class="h_4">이름</th>
|
||||
<td>
|
||||
<div class="name_wrap">
|
||||
<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="이름 입력">
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th class="h_4">직위 및 사번</th>
|
||||
<td>
|
||||
<div class="company_wrap">
|
||||
<input type="text" name="mb_comp" value="<?php echo get_text($member['mb_comp'])?>" id="reg_mb_comp" size="70" maxlength="100" placeholder="직위 입력">
|
||||
<input type="text" name="mb_comp_team" value="<?php echo get_text($member['mb_comp_team'])?>" id="reg_mb_comp_team" size="70" maxlength="100" placeholder="회사별 사번 입력">
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th class="h_4">소속</th>
|
||||
<td>
|
||||
<div class="team_wrap">
|
||||
<input type="text" id="reg_mb_team" name="mb_team" value="<?php echo get_text($member['mb_team']) ?>" <?php echo $required ?> <?php echo $name_readonly; ?> class="frm_input full_input <?php echo $required ?> <?php echo $name_readonly ?>" size="10" placeholder="소속 입력">
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th class="h_4">휴대전화번호</th>
|
||||
<td>
|
||||
<div class="phone_wrap">
|
||||
<input type="text" name="mb_hp" value="<?php echo get_text($member['mb_hp']) ?>" id="reg_mb_hp" <?php echo $hp_required; ?> <?php echo $hp_readonly; ?> class="frm_input full_input <?php echo $hp_required; ?> <?php echo $hp_readonly; ?>" maxlength="20" placeholder="휴대폰 번호">
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<!--//tbl_wrap-->
|
||||
<div class="btn_confirm">
|
||||
<button type="submit" id="btn_submit" class="btn_submit" >저장하기</button>
|
||||
</div>
|
||||
</fieldset>
|
||||
<!-- //2025.07 디자인팀 수정 -->
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</form>
|
||||
</div>
|
||||
<!--//pop_join_right-->
|
||||
<!-- 회원가입결과 시작 { register-->
|
||||
<div id="pop_result" class="popup_wrap" style="display:none;">
|
||||
<p class="reg_result_p">
|
||||
<i class="fa fa-gift" aria-hidden="true"></i><br>
|
||||
<strong><?php echo get_text($mb['mb_name']); ?></strong>님의 회원가입을 진심으로 축하합니다.
|
||||
</p>
|
||||
|
||||
<?php if (is_use_email_certify()) { ?>
|
||||
<p class="result_txt">
|
||||
회원 가입 시 입력하신 이메일 주소로 인증메일이 발송되었습니다.<br>
|
||||
발송된 인증메일을 확인하신 후 인증처리를 하시면 사이트를 원활하게 이용하실 수 있습니다.
|
||||
</p>
|
||||
<div id="result_email">
|
||||
<span>아이디</span>
|
||||
<strong><?php echo $mb['mb_id'] ?></strong><br>
|
||||
<span>이메일 주소</span>
|
||||
<strong><?php echo $mb['mb_email'] ?></strong>
|
||||
</div>
|
||||
<p>
|
||||
이메일 주소를 잘못 입력하셨다면, 사이트 관리자에게 문의해주시기 바랍니다.
|
||||
</p>
|
||||
<?php } ?>
|
||||
|
||||
<p class="result_txt">
|
||||
회원님의 비밀번호는 아무도 알 수 없는 암호화 코드로 저장되므로 안심하셔도 좋습니다.<br>
|
||||
아이디, 비밀번호 분실시에는 회원가입시 입력하신 이메일 주소를 이용하여 찾을 수 있습니다.
|
||||
</p>
|
||||
|
||||
<p class="result_txt">
|
||||
회원 탈퇴는 언제든지 가능하며 일정기간이 지난 후, 회원님의 정보는 삭제하고 있습니다.<br>
|
||||
감사합니다.
|
||||
</p>
|
||||
<!-- } 회원가입결과 끝 -->
|
||||
<div class="btn_confirm_reg">
|
||||
<a href="<?php echo G5_URL ?>/" class="reg_btn_submit">메인으로</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!--//popup_content-->
|
||||
</div>
|
||||
<!--//popup_in-->
|
||||
</div>
|
||||
<!--//popup_wrap-->
|
||||
<!-- </div>
|
||||
</body> -->
|
||||
|
||||
<script>
|
||||
function PG_changeSelect(p_list){
|
||||
if(p_list.value == 'type'){
|
||||
document.getElementById("register_domain2").style.display = "block";
|
||||
}else{
|
||||
document.getElementById("register_domain2").style.display = "none";
|
||||
}
|
||||
}//PG_changeSelect
|
||||
|
||||
// submit 최종 폼체크
|
||||
// function fregisterform_submit(b)
|
||||
// {
|
||||
// var f = b.parentNode.parentNode.parentNode;
|
||||
|
||||
// // 회원아이디 검사
|
||||
// if (f.w.value == "") {
|
||||
// alert('id_check_before');
|
||||
// var msg = reg_mb_id_check();
|
||||
// if (msg) {
|
||||
// f.mb_id.select();
|
||||
// return false;
|
||||
// }
|
||||
// }
|
||||
|
||||
// if (f.w.value == "") {
|
||||
// if (f.mb_password.value.length < 3) {
|
||||
// alert("비밀번호를 3글자 이상 입력하십시오.");
|
||||
// f.mb_password.focus();
|
||||
// return false;
|
||||
// }
|
||||
// }
|
||||
|
||||
// if (f.mb_password.value != f.mb_password_re.value) {
|
||||
// alert("비밀번호가 같지 않습니다.");
|
||||
// f.mb_password_re.focus();
|
||||
// return false;
|
||||
// }
|
||||
|
||||
// if (f.mb_password.value.length > 0) {
|
||||
// if (f.mb_password_re.value.length < 3) {
|
||||
// alert("비밀번호를 3글자 이상 입력하십시오.");
|
||||
// f.mb_password_re.focus();
|
||||
// return false;
|
||||
// }
|
||||
// }
|
||||
|
||||
// if ($("#dupl_check_yn").val() != 'Y') {
|
||||
// alert('아이디(이메일) 중복 확인을 해주세요.');
|
||||
// $("#reg_mb_id").focus();
|
||||
// return false;
|
||||
// }
|
||||
|
||||
// // E-mail 검사
|
||||
// var mail_temp = f.reg_mb_email1.value+''+f.reg_mb_email2.value;
|
||||
// f.reg_mb_email.value = mail_temp;
|
||||
|
||||
// if ((f.w.value == "") || (f.w.value == "u" && f.reg_mb_email.defaultValue != mail_temp)) {
|
||||
// var msg = reg_mb_email_check();
|
||||
// if (msg) {
|
||||
// alert(msg);
|
||||
// f.reg_mb_email1.select();
|
||||
// return false;
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
|
||||
function descopeEmailCheck() {
|
||||
var email = $("#reg_mb_id").val().trim();
|
||||
|
||||
if (email === "") {
|
||||
alert("아이디(이메일)를 입력해 주세요.");
|
||||
$("#reg_mb_id").focus();
|
||||
return;
|
||||
}
|
||||
|
||||
// 이메일 유효성 검사
|
||||
var re = /^[^\s@]+@[^\s@]+\.[^\s@]+$/;
|
||||
if (!re.test(email)) {
|
||||
alert("유효한 이메일 형식으로 입력해 주세요.");
|
||||
$("#reg_mb_id").focus();
|
||||
return;
|
||||
}
|
||||
|
||||
$.ajax({
|
||||
url: '/egbim/skin/member/basic/descope_check_email.php',
|
||||
type: 'POST',
|
||||
data: { email: email },
|
||||
dataType: 'json',
|
||||
success: function(res) {
|
||||
if (res.status === 'ok') {
|
||||
if (confirm("사용 가능한 이메일입니다.\n이 이메일로 가입하시겠습니까?")) {
|
||||
$("#dupl_check_yn").val('Y');
|
||||
$("#reg_mb_password").focus();
|
||||
} else {
|
||||
$("#reg_mb_id").val('').focus();
|
||||
$("#dupl_check_yn").val('N');
|
||||
}
|
||||
} else if (res.status === 'duplicate') {
|
||||
alert('이미 가입된 이메일입니다.\n다른 이메일을 사용해 주세요.');
|
||||
$("#reg_mb_id").val('').focus();
|
||||
$("#dupl_check_yn").val('N');
|
||||
} else {
|
||||
alert('오류가 발생했습니다:\n' + res.message);
|
||||
}
|
||||
},
|
||||
error: function(xhr, status, error) {
|
||||
alert(
|
||||
'통신 중 오류가 발생했습니다.\n' +
|
||||
'상태: ' + status + '\n' +
|
||||
'에러: ' + error + '\n' +
|
||||
'응답: ' + xhr.responseText
|
||||
);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
async function fregisterform_submit(b) {
|
||||
var f = b.parentNode.parentNode.parentNode;
|
||||
|
||||
// 기존 유효성 검사 로직 유지
|
||||
if (f.mb_password.value.length < 8) {
|
||||
alert("비밀번호는 8자 이상 입력하십시오.");
|
||||
f.mb_password.focus();
|
||||
return false;
|
||||
}
|
||||
if (f.mb_password.value !== f.mb_password_re.value) {
|
||||
alert("비밀번호가 같지 않습니다.");
|
||||
f.mb_password_re.focus();
|
||||
return false;
|
||||
}
|
||||
if ($("#dupl_check_yn").val() !== 'Y') {
|
||||
alert('아이디(이메일) 중복 확인을 해주세요.');
|
||||
$("#reg_mb_id").focus();
|
||||
return false;
|
||||
}
|
||||
|
||||
// Descope 회원가입 및 OTP 전송
|
||||
const email = $("#reg_mb_id").val().trim();
|
||||
const password = $("#reg_mb_password").val().trim();
|
||||
|
||||
try {
|
||||
const res = await $.ajax({
|
||||
url: '/egbim/skin/member/basic/descope_signup.php',
|
||||
type: 'POST',
|
||||
dataType: 'json',
|
||||
data: { email: email, password: password }
|
||||
});
|
||||
|
||||
if (res.status === 'ok') {
|
||||
alert('Descope 계정 생성 및 OTP 전송 완료. 인증 단계로 진행합니다.');
|
||||
// 실제 인증 단계로 UI 전환 (예: fieldset 전환)
|
||||
$("fieldset").hide().eq(1).show(); // 03 사용자 인증 단계로
|
||||
return false; // GnuBoard form submit 방지 후 OTP 인증 진행
|
||||
} else {
|
||||
alert('Descope 가입 중 오류 발생: ' + res.message);
|
||||
return false;
|
||||
}
|
||||
} catch (err) {
|
||||
alert('통신 오류가 발생했습니다.');
|
||||
console.error(err);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
</script>
|
||||
|
||||
<!-- } 회원정보 입력/수정 끝 -->
|
||||
@@ -0,0 +1,514 @@
|
||||
<?php
|
||||
if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가
|
||||
|
||||
// add_stylesheet('css 구문', 출력순서); 숫자가 작을 수록 먼저 출력됨
|
||||
add_stylesheet('<link rel="stylesheet" href="'.$member_skin_url.'/style.css">', 0);
|
||||
add_javascript('<script src="'.G5_JS_URL.'/jquery.register_form.js"></script>', 0);
|
||||
if ($config['cf_cert_use'] && ($config['cf_cert_simple'] || $config['cf_cert_ipin'] || $config['cf_cert_hp']))
|
||||
add_javascript('<script src="'.G5_JS_URL.'/certify.js?v='.G5_JS_VER.'"></script>', 0);
|
||||
?>
|
||||
|
||||
<!-- 회원정보 입력/수정 시작 { -->
|
||||
|
||||
<div class="register">
|
||||
<form id="fregisterform" name="fregisterform" action="<?php echo $register_action_url ?>" onsubmit="return fregisterform_submit(this);" method="post" enctype="multipart/form-data" autocomplete="off">
|
||||
<input type="hidden" name="w" value="<?php echo $w ?>">
|
||||
<input type="hidden" name="url" value="<?php echo $urlencode ?>">
|
||||
<input type="hidden" name="agree" value="<?php echo $agree ?>">
|
||||
<input type="hidden" name="agree2" value="<?php echo $agree2 ?>">
|
||||
<input type="hidden" name="cert_type" value="<?php echo $member['mb_certify']; ?>">
|
||||
<input type="hidden" name="cert_no" value="">
|
||||
<?php if (isset($member['mb_sex'])) { ?><input type="hidden" name="mb_sex" value="<?php echo $member['mb_sex'] ?>"><?php } ?>
|
||||
<?php if (isset($member['mb_nick_date']) && $member['mb_nick_date'] > date("Y-m-d", G5_SERVER_TIME - ($config['cf_nick_modify'] * 86400))) { // 닉네임수정일이 지나지 않았다면 ?>
|
||||
<input type="hidden" name="mb_nick_default" value="<?php echo get_text($member['mb_nick']) ?>">
|
||||
<input type="hidden" name="mb_nick" value="<?php echo get_text($member['mb_nick']) ?>">
|
||||
<?php } ?>
|
||||
|
||||
<div id="register_form" class="form_01">
|
||||
<div class="register_form_inner">
|
||||
<h2>사이트 이용정보 입력</h2>
|
||||
<ul>
|
||||
<li>
|
||||
<label for="reg_mb_id">
|
||||
아이디 (필수)
|
||||
<button type="button" class="tooltip_icon"><i class="fa fa-question-circle-o" aria-hidden="true"></i><span class="sound_only">설명보기</span></button>
|
||||
<span class="tooltip">영문자, 숫자, _ 만 입력 가능. 최소 3자이상 입력하세요.</span>
|
||||
</label>
|
||||
<input type="text" name="mb_id" value="<?php echo $member['mb_id'] ?>" id="reg_mb_id" <?php echo $required ?> <?php echo $readonly ?> class="frm_input full_input <?php echo $required ?> <?php echo $readonly ?>" minlength="3" maxlength="20" placeholder="아이디">
|
||||
<span id="msg_mb_id"></span>
|
||||
</li>
|
||||
<li class="half_input left_input margin_input">
|
||||
<label for="reg_mb_password">비밀번호 (필수)</label>
|
||||
<input type="password" name="mb_password" id="reg_mb_password" <?php echo $required ?> class="frm_input full_input <?php echo $required ?>" minlength="3" maxlength="20" placeholder="비밀번호">
|
||||
</li>
|
||||
<li class="half_input left_input">
|
||||
<label for="reg_mb_password_re">비밀번호 확인 (필수)</label>
|
||||
<input type="password" name="mb_password_re" id="reg_mb_password_re" <?php echo $required ?> class="frm_input full_input <?php echo $required ?>" minlength="3" maxlength="20" placeholder="비밀번호 확인">
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div class="tbl_frm01 tbl_wrap register_form_inner">
|
||||
<h2>개인정보 입력</h2>
|
||||
<ul>
|
||||
<li>
|
||||
<?php
|
||||
$desc_name = '';
|
||||
$desc_phone = '';
|
||||
if ($config['cf_cert_use']) {
|
||||
$desc_name = '<span class="cert_desc"> 본인확인 시 자동입력</span>';
|
||||
$desc_phone = '<span class="cert_desc"> 본인확인 시 자동입력</span>';
|
||||
|
||||
if (!$config['cf_cert_simple'] && !$config['cf_cert_hp'] && $config['cf_cert_ipin']) {
|
||||
$desc_phone = '';
|
||||
}
|
||||
|
||||
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;
|
||||
}
|
||||
if($config['cf_cert_hp'])
|
||||
echo '<button type="button" id="win_hp_cert" class="btn_frmline">휴대폰 본인확인</button>'.PHP_EOL;
|
||||
if ($config['cf_cert_ipin'])
|
||||
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']) {
|
||||
case "simple":
|
||||
$mb_cert = "간편인증";
|
||||
break;
|
||||
case "ipin":
|
||||
$mb_cert = "아이핀";
|
||||
break;
|
||||
case "hp":
|
||||
$mb_cert = "휴대폰";
|
||||
break;
|
||||
}
|
||||
?>
|
||||
<div id="msg_certify">
|
||||
<strong><?php echo $mb_cert; ?> 본인확인</strong><?php if ($member['mb_adult']) { ?> 및 <strong>성인인증</strong><?php } ?> 완료
|
||||
</div>
|
||||
<?php } ?>
|
||||
</li>
|
||||
<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="이름">
|
||||
</li>
|
||||
<?php if ($req_nick) { ?>
|
||||
<li>
|
||||
<label for="reg_mb_nick">
|
||||
닉네임 (필수)
|
||||
<button type="button" class="tooltip_icon"><i class="fa fa-question-circle-o" aria-hidden="true"></i><span class="sound_only">설명보기</span></button>
|
||||
<span class="tooltip">공백없이 한글,영문,숫자만 입력 가능 (한글2자, 영문4자 이상)<br> 닉네임을 바꾸시면 앞으로 <?php echo (int)$config['cf_nick_modify'] ?>일 이내에는 변경 할 수 없습니다.</span>
|
||||
</label>
|
||||
|
||||
<input type="hidden" name="mb_nick_default" value="<?php echo isset($member['mb_nick'])?get_text($member['mb_nick']):''; ?>">
|
||||
<input type="text" name="mb_nick" value="<?php echo isset($member['mb_nick'])?get_text($member['mb_nick']):''; ?>" id="reg_mb_nick" required class="frm_input required nospace full_input" size="10" maxlength="20" placeholder="닉네임">
|
||||
<span id="msg_mb_nick"></span>
|
||||
</li>
|
||||
<?php } ?>
|
||||
|
||||
<li>
|
||||
<label for="reg_mb_email">E-mail (필수)
|
||||
|
||||
<?php if ($config['cf_use_email_certify']) { ?>
|
||||
<button type="button" class="tooltip_icon"><i class="fa fa-question-circle-o" aria-hidden="true"></i><span class="sound_only">설명보기</span></button>
|
||||
<span class="tooltip">
|
||||
<?php if ($w=='') { echo "E-mail 로 발송된 내용을 확인한 후 인증하셔야 회원가입이 완료됩니다."; } ?>
|
||||
<?php if ($w=='u') { echo "E-mail 주소를 변경하시면 다시 인증하셔야 합니다."; } ?>
|
||||
</span>
|
||||
<?php } ?>
|
||||
</label>
|
||||
|
||||
<input type="hidden" name="old_email" value="<?php echo $member['mb_email'] ?>">
|
||||
<input type="text" name="mb_email" value="<?php echo isset($member['mb_email'])?$member['mb_email']:''; ?>" id="reg_mb_email" required class="frm_input email full_input required" size="70" maxlength="100" placeholder="E-mail">
|
||||
</li>
|
||||
|
||||
<?php if ($config['cf_use_homepage']) { ?>
|
||||
<li>
|
||||
<label for="reg_mb_homepage">홈페이지<?php if ($config['cf_req_homepage']){ ?> (필수)<?php } ?></label>
|
||||
<input type="text" name="mb_homepage" value="<?php echo get_text($member['mb_homepage']) ?>" id="reg_mb_homepage" <?php echo $config['cf_req_homepage']?"required":""; ?> class="frm_input full_input <?php echo $config['cf_req_homepage']?"required":""; ?>" size="70" maxlength="255" placeholder="홈페이지">
|
||||
</li>
|
||||
<?php } ?>
|
||||
|
||||
<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>
|
||||
<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>
|
||||
|
||||
<input type="text" name="mb_hp" value="<?php echo get_text($member['mb_hp']) ?>" id="reg_mb_hp" <?php echo $hp_required; ?> <?php echo $hp_readonly; ?> class="frm_input full_input <?php echo $hp_required; ?> <?php echo $hp_readonly; ?>" maxlength="20" placeholder="휴대폰번호">
|
||||
<?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($member['mb_hp']) ?>">
|
||||
<?php } ?>
|
||||
<?php } ?>
|
||||
</li>
|
||||
|
||||
<?php if ($config['cf_use_addr']) { ?>
|
||||
<li>
|
||||
<label>주소</label>
|
||||
<?php if ($config['cf_req_addr']) { ?> (필수)<?php } ?>
|
||||
<label for="reg_mb_zip" class="sound_only">우편번호<?php echo $config['cf_req_addr']?' (필수)':''; ?></label>
|
||||
<input type="text" name="mb_zip" value="<?php echo $member['mb_zip1'].$member['mb_zip2']; ?>" id="reg_mb_zip" <?php echo $config['cf_req_addr']?"required":""; ?> class="frm_input twopart_input <?php echo $config['cf_req_addr']?"required":""; ?>" size="5" maxlength="6" placeholder="우편번호">
|
||||
<button type="button" class="btn_frmline" onclick="win_zip('fregisterform', 'mb_zip', 'mb_addr1', 'mb_addr2', 'mb_addr3', 'mb_addr_jibeon');">주소 검색</button><br>
|
||||
<input type="text" name="mb_addr1" value="<?php echo get_text($member['mb_addr1']) ?>" id="reg_mb_addr1" <?php echo $config['cf_req_addr']?"required":""; ?> class="frm_input frm_address full_input <?php echo $config['cf_req_addr']?"required":""; ?>" size="50" placeholder="기본주소">
|
||||
<label for="reg_mb_addr1" class="sound_only">기본주소<?php echo $config['cf_req_addr']?' (필수)':''; ?></label><br>
|
||||
<input type="text" name="mb_addr2" value="<?php echo get_text($member['mb_addr2']) ?>" id="reg_mb_addr2" class="frm_input frm_address full_input" size="50" placeholder="상세주소">
|
||||
<label for="reg_mb_addr2" class="sound_only">상세주소</label>
|
||||
<br>
|
||||
<input type="text" name="mb_addr3" value="<?php echo get_text($member['mb_addr3']) ?>" id="reg_mb_addr3" class="frm_input frm_address full_input" size="50" readonly="readonly" placeholder="참고항목">
|
||||
<label for="reg_mb_addr3" class="sound_only">참고항목</label>
|
||||
<input type="hidden" name="mb_addr_jibeon" value="<?php echo get_text($member['mb_addr_jibeon']); ?>">
|
||||
</li>
|
||||
<?php } ?>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div class="tbl_frm01 tbl_wrap register_form_inner">
|
||||
<h2>기타 개인설정</h2>
|
||||
<ul>
|
||||
<?php if ($config['cf_use_signature']) { ?>
|
||||
<li>
|
||||
<label for="reg_mb_signature">서명<?php if ($config['cf_req_signature']){ ?> (필수)<?php } ?></label>
|
||||
<textarea name="mb_signature" id="reg_mb_signature" <?php echo $config['cf_req_signature']?"required":""; ?> class="<?php echo $config['cf_req_signature']?"required":""; ?>" placeholder="서명"><?php echo $member['mb_signature'] ?></textarea>
|
||||
</li>
|
||||
<?php } ?>
|
||||
|
||||
<?php if ($config['cf_use_profile']) { ?>
|
||||
<li>
|
||||
<label for="reg_mb_profile">자기소개</label>
|
||||
<textarea name="mb_profile" id="reg_mb_profile" <?php echo $config['cf_req_profile']?"required":""; ?> class="<?php echo $config['cf_req_profile']?"required":""; ?>" placeholder="자기소개"><?php echo $member['mb_profile'] ?></textarea>
|
||||
</li>
|
||||
<?php } ?>
|
||||
|
||||
<?php if ($config['cf_use_member_icon'] && $member['mb_level'] >= $config['cf_icon_level']) { ?>
|
||||
<li>
|
||||
<label for="reg_mb_icon" class="frm_label">
|
||||
회원아이콘
|
||||
<button type="button" class="tooltip_icon"><i class="fa fa-question-circle-o" aria-hidden="true"></i><span class="sound_only">설명보기</span></button>
|
||||
<span class="tooltip">이미지 크기는 가로 <?php echo $config['cf_member_icon_width'] ?>픽셀, 세로 <?php echo $config['cf_member_icon_height'] ?>픽셀 이하로 해주세요.<br>
|
||||
gif, jpg, png파일만 가능하며 용량 <?php echo number_format($config['cf_member_icon_size']) ?>바이트 이하만 등록됩니다.</span>
|
||||
</label>
|
||||
<input type="file" name="mb_icon" id="reg_mb_icon">
|
||||
|
||||
<?php if ($w == 'u' && file_exists($mb_icon_path)) { ?>
|
||||
<img src="<?php echo $mb_icon_url ?>" alt="회원아이콘">
|
||||
<input type="checkbox" name="del_mb_icon" value="1" id="del_mb_icon">
|
||||
<label for="del_mb_icon" class="inline">삭제</label>
|
||||
<?php } ?>
|
||||
|
||||
</li>
|
||||
<?php } ?>
|
||||
|
||||
<?php if ($member['mb_level'] >= $config['cf_icon_level'] && $config['cf_member_img_size'] && $config['cf_member_img_width'] && $config['cf_member_img_height']) { ?>
|
||||
<li class="reg_mb_img_file">
|
||||
<label for="reg_mb_img" class="frm_label">
|
||||
회원이미지
|
||||
<button type="button" class="tooltip_icon"><i class="fa fa-question-circle-o" aria-hidden="true"></i><span class="sound_only">설명보기</span></button>
|
||||
<span class="tooltip">이미지 크기는 가로 <?php echo $config['cf_member_img_width'] ?>픽셀, 세로 <?php echo $config['cf_member_img_height'] ?>픽셀 이하로 해주세요.<br>
|
||||
gif, jpg, png파일만 가능하며 용량 <?php echo number_format($config['cf_member_img_size']) ?>바이트 이하만 등록됩니다.</span>
|
||||
</label>
|
||||
<input type="file" name="mb_img" id="reg_mb_img">
|
||||
|
||||
<?php if ($w == 'u' && file_exists($mb_img_path)) { ?>
|
||||
<img src="<?php echo $mb_img_url ?>" alt="회원이미지">
|
||||
<input type="checkbox" name="del_mb_img" value="1" id="del_mb_img">
|
||||
<label for="del_mb_img" class="inline">삭제</label>
|
||||
<?php } ?>
|
||||
|
||||
</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">
|
||||
<label for="reg_mb_open">
|
||||
<span></span>
|
||||
<b class="sound_only">정보공개</b>
|
||||
</label>
|
||||
<span class="chk_li">다른분들이 나의 정보를 볼 수 있도록 합니다.</span>
|
||||
<button type="button" class="tooltip_icon"><i class="fa fa-question-circle-o" aria-hidden="true"></i><span class="sound_only">설명보기</span></button>
|
||||
<span class="tooltip">
|
||||
정보공개를 바꾸시면 앞으로 <?php echo (int)$config['cf_open_modify'] ?>일 이내에는 변경이 안됩니다.
|
||||
</span>
|
||||
<input type="hidden" name="mb_open_default" value="<?php echo $member['mb_open'] ?>">
|
||||
</li>
|
||||
<?php } else { ?>
|
||||
<li>
|
||||
정보공개
|
||||
<input type="hidden" name="mb_open" value="<?php echo $member['mb_open'] ?>">
|
||||
<button type="button" class="tooltip_icon"><i class="fa fa-question-circle-o" aria-hidden="true"></i><span class="sound_only">설명보기</span></button>
|
||||
<span class="tooltip">
|
||||
정보공개는 수정후 <?php echo (int)$config['cf_open_modify'] ?>일 이내, <?php echo date("Y년 m월 j일", isset($member['mb_open_date']) ? strtotime("{$member['mb_open_date']} 00:00:00")+$config['cf_open_modify']*86400:G5_SERVER_TIME+$config['cf_open_modify']*86400); ?> 까지는 변경이 안됩니다.<br>
|
||||
이렇게 하는 이유는 잦은 정보공개 수정으로 인하여 쪽지를 보낸 후 받지 않는 경우를 막기 위해서 입니다.
|
||||
</span>
|
||||
|
||||
</li>
|
||||
<?php } ?>
|
||||
|
||||
<?php
|
||||
//회원정보 수정인 경우 소셜 계정 출력
|
||||
if( $w == 'u' && function_exists('social_member_provider_manage') ){
|
||||
social_member_provider_manage();
|
||||
}
|
||||
?>
|
||||
|
||||
<?php if ($w == "" && $config['cf_use_recommend']) { ?>
|
||||
<li>
|
||||
<label for="reg_mb_recommend" class="sound_only">추천인아이디</label>
|
||||
<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>
|
||||
</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>
|
||||
</div>
|
||||
<script>
|
||||
$(function() {
|
||||
$("#reg_zip_find").css("display", "inline-block");
|
||||
var pageTypeParam = "pageType=register";
|
||||
|
||||
<?php if($config['cf_cert_use'] && $config['cf_cert_simple']) { ?>
|
||||
// 이니시스 간편인증
|
||||
var url = "<?php echo G5_INICERT_URL; ?>/ini_request.php";
|
||||
var type = "";
|
||||
var params = "";
|
||||
var request_url = "";
|
||||
|
||||
$(".win_sa_cert").click(function() {
|
||||
if(!cert_confirm()) return false;
|
||||
type = $(this).data("type");
|
||||
params = "?directAgency=" + type + "&" + pageTypeParam;
|
||||
request_url = url + params;
|
||||
call_sa(request_url);
|
||||
});
|
||||
<?php } ?>
|
||||
<?php if($config['cf_cert_use'] && $config['cf_cert_ipin']) { ?>
|
||||
// 아이핀인증
|
||||
var params = "";
|
||||
$("#win_ipin_cert").click(function() {
|
||||
if(!cert_confirm()) return false;
|
||||
params = "?" + pageTypeParam;
|
||||
var url = "<?php echo G5_OKNAME_URL; ?>/ipin1.php"+params;
|
||||
certify_win_open('kcb-ipin', url);
|
||||
return;
|
||||
});
|
||||
|
||||
<?php } ?>
|
||||
<?php if($config['cf_cert_use'] && $config['cf_cert_hp']) { ?>
|
||||
// 휴대폰인증
|
||||
var params = "";
|
||||
$("#win_hp_cert").click(function() {
|
||||
if(!cert_confirm()) return false;
|
||||
params = "?" + pageTypeParam;
|
||||
<?php
|
||||
switch($config['cf_cert_hp']) {
|
||||
case 'kcb':
|
||||
$cert_url = G5_OKNAME_URL.'/hpcert1.php';
|
||||
$cert_type = 'kcb-hp';
|
||||
break;
|
||||
case 'kcp':
|
||||
$cert_url = G5_KCPCERT_URL.'/kcpcert_form.php';
|
||||
$cert_type = 'kcp-hp';
|
||||
break;
|
||||
case 'lg':
|
||||
$cert_url = G5_LGXPAY_URL.'/AuthOnlyReq.php';
|
||||
$cert_type = 'lg-hp';
|
||||
break;
|
||||
default:
|
||||
echo 'alert("기본환경설정에서 휴대폰 본인확인 설정을 해주십시오");';
|
||||
echo 'return false;';
|
||||
break;
|
||||
}
|
||||
?>
|
||||
|
||||
certify_win_open("<?php echo $cert_type; ?>", "<?php echo $cert_url; ?>"+params);
|
||||
return;
|
||||
});
|
||||
<?php } ?>
|
||||
});
|
||||
|
||||
// submit 최종 폼체크
|
||||
function fregisterform_submit(f)
|
||||
{
|
||||
// 회원아이디 검사
|
||||
if (f.w.value == "") {
|
||||
var msg = reg_mb_id_check();
|
||||
if (msg) {
|
||||
alert(msg);
|
||||
f.mb_id.select();
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
if (f.w.value == "") {
|
||||
if (f.mb_password.value.length < 3) {
|
||||
alert("비밀번호를 3글자 이상 입력하십시오.");
|
||||
f.mb_password.focus();
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
if (f.mb_password.value != f.mb_password_re.value) {
|
||||
alert("비밀번호가 같지 않습니다.");
|
||||
f.mb_password_re.focus();
|
||||
return false;
|
||||
}
|
||||
|
||||
if (f.mb_password.value.length > 0) {
|
||||
if (f.mb_password_re.value.length < 3) {
|
||||
alert("비밀번호를 3글자 이상 입력하십시오.");
|
||||
f.mb_password_re.focus();
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
// 이름 검사
|
||||
if (f.w.value=="") {
|
||||
if (f.mb_name.value.length < 1) {
|
||||
alert("이름을 입력하십시오.");
|
||||
f.mb_name.focus();
|
||||
return false;
|
||||
}
|
||||
|
||||
/*
|
||||
var pattern = /([^가-힣\x20])/i;
|
||||
if (pattern.test(f.mb_name.value)) {
|
||||
alert("이름은 한글로 입력하십시오.");
|
||||
f.mb_name.select();
|
||||
return false;
|
||||
}
|
||||
*/
|
||||
}
|
||||
|
||||
<?php if($w == '' && $config['cf_cert_use'] && $config['cf_cert_req']) { ?>
|
||||
// 본인확인 체크
|
||||
if(f.cert_no.value=="") {
|
||||
alert("회원가입을 위해서는 본인확인을 해주셔야 합니다.");
|
||||
return false;
|
||||
}
|
||||
<?php } ?>
|
||||
|
||||
// 닉네임 검사
|
||||
if ((f.w.value == "") || (f.w.value == "u" && f.mb_nick.defaultValue != f.mb_nick.value)) {
|
||||
var msg = reg_mb_nick_check();
|
||||
if (msg) {
|
||||
alert(msg);
|
||||
f.reg_mb_nick.select();
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
// E-mail 검사
|
||||
if ((f.w.value == "") || (f.w.value == "u" && f.mb_email.defaultValue != f.mb_email.value)) {
|
||||
var msg = reg_mb_email_check();
|
||||
if (msg) {
|
||||
alert(msg);
|
||||
f.reg_mb_email.select();
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
<?php if (($config['cf_use_hp'] || $config['cf_cert_hp']) && $config['cf_req_hp']) { ?>
|
||||
// 휴대폰번호 체크
|
||||
var msg = reg_mb_hp_check();
|
||||
if (msg) {
|
||||
alert(msg);
|
||||
f.reg_mb_hp.select();
|
||||
return false;
|
||||
}
|
||||
<?php } ?>
|
||||
|
||||
if (typeof f.mb_icon != "undefined") {
|
||||
if (f.mb_icon.value) {
|
||||
if (!f.mb_icon.value.toLowerCase().match(/.(gif|jpe?g|png)$/i)) {
|
||||
alert("회원아이콘이 이미지 파일이 아닙니다.");
|
||||
f.mb_icon.focus();
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (typeof f.mb_img != "undefined") {
|
||||
if (f.mb_img.value) {
|
||||
if (!f.mb_img.value.toLowerCase().match(/.(gif|jpe?g|png)$/i)) {
|
||||
alert("회원이미지가 이미지 파일이 아닙니다.");
|
||||
f.mb_img.focus();
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (typeof(f.mb_recommend) != "undefined" && f.mb_recommend.value) {
|
||||
if (f.mb_id.value == f.mb_recommend.value) {
|
||||
alert("본인을 추천할 수 없습니다.");
|
||||
f.mb_recommend.focus();
|
||||
return false;
|
||||
}
|
||||
|
||||
var msg = reg_mb_recommend_check();
|
||||
if (msg) {
|
||||
alert(msg);
|
||||
f.mb_recommend.select();
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
<?php echo chk_captcha_js(); ?>
|
||||
|
||||
document.getElementById("btn_submit").disabled = "disabled";
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
jQuery(function($){
|
||||
//tooltip
|
||||
$(document).on("click", ".tooltip_icon", function(e){
|
||||
$(this).next(".tooltip").fadeIn(400).css("display","inline-block");
|
||||
}).on("mouseout", ".tooltip_icon", function(e){
|
||||
$(this).next(".tooltip").fadeOut();
|
||||
});
|
||||
});
|
||||
|
||||
</script>
|
||||
|
||||
<!-- } 회원정보 입력/수정 끝 -->
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,480 @@
|
||||
<?php
|
||||
if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가
|
||||
|
||||
// add_stylesheet('css 구문', 출력순서); 숫자가 작을 수록 먼저 출력됨
|
||||
add_stylesheet('<link rel="stylesheet" href="'.$member_skin_url.'/style.css">', 0);
|
||||
add_javascript('<script src="'.G5_JS_URL.'/jquery.register_form.js"></script>', 0);
|
||||
if ($config['cf_cert_use'] && ($config['cf_cert_simple'] || $config['cf_cert_ipin'] || $config['cf_cert_hp']))
|
||||
add_javascript('<script src="'.G5_JS_URL.'/certify.js?v='.G5_JS_VER.'"></script>', 0);
|
||||
?>
|
||||
|
||||
<!-- 회원정보 입력/수정 시작 { -->
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<title>TOVA Join</title>
|
||||
<link rel="stylesheet" href="../css/reset.css" />
|
||||
<link rel="stylesheet" href="../css/font.css" />
|
||||
<link rel="stylesheet" href="../css/style.css" />
|
||||
<script src="../js/jquery-3.6.1.min.js"></script>
|
||||
<script src="../js/common.js"></script>
|
||||
</head>
|
||||
|
||||
|
||||
<body>
|
||||
<div class="wrapper">
|
||||
<!-- Header -->
|
||||
<header class="header">
|
||||
<h1>
|
||||
<img src="../img/logo_w.svg" alt="">
|
||||
</h1>
|
||||
<div class="menu_wrap">
|
||||
<div class="menu_my"><img src="../img/ico_my.svg" alt=""></div>
|
||||
<div class="menu_ham"><img src="../img/ico_ham.svg" alt=""></div>
|
||||
</div>
|
||||
</header>
|
||||
<!-- //Header -->
|
||||
|
||||
<!--popup_wrap-->
|
||||
<div class="popup_wrap">
|
||||
<!--popup_in-->
|
||||
<div class="popup_in">
|
||||
<hgroup>
|
||||
<div class="pop_close_wrap">
|
||||
<button class="btn_close">
|
||||
<div class="close_div"><img src="../img/ico_close.svg" alt=""></div>
|
||||
</button>
|
||||
</div>
|
||||
</hgroup>
|
||||
<!--popup_content-->
|
||||
<div class="popup_content join completion">
|
||||
<!--pop_join_left-->
|
||||
<div class="pop_join_left">
|
||||
<span class="bg_tit_left">Sign u</span>
|
||||
<div class="join_info">
|
||||
<h1 class="h_1">회원가입</h1>
|
||||
<h3 class="h_3">
|
||||
TOVA 회원이 되시면<br>
|
||||
<strong>다운로드 및 1:1문의 서비스</strong>를<br>
|
||||
이용하실 수 있습니다.
|
||||
</h3>
|
||||
</div>
|
||||
<ul class="join_progress">
|
||||
<li class="join_step"><h4 class="h_4">01</h4><h4 class="h_4">약관동의</h4></li>
|
||||
<li class="join_step on"><h4 class="h_4">02</h4><h4 class="h_4"><strong>정보입력</strong></h4></li>
|
||||
<li class="join_step"><h4 class="h_4">03</h4><h4 class="h_4">가입완료</h4></li>
|
||||
</ul>
|
||||
</div>
|
||||
<!--//pop_join_right-->
|
||||
|
||||
<div class="pop_input_wrap pop_join_right">
|
||||
<span class="bg_tit_right">p</span>
|
||||
<form id="fregisterform" name="fregisterform" action="<?php echo $register_action_url?>" onsubmit="return fregisterform_submit(this);" method="post" enctype="multipart/form-data" autocomplete="off">
|
||||
<input type="hidden" name="w" value="<?php echo $w ?>">
|
||||
<input type="hidden" name="url" value="<?php echo $urlencode ?>">
|
||||
<input type="hidden" name="agree" value="<?php echo $agree ?>">
|
||||
<input type="hidden" name="agree2" value="<?php echo $agree2 ?>">
|
||||
<input type="hidden" name="cert_type" value="<?php echo $member['mb_certify']; ?>">
|
||||
<input type="hidden" name="cert_no" value="">
|
||||
<!-- <?php //if (isset($member['mb_sex'])) { ?><input type="hidden" name="mb_sex" value="<?php //echo $member['mb_sex'] ?>"><?php //} ?> -->
|
||||
<?php //if (isset($member['mb_nick_date']) && $member['mb_nick_date'] > date("Y-m-d", G5_SERVER_TIME - ($config['cf_nick_modify'] * 86400))) { // 닉네임수정일이 지나지 않았다면 ?>
|
||||
<!-- <input type="hidden" name="mb_nick_default" value="<?php //echo get_text($member['mb_nick']) ?>">
|
||||
<input type="hidden" name="mb_nick" value="<?php //echo get_text($member['mb_nick']) ?>"> -->
|
||||
<?php //} ?>
|
||||
<h6 class="important_msg pop_notice h_6">*항목은 필수 항목 입니다.</h6>
|
||||
<fieldset>
|
||||
<!--tbl_wrap-->
|
||||
<div id="register_form" class="tbl_wrap">
|
||||
<table>
|
||||
<tbody>
|
||||
<tr>
|
||||
<th class="h_4">아이디<span class="important_msg">*</span></th>
|
||||
<td>
|
||||
<div class="id_wrap">
|
||||
<input type="text" class="frm_input full_input" id="reg_mb_id" name="mb_id" onchange="PG_pro('change');" placeholder="아이디 입력" <?php if($member['mb_id']!=""){ ?> style="width: 100% ;"<?php }?> autocomplete="off" value="<?php echo $member['mb_id'] ?>" <?php echo $required ?> <?php echo $readonly ?> maxlength="12"/>
|
||||
<?php if($member['mb_id']==""){ ?>
|
||||
<button type="button" class="chk_id" onclick="PG_pro('dupl_check');">중복확인</button>
|
||||
<!-- hidden --><input type="hidden" id="dupl_check_yn" name="dupl_check_yn" value="" placeholder="아이디중복확인여부YN" style="width:250px; background-color:#dfe4ea "/>
|
||||
<!-- hidden --><input type="hidden" id="GB_mb_id" name="GB_mb_id" value="<?php echo $member['mb_id'] ?>">
|
||||
<?php }else{ ?>
|
||||
<!-- hidden --><input type="hidden" id="reg_mb_id" name="mb_id" value="<?php echo $member['mb_id'] ?>">
|
||||
<!-- hidden --><input type="hidden" id="dupl_check_yn" name="dupl_check_yn" value="Y" onclick="" style="width:250px; background-color:#dfe4ea "/>
|
||||
<?php } ?>
|
||||
</div>
|
||||
<span class="important_msg h_6">영문+숫자 4~12자(영문으로 시작)</span>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<th class="h_4">비밀번호<span class="important_msg">*</span></th>
|
||||
<td>
|
||||
<div class="password_wrap">
|
||||
<input type="password" name="mb_password" id="reg_mb_password" <?php echo $required ?> class="frm_input full_input <?php echo $required ?>" minlength="3" maxlength="20" placeholder="비밀번호 입력">
|
||||
<input type="password" name="mb_password_re" id="reg_mb_password_re" <?php echo $required ?> class="frm_input full_input <?php echo $required ?>" minlength="3" maxlength="20" placeholder="비밀번호 확인">
|
||||
</div>
|
||||
<span class="important_msg h_6">영문+숫자+특수기호 8자 이상</span>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<th class="h_4">이름<span class="important_msg">*</span></th>
|
||||
<td>
|
||||
<div class="name_wrap">
|
||||
<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="이름 입력">
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<th class="h_4">이메일<span class="important_msg">*</span></th>
|
||||
<?php
|
||||
|
||||
if($member['mb_email']){
|
||||
$mb_email_confirm = isset($member['mb_email'])?$member['mb_email']:'';
|
||||
if($mb_email_confirm!=""){
|
||||
$mb_email_temp = explode('@',$mb_email_confirm);
|
||||
$mb_email_domain = array_pop(explode('@',$mb_email_confirm));
|
||||
}
|
||||
|
||||
$array_domain = array('naver.com','gmail.com','google.com' ,'hanmail.net','nate.com' ,'kakao.com');
|
||||
$exist_domain = false;
|
||||
if (stripos(json_encode($array_domain),$mb_email_domain) !== false) {
|
||||
$exist_domain = true;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
?>
|
||||
|
||||
|
||||
<td>
|
||||
<div class="email_wrap">
|
||||
<!-- <input type="hidden" name="old_email" value="<?php //echo $member['mb_email'] ?>">
|
||||
<input type="text" name="mb_email" value="<?php //echo isset($member['mb_email'])?$member['mb_email']:''; ?>" id="reg_mb_email" required class="frm_input email full_input required" size="70" maxlength="100" placeholder="이메일 입력"> -->
|
||||
<input type="text" id="reg_mb_email1" name="mb_email1" value="<?php echo $mb_email_temp[0]; ?>" required class="frm_input email full_input required" size="50" maxlength="100" placeholder="메일입력" autocomplete="off">
|
||||
<div>
|
||||
<span>@</span>
|
||||
</div>
|
||||
<select name="mb_email2" id="mb_email2" onchange="PG_changeSelect();">
|
||||
<option value="@naver.com" <?php echo "@".$mb_email_domain=="@naver.com"?"selected":""; ?> >naver.com</option>
|
||||
<option value="@gmail.com" <?php echo "@".$mb_email_domain=="@gmail.com"?"selected":""; ?> >gmail.com</option>
|
||||
<option value="@google.com" <?php echo "@".$mb_email_domain=="@google.com"?"selected":""; ?> >google.com</option>
|
||||
<option value="@hanmail.net" <?php echo "@".$mb_email_domain=="@hanmail.net"?"selected":""; ?> >hanmail.net</option>
|
||||
<option value="@nate.com" <?php echo "@".$mb_email_domain=="@nate.com"?"selected":""; ?> >nate.com</option>
|
||||
<option value="@kakao.com" <?php echo "@".$mb_email_domain=="@kakao.com"?"selected":""; ?> >kakao.com</option>
|
||||
<option value="" <?php echo $exist_domain===false?"selected":""; ?> >직접입력</option>
|
||||
</select>
|
||||
<input type="hidden" name="mb_email" value="<?php echo isset($member['mb_email'])?$member['mb_email']:''; ?>" id="reg_mb_email" size="50" maxlength="100">
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th class="h_4">휴대전화번호<span class="important_msg">*</span></th>
|
||||
<td>
|
||||
<div class="phone_wrap">
|
||||
<input type="text" name="mb_hp" value="<?php echo get_text($member['mb_hp']) ?>" id="reg_mb_hp" <?php echo $hp_required; ?> <?php echo $hp_readonly; ?> class="frm_input full_input <?php echo $hp_required; ?> <?php echo $hp_readonly; ?>" maxlength="20" placeholder="휴대폰 번호">
|
||||
<!-- <button type="button" onclick="" name="" class="cert_number">인증번호</button> -->
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<!-- <tr class="code" style="display: none;">
|
||||
<th class="h_4">인증번호</th>
|
||||
<td>
|
||||
<div class="phone_wrap">
|
||||
<input type="text" placeholder="인증번호 입력" required>
|
||||
<span class="timer">03:00</span>
|
||||
<button type="button" onclick="" name="" class="check">확인</button>
|
||||
<button type="button " onclick="" name="" class="check complete" style="display: none;">인증완료</button>
|
||||
</div>
|
||||
</td>
|
||||
</tr> -->
|
||||
|
||||
<tr>
|
||||
<th class="h_4">회사정보<span class="select_msg">(선택)</span></th>
|
||||
<td>
|
||||
<div class="company_wrap">
|
||||
<input type="text" name="mb_comp" value="<?php echo get_text($member['mb_comp'])?>" id="reg_mb_comp" size="70" maxlength="100" placeholder="회사명 입력">
|
||||
<input type="text" name="mb_comp_team" value="<?php echo get_text($member['mb_comp_team'])?>" id="reg_mb_comp_team" size="70" maxlength="100" placeholder="부서명 입력">
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<!--//tbl_wrap-->
|
||||
<div class="btn_confirm">
|
||||
<button type="submit" id="btn_submit" class="btn_submit"><?php echo $w==''?'회원가입':'정보수정'; ?></button>
|
||||
</div>
|
||||
</fieldset>
|
||||
</form>
|
||||
</div>
|
||||
<!--//pop_join_right-->
|
||||
</div>
|
||||
<!--//popup_content-->
|
||||
</div>
|
||||
<!--//popup_in-->
|
||||
</div>
|
||||
<!--//popup_wrap-->
|
||||
</div>
|
||||
</body>
|
||||
|
||||
<script>
|
||||
|
||||
$(function() {
|
||||
$("#reg_zip_find").css("display", "inline-block");
|
||||
var pageTypeParam = "pageType=register";
|
||||
|
||||
<?php if($config['cf_cert_use'] && $config['cf_cert_simple']) { ?>
|
||||
// 이니시스 간편인증
|
||||
var url = "<?php echo G5_INICERT_URL; ?>/ini_request.php";
|
||||
var type = "";
|
||||
var params = "";
|
||||
var request_url = "";
|
||||
|
||||
$(".win_sa_cert").click(function() {
|
||||
if(!cert_confirm()) return false;
|
||||
type = $(this).data("type");
|
||||
params = "?directAgency=" + type + "&" + pageTypeParam;
|
||||
request_url = url + params;
|
||||
call_sa(request_url);
|
||||
});
|
||||
<?php } ?>
|
||||
<?php if($config['cf_cert_use'] && $config['cf_cert_ipin']) { ?>
|
||||
// 아이핀인증
|
||||
var params = "";
|
||||
$("#win_ipin_cert").click(function() {
|
||||
if(!cert_confirm()) return false;
|
||||
params = "?" + pageTypeParam;
|
||||
var url = "<?php echo G5_OKNAME_URL; ?>/ipin1.php"+params;
|
||||
certify_win_open('kcb-ipin', url);
|
||||
return;
|
||||
});
|
||||
|
||||
<?php }?>
|
||||
<?php if($config['cf_cert_use'] && $config['cf_cert_hp']) { ?>
|
||||
// 휴대폰인증
|
||||
var params = "";
|
||||
$("#win_hp_cert").click(function() {
|
||||
if(!cert_confirm()) return false;
|
||||
params = "?" + pageTypeParam;
|
||||
<?php
|
||||
switch($config['cf_cert_hp']) {
|
||||
case 'kcb':
|
||||
$cert_url = G5_OKNAME_URL.'/hpcert1.php';
|
||||
$cert_type = 'kcb-hp';
|
||||
break;
|
||||
case 'kcp':
|
||||
$cert_url = G5_KCPCERT_URL.'/kcpcert_form.php';
|
||||
$cert_type = 'kcp-hp';
|
||||
break;
|
||||
case 'lg':
|
||||
$cert_url = G5_LGXPAY_URL.'/AuthOnlyReq.php';
|
||||
$cert_type = 'lg-hp';
|
||||
break;
|
||||
default:
|
||||
echo 'alert("기본환경설정에서 휴대폰 본인확인 설정을 해주십시오");';
|
||||
echo 'return false;';
|
||||
break;
|
||||
}
|
||||
?>
|
||||
|
||||
certify_win_open("<?php echo $cert_type; ?>", "<?php echo $cert_url; ?>"+params);
|
||||
return;
|
||||
});
|
||||
<?php } ?>
|
||||
});
|
||||
|
||||
function PG_changeSelect(){
|
||||
var aaa = $("#mb_email2").val();
|
||||
|
||||
if(aaa==""){
|
||||
//직접입력 선택시
|
||||
$("#reg_mb_email1").attr('placeholder','aaa@bbb.com 메일주소');
|
||||
// $("#reg_mb_email1").css('border','1px solid red');
|
||||
$("#reg_mb_email1").focus();
|
||||
|
||||
}else{
|
||||
$("#reg_mb_email1").attr('placeholder','메일입력');
|
||||
$("#reg_mb_email1").focus();
|
||||
}
|
||||
}//PG_changeSelect
|
||||
|
||||
function PG_pro(str){
|
||||
if(str=="change"){
|
||||
//아이디 입력창 변경발생시 중복확인 다시해야함 : flag값 N로 변경
|
||||
$("#dupl_check_yn").val('N');
|
||||
}else if(str=="dupl_check"){
|
||||
//아이디 중복체크
|
||||
//ajax호출할 페이지, ajax값으로 바뀔 html, 해당 saction ID값
|
||||
var reg_mb_id = $("#reg_mb_id").val();
|
||||
|
||||
if(reg_mb_id==""){ alert("아이디를 입력해주세요"); $("#reg_mb_id").focus(); return false;}
|
||||
|
||||
//var re = /^[a-z][a-zA-z0-9]{4,12}$/; //아이디 유효성 검사
|
||||
var re = /^[a-zA-Z][a-zA-Z0-9]{4,12}$/; //아이디 유효성 검사
|
||||
|
||||
if (!re.test(reg_mb_id)) {
|
||||
alert("아이디는 영문으로 시작하는 \n4~12자의 영문 대소문자+숫자 조합으로만 가능합니다");
|
||||
|
||||
$("#reg_mb_id").focus();
|
||||
return false;
|
||||
}
|
||||
|
||||
jQuery.ajax({
|
||||
type:"GET",
|
||||
url: "/tova/skin/member/basic/CL_Ajax_Data.php",
|
||||
//dataType:"HTML", // 옵션이므로 JSON으로 받을게 아니면 안써도 됨
|
||||
data:{
|
||||
'ActionKind':'dupl_check',
|
||||
'reg_mb_id':reg_mb_id,
|
||||
},
|
||||
success : function(data){
|
||||
// 통신이 성공적으로 이루어졌을 때 이 함수를 타게 된다.
|
||||
console.log(data);
|
||||
// alert(data);
|
||||
|
||||
if(data=="1"){
|
||||
//아이디중복체크 fail
|
||||
alert("이미 사용중인 아이디입니다.\n 다시 입력해주세요");
|
||||
$("#reg_mb_id").val('');
|
||||
$("#dupl_check_yn").val('N');
|
||||
$("#reg_mb_id").focus();
|
||||
}else{
|
||||
//아이디중복체크 pass
|
||||
if(!confirm("사용가능한 아이디입니다. \n사용하시겠습니까?")){
|
||||
$("#reg_mb_id").val('');
|
||||
$("#dupl_check_yn").val('N');
|
||||
return false;
|
||||
}
|
||||
$("#dupl_check_yn").val('Y');
|
||||
$("#reg_mb_password").focus();
|
||||
}
|
||||
|
||||
},
|
||||
error : function(xhr, status, error) {
|
||||
console.log(xhr);
|
||||
console.log(status);
|
||||
console.log(error);
|
||||
alert("에러발생");
|
||||
}
|
||||
});
|
||||
|
||||
}else{}
|
||||
|
||||
}//PG_pro
|
||||
|
||||
// submit 최종 폼체크
|
||||
function fregisterform_submit(f)
|
||||
{
|
||||
// 회원아이디 검사
|
||||
if (f.w.value == "") {
|
||||
var msg = reg_mb_id_check();
|
||||
if (msg) {
|
||||
alert(msg);
|
||||
f.mb_id.select();
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
if (f.w.value == "") {
|
||||
if (f.mb_password.value.length < 3) {
|
||||
alert("비밀번호를 3글자 이상 입력하십시오.");
|
||||
f.mb_password.focus();
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
if (f.mb_password.value != f.mb_password_re.value) {
|
||||
alert("비밀번호가 같지 않습니다.");
|
||||
f.mb_password_re.focus();
|
||||
return false;
|
||||
}
|
||||
|
||||
if (f.mb_password.value.length > 0) {
|
||||
if (f.mb_password_re.value.length < 3) {
|
||||
alert("비밀번호를 3글자 이상 입력하십시오.");
|
||||
f.mb_password_re.focus();
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
// 이름 검사
|
||||
if (f.w.value=="") {
|
||||
if (f.mb_name.value.length < 1) {
|
||||
alert("이름을 입력하십시오.");
|
||||
f.mb_name.focus();
|
||||
return false;
|
||||
}
|
||||
|
||||
/*
|
||||
var pattern = /([^가-힣\x20])/i;
|
||||
if (pattern.test(f.mb_name.value)) {
|
||||
alert("이름은 한글로 입력하십시오.");
|
||||
f.mb_name.select();
|
||||
return false;
|
||||
}
|
||||
*/
|
||||
}
|
||||
|
||||
<?php if($w == '' && $config['cf_cert_use'] && $config['cf_cert_req']) { ?>
|
||||
// 본인확인 체크
|
||||
if(f.cert_no.value=="") {
|
||||
alert("회원가입을 위해서는 본인확인을 해주셔야 합니다.");
|
||||
return false;
|
||||
}
|
||||
<?php } ?>
|
||||
|
||||
// 닉네임 검사
|
||||
// if ((f.w.value == "") || (f.w.value == "u" && f.mb_nick.defaultValue != f.mb_nick.value)) {
|
||||
// var msg = reg_mb_nick_check();
|
||||
// if (msg) {
|
||||
// alert(msg);
|
||||
// f.reg_mb_nick.select();
|
||||
// return false;
|
||||
// }
|
||||
// }
|
||||
|
||||
// E-mail 검사
|
||||
var mail_temp = f.mb_email1.value+''+f.mb_email2.value;
|
||||
f.mb_email.value = mail_temp;
|
||||
|
||||
if ((f.w.value == "") || (f.w.value == "u" && f.mb_email.defaultValue != mail_temp)) {
|
||||
//if ((f.w.value == "") || (f.w.value == "u" && f.mb_email.defaultValue != f.mb_email.value)) {
|
||||
var msg = reg_mb_email_check();
|
||||
if (msg) {
|
||||
alert(msg);
|
||||
f.reg_mb_email.select();
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
<?php if (($config['cf_use_hp'] || $config['cf_cert_hp']) && $config['cf_req_hp']) { ?>
|
||||
// 휴대폰번호 체크
|
||||
var msg = reg_mb_hp_check();
|
||||
if (msg) {
|
||||
alert(msg);
|
||||
f.reg_mb_hp.select();
|
||||
return false;
|
||||
}
|
||||
<?php } ?>
|
||||
|
||||
<?php //echo chk_captcha_js(); ?>
|
||||
|
||||
document.getElementById("btn_submit").disabled = "disabled";
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
jQuery(function($){
|
||||
//tooltip
|
||||
$(document).on("click", ".tooltip_icon", function(e){
|
||||
$(this).next(".tooltip").fadeIn(400).css("display","inline-block");
|
||||
}).on("mouseout", ".tooltip_icon", function(e){
|
||||
$(this).next(".tooltip").fadeOut();
|
||||
});
|
||||
});
|
||||
|
||||
</script>
|
||||
|
||||
<!-- } 회원정보 입력/수정 끝 -->
|
||||
@@ -0,0 +1,505 @@
|
||||
<?php
|
||||
if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가
|
||||
|
||||
// add_stylesheet('css 구문', 출력순서); 숫자가 작을 수록 먼저 출력됨
|
||||
// add_stylesheet('<link rel="stylesheet" href="'.$member_skin_url.'/style.css">', 0);
|
||||
//add_javascript('<script src="'.G5_JS_URL.'/jquery.register_form.js"></script>', 0);
|
||||
// if ($config['cf_cert_use'] && ($config['cf_cert_simple'] || $config['cf_cert_ipin'] || $config['cf_cert_hp']))
|
||||
// add_javascript('<script src="'.G5_JS_URL.'/certify.js?v='.G5_JS_VER.'"></script>', 0);
|
||||
//add_stylesheet('<link rel="stylesheet" href="'.$member_skin_url.'/style.css">', 0);
|
||||
?>
|
||||
|
||||
<!-- 회원정보 입력/수정 시작 { -->
|
||||
<!-- <head>
|
||||
<meta charset="utf-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<title>TOVA Join</title>
|
||||
<link rel="stylesheet" href="../css/reset.css" />
|
||||
<link rel="stylesheet" href="../css/font.css" />
|
||||
<link rel="stylesheet" href="../css/style.css" />
|
||||
<script src="../js/jquery-3.6.1.min.js"></script>
|
||||
<script src="../js/common.js"></script>
|
||||
</head> -->
|
||||
<link rel="stylesheet" href="<?php echo G5_URL ?>/css/style.css" />
|
||||
|
||||
<!-- <body>
|
||||
<div class="wrapper"> -->
|
||||
<!-- Header -->
|
||||
<!-- <header class="header">
|
||||
<h1>
|
||||
<img src="../img/logo_w.svg" alt="">
|
||||
</h1>
|
||||
<div class="menu_wrap">
|
||||
<div class="menu_my"><img src="../img/ico_my.svg" alt=""></div>
|
||||
<div class="menu_ham"><img src="../img/ico_ham.svg" alt=""></div>
|
||||
</div>
|
||||
</header> -->
|
||||
<!-- //Header -->
|
||||
|
||||
<!--popup_wrap-->
|
||||
<div id="pop_join" class="popup_wrap">
|
||||
<!--popup_in-->
|
||||
<div class="popup_in">
|
||||
<button class="btn_close">
|
||||
<div class="close_div"><img src="<?php echo G5_URL ?>/img/ico_close.svg" alt="sdi"></div>
|
||||
</button>
|
||||
<!--popup_content-->
|
||||
<div class="popup_content join completion">
|
||||
<!--pop_join_left-->
|
||||
<div class="pop_join_left">
|
||||
<span class="bg_tit_left">Sign u</span>
|
||||
<div class="join_info">
|
||||
<h1 class="h_1">회원가입</h1>
|
||||
<h3 class="h_3">
|
||||
EG-BIM 회원이 되시면<br>
|
||||
<strong>1:1구매문의및 제품안내 서비스</strong>를<br>
|
||||
이용하실 수 있습니다.
|
||||
</h3>
|
||||
</div>
|
||||
<ul class="join_progress">
|
||||
<li class="join_step"><h4 class="h_4">01</h4><h4 class="h_4">약관동의</h4></li>
|
||||
<li class="join_step on"><h4 class="h_4">02</h4><h4 class="h_4"><strong>정보입력</strong></h4></li>
|
||||
<li class="join_step"><h4 class="h_4">03</h4><h4 class="h_4">가입완료</h4></li>
|
||||
</ul>
|
||||
</div>
|
||||
<!--//pop_join_right-->
|
||||
|
||||
<div id="reg_form_join" class="pop_input_wrap pop_join_right">
|
||||
<span class="bg_tit_right">p</span>
|
||||
<form id="fregisterform" name="fregisterform" action="<?php echo $register_action_url?>" onsubmit="return fregisterform_submit(this);" method="post" enctype="multipart/form-data" autocomplete="off">
|
||||
<input type="hidden" name="w" value="<?php echo $w ?>">
|
||||
<input type="hidden" name="url" value="<?php echo $urlencode ?>">
|
||||
<input type="hidden" name="agree" value="<?php echo $agree ?>">
|
||||
<input type="hidden" name="agree2" value="<?php echo $agree2 ?>">
|
||||
<input type="hidden" name="cert_type" value="<?php echo $member['mb_certify']; ?>">
|
||||
<input type="hidden" name="cert_no" value="">
|
||||
<!-- <?php //if (isset($member['mb_sex'])) { ?><input type="hidden" name="mb_sex" value="<?php //echo $member['mb_sex'] ?>"><?php //} ?> -->
|
||||
<?php //if (isset($member['mb_nick_date']) && $member['mb_nick_date'] > date("Y-m-d", G5_SERVER_TIME - ($config['cf_nick_modify'] * 86400))) { // 닉네임수정일이 지나지 않았다면 ?>
|
||||
<!-- <input type="hidden" name="mb_nick_default" value="<?php //echo get_text($member['mb_nick']) ?>">
|
||||
<input type="hidden" name="mb_nick" value="<?php //echo get_text($member['mb_nick']) ?>"> -->
|
||||
<?php //} ?>
|
||||
<h6 class="important_msg pop_notice h_6">*항목은 필수 항목 입니다.</h6>
|
||||
<fieldset>
|
||||
<!--tbl_wrap-->
|
||||
<div id="register_form" class="tbl_wrap">
|
||||
<table>
|
||||
<tbody>
|
||||
<tr>
|
||||
<th class="h_4">아이디<span class="important_msg">*</span></th>
|
||||
<td>
|
||||
<div class="id_wrap">
|
||||
<input type="text" class="frm_input full_input" id="reg_mb_id" name="mb_id" onchange="PG_pro('change');" placeholder="아이디 입력" <?php if($member['mb_id']!=""){ ?> style="width: 100% ;"<?php }?> autocomplete="off" value="<?php echo $member['mb_id'] ?>" <?php echo $required ?> <?php echo $readonly ?> maxlength="12"/>
|
||||
<?php if($member['mb_id']==""){ ?>
|
||||
<button type="button" class="chk_id" onclick="PG_pro('dupl_check');">중복확인</button>
|
||||
<!-- hidden --><input type="hidden" id="dupl_check_yn" name="dupl_check_yn" value="" placeholder="아이디중복확인여부YN" style="width:250px; background-color:#dfe4ea "/>
|
||||
<!-- hidden --><input type="hidden" id="GB_mb_id" name="GB_mb_id" value="<?php echo $member['mb_id'] ?>">
|
||||
<?php }else{ ?>
|
||||
<!-- hidden --><input type="hidden" id="reg_mb_id" name="mb_id" value="<?php echo $member['mb_id'] ?>">
|
||||
<!-- hidden --><input type="hidden" id="dupl_check_yn" name="dupl_check_yn" value="Y" onclick="" style="width:250px; background-color:#dfe4ea "/>
|
||||
<?php } ?>
|
||||
</div>
|
||||
<span class="important_msg h_6">영문+숫자 4~12자(영문으로 시작)</span>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<th class="h_4">비밀번호<span class="important_msg">*</span></th>
|
||||
<td>
|
||||
<div class="password_wrap">
|
||||
<input type="password" name="mb_password" id="reg_mb_password" <?php echo $required ?> class="frm_input full_input <?php echo $required ?>" minlength="3" maxlength="20" placeholder="비밀번호 입력">
|
||||
<input type="password" name="mb_password_re" id="reg_mb_password_re" <?php echo $required ?> class="frm_input full_input <?php echo $required ?>" minlength="3" maxlength="20" placeholder="비밀번호 확인">
|
||||
</div>
|
||||
<span class="important_msg h_6">영문+숫자+특수기호 8자 이상</span>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<th class="h_4">이름<span class="important_msg">*</span></th>
|
||||
<td>
|
||||
<div class="name_wrap">
|
||||
<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="이름 입력">
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<th class="h_4">이메일<span class="important_msg">*</span></th>
|
||||
<?php
|
||||
if($member['mb_email']){
|
||||
$mb_email_confirm = isset($member['mb_email'])?$member['mb_email']:'';
|
||||
if($mb_email_confirm!=""){
|
||||
$mb_email_temp = explode('@',$mb_email_confirm);
|
||||
$mb_email_domain = array_pop(explode('@',$mb_email_confirm));
|
||||
}
|
||||
$array_domain = array('naver.com','gmail.com','daum.net' ,'hanmail.net','nate.com' ,'hotmail.com' ,'yahoo.com');
|
||||
$exist_domain = false;
|
||||
if (stripos(json_encode($array_domain),$mb_email_domain) !== false) {
|
||||
$exist_domain = true;
|
||||
}
|
||||
}
|
||||
?>
|
||||
<td>
|
||||
<div class="email_wrap">
|
||||
<input type="text" id="reg_mb_email1" name="mb_email1" value="<?php echo $mb_email_temp[0]; ?>" required class="frm_input email full_input required" size="50" maxlength="100" placeholder="메일입력" autocomplete="off">
|
||||
<div>
|
||||
<span>@</span>
|
||||
</div>
|
||||
<input type="text" id="register_domain2" placeholder="직접 입력" style="display:none;" required>
|
||||
<select name="mb_email2" id="reg_mb_email2" onchange="PG_changeSelect(this);">
|
||||
<option value="-" hidden="" disabled="disabled" selected="selected">선택</option>
|
||||
<option value="@naver.com" <?php echo "@".$mb_email_domain=="@naver.com"?"selected":""; ?> >naver.com</option>
|
||||
<option value="@gmail.com" <?php echo "@".$mb_email_domain=="@gmail.com"?"selected":""; ?> >gmail.com</option>
|
||||
<option value="@daum.net" <?php echo "@".$mb_email_domain=="@daum.net"?"selected":""; ?> >daum.net</option>
|
||||
<option value="@hanmail.net" <?php echo "@".$mb_email_domain=="@hanmail.net"?"selected":""; ?> >hanmail.net</option>
|
||||
<option value="@nate.com" <?php echo "@".$mb_email_domain=="@nate.com"?"selected":""; ?> >nate.com</option>
|
||||
<option value="@hotmail.com" <?php echo "@".$mb_email_domain=="@hotmail.com"?"selected":""; ?> >hotmail.com</option>
|
||||
<option value="@yahoo.com" <?php echo "@".$mb_email_domain=="@yahoo.com"?"selected":""; ?> >yahoo.com</option>
|
||||
<!-- <option value="" <?php //echo $exist_domain===false?"selected":""; ?> >직접입력</option> -->
|
||||
<option value="type" type="text">직접입력</option>
|
||||
</select>
|
||||
<input type="hidden" name="mb_email" value="<?php echo isset($member['mb_email'])?$member['mb_email']:''; ?>" id="reg_mb_email" size="50" maxlength="100">
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th class="h_4">휴대전화번호<span class="important_msg">*</span></th>
|
||||
<td>
|
||||
<div class="phone_wrap">
|
||||
<input type="text" name="mb_hp" value="<?php echo get_text($member['mb_hp']) ?>" id="reg_mb_hp" <?php echo $hp_required; ?> <?php echo $hp_readonly; ?> class="frm_input full_input <?php echo $hp_required; ?> <?php echo $hp_readonly; ?>" maxlength="20" placeholder="휴대폰 번호">
|
||||
<!-- <button type="button" onclick="" name="" class="cert_number">인증번호</button> -->
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<!-- <tr class="code" style="display: none;">
|
||||
<th class="h_4">인증번호</th>
|
||||
<td>
|
||||
<div class="phone_wrap">
|
||||
<input type="text" placeholder="인증번호 입력" required>
|
||||
<span class="timer">03:00</span>
|
||||
<button type="button" onclick="" name="" class="check">확인</button>
|
||||
<button type="button " onclick="" name="" class="check complete" style="display: none;">인증완료</button>
|
||||
</div>
|
||||
</td>
|
||||
</tr> -->
|
||||
|
||||
<tr>
|
||||
<th class="h_4">회사정보<span class="important_msg">*</span></th>
|
||||
<td>
|
||||
<div class="company_wrap">
|
||||
<input type="text" name="mb_comp" value="<?php echo get_text($member['mb_comp'])?>" id="reg_mb_comp" size="70" maxlength="100" placeholder="회사명 입력">
|
||||
<input type="text" name="mb_comp_team" value="<?php echo get_text($member['mb_comp_team'])?>" id="reg_mb_comp_team" size="70" maxlength="100" placeholder="부서명 입력">
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<!--//tbl_wrap-->
|
||||
<div class="btn_confirm">
|
||||
<button type="submit" id="btn_submit" class="btn_submit" ><?php echo $w==''?'회원가입':'정보수정'; ?></button>
|
||||
</div>
|
||||
</fieldset>
|
||||
</form>
|
||||
</div>
|
||||
<!--//pop_join_right-->
|
||||
|
||||
<!-- 회원가입결과 시작 { register-->
|
||||
<div id="pop_result" class="popup_wrap" style="display:none;">
|
||||
<p class="reg_result_p">
|
||||
<i class="fa fa-gift" aria-hidden="true"></i><br>
|
||||
<strong><?php echo get_text($mb['mb_name']); ?></strong>님의 회원가입을 진심으로 축하합니다.
|
||||
</p>
|
||||
|
||||
<?php if (is_use_email_certify()) { ?>
|
||||
<p class="result_txt">
|
||||
회원 가입 시 입력하신 이메일 주소로 인증메일이 발송되었습니다.<br>
|
||||
발송된 인증메일을 확인하신 후 인증처리를 하시면 사이트를 원활하게 이용하실 수 있습니다.
|
||||
</p>
|
||||
<div id="result_email">
|
||||
<span>아이디</span>
|
||||
<strong><?php echo $mb['mb_id'] ?></strong><br>
|
||||
<span>이메일 주소</span>
|
||||
<strong><?php echo $mb['mb_email'] ?></strong>
|
||||
</div>
|
||||
<p>
|
||||
이메일 주소를 잘못 입력하셨다면, 사이트 관리자에게 문의해주시기 바랍니다.
|
||||
</p>
|
||||
<?php } ?>
|
||||
|
||||
<p class="result_txt">
|
||||
회원님의 비밀번호는 아무도 알 수 없는 암호화 코드로 저장되므로 안심하셔도 좋습니다.<br>
|
||||
아이디, 비밀번호 분실시에는 회원가입시 입력하신 이메일 주소를 이용하여 찾을 수 있습니다.
|
||||
</p>
|
||||
|
||||
<p class="result_txt">
|
||||
회원 탈퇴는 언제든지 가능하며 일정기간이 지난 후, 회원님의 정보는 삭제하고 있습니다.<br>
|
||||
감사합니다.
|
||||
</p>
|
||||
<!-- } 회원가입결과 끝 -->
|
||||
<div class="btn_confirm_reg">
|
||||
<a href="<?php echo G5_URL ?>/" class="reg_btn_submit">메인으로</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!--//popup_content-->
|
||||
</div>
|
||||
<!--//popup_in-->
|
||||
</div>
|
||||
<!--//popup_wrap-->
|
||||
<!-- </div>
|
||||
</body> -->
|
||||
|
||||
<script>
|
||||
|
||||
$(function() {
|
||||
$("#reg_zip_find").css("display", "inline-block");
|
||||
var pageTypeParam = "pageType=register";
|
||||
|
||||
<?php if($config['cf_cert_use'] && $config['cf_cert_simple']) { ?>
|
||||
// 이니시스 간편인증
|
||||
var url = "<?php echo G5_INICERT_URL; ?>/ini_request.php";
|
||||
var type = "";
|
||||
var params = "";
|
||||
var request_url = "";
|
||||
|
||||
$(".win_sa_cert").click(function() {
|
||||
if(!cert_confirm()) return false;
|
||||
type = $(this).data("type");
|
||||
params = "?directAgency=" + type + "&" + pageTypeParam;
|
||||
request_url = url + params;
|
||||
call_sa(request_url);
|
||||
});
|
||||
<?php } ?>
|
||||
<?php if($config['cf_cert_use'] && $config['cf_cert_ipin']) { ?>
|
||||
// 아이핀인증
|
||||
var params = "";
|
||||
$("#win_ipin_cert").click(function() {
|
||||
if(!cert_confirm()) return false;
|
||||
params = "?" + pageTypeParam;
|
||||
var url = "<?php echo G5_OKNAME_URL; ?>/ipin1.php"+params;
|
||||
certify_win_open('kcb-ipin', url);
|
||||
return;
|
||||
});
|
||||
|
||||
<?php }?>
|
||||
<?php if($config['cf_cert_use'] && $config['cf_cert_hp']) { ?>
|
||||
// 휴대폰인증
|
||||
var params = "";
|
||||
$("#win_hp_cert").click(function() {
|
||||
if(!cert_confirm()) return false;
|
||||
params = "?" + pageTypeParam;
|
||||
<?php
|
||||
switch($config['cf_cert_hp']) {
|
||||
case 'kcb':
|
||||
$cert_url = G5_OKNAME_URL.'/hpcert1.php';
|
||||
$cert_type = 'kcb-hp';
|
||||
break;
|
||||
case 'kcp':
|
||||
$cert_url = G5_KCPCERT_URL.'/kcpcert_form.php';
|
||||
$cert_type = 'kcp-hp';
|
||||
break;
|
||||
case 'lg':
|
||||
$cert_url = G5_LGXPAY_URL.'/AuthOnlyReq.php';
|
||||
$cert_type = 'lg-hp';
|
||||
break;
|
||||
default:
|
||||
echo 'alert("기본환경설정에서 휴대폰 본인확인 설정을 해주십시오");';
|
||||
echo 'return false;';
|
||||
break;
|
||||
}
|
||||
?>
|
||||
|
||||
certify_win_open("<?php echo $cert_type; ?>", "<?php echo $cert_url; ?>"+params);
|
||||
return;
|
||||
});
|
||||
<?php } ?>
|
||||
});
|
||||
|
||||
function PG_changeSelect(p_list){
|
||||
if(p_list.value == 'type'){
|
||||
document.getElementById("register_domain2").style.display = "block";
|
||||
}else{
|
||||
document.getElementById("register_domain2").style.display = "none";
|
||||
}
|
||||
}//PG_changeSelect
|
||||
|
||||
function PG_pro(str){
|
||||
if(str=="change"){
|
||||
//아이디 입력창 변경발생시 중복확인 다시해야함 : flag값 N로 변경
|
||||
$("#dupl_check_yn").val('N');
|
||||
}else if(str=="dupl_check"){
|
||||
//아이디 중복체크
|
||||
//ajax호출할 페이지, ajax값으로 바뀔 html, 해당 saction ID값
|
||||
var reg_mb_id = $("#reg_mb_id").val();
|
||||
|
||||
if(reg_mb_id==""){ alert("아이디를 입력해주세요"); $("#reg_mb_id").focus(); return false;}
|
||||
|
||||
//var re = /^[a-z][a-zA-z0-9]{4,12}$/; //아이디 유효성 검사
|
||||
var re = /^[a-zA-Z][a-zA-Z0-9]{4,12}$/; //아이디 유효성 검사
|
||||
|
||||
if (!re.test(reg_mb_id)) {
|
||||
alert("아이디는 영문으로 시작하는 \n4~12자의 영문 대소문자+숫자 조합으로만 가능합니다");
|
||||
|
||||
$("#reg_mb_id").focus();
|
||||
return false;
|
||||
}
|
||||
|
||||
jQuery.ajax({
|
||||
type:"GET",
|
||||
url: "/egbim/skin/member/basic/CL_Ajax_Data.php",
|
||||
//dataType:"HTML", // 옵션이므로 JSON으로 받을게 아니면 안써도 됨
|
||||
data:{
|
||||
'ActionKind':'dupl_check',
|
||||
'reg_mb_id':reg_mb_id,
|
||||
},
|
||||
success : function(data){
|
||||
// 통신이 성공적으로 이루어졌을 때 이 함수를 타게 된다.
|
||||
console.log(data);
|
||||
// alert(data);
|
||||
|
||||
if(data=="1"){
|
||||
//아이디중복체크 fail
|
||||
alert("이미 사용중인 아이디입니다.\n 다시 입력해주세요");
|
||||
$("#reg_mb_id").val('');
|
||||
$("#dupl_check_yn").val('N');
|
||||
$("#reg_mb_id").focus();
|
||||
}else{
|
||||
//아이디중복체크 pass
|
||||
if(!confirm("사용가능한 아이디입니다. \n사용하시겠습니까?")){
|
||||
$("#reg_mb_id").val('');
|
||||
$("#dupl_check_yn").val('N');
|
||||
return false;
|
||||
}
|
||||
$("#dupl_check_yn").val('Y');
|
||||
$("#reg_mb_password").focus();
|
||||
}
|
||||
|
||||
},
|
||||
error : function(xhr, status, error) {
|
||||
console.log(xhr);
|
||||
console.log(status);
|
||||
console.log(error);
|
||||
alert("에러발생");
|
||||
}
|
||||
});
|
||||
|
||||
}else{}
|
||||
|
||||
}//PG_pro
|
||||
|
||||
// submit 최종 폼체크
|
||||
function fregisterform_submit(b)
|
||||
{
|
||||
var f = b.parentNode.parentNode.parentNode;
|
||||
|
||||
// 회원아이디 검사
|
||||
if (f.w.value == "") {
|
||||
alert('id_check_before');
|
||||
var msg = reg_mb_id_check();
|
||||
if (msg) {
|
||||
f.mb_id.select();
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
if (f.w.value == "") {
|
||||
if (f.mb_password.value.length < 3) {
|
||||
alert("비밀번호를 3글자 이상 입력하십시오.");
|
||||
f.mb_password.focus();
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
if (f.mb_password.value != f.mb_password_re.value) {
|
||||
alert("비밀번호가 같지 않습니다.");
|
||||
f.mb_password_re.focus();
|
||||
return false;
|
||||
}
|
||||
|
||||
if (f.mb_password.value.length > 0) {
|
||||
if (f.mb_password_re.value.length < 3) {
|
||||
alert("비밀번호를 3글자 이상 입력하십시오.");
|
||||
f.mb_password_re.focus();
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
// 이름 검사
|
||||
if (f.w.value=="") {
|
||||
if (f.mb_name.value.length < 1) {
|
||||
alert("이름을 입력하십시오.");
|
||||
f.mb_name.focus();
|
||||
return false;
|
||||
}
|
||||
|
||||
/*
|
||||
var pattern = /([^가-힣\x20])/i;
|
||||
if (pattern.test(f.mb_name.value)) {
|
||||
alert("이름은 한글로 입력하십시오.");
|
||||
f.mb_name.select();
|
||||
return false;
|
||||
}
|
||||
*/
|
||||
}
|
||||
|
||||
<?php if($w == '' && $config['cf_cert_use'] && $config['cf_cert_req']) { ?>
|
||||
// 본인확인 체크
|
||||
if(f.cert_no.value=="") {
|
||||
alert("회원가입을 위해서는 본인확인을 해주셔야 합니다.");
|
||||
return false;
|
||||
}
|
||||
<?php } ?>
|
||||
|
||||
// 닉네임 검사
|
||||
// if ((f.w.value == "") || (f.w.value == "u" && f.mb_nick.defaultValue != f.mb_nick.value)) {
|
||||
// var msg = reg_mb_nick_check();
|
||||
// if (msg) {
|
||||
// alert(msg);
|
||||
// f.reg_mb_nick.select();
|
||||
// return false;
|
||||
// }
|
||||
// }
|
||||
|
||||
// E-mail 검사
|
||||
var mail_temp = f.reg_mb_email1.value+''+f.reg_mb_email2.value;
|
||||
f.reg_mb_email.value = mail_temp;
|
||||
|
||||
if ((f.w.value == "") || (f.w.value == "u" && f.reg_mb_email.defaultValue != mail_temp)) {
|
||||
var msg = reg_mb_email_check();
|
||||
if (msg) {
|
||||
alert(msg);
|
||||
f.reg_mb_email1.select();
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
<?php if (($config['cf_use_hp'] || $config['cf_cert_hp']) && $config['cf_req_hp']) { ?>
|
||||
// 휴대폰번호 체크
|
||||
var msg = reg_mb_hp_check();
|
||||
if (msg) {
|
||||
alert(msg);
|
||||
f.reg_mb_hp.select();
|
||||
return false;
|
||||
}
|
||||
<?php } ?>
|
||||
|
||||
<?php //echo chk_captcha_js(); ?>
|
||||
|
||||
document.getElementById("btn_submit").disabled = "disabled";
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
jQuery(function($){
|
||||
//tooltip
|
||||
$(document).on("click", ".tooltip_icon", function(e){
|
||||
$(this).next(".tooltip").fadeIn(400).css("display","inline-block");
|
||||
}).on("mouseout", ".tooltip_icon", function(e){
|
||||
$(this).next(".tooltip").fadeOut();
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
</script>
|
||||
|
||||
<!-- } 회원정보 입력/수정 끝 -->
|
||||
@@ -0,0 +1,59 @@
|
||||
<?php
|
||||
if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가
|
||||
|
||||
//----------------------------------------------------------
|
||||
// SMS 문자전송 시작
|
||||
//----------------------------------------------------------
|
||||
|
||||
$sms_contents = $default['de_sms_cont1'];
|
||||
$sms_contents = str_replace("{이름}", $mb_name, $sms_contents);
|
||||
$sms_contents = str_replace("{회원아이디}", $mb_id, $sms_contents);
|
||||
$sms_contents = str_replace("{회사명}", $default['de_admin_company_name'], $sms_contents);
|
||||
|
||||
// 핸드폰번호에서 숫자만 취한다
|
||||
$receive_number = preg_replace("/[^0-9]/", "", $mb_hp); // 수신자번호 (회원님의 핸드폰번호)
|
||||
$send_number = preg_replace("/[^0-9]/", "", $default['de_admin_company_tel']); // 발신자번호
|
||||
|
||||
if ($w == "" && $default['de_sms_use1'] && $receive_number)
|
||||
{
|
||||
if ($config['cf_sms_use'] == 'icode')
|
||||
{
|
||||
if($config['cf_sms_type'] == 'LMS') {
|
||||
include_once(G5_LIB_PATH.'/icode.lms.lib.php');
|
||||
|
||||
$port_setting = get_icode_port_type($config['cf_icode_id'], $config['cf_icode_pw']);
|
||||
|
||||
// SMS 모듈 클래스 생성
|
||||
if($port_setting !== false) {
|
||||
$SMS = new LMS;
|
||||
$SMS->SMS_con($config['cf_icode_server_ip'], $config['cf_icode_id'], $config['cf_icode_pw'], $port_setting);
|
||||
|
||||
$strDest = array();
|
||||
$strDest[] = $receive_number;
|
||||
$strCallBack = $send_number;
|
||||
$strCaller = iconv_euckr(trim($default['de_admin_company_name']));
|
||||
$strSubject = '';
|
||||
$strURL = '';
|
||||
$strData = iconv_euckr($sms_contents);
|
||||
$strDate = '';
|
||||
$nCount = count($strDest);
|
||||
|
||||
$res = $SMS->Add($strDest, $strCallBack, $strCaller, $strSubject, $strURL, $strData, $strDate, $nCount);
|
||||
|
||||
$SMS->Send();
|
||||
$SMS->Init(); // 보관하고 있던 결과값을 지웁니다.
|
||||
}
|
||||
} else {
|
||||
include_once(G5_LIB_PATH.'/icode.sms.lib.php');
|
||||
|
||||
$SMS = new SMS; // SMS 연결
|
||||
$SMS->SMS_con($config['cf_icode_server_ip'], $config['cf_icode_id'], $config['cf_icode_pw'], $config['cf_icode_server_port']);
|
||||
$SMS->Add($receive_number, $send_number, $config['cf_icode_id'], iconv_euckr(stripslashes($sms_contents)), "");
|
||||
$SMS->Send();
|
||||
$SMS->Init(); // 보관하고 있던 결과값을 지웁니다.
|
||||
}
|
||||
}
|
||||
}
|
||||
//----------------------------------------------------------
|
||||
// SMS 문자전송 끝
|
||||
//----------------------------------------------------------;
|
||||
@@ -0,0 +1,44 @@
|
||||
<?php
|
||||
if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가
|
||||
|
||||
// add_stylesheet('css 구문', 출력순서); 숫자가 작을 수록 먼저 출력됨
|
||||
add_stylesheet('<link rel="stylesheet" href="'.$member_skin_url.'/style.css">', 0);
|
||||
?>
|
||||
|
||||
<!-- 회원가입결과 시작 { register-->
|
||||
<div id="pop_result" class="popup_wrap">
|
||||
<p class="reg_result_p">
|
||||
<i class="fa fa-gift" aria-hidden="true"></i><br>
|
||||
<strong><?php echo get_text($mb['mb_name']); ?></strong>님의 회원가입을 진심으로 축하합니다.
|
||||
</p>
|
||||
|
||||
<?php if (is_use_email_certify()) { ?>
|
||||
<p class="result_txt">
|
||||
회원 가입 시 입력하신 이메일 주소로 인증메일이 발송되었습니다.<br>
|
||||
발송된 인증메일을 확인하신 후 인증처리를 하시면 사이트를 원활하게 이용하실 수 있습니다.
|
||||
</p>
|
||||
<div id="result_email">
|
||||
<span>아이디</span>
|
||||
<strong><?php echo $mb['mb_id'] ?></strong><br>
|
||||
<span>이메일 주소</span>
|
||||
<strong><?php echo $mb['mb_email'] ?></strong>
|
||||
</div>
|
||||
<p>
|
||||
이메일 주소를 잘못 입력하셨다면, 사이트 관리자에게 문의해주시기 바랍니다.
|
||||
</p>
|
||||
<?php } ?>
|
||||
|
||||
<p class="result_txt">
|
||||
회원님의 비밀번호는 아무도 알 수 없는 암호화 코드로 저장되므로 안심하셔도 좋습니다.<br>
|
||||
아이디, 비밀번호 분실시에는 회원가입시 입력하신 이메일 주소를 이용하여 찾을 수 있습니다.
|
||||
</p>
|
||||
|
||||
<p class="result_txt">
|
||||
회원 탈퇴는 언제든지 가능하며 일정기간이 지난 후, 회원님의 정보는 삭제하고 있습니다.<br>
|
||||
감사합니다.
|
||||
</p>
|
||||
<!-- } 회원가입결과 끝 -->
|
||||
<div class="btn_confirm_reg">
|
||||
<a href="<?php echo G5_URL ?>/" class="reg_btn_submit">메인으로</a>
|
||||
</div>
|
||||
</div>
|
||||
@@ -0,0 +1,29 @@
|
||||
<?php
|
||||
if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가
|
||||
|
||||
// add_stylesheet('css 구문', 출력순서); 숫자가 작을 수록 먼저 출력됨
|
||||
add_stylesheet('<link rel="stylesheet" href="'.$member_skin_url.'/style.css">', 0);
|
||||
?>
|
||||
|
||||
<!-- 스크랩 목록 시작 { -->
|
||||
<div id="scrap" class="new_win">
|
||||
<h1 id="win_title"><?php echo $g5['title'] ?></h1>
|
||||
<ul>
|
||||
<?php for ($i=0; $i<count($list); $i++) { ?>
|
||||
<li>
|
||||
<a href="<?php echo $list[$i]['opener_href_wr_id'] ?>" class="scrap_tit" target="_blank" onclick="opener.document.location.href='<?php echo $list[$i]['opener_href_wr_id'] ?>'; return false;"><?php echo $list[$i]['subject'] ?></a>
|
||||
<a href="<?php echo $list[$i]['opener_href'] ?>" class="scrap_cate" target="_blank" onclick="opener.document.location.href='<?php echo $list[$i]['opener_href'] ?>'; return false;"><?php echo $list[$i]['bo_subject'] ?></a>
|
||||
<span class="scrap_datetime"><i class="fa fa-clock-o" aria-hidden="true"></i> <?php echo $list[$i]['ms_datetime'] ?></span>
|
||||
<a href="<?php echo $list[$i]['del_href']; ?>" onclick="del(this.href); return false;" class="scrap_del"><i class="fa fa-trash-o" aria-hidden="true"></i><span class="sound_only">삭제</span></a>
|
||||
</li>
|
||||
<?php } ?>
|
||||
|
||||
<?php if ($i == 0) echo "<li class=\"empty_li\">자료가 없습니다.</li>"; ?>
|
||||
</ul>
|
||||
<?php echo get_paging($config['cf_write_pages'], $page, $total_page, "?$qstr&page="); ?>
|
||||
|
||||
<div class="win_btn">
|
||||
<button type="button" onclick="window.close();" class="btn_close">창닫기</button>
|
||||
</div>
|
||||
</div>
|
||||
<!-- } 스크랩 목록 끝 -->
|
||||
@@ -0,0 +1,34 @@
|
||||
<?php
|
||||
if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가
|
||||
|
||||
// add_stylesheet('css 구문', 출력순서); 숫자가 작을 수록 먼저 출력됨
|
||||
add_stylesheet('<link rel="stylesheet" href="'.$member_skin_url.'/style.css">', 0);
|
||||
?>
|
||||
|
||||
<!-- 스크랩 시작 { -->
|
||||
<div id="scrap_do" class="new_win">
|
||||
<h1 id="win_title">스크랩하기</h1>
|
||||
<form name="f_scrap_popin" action="./scrap_popin_update.php" method="post">
|
||||
<input type="hidden" name="bo_table" value="<?php echo $bo_table ?>">
|
||||
<input type="hidden" name="wr_id" value="<?php echo $wr_id ?>">
|
||||
<div class="new_win_con">
|
||||
<h2 class="sound_only">제목 확인 및 댓글 쓰기</h2>
|
||||
<ul>
|
||||
<li class="scrap_tit">
|
||||
<span class="sound_only">제목</span>
|
||||
<?php echo get_text(cut_str($write['wr_subject'], 255)) ?>
|
||||
</li>
|
||||
<li>
|
||||
<label for="wr_content">댓글작성</label>
|
||||
<textarea name="wr_content" id="wr_content"></textarea>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<p class="win_desc">스크랩을 하시면서 감사 혹은 격려의 댓글을 남기실 수 있습니다.</p>
|
||||
|
||||
<div class="win_btn">
|
||||
<button type="submit" class="btn_submit">스크랩 확인</button>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
<!-- } 스크랩 끝 -->
|
||||
@@ -0,0 +1,104 @@
|
||||
<?php
|
||||
|
||||
?>
|
||||
|
||||
<div class="popup_sitemap" id="sitemap">
|
||||
|
||||
|
||||
<!-- Header -->
|
||||
|
||||
<?php include_once($member_skin_path.'/main_header.skin.php'); ?>
|
||||
<!-- //Header -->
|
||||
|
||||
<!-- sitemap -->
|
||||
<!-- <div class="sitemap">
|
||||
<div class="menu1">
|
||||
<a href="<?php echo G5_BBS_URL ?>/value.php">
|
||||
<span></span>
|
||||
</a>
|
||||
</div>
|
||||
<div class="bg_line1"></div>
|
||||
<div class="menu2">
|
||||
<a href="<?php echo G5_BBS_URL ?>/primary.php">
|
||||
<span>주요기능</span>
|
||||
<div class="sub_text">
|
||||
<em>효율적인</em> 교통 네트워크 관리<br>
|
||||
<em>강력한</em> 데이터 처리 분석<br>
|
||||
<em>정밀한</em> 대중교통 분석
|
||||
</div>
|
||||
</a>
|
||||
</div>
|
||||
<div class="bg_line2"></div>
|
||||
<div class="menu3">
|
||||
<a href="<?php echo G5_BBS_URL ?>/road.php">
|
||||
<span>공로분석</span>
|
||||
<div class="sub_text">
|
||||
<em>안정적, 신뢰성, 완벽한</em><br>
|
||||
도로교통시스템의 수요와 성능평가 및 분석
|
||||
</div>
|
||||
</a>
|
||||
</div>
|
||||
<div class="bg_line3"></div>
|
||||
<div class="menu4">
|
||||
<a href="<?php echo G5_BBS_URL ?>/public.php">
|
||||
<span>대중교통분석</span>
|
||||
<div class="sub_text">
|
||||
모든 대중교통의 <em>경로 탐색</em>
|
||||
</div>
|
||||
</a>
|
||||
</div>
|
||||
</div> -->
|
||||
|
||||
<div class="sitemap">
|
||||
<div class="menu1">
|
||||
<a href="<?php echo G5_BBS_URL ?>/value.php">
|
||||
<span>EG-BIM 소개</span>
|
||||
<div class="sub_text">
|
||||
<em>도면편집과 관리</em>에서<br>
|
||||
<em>3차원 BIM모델 정보 확인</em>까지<br>
|
||||
</div>
|
||||
</a>
|
||||
</div>
|
||||
<div class="bg_line1"></div>
|
||||
<div class="menu2">
|
||||
<a href="<?php echo G5_BBS_URL ?>/interface.php">
|
||||
<span>인터페이스</span>
|
||||
<div class="sub_text">
|
||||
<em>메뉴를 단순화</em>하고,<br>
|
||||
<em>듀얼모니터</em>기능을 활용한<br>
|
||||
<em>새로운 작업공간</em>을 제공
|
||||
</div>
|
||||
</a>
|
||||
</div>
|
||||
<div class="bg_line2"></div>
|
||||
<div class="menu3">
|
||||
<a href="<?php echo G5_BBS_URL ?>/primary.php">
|
||||
<span>주요기능</span>
|
||||
<div class="sub_text">
|
||||
수많은 명령어들을 <em>기능별로<br>
|
||||
그룹화</em>하여 찾기 쉽게 제공
|
||||
</div>
|
||||
</a>
|
||||
</div>
|
||||
<div class="bg_line3"></div>
|
||||
<div class="menu4">
|
||||
<a href="<?php echo G5_BBS_URL ?>/floorplan.php">
|
||||
<span>도면관리</span>
|
||||
<div class="sub_text">
|
||||
도면을 열지 않고도 <br class="brk"><em>대량의 도면 관리</em>
|
||||
</div>
|
||||
</a>
|
||||
</div>
|
||||
<div class="bg_line2"></div>
|
||||
<div class="menu5">
|
||||
<a href="<?php echo G5_BBS_URL ?>/forbim.php">
|
||||
<span>for BIM</span>
|
||||
<div class="sub_text">
|
||||
설계도면과 <br class="brk">3차원 BIM모델을<br>
|
||||
<em>동시에 확인</em>
|
||||
</div>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
@@ -0,0 +1,130 @@
|
||||
<?php
|
||||
|
||||
?>
|
||||
|
||||
<div class="popup_sitemap" id="sitemap">
|
||||
|
||||
|
||||
<!-- Header -->
|
||||
<header>
|
||||
<h1><a href="<?php echo G5_URL ?>/index.php"></a></h1>
|
||||
<div class="menu_my">
|
||||
<img src="../img/ico_my.svg" alt="">
|
||||
<ul class="menu_my_list" style="display: none;">
|
||||
<li id="my_join2" class="my_join2"><a href="javascript:mypage01();">마이페이지</a></li>
|
||||
<li id="my_login2" class="my_login2"><a href="<?php echo G5_BBS_URL ?>/logout.php">로그아웃</a></li>
|
||||
<li id="my_join" class="my_join"><a href="javascript:agreement();">회원가입</a></li>
|
||||
<li id="my_login" class="my_login"><a href="javascript:login();">로그인</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="menu_ham btn_map_close"><a>
|
||||
<div></div>
|
||||
<div></div>
|
||||
<div></div>
|
||||
</a></div>
|
||||
</header>
|
||||
<!-- //Header -->
|
||||
<div class="floating_menu">
|
||||
<ul>
|
||||
<li class="floating_faq"><a href="<?php echo G5_BBS_URL ?>/faq.php">
|
||||
<i></i>
|
||||
<span>FAQ</span>
|
||||
</a></li>
|
||||
<li class="floating_buy"><a href="<?php echo G5_BBS_URL ?>/buy.php">
|
||||
<i></i>
|
||||
<span>구매하기</span>
|
||||
</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<!-- sitemap -->
|
||||
<!-- <div class="sitemap">
|
||||
<div class="menu1">
|
||||
<a href="<?php echo G5_BBS_URL ?>/value.php">
|
||||
<span></span>
|
||||
</a>
|
||||
</div>
|
||||
<div class="bg_line1"></div>
|
||||
<div class="menu2">
|
||||
<a href="<?php echo G5_BBS_URL ?>/primary.php">
|
||||
<span>주요기능</span>
|
||||
<div class="sub_text">
|
||||
<em>효율적인</em> 교통 네트워크 관리<br>
|
||||
<em>강력한</em> 데이터 처리 분석<br>
|
||||
<em>정밀한</em> 대중교통 분석
|
||||
</div>
|
||||
</a>
|
||||
</div>
|
||||
<div class="bg_line2"></div>
|
||||
<div class="menu3">
|
||||
<a href="<?php echo G5_BBS_URL ?>/road.php">
|
||||
<span>공로분석</span>
|
||||
<div class="sub_text">
|
||||
<em>안정적, 신뢰성, 완벽한</em><br>
|
||||
도로교통시스템의 수요와 성능평가 및 분석
|
||||
</div>
|
||||
</a>
|
||||
</div>
|
||||
<div class="bg_line3"></div>
|
||||
<div class="menu4">
|
||||
<a href="<?php echo G5_BBS_URL ?>/public.php">
|
||||
<span>대중교통분석</span>
|
||||
<div class="sub_text">
|
||||
모든 대중교통의 <em>경로 탐색</em>
|
||||
</div>
|
||||
</a>
|
||||
</div>
|
||||
</div> -->
|
||||
|
||||
<div class="sitemap">
|
||||
<div class="menu1">
|
||||
<a href="<?php echo G5_BBS_URL ?>/value.php">
|
||||
<span>EG-BIM 소개</span>
|
||||
<div class="sub_text">
|
||||
<em>도면편집과 관리</em>에서<br>
|
||||
<em>3차원 BIM모델 정보 확인</em>까지<br>
|
||||
</div>
|
||||
</a>
|
||||
</div>
|
||||
<div class="bg_line1"></div>
|
||||
<div class="menu2">
|
||||
<a href="<?php echo G5_BBS_URL ?>/interface.php">
|
||||
<span>인터페이스</span>
|
||||
<div class="sub_text">
|
||||
<em>메뉴를 단순화</em>하고,<br>
|
||||
<em>듀얼모니터</em>기능을 활용한<br>
|
||||
<em>새로운 작업공간</em>을 제공
|
||||
</div>
|
||||
</a>
|
||||
</div>
|
||||
<div class="bg_line2"></div>
|
||||
<div class="menu3">
|
||||
<a href="<?php echo G5_BBS_URL ?>/primary.php">
|
||||
<span>주요기능</span>
|
||||
<div class="sub_text">
|
||||
수많은 명령어들을 <em>기능별로<br>
|
||||
그룹화</em>하여 찾기 쉽게 제공
|
||||
</div>
|
||||
</a>
|
||||
</div>
|
||||
<div class="bg_line3"></div>
|
||||
<div class="menu4">
|
||||
<a href="<?php echo G5_BBS_URL ?>/floorplan.php">
|
||||
<span>도면관리</span>
|
||||
<div class="sub_text">
|
||||
도면을 열지 않고도 <em>대량의 도면 관리</em>
|
||||
</div>
|
||||
</a>
|
||||
</div>
|
||||
<div class="bg_line2"></div>
|
||||
<div class="menu5">
|
||||
<a href="<?php echo G5_BBS_URL ?>/forbim.php">
|
||||
<span>for BIM</span>
|
||||
<div class="sub_text">
|
||||
설계도면과 3차원 BIM모델을<br>
|
||||
<em>동시에 확인</em>
|
||||
</div>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
@@ -0,0 +1,335 @@
|
||||
@charset "utf-8";
|
||||
|
||||
/* ### 기본 스타일 커스터마이징 시작 ### */
|
||||
/* 기본박스 */
|
||||
.mbskin {position:relative;margin:100px auto 0;width:360px;text-align:center}
|
||||
.mbskin:after {right:10px;left:auto;
|
||||
-webkit-transform:skew(8deg) rotate(3deg);
|
||||
-moz-transform:skew(8deg) rotate(3deg);
|
||||
-ms-transform:skew(8deg) rotate(3deg);
|
||||
-o-transform:skew(8deg) rotate(3deg);
|
||||
transform:skew(8deg) rotate(3deg)}
|
||||
.mbskin .mbskin_box{border:1px solid #dde7e9;background:#fff}
|
||||
.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}
|
||||
/* ### 기본 스타일 커스터마이징 끝 ### */
|
||||
|
||||
/* 회원가입 약관 */
|
||||
.register {margin:0 auto}
|
||||
.register:after {display:block;visibility:hidden;clear:both;content:""}
|
||||
.register .btn_confirm .btn_submit,
|
||||
.register .btn_confirm .btn_close {float:left;height:50px !important;width:49.5%;font-weight:bold;font-size:1.083em}
|
||||
.register .btn_confirm {text-align:left}
|
||||
.register .btn_confirm .btn_submit {margin-left:1%}
|
||||
|
||||
#fregister p {position:relative;text-align:center;color:#fff;height:50px;line-height:50px;font-size:1.1em;background:#f2838f;margin:0 0 10px;border-radius:5px;font-weight:bold}
|
||||
#fregister p:before {content:"";position:absolute;top:0;left:0;width:5px;height:50px;border-radius:5px 0 0 5px;background:#da4453}
|
||||
#fregister p i {font-size:1.2em;vertical-align:middle}
|
||||
#fregister section {margin:10px auto 15px;border:1px solid #dde7e9;position:relative;border-radius:3px}
|
||||
#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_agree {position:absolute;top:0;right:0}
|
||||
.fregister_agree input[type="checkbox"] + label {color:#676e70}
|
||||
.fregister_agree input[type="checkbox"] + label:hover {color:#2172f8}
|
||||
.fregister_agree input[type="checkbox"] + label span {position:absolute;top:20px;right:15px;width:17px;height:17px;display:block;background:#fff;border:1px solid #999;border-radius:3px}
|
||||
.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:18px}
|
||||
|
||||
.chk_li {padding-left:20px}
|
||||
|
||||
#sns_register .login-sns,
|
||||
#sns_register h2 {border:0 !important}
|
||||
|
||||
/* 회원가입 입력 */
|
||||
#register_form {background:#fff;margin-bottom:20px}
|
||||
#register_form h2 {padding:20px;border-bottom:1px solid #dde7e9}
|
||||
.register_form_inner {background:#f7f7f7;border:1px solid #dde7e9;border-radius:3px}
|
||||
.register_form_inner ul {padding:20px}
|
||||
.register_form_inner label {display:block;margin-bottom:10px;line-height:24px}
|
||||
.register_form_inner label.inline {display:inline}
|
||||
|
||||
#fregisterform .cert_desc {color:#3a8afd;}
|
||||
#fregisterform .cert_req {margin-left:5px;line-height:35px;}
|
||||
#fregisterform #msg_certify {margin:5px 0;padding:5px;border:1px solid #dbecff;background:#eaf4ff;text-align:center}
|
||||
#fregisterform .frm_address {margin:5px 0 0}
|
||||
#fregisterform #mb_addr3 {display:inline-block;margin:5px 0 0;vertical-align:middle}
|
||||
#fregisterform #mb_addr_jibeon {display:block;margin:5px 0 0}
|
||||
#fregisterform .btn_confirm {text-align:center}
|
||||
#fregisterform .form_01 div {margin:0 0 20px}
|
||||
#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}
|
||||
|
||||
/* 회원가입 완료 */
|
||||
#reg_result {padding:40px 30px;text-align:center;background:#edf3fc;border:1px solid #d6e2f4;border-radius:5px}
|
||||
#reg_result h2 {font-size:2em;margin:0 0 20px}
|
||||
#reg_result h2 strong {color:#ed6478}
|
||||
#reg_result #result_email {margin:20px 0;padding:10px 50px;border-top:1px solid #e9e9e9;border-bottom:1px solid #dde4e9;background:#fff;line-height:2em}
|
||||
#reg_result #result_email span {display:inline-block;width:150px}
|
||||
#reg_result #result_email strong {color:#e8180c;font-size:1.2em}
|
||||
#reg_result p {line-height:1.8em}
|
||||
#reg_result .result_txt {text-align:left}
|
||||
#reg_result .btn_confirm {margin:50px 0}
|
||||
#reg_result i {font-size:3em}
|
||||
#reg_result .reg_result_p {font-size:1.25em;margin:0 0 10px;color:#3684fa}
|
||||
|
||||
.btn_confirm_reg {margin:20px 0;text-align:center}
|
||||
.reg_btn_submit {display:inline-block;background:#3a8afd;color:#fff;text-align:center;border-radius:3px;width:280px;height:57px;line-height:57px;font-size:1.2em;margin:0 auto;font-weight:bold}
|
||||
|
||||
.mb_log_cate h2 {width:50%;float:left;padding:20px 0;text-align:center}
|
||||
.mb_log_cate .join {width:50%;float:left;padding:20px 0;text-align:center;background:#f7f7f7;color:#6e6e6e}
|
||||
.mb_log_cate:after {display:block;visibility:hidden;clear:both;content:""}
|
||||
|
||||
.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: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}
|
||||
|
||||
/* 아이디/비밀번호 찾기 */
|
||||
#find_info h3 {display:none;margin-bottom:30px;text-align:center;font-size:1.1em;}
|
||||
#find_info .new_win_con {background:#f7f7f7;}
|
||||
#find_info.cert .new_win_con {width:460px;float:left;}
|
||||
#find_info.cert .new_win_con:nth-child(2) {margin-left:10px;}
|
||||
#find_info.cert h3 {display:block;}
|
||||
#find_info #mb_hp_label {display:inline-block;margin-left:10px}
|
||||
#find_info p {line-height:1.5em}
|
||||
#find_info #mb_email {margin:10px 0}
|
||||
#find_info .find_btn .btn_submit {width:30%;word-break:keep-all;}
|
||||
|
||||
/* 비밀번호 재설정 */
|
||||
#pw_reset #info_fs {margin-bottom: 10px}
|
||||
#pw_reset .frm_input {margin:10px 0 0}
|
||||
|
||||
/* 기존 회원 본인인증 */
|
||||
#member_cert_refresh p {position:relative;text-align:center;color:#fff;height:50px;line-height:50px;font-size:1.1em;background:#f2838f;margin:0 0 10px;border-radius:5px;font-weight:bold}
|
||||
#member_cert_refresh p:before {content:"";position:absolute;top:0;left:0;width:5px;height:50px;border-radius:5px 0 0 5px;background:#da4453}
|
||||
#member_cert_refresh p i {font-size:1.2em;vertical-align:middle}
|
||||
#member_cert_refresh section {margin:10px auto 15px;border:1px solid #dde7e9;position:relative;border-radius:3px}
|
||||
#member_cert_refresh_chkall {position:relative;text-align:center;background:#f5f7fa;line-height:50px;border:1px solid #e5e9f0;border-radius:3px;margin-bottom:15px}
|
||||
#member_cert_refresh h2 {text-align:left;padding:20px;border-bottom:1px solid #dde7e9;font-size:1.2em}
|
||||
#member_cert_refresh textarea {display:block;padding:20px;width:100%;height:150px;background:#fff;border:0;line-height:1.6em}
|
||||
#member_cert_refresh_private {position:relative}
|
||||
#member_cert_refresh_private div {padding:20px;background:#fff}
|
||||
#member_cert_refresh_private table {width:100%;border-collapse:collapse;font-size:1em;}
|
||||
#member_cert_refresh_private table caption {position:absolute;font-size:0;line-height:0;overflow:hidden}
|
||||
#member_cert_refresh_private table th {background:#f7f7f9;width:33.33%;color:#000;padding:10px;border:1px solid #d8dbdf;font-weight:bold;}
|
||||
#member_cert_refresh_private table td {border:1px solid #e7e9ec;padding:10px;border-top:0}
|
||||
|
||||
.member_cert_refresh_agree {position:absolute;top:0;right:0}
|
||||
.member_cert_refresh_agree input[type="checkbox"] + label {color:#676e70}
|
||||
.member_cert_refresh_agree input[type="checkbox"] + label:hover {color:#2172f8}
|
||||
.member_cert_refresh_agree input[type="checkbox"] + label span {position:absolute;top:20px;right:15px;width:17px;height:17px;display:block;background:#fff;border:1px solid #999;border-radius:3px}
|
||||
.member_cert_refresh_agree input[type="checkbox"]:checked + label {color:#000}
|
||||
.member_cert_refresh_agree input[type="checkbox"]:checked + label span {background:url('./img/chk.png') no-repeat 50% 50% #3a8afd;border-color:#1471f6;border-radius:3px}
|
||||
.member_cert_refresh_agree.chk_all input[type="checkbox"] + label span {top:18px}
|
||||
|
||||
#member_cert_refresh #find_info {margin:50px 0}
|
||||
#member_cert_refresh #find_info .find_btn {padding:10px 20px;background:#fff}
|
||||
#member_cert_refresh #find_info .find_btn > div {margin:10px 0}
|
||||
|
||||
/* 로그인 */
|
||||
#mb_login {}
|
||||
#mb_login h1 {position:absolute;font-size:0;line-height:0;overflow:hidden}
|
||||
#login_fs {padding:35px}
|
||||
#mb_login #login_fs .frm_input {margin:0 0 10px}
|
||||
#mb_login #login_fs .btn_submit {margin:0 0 15px}
|
||||
|
||||
#login_info {}
|
||||
#login_info:after {display:block;visibility:hidden;clear:both;content:""}
|
||||
#login_info .login_if_auto {float:left}
|
||||
#login_info .login_if_auto label {vertical-align:baseline;padding-left:5px}
|
||||
#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 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 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}
|
||||
|
||||
#mb_login #sns_login {margin-top:0;border-color:#edeaea;padding:25px}
|
||||
#mb_login #sns_login:after {display:block;visibility:hidden;clear:both;content:""}
|
||||
#mb_login #sns_login h3 {position:absolute;font-size:0;line-height:0;overflow:hidden}
|
||||
#mb_login #sns_login .sns-wrap {margin:0 !important}
|
||||
#mb_login #sns_login .sns-icon {width:49% !important;float:left !important}
|
||||
#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}
|
||||
.memo_list li:after {display:block;visibility:hidden;clear:both;content:""}
|
||||
.memo_list li.read {background:#f6f6f6}
|
||||
.memo_list li.empty_li {text-align:center;padding:20px 0;color:#666}
|
||||
|
||||
.memo_list .memo_li {float:left}
|
||||
.memo_list .profile_big_img {position:relative;margin-right:15px}
|
||||
.memo_list .profile_big_img img {border-radius:50%;width:52px;height:52px}
|
||||
.memo_list .memo_li.memo_name {padding-top:5px;float:none}
|
||||
.memo_list .memo_preview a{display:block;margin-right:30px;padding-top:10px;font-weight:normal !important;font-size:1.2em}
|
||||
.memo_list .memo_preview a:hover{text-decoration:underline}
|
||||
.memo_list .memo_name a,
|
||||
.memo_list .memo_name .sv_wrap {font-weight:bold}
|
||||
.memo_list .no_read {position:absolute;bottom:0;right:0;display:inline-block;background:#3a8afd;border:1px solid #e1edff;text-indent:-9999px;border-radius:10px;width:10px;height:10px;box-shadow:0 0 10px 3px #9ec3f9}
|
||||
.memo_list .no_read {animation:blinker 1s linear infinite}
|
||||
|
||||
@keyframes blinker {
|
||||
50% {opacity:0}
|
||||
}
|
||||
|
||||
#memo_list h1#win_title {padding:10px 10px 10px 20px}
|
||||
#memo_list .memo_datetime {font-size:0.92em;color:#888d92}
|
||||
#memo_list .memo_del {position:absolute;right:15px;top:15px;padding:10px;color:#c7c9cb;font-size:1.4em}
|
||||
#memo_list .memo_cnt {margin-top:5px;font-weight:normal;display:inline-block;font-size:1.2em}
|
||||
#memo_list .pg_wrap {margin-top:10px;width:100%;float:inherit;text-align:center}
|
||||
|
||||
#memo_view_contents {margin-bottom:20px;border-top:1px solid #ececec;border-bottom:1px solid #ececec}
|
||||
#memo_view_contents h2 {position:absolute;font-size:0;line-height:0;overflow:hidden}
|
||||
#memo_view_ul {margin:0;list-style:none;background:#f6f6f6}
|
||||
#memo_view_ul:after {display:block;visibility:hidden;clear:both;content:""}
|
||||
.memo_view_li {position:relative;/*padding:10px;float:left;width:50%*/}
|
||||
|
||||
.memo_view_li .profile_img img {display:none}
|
||||
.memo_from {position:relative;background:#fff;border-bottom:1px solid #ececec;padding:15px 20px}
|
||||
.memo_from li {float:left}
|
||||
.memo_from li.memo_profile img {width:40px;height:40px;border-radius:50%}
|
||||
.memo_from li:first-child {margin-right:10px}
|
||||
.memo_from li.memo_view_nick {width:80%}
|
||||
.memo_from li.memo_view_nick a {font-weight:bold !important}
|
||||
.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;}
|
||||
.memo_from:after {display:block;visibility:hidden;clear:both;content:""}
|
||||
|
||||
.memo_btn {width:100%}
|
||||
.memo_btn a {display:inline-block;width:50%;font-size:1em;color:#888d92;padding:20px}
|
||||
.memo_btn a.btn_right {float:right;text-align:right}
|
||||
.memo_btn a i {font-size:1.2em;color:#acabab;vertical-align:bottom}
|
||||
|
||||
#memo_view p {padding:10px;min-height:150px;height:auto !important;height:150px;background:#fff;line-height:1.8em}
|
||||
#memo_view textarea {height:100px}
|
||||
|
||||
#memo_write .form_01 {padding:20px;border-top:1px solid #ececec}
|
||||
|
||||
.reply_btn {display:inline-block;width:150px;height:45px;line-height:50px;padding:0 10px;font-weight:bold;background:#3a8afd;color:#fff;border-radius:3px;vertical-align:bottom;margin-right:5px}
|
||||
#memo_write .reply_btn {font-size:1em}
|
||||
|
||||
/* 스크랩 */
|
||||
#scrap li:after {display:block;visibility:hidden;clear:both;content:""}
|
||||
#scrap li {position:relative;padding:20px;border-bottom:1px solid #ececec}
|
||||
#scrap .scrap_tit {font-weight:bold;display:block;font-size:1.083em;margin-bottom:10px;line-height:1.3em}
|
||||
#scrap .scrap_cate {float:left;display:block;color:#ac92ec;background:#eeeaf8;padding:3px;border-radius:3px;font-size:0.92em;margin-right:10px}
|
||||
#scrap .scrap_datetime {color:#777;line-height:18px}
|
||||
#scrap .scrap_del {position:absolute;top:15px;right:15px;font-size:18px;color:#c7c9cb}
|
||||
#scrap .scrap_del:hover {color:#3a8afd}
|
||||
|
||||
#scrap_do .new_win_con {padding:0 20px}
|
||||
#scrap_do textarea {width:100%;height:100px}
|
||||
#scrap_do .scrap_tit {margin-bottom:10px;background:#f3f3f3;padding:10px 15px;font-size:1.2em;font-weight:bold}
|
||||
#scrap_do label {display:block;margin:0 0 5px;font-size:1em}
|
||||
#scrap_do .win_btn:after {display:block;visibility:hidden;clear:both;content:""}
|
||||
#scrap .win_btn, #scrap_do .win_btn {margin:20px 0;text-align:center}
|
||||
#scrap_do .win_btn .btn_submit {float:inherit}
|
||||
#scrap_do .win_desc {margin:0 20px}
|
||||
|
||||
/*포인트*/
|
||||
#point {text-align:center}
|
||||
#point h1 {text-align:left}
|
||||
#point .point_all {margin:20px 20px 15px;border-radius:5px;background:#edf3fc;border:1px solid #d6e2f4;color:#485172;font-size:1.083em}
|
||||
#point .point_all:after {display:block;visibility:hidden;clear:both;content:""}
|
||||
#point .point_all li {float:left;width:50%;padding:20px;text-align:left}
|
||||
#point .point_all li span {float:right;color:#485172;font-weight:bold}
|
||||
#point .point_all li:last-child {border-left:1px solid #d6e2f4}
|
||||
#point .point_all .full_li {width:100%;border-bottom:1px solid #d6e2f4;text-align:left}
|
||||
#point .point_all .full_li span {color:#000;font-weight:bold;font-size:1.2em}
|
||||
#point .point_status{background:#737373;border:0;color:#fff;font-weight:bold;font-size:1.083em;text-align:left}
|
||||
#point .point_status:after {display:block;visibility:hidden;clear:both;content:""}
|
||||
#point .point_status span{margin-left:10px;float:right}
|
||||
|
||||
.point_list {}
|
||||
.point_list li:first-child {border-top:1px solid #ececec}
|
||||
.point_list li {border-bottom:1px solid #ececec;background:#fff;padding:15px;list-style:none;position:relative}
|
||||
.point_list li:after {display:block;visibility:hidden;clear:both;content:""}
|
||||
|
||||
.point_list .point_use {background:#f6f6f6}
|
||||
.point_list .point_use .point_num {font-size:1.25em;color:#ff4f76;font-weight:bold;float:right}
|
||||
.point_list .point_num {font-size:1.25em;color:#3a8afd;font-weight:bold;position:absolute;right:15px;top:25px}
|
||||
.point_list .point_top {line-height:15px;margin:0 0 5px}
|
||||
.point_list .point_top:after {display:block;visibility:hidden;clear:both;content:""}
|
||||
.point_list .point_tit {font-weight:bold;float:left;font-size:1.083em;display:block}
|
||||
.point_list .point_date1 {float:left;color:#888d92}
|
||||
.point_list .point_date {float:left;color:#888d92}
|
||||
.point_list .txt_expired {color:red;margin-left:5px}
|
||||
|
||||
#point .pg_wrap {width:100%;float:inherit;text-align:center}
|
||||
#point .btn_close {margin:20px auto}
|
||||
|
||||
/* 회원 비밀번호 확인 */
|
||||
#mb_confirm {}
|
||||
#mb_confirm h1 {margin:60px 0 30px;font-size:2em}
|
||||
#mb_confirm p {padding:0 20px 40px;border-bottom:1px solid #e9e9e9;font-size:1.083em;line-height:1.4em;color:#656565}
|
||||
#mb_confirm p strong {display:block;color:#3ca1ff;font-size:1.167em;margin:0 0 5px}
|
||||
#mb_confirm fieldset {padding:50px;text-align:left}
|
||||
#mb_confirm fieldset .frm_input {background-color:#fff !important}
|
||||
#mb_confirm label {letter-spacing:-0.1em}
|
||||
#mb_confirm_id {display:block;margin:5px 0 10px;font-weight:bold}
|
||||
#mb_confirm .confirm_id {font-size:0.92em;color:#666}
|
||||
|
||||
/* 비밀글 비밀번호 확인 */
|
||||
#pw_confirm h1 {margin:60px 20px 30px;font-size:2em}
|
||||
#pw_confirm p {padding:0 20px 40px;border-bottom:1px solid #e9e9e9;font-size:1.083em;line-height:1.4em;color:#656565}
|
||||
#pw_confirm p strong {display:block;color:#3ca1ff;font-size:1.167em;margin:0 0 5px}
|
||||
#pw_confirm fieldset {padding:50px;text-align:center}
|
||||
#pw_confirm fieldset .frm_input {background-color:#fff !important}
|
||||
#pw_confirm label {letter-spacing:-0.1em}
|
||||
#pw_confirm_id {display:inline-block;margin-right:20px;font-weight:bold}
|
||||
#mb_confirm_id {}
|
||||
|
||||
/* 폼메일 */
|
||||
#formmail textarea {height:100px}
|
||||
#formmail .formmail_flie {position:relative}
|
||||
#formmail .formmail_flie .file_wr {border:1px solid #ccc;background:#fff;color:#000;vertical-align:middle;border-radius:3px;padding:5px;height:40px;margin:0}
|
||||
#formmail .lb_icon {position:absolute;top:1px;left:1px;border-radius:3px 0 0 3px;height:38px;line-height:38px;width:40px;background:#fff;text-align:center;color:#b2b2b2}
|
||||
#formmail .frm_file {padding-left:50px}
|
||||
#formmail .frm_info {color:#3497d9;font-size:0.92em}
|
||||
.chk_box {position:relative}
|
||||
.chk_box input[type="radio"] {position:absolute;top:0;left:0;width:0;height:0;opacity:0;outline:0;z-index:-1;overflow:hidden}
|
||||
.chk_box input[type="radio"] + label {position:relative;padding-left:23px;display:inline-block;color:#676e70}
|
||||
.chk_box input[type="radio"] + label span {position:absolute;top:0;left:0;width:15px;height:15px;display:block;background:#f7f8f9;border:1px solid #cdd6df;border-radius:50%}
|
||||
.chk_box input[type="radio"]:checked + label {color:#3a8afd}
|
||||
.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%}
|
||||
.chk_box input[type="checkbox"] + label {position:relative;color:#676e70}
|
||||
.chk_box input[type="checkbox"] + label:hover {color:#2172f8}
|
||||
.chk_box input[type="checkbox"] + label span {float:left;width:15px;height:15px;display:block;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}
|
||||
.selec_chk {position:absolute;top:0;left:0;width:0;height:0;opacity:0;outline:0;z-index:-1;overflow:hidden}
|
||||
|
||||
/* 자기소개 */
|
||||
#profile h1 a {}
|
||||
#profile table {margin-bottom:0}
|
||||
#profile table th {text-align:left;padding:10px;width:100px}
|
||||
#profile section {color:#6794d3;background:#fff;padding:10px;border:1px solid #eee;margin:10px 0}
|
||||
#profile h2 {margin:0 0 5px}
|
||||
#profile .profile_name {text-align:center;font-weight:bold}
|
||||
#profile .my_profile_img {display:block;margin:20px 0 5px}
|
||||
#profile .my_profile_img img {border-radius:50%}
|
||||
#profile .profile_img img {border-radius:50%}
|
||||
#profile .profile_name .sv_wrap {font-weight:bold;text-align:left}
|
||||
@@ -0,0 +1,7 @@
|
||||
<?php
|
||||
header('Content-Type: application/json; charset=utf-8');
|
||||
echo json_encode([
|
||||
'status' => 'ok',
|
||||
'post' => $_POST,
|
||||
'method' => $_SERVER['REQUEST_METHOD']
|
||||
]);
|
||||
@@ -0,0 +1,552 @@
|
||||
<?php include_once __DIR__ . '/asset_urls.php'; ?>
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<!-- Google tag (gtag.js) -->
|
||||
<script async src="https://www.googletagmanager.com/gtag/js?id=G-STZ2R5Q7HG"></script>
|
||||
<script>
|
||||
window.dataLayer = window.dataLayer || [];
|
||||
function gtag(){dataLayer.push(arguments);}
|
||||
gtag('js', new Date());
|
||||
|
||||
gtag('config', 'G-STZ2R5Q7HG');
|
||||
</script>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>EG-BIM 소개</title>
|
||||
<link rel="stylesheet" href="../css/reset.css"/>
|
||||
<link rel="stylesheet" href="../css/font.css"/>
|
||||
<link rel="stylesheet" href="../css/style.css"/>
|
||||
|
||||
<link rel="stylesheet" href="https://unpkg.com/aos@2.3.1/dist/aos.css" type="text/css"/>
|
||||
<script src="https://unpkg.com/aos@2.3.1/dist/aos.js"></script>
|
||||
<script src="https://unpkg.com/lenis@1.1.9/dist/lenis.min.js"></script>
|
||||
<link rel="stylesheet" href="https://unpkg.com/lenis@1.1.9/dist/lenis.css">
|
||||
<script type="text/javascript" src="../js/jquery-3.6.1.min.js"></script>
|
||||
<script type="text/javascript" src="../js/jquery.mousewheel.min.js"></script>
|
||||
<script src="https://cdn.jsdelivr.net/npm/gsap@3.12.5/dist/gsap.min.js"></script>
|
||||
<script src="https://cdn.jsdelivr.net/npm/gsap@3.12.5/dist/ScrollTrigger.min.js"></script>
|
||||
<script src="https://cdn.jsdelivr.net/npm/gsap@3.12.5/dist/ScrollToPlugin.min.js"></script>
|
||||
|
||||
<script type="text/javascript" src="../js/common.js"></script>
|
||||
<script type="text/javascript" src="../js/popup.js"></script>
|
||||
<script type="text/javascript" src="../js/value.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
<div class="wrapper">
|
||||
<input id="hid_mb_id" type="hidden" value="<?echo $_SESSION['session_id'];?>"></input>
|
||||
<!-- HEADER -->
|
||||
<?php include_once($member_skin_path.'/main_header.skin.php'); ?>
|
||||
<!-- //Header -->
|
||||
|
||||
|
||||
<!-- 모든 팝업페이지 경로 -->
|
||||
<?php
|
||||
include_once($member_skin_path.'/login.skin.php');
|
||||
include_once($member_skin_path.'/mypage01.skin.php');
|
||||
include_once($member_skin_path.'/register.skin.php');
|
||||
include_once($member_skin_path.'/register_form.skin.php');
|
||||
include_once($member_skin_path.'/mypage02.skin.php');
|
||||
include_once($member_skin_path.'/mypage03.skin.php');
|
||||
include_once($member_skin_path.'/sitemap.skin.php');
|
||||
include_once($member_skin_path.'/privacy.skin.php');
|
||||
include_once($member_skin_path.'/password_lost.skin.php');
|
||||
?>
|
||||
<!-- 모든 팝업페이지 경로 -->
|
||||
<!-- 컨텐츠 시작 -->
|
||||
<div class="container value">
|
||||
<section class="intro js__dark">
|
||||
<div class="top">
|
||||
<h2 data-aos="fade-down" data-aos-duration="1000">EG-BIM 소개</h2>
|
||||
</div>
|
||||
<div class="keyword">
|
||||
<i class="egbim_obj w"></i>
|
||||
<span>도면편집과 성과품 관리에서부터<br class="brk"> 3차원 BIM모델 정보 확인까지</span>
|
||||
</div>
|
||||
<div class="summarys_wrap">
|
||||
<div class="diagram_wrap" data-aos="fade-up" data-aos-duration="1000">
|
||||
<div class="dia_element_wrap">
|
||||
<div class="dia_element">
|
||||
<div class="dia_tit">
|
||||
<span>대량 성과품<br class="brk"> 관리</span>
|
||||
</div>
|
||||
<div class="dia_line"></div>
|
||||
<ul class="dia_li">
|
||||
<li class="dia_li_tit">꾸러미</li>
|
||||
<li>도면찾기/이력관리</li>
|
||||
<li>도면정보 일괄 수정</li>
|
||||
<li>여러도면 다중출력</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="dia_element">
|
||||
<div class="dia_tit">
|
||||
<span>도면<br>보기/수정</span>
|
||||
</div>
|
||||
<div class="dia_line"></div>
|
||||
<ul class="dia_li">
|
||||
<li class="dia_li_tit">그리미</li>
|
||||
<li>UX 디자인</li>
|
||||
<li>듀얼 모니터</li>
|
||||
<li>다양한 편의 기능</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="dia_element">
|
||||
<div class="dia_tit">
|
||||
<span>3D BIM<br>모델 보기</span>
|
||||
</div>
|
||||
<div class="dia_line"></div>
|
||||
<ul class="dia_li">
|
||||
<li class="dia_li_tit">3D Viewer</li>
|
||||
<li>3D BIM 모델 형상<br> 및 속성 정보 보기</li>
|
||||
<li>2D 설계도면 -<br class="brk"> 3D BIM 모델<br>부재 연동</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<div class="dia_appendix">
|
||||
<div class="app_bg">
|
||||
<div class="app_etc">도면정보 연동</div>
|
||||
</div>
|
||||
<div class="app_bg">
|
||||
<div class="app_etc">BIM모델정보 연동</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="dia_circles_wrap">
|
||||
<div class="circle_dash"></div>
|
||||
<div class="circle_belt"></div>
|
||||
<div class="circle_core">
|
||||
<img src="<?php echo egbim_img_url('egbim_logo.svg'); ?>" alt="">
|
||||
</div>
|
||||
<div class="circle_dots move">
|
||||
<div class="dot"></div>
|
||||
<div class="dot"></div>
|
||||
<div class="dot"></div>
|
||||
</div>
|
||||
<div class="circle_dots">
|
||||
<div class="dot"></div>
|
||||
<div class="dot"></div>
|
||||
<div class="dot"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
<div class="feature_bg"></div>
|
||||
<section class="feature_intro full_screen">
|
||||
<span class="grand_tit" data-aos="fade-down" data-aos-duration="1000"><font class="egbim k">eg-bim LogoK</font> 특징</span>
|
||||
<p data-aos="fade-up" data-aos-duration="1000">EG-BIM은 차별화된 인터페이스와<br class="brk"> 다양한 기능으로<br> 디지털전환시대에 맞는<br class="brk"> <b>편리하고 효율적인 작업환경</b>을 제공합니다.</p>
|
||||
<div class="line"></div>
|
||||
<div class="dot"></div>
|
||||
</section>
|
||||
<section class="features js__ani full_screen">
|
||||
<div class="f_wrap interface" data-aos="fade-up" data-aos-delay="100" data-aos-duration="1000">
|
||||
<i></i>
|
||||
<span class="sub_tit">차별화된<br> 인터페이스</span>
|
||||
<p class="sub_text">사용자경험을 바탕으로 수많은 메뉴들을 꼭 필요한 기능으로 단순화하여 쉽게 구성하고, 듀얼모니터 기능으로 새로운 작업환경을 제공함으로써 사용자 편의성을 강화하였습니다.</p>
|
||||
</div>
|
||||
<div class="f_wrap tool" data-aos="fade-up" data-aos-delay="200" data-aos-duration="1000">
|
||||
<i></i>
|
||||
<span class="sub_tit">다양하고 편리한<br> 도면작업 Tool</span>
|
||||
<p class="sub_text">명령어에서부터 인쇄까지 도면작업에 필요한 모든 기능을 사용하기 쉽게 제공함으로써 작업성을 향상시켜줍니다.</p>
|
||||
</div>
|
||||
<div class="f_wrap floorplan" data-aos="fade-up" data-aos-delay="300" data-aos-duration="1000">
|
||||
<i></i>
|
||||
<span class="sub_tit">효율적인<br> 대량의 도면관리</span>
|
||||
<p class="sub_text">도면을 하나하나 열지 않고 도면탐색 및 도면정보의 수정, 인쇄등이 가능한 별도의 도면관리 Tool을 제공하여 도면찾기 및 일괄작업이 편리합니다.</p>
|
||||
</div>
|
||||
<div class="f_wrap bim" data-aos="fade-up" data-aos-delay="400" data-aos-duration="1000">
|
||||
<i></i>
|
||||
<span class="sub_tit">3차원<br> BIM모델 보기</span>
|
||||
<p class="sub_text">디지털전화시대의 BIM설계 환경에 맞게 도면과 3차원 BIM모델을 동시에 확인할 수 있어 설계정보의 Cross Check가 가능합니다.</p>
|
||||
</div>
|
||||
<div class="lines">
|
||||
<div class="v1"></div>
|
||||
<div class="v2"></div>
|
||||
<div class="v3"></div>
|
||||
<div class="h"></div>
|
||||
<div class="d1"></div>
|
||||
<div class="d2"></div>
|
||||
<div class="d3"></div>
|
||||
</div>
|
||||
</section>
|
||||
<div class="system_bg"></div>
|
||||
<section class="system">
|
||||
<div class="system_tit">
|
||||
<span>Keywords<br><em>for System</em></span>
|
||||
</div>
|
||||
<div class="diagram_wrap" data-aos="fade-up" data-aos-duration="1000">
|
||||
<div class="dia_element">
|
||||
<ul class="dia_text">
|
||||
<li>듀얼모니터기능</li>
|
||||
<li>블록라이브러리</li>
|
||||
<li>명령어전체보기</li>
|
||||
<li>블록관리창</li>
|
||||
<li>스타일상세보기</li>
|
||||
<li>인쇄-도곽인식기능</li>
|
||||
<li>건설CALS</li>
|
||||
</ul>
|
||||
<div class="line"></div>
|
||||
</div>
|
||||
<div class="dia_element">
|
||||
<ul class="dia_text">
|
||||
<li>사용자 지정폴더</li>
|
||||
<li>도면 미리보기</li>
|
||||
<li>도면 정보연동</li>
|
||||
<li>도면정보 일괄수정</li>
|
||||
<li>여러도면 일괄출력</li>
|
||||
</ul>
|
||||
<div class="line"></div>
|
||||
</div>
|
||||
<div class="dia_element">
|
||||
<ul class="dia_text">
|
||||
<li>BIM모델 정보연동</li>
|
||||
<li>도면-BIM모델<br class="brk"> 동시보기</li>
|
||||
<li>BIM모델 상세보기</li>
|
||||
<li>속성정보</li>
|
||||
</ul>
|
||||
<div class="line"></div>
|
||||
</div>
|
||||
<div class="dia_element">
|
||||
<ul class="dia_text">
|
||||
<li>사용자경험</li>
|
||||
<li>차별화된 디자인</li>
|
||||
</ul>
|
||||
<div class="line"></div>
|
||||
</div>
|
||||
<div class="dia_circles_wrap">
|
||||
<div class="circle_belt"></div>
|
||||
<div class="circle_core">
|
||||
<span><b>그리미</b><br>도면작업</span>
|
||||
<span><b>꾸러미</b><br>도면관리</span>
|
||||
<span><b>3D<br class="brk"> Viewer</b><br>BIM모델보기</span>
|
||||
<span><em>UX디자인</em></span>
|
||||
</div>
|
||||
<div class="circle_dots move">
|
||||
<div class="dot"></div>
|
||||
<div class="dot"></div>
|
||||
<div class="dot"></div>
|
||||
</div>
|
||||
<div class="circle_dots">
|
||||
<div class="dot"></div>
|
||||
<div class="dot"></div>
|
||||
<div class="dot"></div>
|
||||
<div class="dot"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
</div>
|
||||
<!-- //컨텐츠 시작 -->
|
||||
<!-- FOOTER -->
|
||||
<?php include_once($member_skin_path.'/main_footer.skin.php'); ?>
|
||||
<!-- //FOOTER -->
|
||||
</div>
|
||||
<script>
|
||||
AOS.init();
|
||||
|
||||
const lenis = new Lenis()
|
||||
lenis.on('scroll', (e) => {
|
||||
// console.log(e)
|
||||
})
|
||||
lenis.on('scroll', ScrollTrigger.update)
|
||||
gsap.ticker.add((time)=>{
|
||||
lenis.raf(time * 1000)
|
||||
})
|
||||
gsap.ticker.lagSmoothing(0)
|
||||
</script>
|
||||
</body>
|
||||
|
||||
<script>
|
||||
$(function(){
|
||||
// footer family site toggle
|
||||
$('.family_btn').click(function(e){
|
||||
e.stopPropagation();
|
||||
$('.family_list, .family_btn').toggleClass('family_on');
|
||||
});
|
||||
$(document).click(function(e){
|
||||
if(!$(e.target).closest('.family_wrap').length){
|
||||
$('.family_list, .family_btn').removeClass('family_on');
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
// 회원 탈퇴
|
||||
function member_leave() {
|
||||
if (confirm("회원에서 탈퇴 하시겠습니까?"))
|
||||
location.href = '<?php echo G5_BBS_URL ?>/member_leave.php';
|
||||
}
|
||||
// 회원 탈퇴
|
||||
|
||||
|
||||
let x = document.cookie;
|
||||
if(x.includes("tmp_1=John")){
|
||||
deleteCookie("tmp_1");
|
||||
$('#pop_mypage02').show();
|
||||
}
|
||||
|
||||
function deleteCookie(name) {
|
||||
document.cookie = name + "=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/egbim;";
|
||||
document.cookie = name + "=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/egbim/bbs;";
|
||||
document.cookie = name + "=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/egbim/faq;";
|
||||
document.cookie = name + "=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/egbim/qa;";
|
||||
}
|
||||
function getCookie(cname) {
|
||||
let name = cname + "=";
|
||||
let decodedCookie = decodeURIComponent(document.cookie);
|
||||
let ca = decodedCookie.split(';');
|
||||
for(let i = 0; i <ca.length; i++) {
|
||||
let c = ca[i];
|
||||
while (c.charAt(0) == ' ') {
|
||||
c = c.substring(1);
|
||||
}
|
||||
if (c.indexOf(name) == 0) {
|
||||
return c.substring(name.length, c.length);
|
||||
}
|
||||
}
|
||||
return "";
|
||||
}
|
||||
|
||||
//descope 로그인, 로그아웃 js
|
||||
function updateHeaderMenu() {
|
||||
var isLoggedIn = !!sessionStorage.getItem("sessionJwt");
|
||||
// role 체크 예시 (로그인 시 저장해놓은 값)
|
||||
var isAdmin = sessionStorage.getItem('userRole') === 'super';
|
||||
|
||||
if (isLoggedIn) {
|
||||
$('.my_join2, .my_login2').show();
|
||||
$('.my_join, .my_login').hide();
|
||||
|
||||
// 마이페이지/관리자 메뉴 동적 출력
|
||||
if (isAdmin) {
|
||||
$('#my_join2').html("<a href='http://eg-bim.com/egbim/adm/index.php' target='_blank'>관리페이지</a>");
|
||||
} else {
|
||||
$('#my_join2').html("<a href='javascript:mypage03();'>마이페이지</a>");
|
||||
}
|
||||
} else {
|
||||
$('.my_join2, .my_login2').hide();
|
||||
$('.my_join, .my_login').show();
|
||||
$('#my_join2').html(""); // 혹시모를 내용 초기화
|
||||
}
|
||||
}
|
||||
|
||||
function descopeLogout() {
|
||||
fetch('/egbim/skin/member/basic/descope_logout.php', {
|
||||
method: 'POST',
|
||||
credentials: 'include' // PHPSESSID 쿠키 전송
|
||||
})
|
||||
.then(res => {
|
||||
if (!res.ok) throw new Error('서버 로그아웃 실패');
|
||||
// 1) 로컬 저장소 정리
|
||||
// sessionStorage.removeItem("refreshJwt");
|
||||
// sessionStorage.removeItem("sessionJwt");
|
||||
// sessionStorage.removeItem("userRole");
|
||||
// sessionStorage.removeItem("userName");
|
||||
// sessionStorage.removeItem("loginId");
|
||||
|
||||
sessionStorage.clear();
|
||||
localStorage.clear();
|
||||
// 2) UI 갱신
|
||||
updateHeaderMenu();
|
||||
// 3) 로그인 페이지로 이동
|
||||
window.location.href = '/egbim/index.php';
|
||||
})
|
||||
.catch(err => {
|
||||
console.error(err);
|
||||
alert('로그아웃 중 오류가 발생했습니다.');
|
||||
});
|
||||
}
|
||||
|
||||
$(document).ready(function() {
|
||||
// 기존에 있던 updateHeaderMenu() 호출 뒤에
|
||||
$('#my_login2 a').off('click').on('click', function(e){
|
||||
e.preventDefault();
|
||||
descopeLogout();
|
||||
});
|
||||
});
|
||||
|
||||
$(document).ready(function() {
|
||||
updateHeaderMenu();
|
||||
// (필요하다면, 로그인 성공 후에도 항상 updateHeaderMenu(); 호출)
|
||||
});
|
||||
|
||||
//descope login
|
||||
$('#flogin button[type=submit]').click(function(e){
|
||||
e.preventDefault();
|
||||
let mb_id = $('#login_id').val();
|
||||
let mb_password = $('#login_pw').val();
|
||||
|
||||
$.ajax({
|
||||
url : '/egbim/skin/member/basic/descope_login.php',
|
||||
data : {
|
||||
'mb_id' : mb_id,
|
||||
'mb_password' : mb_password
|
||||
},
|
||||
type : "POST",
|
||||
dataType : "json",
|
||||
success : function(res){
|
||||
if(res.status === "ok") {
|
||||
// 토큰 저장
|
||||
// sessionStorage.setItem("refreshJwt", res.refreshJwt);
|
||||
sessionStorage.setItem("sessionJwt", res.sessionJwt);
|
||||
|
||||
// ✅ 사용자 정보 저장
|
||||
if (res.user) {
|
||||
sessionStorage.setItem("loginId", res.user.loginIds?.[0] || '');
|
||||
sessionStorage.setItem("userName", res.user.name || '');
|
||||
sessionStorage.setItem("company", res.user.customAttributes?.company || '');
|
||||
sessionStorage.setItem("familyCompany", res.user.customAttributes?.familyCompany || '');
|
||||
sessionStorage.setItem("position", res.user.customAttributes?.position || '');
|
||||
sessionStorage.setItem("team", res.user.customAttributes?.team || '');
|
||||
sessionStorage.setItem("familyUniqueKey", res.user.customAttributes?.familyUniqueKey || '');
|
||||
sessionStorage.setItem("phone", res.user.phone || '');
|
||||
}
|
||||
|
||||
// ✅ 추가: 관리자 등 정보 저장
|
||||
if(res.user && res.user.roleNames && res.user.roleNames[0])
|
||||
sessionStorage.setItem("userRole", res.user.roleNames[0]);
|
||||
else
|
||||
sessionStorage.removeItem("userRole");
|
||||
|
||||
// ✅ 로그인 후 메뉴 갱신
|
||||
updateHeaderMenu();
|
||||
|
||||
// UI 처리
|
||||
$('.popup_wrap').hide();
|
||||
$('body').css('overflow', '');
|
||||
lenis.start();
|
||||
// alert('로그인 하셨습니다.');
|
||||
} else {
|
||||
alert(res.message || "로그인 실패");
|
||||
|
||||
// 🔴 실패 횟수에 따라 안내 배너 교체
|
||||
if (res.failCount && res.failCount >= 8) {
|
||||
updateLoginBanner("fail");
|
||||
}
|
||||
}
|
||||
},
|
||||
error : function(err){
|
||||
alert(err.statusText || "통신 오류");
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
// ✅ 배너 교체 함수
|
||||
function updateLoginBanner(type = "default") {
|
||||
const $banner = $('#login_notice_banner');
|
||||
if (!$banner.length) return;
|
||||
|
||||
if (type === "default") {
|
||||
$banner.css({ background: "#063e01ff", color: "#fff" });
|
||||
$banner.find("strong").text("[로그인 시스템 변경 안내]");
|
||||
$banner.find("p.left").html(`
|
||||
더 나은 보안을 위해 2025년 8월 8일부터 로그인 시스템이 변경되었습니다.<br>
|
||||
기존 회원 또한 신규 시스템에 맞춰 재가입을 진행해주시기 바랍니다.
|
||||
`);
|
||||
$banner.find("p:last").html(`※ 로그인 및 가입 관련 문의: <strong>010-8721-7453</strong>`);
|
||||
}
|
||||
|
||||
if (type === "fail") {
|
||||
$banner.css({ background: "#6a0202ff", color: "#faf6f6ff" });
|
||||
$banner.find("strong").text("[로그인 시도 제한 안내]");
|
||||
$banner.find("p.left").html(`
|
||||
비밀번호 입력을 <strong>7회 이상 연속 실패</strong>하셨습니다.<br>
|
||||
<strong>8번째 시도부터 3분 대기</strong>가 적용됩니다.<br>
|
||||
10회 이상 실패 시 계정이 잠금 처리됩니다.
|
||||
`);
|
||||
$banner.find("p:last").text("");
|
||||
}
|
||||
}
|
||||
|
||||
//회원가입 약관동의
|
||||
// $('#fregister button[type=submit]').click(function(e){
|
||||
// e.preventDefault();
|
||||
// let agree11 = $('#agree11').val();
|
||||
// let agree21 = $('#agree21').val();
|
||||
// $.ajax({
|
||||
// url : '<?php echo G5_URL ?>/bbs/register_form.php',
|
||||
// type : "POST",
|
||||
// datatype : "json",
|
||||
// contentType: 'application/json; charset=utf-8',
|
||||
// data : {
|
||||
// 'agree11' : agree11,
|
||||
// 'agree21' : agree21
|
||||
// },
|
||||
// success : function(data){
|
||||
// var ss='';
|
||||
// for(i=0; i<data.length; i++){
|
||||
// ss=ss + data[i];
|
||||
// }
|
||||
// },
|
||||
// error : function(err){
|
||||
// alert(err);
|
||||
// }
|
||||
// });
|
||||
// });
|
||||
|
||||
// 이지빔 프로그램 회원가입 url 쿼리스트링 파싱 함수
|
||||
function getQueryString(name) {
|
||||
const intro = document.querySelector('.intro_wrap');
|
||||
intro.style.display = "none";
|
||||
const mainMask = document.querySelector('.main_mask');
|
||||
mainMask.classList.add('skip');
|
||||
// mainMask.style.aimation = 'none';
|
||||
const urlParams = new URLSearchParams(window.location.search);
|
||||
return urlParams.get(name);
|
||||
}
|
||||
|
||||
$(document).ready(function() {
|
||||
const popupParam = getQueryString('popup');
|
||||
|
||||
if (popupParam === 'signup') {
|
||||
console.log('쿼리 감지: signup → 회원가입 팝업 자동 오픈 시도');
|
||||
$('#pop_agreement').show(); // 팝업 보여주기
|
||||
|
||||
// 스크롤 잠금 (사용 중이면)
|
||||
$('body').css('overflow', 'hidden');
|
||||
if (typeof lenis !== 'undefined') {
|
||||
lenis.stop();
|
||||
}
|
||||
}
|
||||
|
||||
// 팝업 닫기 버튼 이벤트 연결
|
||||
$('#pop_agreement .btn_close').on('click', function() {
|
||||
$('#pop_agreement').hide();
|
||||
$('body').css('overflow', '');
|
||||
if (typeof lenis !== 'undefined') {
|
||||
lenis.start();
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
//이지빔 프로그램 비밀번호 재설정 url 쿼리스트링 파싱 함수
|
||||
$(document).ready(function() {
|
||||
const urlParams = new URLSearchParams(window.location.search);
|
||||
const popup = urlParams.get('popup');
|
||||
const token = urlParams.get('t');
|
||||
|
||||
if (popup === 'pwreset') {
|
||||
// 팝업 전체 열기
|
||||
$('#pop_search').show();
|
||||
$('body').css('overflow', 'hidden');
|
||||
|
||||
// 내부 컨텐츠 모두 숨기기
|
||||
$('#pop_search .popup_contents_wrap').hide();
|
||||
|
||||
if (token) {
|
||||
// 토큰이 있으면 비밀번호 재설정 단계
|
||||
if (!sessionStorage.getItem('pwreset_shown')) {
|
||||
$('#password_reset').show();
|
||||
sessionStorage.setItem('pwreset_shown', '1');
|
||||
}
|
||||
} else {
|
||||
// 토큰이 없으면 아이디 입력 단계 (첫 번째 .popup_contents_wrap)
|
||||
$('#pop_search .popup_contents_wrap').first().show();
|
||||
}
|
||||
}
|
||||
|
||||
// 닫기 버튼
|
||||
$('#pop_search .btn_close').on('click', function() {
|
||||
$('#pop_search').hide();
|
||||
$('body').css('overflow', '');
|
||||
});
|
||||
});
|
||||
</script>
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user