first
This commit is contained in:
21
modules/member/themes/_mobile/rc-default/LICENSE
Normal file
21
modules/member/themes/_mobile/rc-default/LICENSE
Normal file
@@ -0,0 +1,21 @@
|
||||
The RBL License
|
||||
|
||||
Copyright (c) 2011-2018 Redblock, Inc.
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in
|
||||
all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
THE SOFTWARE.
|
||||
10
modules/member/themes/_mobile/rc-default/README.md
Normal file
10
modules/member/themes/_mobile/rc-default/README.md
Normal file
@@ -0,0 +1,10 @@
|
||||
|
||||
# 알씨 심플
|
||||
|
||||
모바일 전용 회원모듈 테마 입니다.
|
||||
|
||||
## 주요 프론트
|
||||
- 회원가입
|
||||
- 로그인
|
||||
- 비밀번호초기화
|
||||
- 개인정보수정
|
||||
@@ -0,0 +1,91 @@
|
||||
<div class="card card-full border-bottom rounded-0 bg-white" data-role="item" data-uid="{$post_uid}">
|
||||
<div class="px-3 pt-3 d-flex justify-content-between">
|
||||
<div class="media" data-toggle="profile"
|
||||
data-target="#modal-member-profile"
|
||||
data-mbruid="{$post_mbruid}"
|
||||
data-title="{$post_nic}"
|
||||
data-url="{$post_profile_url}">
|
||||
<span class="media-left">
|
||||
<img class="media-object img-circle" data-role="avatar" src="{$post_avatar}" alt="" style="width:2.5rem">
|
||||
</span>
|
||||
<div class="media-body">
|
||||
<div class="f15 line-clamp-2" style="line-height: 1.2">{$post_nic}</div>
|
||||
<ul class="list-inline f13 text-muted mt-1 mb-0">
|
||||
<li class="list-inline-item"><time data-plugin="timeago" datetime="{$post_d_modify}"></time></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<div class="px-1">
|
||||
<a href="#popup-post-postMore"
|
||||
data-toggle="popup"
|
||||
data-role="more"
|
||||
data-uid="{$post_uid}" class="icon material-icons text-muted f18">
|
||||
more_vert
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="card-block px-3 py-2"
|
||||
data-toggle="modal"
|
||||
data-target="#modal-post-view"
|
||||
data-format="{$post_format}"
|
||||
data-start="{$post_start}"
|
||||
data-uid="{$post_uid}"
|
||||
data-featured="{$post_featured_1by1}"
|
||||
data-provider="{$post_provider}"
|
||||
data-videoId="{$post_videoId}"
|
||||
data-url="/post/{$post_cid}">
|
||||
<p>{$post_subject} <span class="f14 text-muted mt-2 {$post_has_content}">자세히 보기</span></p>
|
||||
<div class="position-relative embed-responsive embed-responsive-1by1 bg-faded {$post_has_featured}">
|
||||
<img class="card-img-top img-fluid rounded-0" src="{$post_featured_1by1}" alt="" data-role="featured">
|
||||
<time class="badge badge-default bg-black rounded-0 position-absolute f14" style="right:1px;bottom:1px" data-role="time">{$post_time}</time>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<footer class="d-flex justify-content-between px-3 mb-3">
|
||||
<div class="">
|
||||
<button type="button"
|
||||
class="btn btn-link muted-link px-1 text-decoration-none {$is_post_liked}"
|
||||
data-toggle="view_opinion"
|
||||
data-title="동영상이 마음에 드시나요?"
|
||||
data-subtext="로그인하여 의견을 알려주세요."
|
||||
data-send="_ajax"
|
||||
data-uid="{$post_uid}"
|
||||
data-opinion="like"
|
||||
data-role="btn_post_like_{$post_uid}">
|
||||
<i class="material-icons align-text-bottom f20 align-middle">thumb_up</i>
|
||||
<span class="ml-1 f13" data-role="likes_{$post_uid}">{$post_likes}</span>
|
||||
</button>
|
||||
<button type="button" class="btn btn-link muted-link px-1 text-decoration-none ml-2 {$is_post_disliked}"
|
||||
data-toggle="view_opinion"
|
||||
data-target="#popup-login-guide"
|
||||
data-title="동영상이 마음에 안 드시나요?"
|
||||
data-subtext="로그인하여 의견을 알려주세요."
|
||||
data-send="_ajax"
|
||||
data-uid="{$post_uid}"
|
||||
data-opinion="dislike"
|
||||
data-role="btn_post_dislike_{$post_uid}">
|
||||
<i class="material-icons align-text-bottom f20 align-middle">thumb_down</i>
|
||||
<span class="ml-1 f13" data-role="dislikes_{$post_uid}">{$post_dislikes}</span>
|
||||
</button>
|
||||
</div>
|
||||
<div class="">
|
||||
<button type="button" class="btn btn-link text-muted px-1 text-decoration-none"
|
||||
data-toggle="modal"
|
||||
data-target="#modal-post-view"
|
||||
data-format="{$post_format}"
|
||||
data-start="{$post_start}"
|
||||
data-uid="{$post_uid}"
|
||||
data-featured="{$featured_1by1}"
|
||||
data-provider="{$post_provider}"
|
||||
data-videoId="{$post_videoId}"
|
||||
data-url="/post/{$post_cid}">
|
||||
<i class="material-icons align-text-bottom f20 align-middle">comment</i>
|
||||
<span class="ml-1 f13" data-role="comment_{$post_uid}">{$post_comment}</span>
|
||||
</button>
|
||||
</div>
|
||||
</footer>
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
@@ -0,0 +1,27 @@
|
||||
<li class="media mb-3" data-role="item" data-uid="{$uid}">
|
||||
<a class="w-100"
|
||||
data-toggle="profile"
|
||||
data-target="#modal-member-profile"
|
||||
data-mbruid="{$mbruid}"
|
||||
data-title="{$nic}"
|
||||
data-url="{$profile_url}">
|
||||
|
||||
<div class="pull-left text-xs-center" style="width:6.25rem">
|
||||
<img class="border img-circle" src="{$avatar}" alt="" style="width: 4.0625rem">
|
||||
</div>
|
||||
|
||||
<div class="media-body">
|
||||
<h5 class="h6 my-1 font-weight-light line-clamp-3">
|
||||
{$nic}
|
||||
</h5>
|
||||
<div class="mb-1 f13 text-muted">
|
||||
구독자 {$num_follower}명 <br>
|
||||
동영상 {$num_post}개
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</a>
|
||||
<span class="badge badge-default badge-inverted">
|
||||
<a href="#popup-post-postMore" data-toggle="popup" data-uid="{$post_uid}" class="icon material-icons text-muted f18">more_vert</a>
|
||||
</span>
|
||||
</li>
|
||||
@@ -0,0 +1,27 @@
|
||||
<li class="media mb-2" data-role="item" data-uid="{$list_uid}">
|
||||
|
||||
<div class="media" data-toggle="modal" data-target="#modal-post-listview" class="ml-1" data-start="" data-url="/list/{$list_id}" data-id="{$list_id}" data-title="{$list_name}">
|
||||
|
||||
<div class="media-left">
|
||||
<div class="embed-responsive embed-responsive-16by9 bg-faded">
|
||||
<img class="media-object " src="{$list_featured_16by9_sm}" class="img-fluid" alt="" style="width:10rem">
|
||||
<span class="list_mask">
|
||||
<span class="txt">{$list_num}<i class="fa fa-list-ul d-block" aria-hidden="true"></i></span>
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="media-body">
|
||||
<div class="line-clamp-3">{$list_name}</div>
|
||||
<p>포스트 {$list_num}개</p>
|
||||
<ul class="list-inline f13 text-muted mt-1 mb-0">
|
||||
<li class="list-inline-item">{$list_nic}</li>
|
||||
<li class="list-inline-item"><time data-plugin="timeago" datetime="{$list_d_modify}"></time></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<span class="badge badge-default badge-inverted">
|
||||
<a href="#popup-post-admin" data-toggle="popup" data-uid="{$list_uid}" class="icon material-icons text-muted">more_vert</a>
|
||||
</span>
|
||||
</li>
|
||||
36
modules/member/themes/_mobile/rc-default/_html/_newPost.html
Normal file
36
modules/member/themes/_mobile/rc-default/_html/_newPost.html
Normal file
@@ -0,0 +1,36 @@
|
||||
<li class="media mb-2" data-role="item" data-uid="{$uid}">
|
||||
<a data-toggle="modal" class="w-100"
|
||||
data-target="#modal-post-view"
|
||||
data-uid="{$newpost_uid}"
|
||||
data-featured="{$newpost_featured_16by9}"
|
||||
data-provider="{$newpost_provider}"
|
||||
data-videoId="{$newpost_videoId}"
|
||||
data-format="{$newpost_format}"
|
||||
data-url="/post/{$newpost_cid}">
|
||||
|
||||
<div class="pull-left mr-2 {$newpost_has_featured}">
|
||||
<div class="embed-responsive embed-responsive-16by9 bg-faded">
|
||||
<img class="media-object border" src="{$newpost_featured_16by9_sm}" alt="" style="width: 10rem">
|
||||
<time class="badge badge-default rounded-0 position-absolute" style="top:auto;left:auto;right:0.0625rem;bottom:0.0625rem">{$newpost_time}</time>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="media-body">
|
||||
<h5 class="h6 my-1 font-weight-light line-clamp-3">
|
||||
{$newpost_subject}
|
||||
</h5>
|
||||
<div class="mb-1">
|
||||
<ul class="list-inline d-inline-block f13 text-muted">
|
||||
<li class="list-inline-item">조회수 {$newpost_hit}회 </li>
|
||||
<li class="list-inline-item">
|
||||
<time data-plugin="timeago" datetime="{$newpost_d_modify}"></time>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</a>
|
||||
<span class="badge badge-default badge-inverted">
|
||||
<a href="#popup-post-optionMore" data-toggle="popup" data-uid="{$newpost_uid}" class="icon material-icons text-muted f18">more_vert</a>
|
||||
</span>
|
||||
</li>
|
||||
@@ -0,0 +1,5 @@
|
||||
<div class="d-flex align-items-center justify-content-center p-5 text-xs-center text-muted f13" style="height: 55vh">
|
||||
<div>
|
||||
<p class="f16">{$none_txt}</p>
|
||||
</div>
|
||||
</div>
|
||||
@@ -0,0 +1,36 @@
|
||||
<li class="media mb-2" data-role="item" data-uid="{$uid}">
|
||||
<a data-toggle="modal" class="w-100"
|
||||
data-target="#modal-post-view"
|
||||
data-uid="{$post_uid}"
|
||||
data-featured="{$post_featured_16by9}"
|
||||
data-provider="{$post_provider}"
|
||||
data-videoId="{$post_videoId}"
|
||||
data-format="{$post_format}"
|
||||
data-url="/post/{$post_cid}">
|
||||
|
||||
<div class="pull-left mr-2 {$post_has_featured}">
|
||||
<div class="embed-responsive embed-responsive-16by9 bg-faded">
|
||||
<img class="media-object border" src="{$post_featured_16by9_sm}" alt="" style="width: 10rem">
|
||||
<time class="badge badge-default rounded-0 position-absolute" style="top:auto;left:auto;right:0.0625rem;bottom:0">{$post_time}</time>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="media-body">
|
||||
<h5 class="h6 my-1 font-weight-light line-clamp-3">
|
||||
{$post_subject}
|
||||
</h5>
|
||||
<div class="mb-1">
|
||||
<ul class="list-inline d-inline-block f13 text-muted">
|
||||
<li class="list-inline-item">조회수 {$post_hit}회 </li>
|
||||
<li class="list-inline-item">
|
||||
<time data-plugin="timeago" datetime="{$post_d_modify}"></time>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</a>
|
||||
<span class="badge badge-default badge-inverted">
|
||||
<a href="#popup-post-postMore" data-toggle="popup" data-uid="{$post_uid}" class="icon material-icons text-muted f18">more_vert</a>
|
||||
</span>
|
||||
</li>
|
||||
@@ -0,0 +1,23 @@
|
||||
<li class="table-view-cell {$check_read}">
|
||||
<a data-toggle="sheet" href="#sheet-noti"
|
||||
data-from="{$from}"
|
||||
data-icon="{$icon}"
|
||||
data-avatar="{$avatar}"
|
||||
data-uid="{$uid}">
|
||||
<span class="media-object pull-left position-relative">
|
||||
<img class="img-circle" src="{$avatar}" style="width:3.25rem">
|
||||
<i class="{$icon} bg-primary position-absolute {$check_from}"></i>
|
||||
</span>
|
||||
|
||||
<div class="media-body">
|
||||
<span class="d-flex justify-content-between">
|
||||
<span>{$title} <span class="badge">{$from}</span></span>
|
||||
<span style="margin-top: -.2rem">
|
||||
<span class="rb-new ml-1 {$check_new}"></span>
|
||||
<time class="small badge badge-default badge-inverted" data-plugin="timeago" datetime="{$datetime}"></time>
|
||||
</span>
|
||||
</span>
|
||||
<p>{$message}</p>
|
||||
</div>
|
||||
</a>
|
||||
</li>
|
||||
111
modules/member/themes/_mobile/rc-default/_html/profile.html
Normal file
111
modules/member/themes/_mobile/rc-default/_html/profile.html
Normal file
@@ -0,0 +1,111 @@
|
||||
<div class="swiper-container" style="overflow: hidden">
|
||||
<div class="swiper-wrapper">
|
||||
<div class="swiper-slide" data-role="profile_home">
|
||||
|
||||
<div class="member-profile" style="background-image: url({$cover});height:5.3125rem;background-size: cover;background-position: center center;">
|
||||
<img src="{$cover}" alt="" class="d-none" data-role="cover">
|
||||
</div>
|
||||
|
||||
<div class="d-flex align-items-center justify-content-between bg-faded p-3">
|
||||
<div class="media">
|
||||
<span class="media-left mr-1">
|
||||
<img class="media-object img-circle" src="{$avatar}" alt="" style="width:4.25rem">
|
||||
</span>
|
||||
<div class="media-body pt-1">
|
||||
<h4 class="h5 mb-1" style="font-size:1.2rem;font-weight: 400;">
|
||||
{$nic}
|
||||
</h4>
|
||||
<div class="f14 text-muted">구독자 {$num_follower}명</div>
|
||||
|
||||
{$profile_follow}
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
{$profile_setting}
|
||||
</div>
|
||||
</div><!-- /.d-flex -->
|
||||
|
||||
<section data-role="newPost" class="p-3 border-bottom">
|
||||
<h4 class="f18">최신 동영상</h4>
|
||||
<ul class="media-list">
|
||||
{$newPost}
|
||||
</ul>
|
||||
|
||||
<div data-role="none" class="d-none">
|
||||
<div class="d-flex align-items-center justify-content-center p-5 text-xs-center text-muted f13" style="height: 60vh">
|
||||
<div>
|
||||
<p class="f16">등록된 동영상이 없습니다.</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section data-role="newPost" class="p-3 border-bottom">
|
||||
<h4 class="f18">최신 리스트</h4>
|
||||
<ul class="media-list">
|
||||
{$newList}
|
||||
</ul>
|
||||
</section>
|
||||
|
||||
</div><!-- /.swiper-slide -->
|
||||
|
||||
<div class="swiper-slide" data-role="postList">
|
||||
<div class="content-padded">
|
||||
<a class="btn btn-link text-reset pl-0" style="margin-top:-0.5rem"
|
||||
data-toggle="popup" href="#popup-post-sort">
|
||||
<div class="d-flex align-items-center">
|
||||
<i class="material-icons text-muted mr-2">notes</i>
|
||||
정렬 기준
|
||||
<i class="material-icons text-muted ml-1">arrow_drop_down</i>
|
||||
</div>
|
||||
</a>
|
||||
<ul class="media-list" data-role="list"></ul>
|
||||
</div>
|
||||
</div><!-- /.swiper-slide -->
|
||||
|
||||
<div class="swiper-slide" data-role="listList">
|
||||
<div class="content-padded">
|
||||
<a class="btn btn-link text-reset pl-0" style="margin-top:-0.5rem"
|
||||
data-toggle="popup" href="#popup-post-sort">
|
||||
<div class="d-flex align-items-center">
|
||||
<i class="material-icons text-muted mr-2">notes</i>
|
||||
정렬 기준
|
||||
<i class="material-icons text-muted ml-1">arrow_drop_down</i>
|
||||
</div>
|
||||
</a>
|
||||
<ul class="media-list" data-role="list"></ul>
|
||||
</div>
|
||||
</div><!-- /.swiper-slide -->
|
||||
|
||||
<div class="swiper-slide" data-role="commList">
|
||||
<div class="media-list" data-role="list"></div>
|
||||
</div><!-- /.swiper-slide -->
|
||||
|
||||
<div class="swiper-slide" data-role="followList">
|
||||
<div class="p-4">
|
||||
<ul class="media-list" data-role="list"></ul>
|
||||
</div>
|
||||
</div><!-- /.swiper-slide -->
|
||||
|
||||
<div class="swiper-slide">
|
||||
|
||||
<h6 class="f14 px-3 mt-4">
|
||||
정보
|
||||
</h6>
|
||||
<div class="border-top border-bottom">
|
||||
<div class="px-3 py-2">
|
||||
<p class="text-muted">{$bio}</p>
|
||||
가입일 : {$d_regis}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="text-xs-center mt-2">
|
||||
<strong>조회수 {$hit_post} 회</strong>
|
||||
</div>
|
||||
|
||||
</div><!-- /.swiper-slide -->
|
||||
|
||||
</div><!-- /.swiper-wrapper -->
|
||||
</div><!-- /.swiper-class-container -->
|
||||
@@ -0,0 +1,7 @@
|
||||
<button type="button" class="btn btn-link px-0 py-1 {$isFollowing}"
|
||||
data-title="채널을 구독하시겠습니까?"
|
||||
data-subtext="채널을 구독하려면 로그인하세요."
|
||||
data-toggle="follow"
|
||||
data-mbruid="{$mbruid}">
|
||||
구독
|
||||
</button>
|
||||
@@ -0,0 +1,5 @@
|
||||
<button class="btn btn-link"
|
||||
data-target="#modal-settings-profile"
|
||||
data-toggle="changeModal">
|
||||
<span class="icon icon-gear text-muted"></span>
|
||||
</button>
|
||||
@@ -0,0 +1,36 @@
|
||||
<li class="media mb-2">
|
||||
<a data-toggle="modal" class="w-100"
|
||||
data-target="#modal-post-view"
|
||||
data-uid="{$newpost_uid}"
|
||||
data-featured="{$newpost_featured_16by9}"
|
||||
data-provider="{$newpost_provider}"
|
||||
data-videoId="{$newpost_videoId}"
|
||||
data-format="{$newpost_format}"
|
||||
data-url="/post/{$newpost_cid}">
|
||||
|
||||
<div class="pull-left mr-2 {$newpost_has_featured}}">
|
||||
<div class="embed-responsive embed-responsive-16by9 bg-faded">
|
||||
<img class="media-object border" src="{$newpost_featured_16by9_sm}" alt="" style="width: 10rem">
|
||||
<time class="badge badge-default rounded-0 position-absolute" style="top:auto;left:auto;right:0.0625rem;bottom:0.0625rem">{$newpost_time}</time>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="media-body">
|
||||
<h5 class="h6 my-1 font-weight-light line-clamp-3">
|
||||
{$newpost_subject}
|
||||
</h5>
|
||||
<div class="mb-1">
|
||||
<ul class="list-inline d-inline-block f13 text-muted">
|
||||
<li class="list-inline-item">조회수 {$newpost_hit}회 </li>
|
||||
<li class="list-inline-item">
|
||||
<time data-plugin="timeago" datetime="{$newpost_d_modify}"></time>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</a>
|
||||
<span class="badge badge-default badge-inverted">
|
||||
<a href="#popup-post-optionMore" data-toggle="popup" data-uid="{$newpost_uid}" class="icon material-icons text-muted f18">more_vert</a>
|
||||
</span>
|
||||
</li>
|
||||
@@ -0,0 +1 @@
|
||||
nopanel.txt
|
||||
1
modules/member/themes/_mobile/rc-default/_var/var.php
Normal file
1
modules/member/themes/_mobile/rc-default/_var/var.php
Normal file
@@ -0,0 +1 @@
|
||||
변수
|
||||
96
modules/member/themes/_mobile/rc-default/join/_main.css
Normal file
96
modules/member/themes/_mobile/rc-default/join/_main.css
Normal file
@@ -0,0 +1,96 @@
|
||||
.card.join-ageement .card-header {
|
||||
background-color: inherit;
|
||||
border-bottom: none;
|
||||
padding-bottom: .425rem;
|
||||
}
|
||||
.card.join-ageement .card-title {
|
||||
margin-bottom: 0;
|
||||
font-size: 1rem;
|
||||
font-weight: 700;
|
||||
padding-top: .525rem;
|
||||
padding-left: 5px;
|
||||
}
|
||||
.card.join-ageement .card-header,
|
||||
.card.join-ageement .card-block {
|
||||
padding: .625rem;
|
||||
}
|
||||
.card.join-ageement .card-block p {
|
||||
margin-bottom: .325rem;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/*step*/
|
||||
.rb-step {
|
||||
height: 3.125rem
|
||||
}
|
||||
.bar-header-secondary.rb-step ~ .content {
|
||||
padding-top: 5.875rem;
|
||||
}
|
||||
.rb-step .nav-inline {
|
||||
position: relative;
|
||||
display: flex;
|
||||
}
|
||||
.rb-step .nav-inline .nav-item {
|
||||
width: 10%;
|
||||
line-height: 3.1rem;
|
||||
z-index: 20
|
||||
}
|
||||
.rb-step .nav-inline .nav-item.active {
|
||||
width: 80%;
|
||||
}
|
||||
|
||||
.rb-step .nav-inline .nav-link {
|
||||
display: none
|
||||
}
|
||||
.rb-step .nav-inline .active .nav-link {
|
||||
margin-left: -4px;
|
||||
display: inline;
|
||||
width: 100%;
|
||||
padding-left: 5px;
|
||||
padding-right: 5px;
|
||||
color: #626470;
|
||||
background-color: #fff
|
||||
}
|
||||
.rb-step .nav-inline .nav-item.active:last-child {
|
||||
background-color: #fff
|
||||
}
|
||||
.rb-step .nav-inline .badge-default {
|
||||
width: 32px;
|
||||
height: 32px;
|
||||
padding: 0;
|
||||
font-size: 1rem;
|
||||
line-height: 28px;
|
||||
background-color: #b4b8c4;
|
||||
border-radius: 100%;
|
||||
text-align: center;
|
||||
border: 2px solid #d8dce2;
|
||||
}
|
||||
.rb-step .nav-inline .active .badge-default {
|
||||
background-color: #0275d8;
|
||||
}
|
||||
|
||||
.rb-step .nav-inline .nav-item + .nav-item,
|
||||
.rb-step .nav-inline .nav-link + .nav-link {
|
||||
margin-left: .625rem;
|
||||
}
|
||||
.rb-step .nav-inline:before {
|
||||
display: block;
|
||||
position: absolute;
|
||||
top: 25px;
|
||||
width: 100%;
|
||||
height: 1px;
|
||||
content: '';
|
||||
background-color: #d8dce2;
|
||||
z-index: 18
|
||||
}
|
||||
|
||||
|
||||
.form-control[name="id"],
|
||||
.form-control[name="name"],
|
||||
.form-control[name="nic"],
|
||||
.form-control[name="email"] {
|
||||
padding: 0.75rem 1.5rem;
|
||||
font-size: 1.25rem;
|
||||
border-radius: 0.125rem;
|
||||
}
|
||||
946
modules/member/themes/_mobile/rc-default/join/component.php
Normal file
946
modules/member/themes/_mobile/rc-default/join/component.php
Normal file
@@ -0,0 +1,946 @@
|
||||
<div id="modal-join" class="modal fast">
|
||||
|
||||
<div class="page center" id="page-join-main">
|
||||
<header class="bar bar-nav bar-light bg-faded px-0">
|
||||
<a class="icon material-icons pull-left px-3" role="button" data-history="back">arrow_back</a>
|
||||
<h1 class="title">
|
||||
회원가입
|
||||
</h1>
|
||||
</header>
|
||||
<nav class="bar bar-tab bar-light bg-faded">
|
||||
<a class="tab-item active" role="button" data-toggle="changeModal" href="#modal-login">
|
||||
<small>이미 가입하셨나요? <span class="pl-2">로그인 하기</span></small>
|
||||
</a>
|
||||
</nav>
|
||||
<main class="content bg-faded">
|
||||
|
||||
<div class="buttons content-padded">
|
||||
<button type="button"class="btn btn-secondary btn-login-phone btn-block" data-toggle="page" data-target="#page-join-form" data-start="#page-join-main">
|
||||
이메일<?php echo $d['member']['join_byPhone']?' 또는 휴대폰 번호':'' ?>로 가입
|
||||
</button>
|
||||
|
||||
<?php if ($d['member']['join_bySocial']): ?>
|
||||
<span class="section-divider"><span>또는</span></span>
|
||||
|
||||
<?php if ($d['connect']['use_k']): ?>
|
||||
<button type="button" class="btn btn-lg btn-secondary btn-block btn-social btn-kakao text-xs-center" data-connect="kakao" role="button">
|
||||
<span></span>
|
||||
카카오톡으로 가입
|
||||
</button>
|
||||
<?php endif; ?>
|
||||
|
||||
<?php if ($d['connect']['use_n']): ?>
|
||||
<button type="button" class="btn btn-lg btn-secondary btn-block btn-social btn-naver text-xs-center" data-connect="naver" role="button">
|
||||
<span></span>
|
||||
네이버로 가입
|
||||
</button>
|
||||
<?php endif; ?>
|
||||
|
||||
<?php if ($d['connect']['use_g']): ?>
|
||||
<button type="button" class="btn btn-lg btn-secondary btn-block btn-social btn-google text-xs-center" data-connect="google" role="button">
|
||||
<span class="fa fa-google"></span>
|
||||
구글로 가입
|
||||
</button>
|
||||
<?php endif; ?>
|
||||
|
||||
<?php if ($d['connect']['use_f']): ?>
|
||||
<button type="button" class="btn btn-lg btn-secondary btn-block btn-social btn-facebook text-xs-center" data-connect="facebook" role="button">
|
||||
<span class="fa fa-facebook"></span>
|
||||
페이스북으로 가입
|
||||
</button>
|
||||
<?php endif; ?>
|
||||
|
||||
<?php if ($d['connect']['use_i']): ?>
|
||||
<button type="button" class="btn btn-lg btn-secondary btn-block btn-social btn-instagram text-xs-center" data-connect="instagram" role="button">
|
||||
<span class="fa fa-instagram"></span>
|
||||
인스타그램으로 가입
|
||||
</button>
|
||||
<?php endif; ?>
|
||||
|
||||
<?php endif; ?>
|
||||
|
||||
</div>
|
||||
|
||||
</main>
|
||||
</div><!-- /#page-main -->
|
||||
|
||||
<div class="page right" id="page-join-form">
|
||||
<header class="bar bar-nav bar-light bg-white px-0">
|
||||
<a class="icon material-icons pull-left px-3" role="button" data-history="back">arrow_back</a>
|
||||
<button class="btn btn-link btn-nav pull-right p-l-1 p-r-2" data-act="send_code" data-type="email" data-device="mobile" tabindex="2">
|
||||
<span class="not-loading">다음</span>
|
||||
<span class="is-loading">
|
||||
<div class="spinner-border spinner-border-sm text-primary" role="status">
|
||||
<span class="sr-only">처리중...</span>
|
||||
</div>
|
||||
</span>
|
||||
</button>
|
||||
<h1 class="title">회원가입</h1>
|
||||
</header>
|
||||
|
||||
<?php if ($d['member']['join_byPhone']): ?>
|
||||
<nav class="bar bar-tab bar-light bg-faded">
|
||||
<a class="tab-item d-none" role="button" data-type="email" data-role="change-input">
|
||||
<small>또는 이메일 가입</small>
|
||||
</a>
|
||||
<a class="tab-item" role="button" data-type="phone" data-role="change-input">
|
||||
<small>또는 휴대폰 번호로 가입</small>
|
||||
</a>
|
||||
</nav>
|
||||
<?php endif; ?>
|
||||
|
||||
<main class="content">
|
||||
|
||||
<div class="content-padded" autocomplete="off">
|
||||
|
||||
<div class="form-list floating px-3">
|
||||
<div class="input-row position-relative d-none" data-role="input-phone">
|
||||
<label>휴대폰 번호(숫자만)</label>
|
||||
<input type="number" name="phone" placeholder="휴대폰 번호" data-role="phone" autocomplete="off" tabindex="1">
|
||||
<div class="invalid-tooltip" data-role="phoneErrorBlock"></div>
|
||||
</div>
|
||||
<div class="input-row position-relative" data-role="input-email">
|
||||
<label>이메일 주소</label>
|
||||
<input type="email" name="email" placeholder="이메일 주소" data-role="email" autocomplete="off">
|
||||
<div class="invalid-tooltip" data-role="emailErrorBlock"></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div><!-- /.content-padded -->
|
||||
|
||||
</main>
|
||||
</div><!-- /#page-join -->
|
||||
|
||||
<div class="page right" id="page-join-code">
|
||||
<header class="bar bar-nav bar-light bg-white px-0">
|
||||
<a class="icon material-icons pull-left px-3" role="button" data-history="back">arrow_back</a>
|
||||
<button class="btn btn-link btn-nav pull-right p-l-1 p-r-2" data-type="phone" data-act="confirm_code" data-device="mobile">
|
||||
확인
|
||||
</button>
|
||||
<h1 class="title">회원가입</h1>
|
||||
</header>
|
||||
<main class="content">
|
||||
|
||||
<div class="content-padded">
|
||||
<div class="form-list floating px-3">
|
||||
<div class="input-row position-relative" data-role="input-phone">
|
||||
<label>인증번호 (6자리)</label>
|
||||
<input type="number" name="confirm_phone_code" data-role="confirm_phone_code" placeholder="인증번호" autocomplete="off">
|
||||
<div class="invalid-tooltip" data-role="phoneCodeBlock"></div>
|
||||
</div>
|
||||
</div>
|
||||
<small class="form-text text-success px-3">
|
||||
<span data-role="target"></span> 로 인증번호를 발송했습니다.<br>
|
||||
6자리 인증번호를 입력해 주세요. (유효시간 <?php echo $d['member']['join_keyexpire'] ?>분) <span data-role="countdown" data-email-countdown="">[00:00]</span><br>
|
||||
인증번호가 오지 않으면 입력정보가 정확한지 확인하여 주세요.
|
||||
</small>
|
||||
</div><!-- /.content-padded -->
|
||||
|
||||
</main>
|
||||
</div>
|
||||
|
||||
</div><!-- /.modal -->
|
||||
|
||||
|
||||
<?php if ($call_modal_join_site): ?>
|
||||
<?php
|
||||
|
||||
$email = $_SESSION['JOIN']['email']; //본인확인된 이메일
|
||||
$phone = $_SESSION['JOIN']['phone']; //본인확인된 휴대폰번호
|
||||
$_SESSION['JOIN'] = ''; //본인확인 세션 초기화
|
||||
?>
|
||||
|
||||
<div id="modal-join-site" class="modal zoom">
|
||||
|
||||
<section class="page center" id="page-site-main">
|
||||
<header class="bar bar-nav bar-light bg-white px-0">
|
||||
<a class="icon material-icons pull-left px-3" role="button" data-history="back">arrow_back</a>
|
||||
<button class="btn btn-link btn-nav pull-right p-x-1" data-role="showAgreement" disabled>
|
||||
다음
|
||||
</button>
|
||||
<h1 class="title">
|
||||
회원가입
|
||||
</h1>
|
||||
</header>
|
||||
|
||||
<main class="content">
|
||||
|
||||
<form class="content-padded" id="joinForm" role="form" action="<?php echo $g['s']?>/" method="post" autocomplete="off">
|
||||
<input type="hidden" name="r" value="<?php echo $r?>">
|
||||
<input type="hidden" name="m" value="member">
|
||||
<input type="hidden" name="a" value="join">
|
||||
<input type="hidden" name="phone" value="<?php echo $phone ?>">
|
||||
<input type="hidden" name="email" value="<?php echo $email ?>">
|
||||
<input type="hidden" name="check_pw" value="0">
|
||||
<input type="hidden" name="check_name" value="0">
|
||||
<input type="hidden" name="event" value="">
|
||||
|
||||
<div class="form-list floating px-3">
|
||||
<div class="input-row position-relative">
|
||||
<label>비밀번호</label>
|
||||
<input type="password" name="pw1" placeholder="비밀번호" data-role="pw">
|
||||
<div class="invalid-tooltip" id="pw-feedback">비밀번호를 입력해주세요.</div>
|
||||
</div>
|
||||
<div class="input-row position-relative">
|
||||
<label>이름</label>
|
||||
<input type="text" name="name" placeholder="이름" data-role="name">
|
||||
<div class="invalid-tooltip" id="name-feedback">이름을 입력해주세요.</div>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
|
||||
<div class="content-padded d-none" data-role="agreement">
|
||||
<p class="pl-2">
|
||||
<label class="custom-control custom-checkbox">
|
||||
<input type="checkbox" class="custom-control-input" id="checkbox-all">
|
||||
<span class="custom-control-indicator"></span>
|
||||
<span class="custom-control-description">전체동의 <small class="text-muted">(선택 항목 포함)</small></span>
|
||||
</label>
|
||||
</p>
|
||||
<p class="pl-2">
|
||||
<label class="custom-control custom-checkbox">
|
||||
<input type="checkbox" class="custom-control-input" id="checkbox-policy">
|
||||
<span class="custom-control-indicator"></span>
|
||||
<span class="custom-control-description">
|
||||
이용약관과 개인정보수집안내
|
||||
<button type="button"
|
||||
data-target="#page-site-doc"
|
||||
data-start="#page-site-main"
|
||||
data-toggle="page"
|
||||
class="btn btn-secondary btn-sm ml-2">보기</button>
|
||||
</span>
|
||||
</span>
|
||||
</label>
|
||||
</p>
|
||||
<p class="pl-2">
|
||||
<label class="custom-control custom-checkbox">
|
||||
<input type="checkbox" class="custom-control-input" id="checkbox-event">
|
||||
<span class="custom-control-indicator"></span>
|
||||
<span class="custom-control-description">이벤트,서비스 안내 수신 <small class="text-muted">(선택)</small></span>
|
||||
</label>
|
||||
</p>
|
||||
<button type="button" class="btn btn-secondary btn-block mt-4 js-submit" disabled>
|
||||
확인
|
||||
</button>
|
||||
</div>
|
||||
|
||||
</main>
|
||||
</section>
|
||||
|
||||
<section class="page right" id="page-site-doc">
|
||||
<header class="bar bar-nav bar-light bg-white px-0">
|
||||
<a class="icon material-icons pull-left px-3" role="button" data-history="back">arrow_back</a>
|
||||
<h1 class="title">서비스 약관</h1>
|
||||
</header>
|
||||
|
||||
<div class="bar bar-standard bar-header-secondary bar-light bg-white p-x-0">
|
||||
<nav class="nav nav-inline">
|
||||
<a class="nav-link active" href="#page-site-policy" data-toggle="tab">이용약관</a>
|
||||
<a class="nav-link" href="#page-site-privacy" data-toggle="tab">개인정보취급방침</a>
|
||||
</nav>
|
||||
</div>
|
||||
|
||||
<div class="content">
|
||||
<div class="tab-pane content-padded" id="page-site-policy">
|
||||
</div>
|
||||
<div class="tab-pane content-padded d-none" id="page-site-privacy">
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
</div><!-- /.modal -->
|
||||
|
||||
<script>
|
||||
|
||||
var modal_join_site = $('#modal-join-site')
|
||||
var f = document.getElementById('joinForm');
|
||||
|
||||
//회원가입 항목 유용성 체크
|
||||
function joinCheck(obj,layer) {
|
||||
if (!obj.value)
|
||||
{
|
||||
obj.classList.remove('is-invalid');
|
||||
getId(layer).innerHTML = '';
|
||||
}
|
||||
else
|
||||
{
|
||||
if (obj.name == 'pw1') {
|
||||
f.classList.remove('was-validated');
|
||||
|
||||
if (f.pw1.value.length < 6 || f.pw1.value.length > 16) {
|
||||
|
||||
f.check_pw.value = '0';
|
||||
f.classList.remove('was-validated');
|
||||
obj.classList.add('is-invalid');
|
||||
obj.classList.remove('is-valid');
|
||||
|
||||
getId(layer).innerHTML = '영문/숫자 2개 이상의 조합으로 최소 6~16자로 입력하셔야 합니다.';
|
||||
return false;
|
||||
}
|
||||
if (getTypeCheck(f.pw1.value,"abcdefghijklmnopqrstuvwxyz")) {
|
||||
getId(layer).innerHTML = '비밀번호가 영문만으로 입력되었습니다.\n영문/숫자 2개 이상의 조합으로 최소 6자이상 입력하셔야 합니다.';
|
||||
f.pw1.focus();
|
||||
return false;
|
||||
}
|
||||
if (getTypeCheck(f.pw1.value,"1234567890")) {
|
||||
getId(layer).innerHTML = '비밀번호가 숫자만으로 입력되었습니다.\n영문/숫자 2개 이상의 조합으로 최소 6자이상 입력하셔야 합니다.';
|
||||
f.pw1.focus();
|
||||
return false;
|
||||
}
|
||||
f.pw1.classList.add('is-valid');
|
||||
f.pw1.classList.remove('is-invalid');
|
||||
getId(layer).innerHTML = '';
|
||||
f.check_pw.value = '1';
|
||||
}
|
||||
|
||||
if (obj.name == 'name') {
|
||||
if (obj.value.length > 1) {
|
||||
f.check_name.value = '1';
|
||||
} else {
|
||||
f.check_name.value = '0';
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
modal_join_site.modal('show') //가입모달 호출
|
||||
|
||||
modal_join_site.on('shown.rc.modal', function () {
|
||||
modal_join_site.find('[name="pw1"]').focus()
|
||||
})
|
||||
|
||||
//회원가입 시 입력항목 유용성 체크
|
||||
modal_join_site.find('.input-row input').keyup(function(){
|
||||
var item = $(this).data('role')
|
||||
var item_pw_check = modal_join_site.find('[name=check_pw]').val()
|
||||
var item_name_check = modal_join_site.find('[name=check_name]').val()
|
||||
|
||||
if (item=='pw') {
|
||||
element = document.querySelector('[name="pw1"]');
|
||||
joinCheck(element,'pw-feedback')
|
||||
}
|
||||
if (item=='name') {
|
||||
element = document.querySelector('[name="name"]');
|
||||
joinCheck(element,'name-feedback')
|
||||
}
|
||||
|
||||
if (item_pw_check==1 && item_name_check==1) {
|
||||
$('[data-role="showAgreement"]').removeAttr('disabled')
|
||||
} else {
|
||||
$('[data-role="showAgreement"]').attr('disabled',true)
|
||||
}
|
||||
});
|
||||
|
||||
// 회원가입 시 '다음'버튼 터치시 동의항목 출력
|
||||
$('body').on('tap click','[data-role="showAgreement"]:enabled',function(){
|
||||
var id = modal_join_site.find('[data-role="phone"]').val()
|
||||
var idtype = 'phone'
|
||||
|
||||
$(this).addClass('d-none')
|
||||
modal_join_site.find('[data-role="agreement"]').removeClass('d-none')
|
||||
modal_join_site.find('.bar-tab').addClass('d-none')
|
||||
|
||||
setTimeout(function(){
|
||||
$.notify({message: '약관동의가 필요합니다.'},{type: 'default'});
|
||||
}, 500);
|
||||
|
||||
});
|
||||
|
||||
// 회원가입 시 전체동의 체크박스 처리
|
||||
modal_join_site.find('#checkbox-all').change(function(e) {
|
||||
if ($(this).prop('checked')){
|
||||
$('#checkbox-policy').prop('checked',true)
|
||||
$('#checkbox-event').prop('checked',true)
|
||||
$('#joinForm').find('[name="event"]').val(1)
|
||||
modal_join_site.find('.js-submit').removeClass('btn-secondary').addClass('btn-primary').attr('disabled',false) // 확인 버튼 활성화 처리
|
||||
} else {
|
||||
$('#checkbox-policy').prop('checked',false)
|
||||
$('#checkbox-event').prop('checked',false)
|
||||
$('#joinForm').find('[name="event"]').val(0)
|
||||
modal_join_site.find('.js-submit').addClass('btn-secondary').removeClass('btn-primary').attr('disabled',true) // 확인 버튼 비활성화 처리
|
||||
}
|
||||
});
|
||||
|
||||
// 회원가입 시 약관사항이 체크되어야 회원가입 확인버튼이 활성화 됨
|
||||
modal_join_site.find('#checkbox-policy').change(function(e) {
|
||||
if ($(this).prop('checked') && $('#checkbox-policy').prop('checked')){
|
||||
modal_join_site.find('.js-submit').removeClass('btn-secondary').addClass('btn-primary').attr('disabled',false) // 확인 버튼 활성화 처리
|
||||
} else {
|
||||
modal_join_site.find('.js-submit').addClass('btn-secondary').removeClass('btn-primary').attr('disabled',true) // 확인 버튼 비활성화 처리
|
||||
}
|
||||
});
|
||||
|
||||
// 회원가입 시 아벤트,서비스 안내 수신
|
||||
modal_join_site.find('#checkbox-event').change(function(e) {
|
||||
if ($(this).prop('checked') && $('#checkbox-event').prop('checked')){
|
||||
$('#joinForm').find('[name="event"]').val(1)
|
||||
} else {
|
||||
$('#joinForm').find('[name="event"]').val(0)
|
||||
}
|
||||
});
|
||||
|
||||
// 이용약관 / 개인정보취급방침 문서 자세히 보기
|
||||
$('#page-site-doc').on('shown.rc.page', function (event) {
|
||||
var button = $(event.relatedTarget)
|
||||
var type = button.data('type')
|
||||
var page = $(this)
|
||||
|
||||
setTimeout(function(){
|
||||
|
||||
page.find('#page-site-policy').loader({ // 로더 출력
|
||||
position: "inside"
|
||||
});
|
||||
$.post(rooturl+'/?r='+raccount+'&m=site&a=get_postData',{
|
||||
id : 'policy',
|
||||
_mtype : 'page'
|
||||
},function(response){
|
||||
page.find('#page-site-policy').loader("hide");
|
||||
var result = $.parseJSON(response);
|
||||
var policy=result.article;
|
||||
page.find('#page-site-policy').html(policy);
|
||||
});
|
||||
$.post(rooturl+'/?r='+raccount+'&m=site&a=get_postData',{
|
||||
id : 'privacy',
|
||||
_mtype : 'page'
|
||||
},function(response){
|
||||
var result = $.parseJSON(response);
|
||||
var privacy=result.article;
|
||||
page.find('#page-site-privacy').html(privacy);
|
||||
});
|
||||
}, 300);
|
||||
})
|
||||
$('#page-site-doc').on('hidden.rc.page', function () {
|
||||
var page = $(this)
|
||||
page.find('#page-site-policy').html('');
|
||||
page.find('#page-site-privacy').html('');
|
||||
})
|
||||
|
||||
// 회원가입 실행
|
||||
modal_join_site.on('tap click','.js-submit:enabled',function(){
|
||||
$(this).attr("disabled",true).text('진행중...');
|
||||
setTimeout(function(){
|
||||
getIframeForAction(f);
|
||||
f.submit();
|
||||
}, 300);
|
||||
});
|
||||
|
||||
</script>
|
||||
<?php endif; ?>
|
||||
|
||||
<?php if ($call_modal_join_social): ?>
|
||||
<?php
|
||||
$avatar_data=array('src'=>$_photo,'width'=>150,'height'=>150);
|
||||
$user_avatar_src=getTimThumb($avatar_data);
|
||||
$_SESSION['SL'] = ''; //세션 비우기
|
||||
?>
|
||||
|
||||
<!-- 1. 일반모달 : 소셜인증 후, 가입-->
|
||||
<div id="modal-join-social" class="modal zoom">
|
||||
|
||||
<section class="page center" id="page-social-main">
|
||||
<header class="bar bar-nav bar-light bg-faded">
|
||||
<a class="icon icon-left-nav pull-left" role="button" data-history="back"></a>
|
||||
<button class="btn btn-link btn-nav pull-right p-x-1<?php echo $name && $email?' d-none':'' ?>" data-role="showAgreement" disabled>
|
||||
다음
|
||||
</button>
|
||||
<h1 class="title">
|
||||
신규가입
|
||||
</h1>
|
||||
</header>
|
||||
|
||||
<div class="bar bar-standard bar-header-secondary">
|
||||
<h1 class="title">
|
||||
<span>
|
||||
<?php if ($_photo): ?>
|
||||
<img src="<?php echo $user_avatar_src ?>" alt=<?php echo $name ?>"" class="rounded-circle border" style="width: 2.1875rem">
|
||||
<?php else: ?>
|
||||
<img src="<?php echo $g['s'].'/files/avatar/0.svg' ?>" alt=<?php echo $name ?>"" class="rounded-circle border" style="width: 2.1875rem">
|
||||
<?php endif; ?>
|
||||
<img src="<?php echo $g['img_core']?>/sns/<?php echo $sns_name ?>.png" alt="<?php echo $sns_name ?>" class="rounded-circle" style="width: 2.1875rem;margin-left: -0.625rem">
|
||||
</span>
|
||||
<?php echo $name ?>님
|
||||
</h1>
|
||||
</div>
|
||||
|
||||
<nav class="bar bar-tab bar-light bg-faded">
|
||||
<a class="tab-item active" role="button" data-toggle="changeModal" href="#modal-combine">
|
||||
<small>기존회원 이신가요 ? <span class="pl-2">계정연결하기</span></small>
|
||||
</a>
|
||||
</nav>
|
||||
|
||||
<main class="content">
|
||||
|
||||
<form class="content-padded" id="joinForm" role="form" action="<?php echo $g['s']?>/" method="post" autocomplete="off">
|
||||
<input type="hidden" name="r" value="<?php echo $r?>">
|
||||
<input type="hidden" name="m" value="member">
|
||||
<input type="hidden" name="a" value="join">
|
||||
<input type="hidden" name="sns_access_token" value="<?php echo $sns_access_token?>">
|
||||
<input type="hidden" name="sns_refresh_token" value="<?php echo $sns_refresh_token?>">
|
||||
<input type="hidden" name="sns_expires_in" value="<?php echo $sns_expires_in?>">
|
||||
<input type="hidden" name="snsname" value="<?php echo $sns_name?>">
|
||||
<input type="hidden" name="snsuid" value="<?php echo $snsuid?>">
|
||||
<input type="hidden" name="_photo" value="<?php echo $_photo ?>">
|
||||
<input type="hidden" name="check_email" value="<?php echo $email?1:0 ?>">
|
||||
<input type="hidden" name="sns_email" value="<?php echo $email?1:0 ?>">
|
||||
<input type="hidden" name="event" value="">
|
||||
|
||||
<div class="form-list floating px-3">
|
||||
|
||||
<div class="input-row position-relative<?php echo $email?' active':'' ?>" data-role="input-email">
|
||||
<label>이메일 주소</label>
|
||||
<input type="email" name="email" placeholder="이메일 주소" data-role="email" value="<?php echo $email ?>"<?php echo $email?' readonly':'' ?> data-role="email">
|
||||
<div class="invalid-tooltip" id="email-feedback"></div>
|
||||
</div>
|
||||
|
||||
<?php if ($name): ?>
|
||||
<input type="hidden" name="name" value="<?php echo $name ?>">
|
||||
<?php else: ?>
|
||||
<div class="input-row position-relative">
|
||||
<label>이름</label>
|
||||
<input type="text" name="name" placeholder="이름" data-role="name" value="<?php echo $name ?>" <?php echo $name?' readonly':'' ?>>
|
||||
<div class="invalid-tooltip" id="name-feedback">이름을 입력해주세요.</div>
|
||||
</div>
|
||||
<?php endif; ?>
|
||||
|
||||
</div>
|
||||
</form>
|
||||
|
||||
<div class="content-padded<?php echo $name && $email?'':' d-none'?>" data-role="agreement">
|
||||
<p class="pl-2">
|
||||
<label class="custom-control custom-checkbox">
|
||||
<input type="checkbox" class="custom-control-input" id="checkbox-all">
|
||||
<span class="custom-control-indicator"></span>
|
||||
<span class="custom-control-description">전체동의 <small class="text-muted">(선택 항목 포함)</small></span>
|
||||
</label>
|
||||
</p>
|
||||
<p class="pl-2">
|
||||
<label class="custom-control custom-checkbox">
|
||||
<input type="checkbox" class="custom-control-input" id="checkbox-policy">
|
||||
<span class="custom-control-indicator"></span>
|
||||
<span class="custom-control-description">
|
||||
이용약관과 개인정보수집안내
|
||||
<button type="button"
|
||||
data-target="#page-social-doc"
|
||||
data-start="#page-social-main"
|
||||
data-toggle="page"
|
||||
class="btn btn-secondary btn-sm ml-2">보기</button>
|
||||
</span>
|
||||
</label>
|
||||
</p>
|
||||
<p class="pl-2">
|
||||
<label class="custom-control custom-checkbox">
|
||||
<input type="checkbox" class="custom-control-input" id="checkbox-event">
|
||||
<span class="custom-control-indicator"></span>
|
||||
<span class="custom-control-description">이벤트,서비스 안내 수신 <small class="text-muted">(선택)</small></span>
|
||||
</label>
|
||||
</p>
|
||||
<button type="button" class="btn btn-secondary btn-block mt-4 js-submit" disabled>
|
||||
확인
|
||||
</button>
|
||||
</div>
|
||||
|
||||
<div class="content-padded text-muted small" data-role="notice">
|
||||
<?php echo $sns_name_ko ?> 계정으로 <?php echo $_HS['name'] ?>에 회원가입 합니다.<br>
|
||||
가입완료 시에 회원님의 <?php echo $sns_name_ko ?> 계정과 자동연결 됩니다.
|
||||
</div>
|
||||
|
||||
</main>
|
||||
</section>
|
||||
|
||||
<section class="page right" id="page-social-doc">
|
||||
<header class="bar bar-nav bar-light bg-white px-0">
|
||||
<button class="btn btn-link btn-nav pull-left p-x-1" data-history="back">
|
||||
<span class="icon icon-left-nav"></span>
|
||||
</button>
|
||||
<h1 class="title">서비스 약관</h1>
|
||||
</header>
|
||||
|
||||
<div class="bar bar-standard bar-header-secondary bar-light bg-white p-x-0">
|
||||
<nav class="nav nav-inline">
|
||||
<a class="nav-link active" href="#page-social-policy" data-toggle="tab">이용약관</a>
|
||||
<a class="nav-link" href="#page-social-privacy" data-toggle="tab">개인정보취급방침</a>
|
||||
</nav>
|
||||
</div>
|
||||
<div class="content">
|
||||
<div class="tab-pane content-padded" id="page-social-policy">
|
||||
</div>
|
||||
<div class="tab-pane content-padded d-none" id="page-social-privacy">
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
</div><!-- /.modal -->
|
||||
|
||||
<script>
|
||||
|
||||
var modal_join_social = $('#modal-join-social')
|
||||
var f = document.getElementById('joinForm');
|
||||
|
||||
|
||||
modal_join_social.modal('show')
|
||||
|
||||
modal_join_social.on('shown.rc.modal', function () {
|
||||
|
||||
})
|
||||
|
||||
//회원가입 시 입력항목 유용성 체크
|
||||
modal_join_social.find('.input-row input').keyup(function(){
|
||||
|
||||
var item_email_check = modal_join_social.find('[name=check_email]')
|
||||
|
||||
$(this).removeClass('is-invalid')
|
||||
|
||||
if ($(this).val().length >= 1) {
|
||||
$(this).parents('.input-row').addClass('active');
|
||||
item_email_check.val(1)
|
||||
} else {
|
||||
$(this).parents('.input-row').removeClass('active');
|
||||
item_email_check.val(0)
|
||||
}
|
||||
|
||||
if (item_email_check.val()==1) {
|
||||
$('[data-role="showAgreement"]').removeAttr('disabled')
|
||||
} else {
|
||||
$('[data-role="showAgreement"]').attr('disabled',true)
|
||||
}
|
||||
|
||||
})
|
||||
|
||||
// 회원가입 시 '다음'버튼 터치시 유효성 체크 및 동의항목 출력
|
||||
$('body').on('tap click','[data-role="showAgreement"]:enabled',function(){
|
||||
var _input = document.querySelector('#modal-join-social [data-role="email"]');
|
||||
var input = modal_join_social.find('[data-role="email"]')
|
||||
var msg = modal_join_social.find('#email-feedback')
|
||||
|
||||
if (!chkEmailAddr(_input.value)) {
|
||||
input.focus()
|
||||
input.addClass('is-invalid')
|
||||
msg.text('이메일 형식이 아닙니다.')
|
||||
return false;
|
||||
}
|
||||
|
||||
$(this).addClass('d-none')
|
||||
modal_join_social.find('[data-role="agreement"]').removeClass('d-none')
|
||||
modal_join_social.find('.bar-tab').addClass('d-none')
|
||||
|
||||
setTimeout(function(){
|
||||
$.notify({message: '약관동의가 필요합니다.'},{type: 'default'});
|
||||
}, 500);
|
||||
|
||||
});
|
||||
|
||||
// 회원가입 시 전체동의 체크박스 처리
|
||||
modal_join_social.find('#checkbox-all').change(function(e) {
|
||||
if ($(this).prop('checked')){
|
||||
$('#checkbox-policy').prop('checked',true)
|
||||
$('#checkbox-event').prop('checked',true)
|
||||
$('#joinForm').find('[name="event"]').val(1)
|
||||
modal_join_social.find('.js-submit').removeClass('btn-secondary').addClass('btn-primary').attr('disabled',false) // 확인 버튼 활성화 처리
|
||||
} else {
|
||||
$('#checkbox-policy').prop('checked',false)
|
||||
$('#checkbox-event').prop('checked',false)
|
||||
$('#joinForm').find('[name="event"]').val(0)
|
||||
modal_join_social.find('.js-submit').addClass('btn-secondary').removeClass('btn-primary').attr('disabled',true) // 확인 버튼 비활성화 처리
|
||||
}
|
||||
});
|
||||
|
||||
// 회원가입 시 약관사항이 체크되어야 회원가입 확인버튼이 활성화 됨
|
||||
modal_join_social.find('#checkbox-policy').change(function(e) {
|
||||
if ($(this).prop('checked') && $('#checkbox-policy').prop('checked')){
|
||||
modal_join_social.find('.js-submit').removeClass('btn-secondary').addClass('btn-primary').attr('disabled',false) // 확인 버튼 활성화 처리
|
||||
} else {
|
||||
modal_join_social.find('.js-submit').addClass('btn-secondary').removeClass('btn-primary').attr('disabled',true) // 확인 버튼 비활성화 처리
|
||||
}
|
||||
});
|
||||
|
||||
// 회원가입 시 아벤트,서비스 안내 수신
|
||||
modal_join_social.find('#checkbox-event').change(function(e) {
|
||||
if ($(this).prop('checked') && $('#checkbox-event').prop('checked')){
|
||||
$('#joinForm').find('[name="event"]').val(1)
|
||||
} else {
|
||||
$('#joinForm').find('[name="event"]').val(0)
|
||||
}
|
||||
});
|
||||
|
||||
// 이용약관 / 개인정보취급방침 문서 자세히 보기
|
||||
$('#page-social-doc').on('shown.rc.page', function (event) {
|
||||
var button = $(event.relatedTarget)
|
||||
var type = button.data('type')
|
||||
var page = $(this)
|
||||
|
||||
setTimeout(function(){
|
||||
page.find('#page-social-policy').loader({ // 로더 출력
|
||||
position: "inside"
|
||||
});
|
||||
$.post(rooturl+'/?r='+raccount+'&m=site&a=get_postData',{
|
||||
id : 'policy',
|
||||
_mtype : 'page'
|
||||
},function(response){
|
||||
page.find('#page-social-policy').loader("hide");
|
||||
var result = $.parseJSON(response);
|
||||
var policy=result.article;
|
||||
page.find('#page-social-policy').html(policy);
|
||||
});
|
||||
$.post(rooturl+'/?r='+raccount+'&m=site&a=get_postData',{
|
||||
id : 'privacy',
|
||||
_mtype : 'page'
|
||||
},function(response){
|
||||
var result = $.parseJSON(response);
|
||||
var privacy=result.article;
|
||||
page.find('#page-social-privacy').html(privacy);
|
||||
});
|
||||
}, 300);
|
||||
})
|
||||
|
||||
$('#page-social-doc').on('hidden.rc.page', function () {
|
||||
var page = $(this)
|
||||
page.find('#page-social-policy').html('');
|
||||
page.find('#page-social-privacy').html('');
|
||||
})
|
||||
|
||||
// 회원가입 실행
|
||||
modal_join_social.on('tap click','.js-submit',function(){
|
||||
$(this).attr("disabled",true).text('진행중...');
|
||||
setTimeout(function(){
|
||||
getIframeForAction(f);
|
||||
f.submit();
|
||||
}, 300);
|
||||
});
|
||||
</script>
|
||||
|
||||
<?php endif; ?>
|
||||
|
||||
<!-- https://github.com/hilios/jQuery.countdown -->
|
||||
<?php getImport('jquery.countdown','jquery.countdown.min','2.2.0','js')?>
|
||||
|
||||
<script>
|
||||
|
||||
var modal_join = $('#modal-join') //회원가입 모달
|
||||
var page_join_main = $('#page-join-main') // 회원가입 시작페이지
|
||||
var page_join_form = $('#page-join-form') // 이메일 또는 휴대폰 입력폼 페이지
|
||||
var page_join_code = $('#page-join-code') // 인증번호 입력폼 페이지
|
||||
var input_phone = page_join_form.find('[data-role="input-phone"]')
|
||||
var input_email = page_join_form.find('[data-role="input-email"]')
|
||||
var btn_send = page_join_form.find('[data-act="send_code"]')
|
||||
|
||||
function doCountdown(type) {
|
||||
modal_join.find('[data-'+type+'-countdown]').each(function() {
|
||||
var $this = $(this), finalDate = $(this).data(type+'-countdown');
|
||||
$this.html('');
|
||||
$this.countdown(finalDate, function(event) {
|
||||
$this.html('['+event.strftime('%M:%S')+']');
|
||||
});
|
||||
});
|
||||
};
|
||||
|
||||
$(function () {
|
||||
// 회원가입 모달이 열리기전에, 액션페이지 초기화
|
||||
modal_join.on('show.rc.modal', function () {
|
||||
page_join_main.addClass('page center').removeClass('transition left')
|
||||
page_join_form.addClass('page right').removeClass('transition center')
|
||||
page_join_code.addClass('page right').removeClass('transition center')
|
||||
if ($('#drawer-left').length) {
|
||||
setTimeout(function(){ $('#drawer-left').drawer('hide'); }, 1000); // 왼쪽 드로워 닫기
|
||||
}
|
||||
})
|
||||
})
|
||||
|
||||
//휴대폰(이메일)입력 페이지가 호출될때
|
||||
page_join_form.on('shown.rc.page', function () {
|
||||
//각종 상태 초기화
|
||||
page_join_form.find('input').removeClass('is-invalid is-valid') //에러항목 초기화
|
||||
page_join_form.find('.input-row').removeClass('active') //상태초기화
|
||||
page_join_form.find('.bar-tab [data-type="phone"]').removeClass('d-none')
|
||||
page_join_form.find('.bar-tab [data-type="email"]').addClass('d-none')
|
||||
input_phone.addClass('d-none')
|
||||
input_email.removeClass('d-none')
|
||||
input_phone.find('[name="phone"]').val('')
|
||||
input_email.find('[name="email"]').val('')
|
||||
btn_send.attr('data-type','email')
|
||||
setTimeout(function(){input_email.find('[name="email"]').focus();}, 400);
|
||||
})
|
||||
|
||||
//회원가입 시 입력항목 변경 (휴대폰-이메일 전환)
|
||||
page_join_form.on('tap','[data-role="change-input"]',function(){
|
||||
var type = $(this).data('type')
|
||||
page_join_form.find('[data-role="change-input"]').removeClass('d-none')
|
||||
page_join_form.find('[data-act="send_code"]').attr('data-type',type)
|
||||
page_join_form.find('.input-row').removeClass('active') //상태초기화
|
||||
$(this).addClass('d-none')
|
||||
page_join_form.find('input').removeClass('is-invalid is-valid') //에러항목 초기화
|
||||
if (type=='email') {
|
||||
page_join_form.find('[name="phone"]').val('') // 입력항목 초기화
|
||||
page_join_form.find('[data-role="input-email"]').removeClass('d-none')
|
||||
page_join_form.find('[data-role="input-phone"]').addClass('d-none')
|
||||
setTimeout(function(){ page_join_form.find('[name="email"]').focus() }, 10);
|
||||
} else {
|
||||
page_join_form.find('[name="email"]').val('') // 입력항목 초기화
|
||||
page_join_form.find('[data-role="input-phone"]').removeClass('d-none')
|
||||
page_join_form.find('[data-role="input-email"]').addClass('d-none')
|
||||
setTimeout(function(){ page_join_form.find('[name="phone"]').focus() }, 10);
|
||||
}
|
||||
});
|
||||
|
||||
$('.page').find(".form-list.floating .input-row input").on('keyup', function(event) {
|
||||
if ($(this).val().length >= 1) {
|
||||
$(this).parents('.input-row').addClass('active');
|
||||
} else {
|
||||
$(this).parents('.input-row').removeClass('active');
|
||||
}
|
||||
})
|
||||
|
||||
// 상태표시 흔적 초기화
|
||||
modal_join.find('input').keyup(function(){
|
||||
$(this).removeClass('is-invalid is-valid')
|
||||
});
|
||||
|
||||
// 본인인증 코드발송
|
||||
page_join_form.on('tap','[data-act="send_code"]',function(){
|
||||
var button = $(this)
|
||||
var act = 'send_code'
|
||||
var type = button.attr('data-type')
|
||||
var device = button.attr('data-device')
|
||||
|
||||
if (type=='email') {
|
||||
var input = page_join_form.find('[name="email"]')
|
||||
var _input = document.querySelector('#page-join-form [name="email"]');
|
||||
var target = input.val()
|
||||
var msg = page_join_form.find('[data-role="emailErrorBlock"]')
|
||||
|
||||
// 상태초기화
|
||||
input.removeClass('is-invalid is-valid')
|
||||
|
||||
// 이메일 입력폼 유효성 체크
|
||||
if (!target) {
|
||||
input.focus()
|
||||
input.addClass('is-invalid')
|
||||
msg.text('이메일을 입력해주세요.')
|
||||
return false;
|
||||
}
|
||||
if (!chkEmailAddr(_input.value)) {
|
||||
input.focus()
|
||||
input.addClass('is-invalid')
|
||||
msg.text('이메일 형식이 아닙니다.')
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
if (type=='phone') {
|
||||
var input = page_join_form.find('[name="phone"]')
|
||||
var _input = document.querySelector('#page-join-form [name="phone"]');
|
||||
var target = input.val()
|
||||
var msg = page_join_form.find('[data-role="phoneErrorBlock"]')
|
||||
|
||||
// 상태초기화
|
||||
input.removeClass('is-invalid is-valid')
|
||||
|
||||
// 휴대폰번호 입력폼 유효성 체크
|
||||
if (!target) {
|
||||
input.focus()
|
||||
input.addClass('is-invalid')
|
||||
msg.text('휴대폰 번호를 입력해주세요.')
|
||||
return false;
|
||||
}
|
||||
if (!chkPhoneNumber(_input.value)) {
|
||||
input.focus()
|
||||
input.addClass('is-invalid')
|
||||
msg.text('휴대폰 번호 형식이 아닙니다.')
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
button.attr('disabled',true);
|
||||
var url = rooturl+'/?r='+raccount+'&m=member&a=join_guestAuth&act='+act+'&type='+type+'&target='+target+'&device='+device
|
||||
|
||||
getIframeForAction();
|
||||
|
||||
page_join_code.find('[data-role="target"]').text(target)
|
||||
|
||||
setTimeout(function() {
|
||||
frames.__iframe_for_action__.location.href = url;
|
||||
}, 700);
|
||||
|
||||
});
|
||||
|
||||
// 인증번호 입력페이지가 호출될때
|
||||
page_join_code.on('shown.rc.page', function (event) {
|
||||
|
||||
//각종 상태 초기화
|
||||
page_join_code.find('input').val('')
|
||||
|
||||
page_join_code.find('input').removeClass('is-invalid is-valid') //에러항목 초기화
|
||||
page_join_code.find('.input-row').removeClass('active') //상태초기화
|
||||
page_join_code.find('.bar-tab [data-type="email"]').removeClass('d-none')
|
||||
page_join_code.find('.bar-tab [data-type="phone"]').addClass('d-none')
|
||||
|
||||
setTimeout(function(){page_join_code.find('[name="confirm_phone_code"]').focus();}, 400);
|
||||
})
|
||||
|
||||
// 본인인증 코드확인
|
||||
page_join_code.on('tap','[data-act="confirm_code"]',function(){
|
||||
var button = $(this)
|
||||
var act = 'confirm_code'
|
||||
var type = button.data('type')
|
||||
var device = button.data('device')
|
||||
|
||||
if (type=='email') {
|
||||
var input = page_join_code.find('[name="confirm_email_code"]')
|
||||
var code = input.val()
|
||||
var msg = page_join_code.find('[data-role="emailCodeBlock"]')
|
||||
|
||||
// 상태초기화
|
||||
input.removeClass('is-invalid is-valid')
|
||||
|
||||
// 인증번호 입력폼 유효성 체크
|
||||
if (!code) {
|
||||
input.focus()
|
||||
input.addClass('is-invalid')
|
||||
msg.text('인증번호를 입력해주세요.')
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
if (type=='phone') {
|
||||
var input = page_join_code.find('[name="confirm_phone_code"]')
|
||||
var code = input.val()
|
||||
var msg = page_join_code.find('[data-role="phoneCodeBlock"]')
|
||||
|
||||
// 상태초기화
|
||||
input.removeClass('is-invalid is-valid')
|
||||
|
||||
// 인증번호 입력폼 유효성 체크
|
||||
if (!code) {
|
||||
input.focus()
|
||||
input.addClass('is-invalid')
|
||||
msg.text('인증번호를 입력해주세요.')
|
||||
return false;
|
||||
}
|
||||
}
|
||||
setTimeout(function() { //가상키보드 내려가는 시간 확보
|
||||
page_join_code.loader({ //로더 출력
|
||||
text: "확인중...",
|
||||
position: "overlay"
|
||||
});
|
||||
}, 300);
|
||||
|
||||
var url = rooturl+'/?r='+raccount+'&m=member&a=join_guestAuth&act='+act+'&type='+type+'&code='+code+'&device='+device
|
||||
|
||||
getIframeForAction();
|
||||
setTimeout(function() {
|
||||
frames.__iframe_for_action__.location.href = url;
|
||||
}, 700);
|
||||
|
||||
});
|
||||
|
||||
// 탭기능
|
||||
$(document).on('tap click','[data-toggle="tab"]',function(event){
|
||||
event.preventDefault();
|
||||
event.stopPropagation();
|
||||
var target = $(this).attr('href')
|
||||
$('[data-toggle="tab"]').removeClass('active')
|
||||
$(this).addClass('active')
|
||||
$('.tab-pane').addClass('d-none')
|
||||
$(target).removeClass('d-none')
|
||||
});
|
||||
|
||||
</script>
|
||||
204
modules/member/themes/_mobile/rc-default/join/main.php
Normal file
204
modules/member/themes/_mobile/rc-default/join/main.php
Normal file
@@ -0,0 +1,204 @@
|
||||
<?php
|
||||
$g['memberAgree1ForSite'] = $g['path_var'].'site/'.$r.'/member.agree1.txt';
|
||||
$agree1File = file_exists($g['memberAgree1ForSite']) ? $g['memberAgree1ForSite'] : $g['dir_module'].'var/agree1.txt';
|
||||
|
||||
$g['memberAgree2ForSite'] = $g['path_var'].'site/'.$r.'/member.agree2.txt';
|
||||
$agree2File = file_exists($g['memberAgree2ForSite']) ? $g['memberAgree2ForSite'] : $g['dir_module'].'var/agree2.txt';
|
||||
|
||||
$g['memberAgree3ForSite'] = $g['path_var'].'site/'.$r.'/member.agree3.txt';
|
||||
$agree3File = file_exists($g['memberAgree3ForSite']) ? $g['memberAgree3ForSite'] : $g['dir_module'].'var/agree3.txt';
|
||||
|
||||
$g['memberAgree4ForSite'] = $g['path_var'].'site/'.$r.'/member.agree4.txt';
|
||||
$agree4File = file_exists($g['memberAgree4ForSite']) ? $g['memberAgree4ForSite'] : $g['dir_module'].'var/agree4.txt';
|
||||
|
||||
$g['memberAgree5ForSite'] = $g['path_var'].'site/'.$r.'/member.agree5.txt';
|
||||
$agree5File = file_exists($g['memberAgree5ForSite']) ? $g['memberAgree5ForSite'] : $g['dir_module'].'var/agree5.txt';
|
||||
?>
|
||||
|
||||
<?php if ($d['member']['join_social'] && $skip!='socialLogin'): ?>
|
||||
<header class="bar bar-nav bar-dark bg-primary px-0">
|
||||
<a class="icon icon-home pull-left p-x-1" role="button" href="<?php echo RW(0) ?>"></a>
|
||||
<h1 class="title">회원가입</h1>
|
||||
</header>
|
||||
<main class="content bg-faded">
|
||||
|
||||
<div class="content-padded mt-3">
|
||||
|
||||
<?php if ($d['connect']['use_n']): ?>
|
||||
<button type="button" class="btn btn-lg btn-secondary btn-block btn-login btn-naver" data-connect="naver" role="button">
|
||||
네이버 계정으로 회원가입
|
||||
</button>
|
||||
<?php endif; ?>
|
||||
|
||||
<?php if ($d['connect']['use_k']): ?>
|
||||
<button type="button" class="btn btn-lg btn-secondary btn-block btn-login btn-kakaotalk" data-connect="kakao" role="button">
|
||||
카카오 계정으로 회원가입
|
||||
</button>
|
||||
<?php endif; ?>
|
||||
|
||||
<?php if ($d['connect']['use_g']): ?>
|
||||
<button type="button" class="btn btn-lg btn-secondary btn-block btn-login btn-google" data-connect="google" role="button">
|
||||
구글 계정으로 회원가입
|
||||
</button>
|
||||
<?php endif; ?>
|
||||
|
||||
<?php if ($d['connect']['use_f']): ?>
|
||||
<button type="button" class="btn btn-lg btn-secondary btn-block btn-login btn-facebook" data-connect="facebook" role="button">
|
||||
페이스북 계정으로 회원가입
|
||||
</button>
|
||||
<?php endif; ?>
|
||||
|
||||
<?php if ($d['connect']['use_i']): ?>
|
||||
<button type="button" class="btn btn-lg btn-secondary btn-block btn-login btn-instagram" data-connect="instagram" role="button">
|
||||
인스타그램 계정으로 회원가입
|
||||
</button>
|
||||
<?php endif; ?>
|
||||
|
||||
<span class="section-divider" style="z-index: 1;"><span>또는</span></span>
|
||||
|
||||
<a href="<?php echo $g['s']?>/?r=<?php echo $r ?>&mod=join&skip=socialLogin" class="btn btn-lg btn-secondary btn-block" >
|
||||
일반 회원가입
|
||||
</a>
|
||||
|
||||
</div>
|
||||
|
||||
</main>
|
||||
<?php else: ?>
|
||||
<form name="procForm" action="<?php echo $g['s']?>/" method="get">
|
||||
<input type="hidden" name="r" value="<?php echo $r?>">
|
||||
<input type="hidden" name="m" value="<?php echo $_m?>">
|
||||
<input type="hidden" name="front" value="<?php echo $front?>">
|
||||
<input type="hidden" name="mod" value="<?php echo $_GET['mod']?>">
|
||||
<input type="hidden" name="page" value="forms">
|
||||
|
||||
<header class="bar bar-nav bar-dark bg-primary px-0">
|
||||
<a class="icon icon-home pull-left p-x-1" role="button" href="<?php echo RW(0) ?>"></a>
|
||||
<h1 class="title">회원가입</h1>
|
||||
</header>
|
||||
<div class="bar bar-standard bar-header-secondary rb-step bg-white">
|
||||
<ul class="nav nav-inline">
|
||||
<li class="nav-item active">
|
||||
<span class="badge badge-pill badge-default">1</span>
|
||||
<a class="nav-link">약관</a>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<span class="badge badge-pill badge-default">2</span>
|
||||
<a class="nav-link">아이디</a>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<span class="badge badge-pill badge-default">3</span>
|
||||
<a class="nav-link">비밀번호</a>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<span class="badge badge-pill badge-default">4</span>
|
||||
<a class="nav-link">이름</a>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<span class="badge badge-pill badge-default">5</span>
|
||||
<a class="nav-link">이메일</a>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<span class="badge badge-pill badge-default">6</span>
|
||||
<a class="nav-link">닉네임</a>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<span class="badge badge-pill badge-default">7</span>
|
||||
<a class="nav-link">부가정보</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<footer class="bar bar-footer bar-light bg-faded">
|
||||
<button class="btn btn-secondary btn-block" type="button" disabled="true" id="next">다음단계로</button>
|
||||
</footer>
|
||||
|
||||
<main class="content bg-faded">
|
||||
<div class="card card-full join-ageement m-b-2 animated fadeIn delay-1">
|
||||
<div class="card-header clearfix">
|
||||
<h4 class="card-title h5 pull-xs-left">이용약관</h4>
|
||||
<a href="#modal-docs" class="btn btn-secondary pull-xs-right" data-toggle="modal" data-title="이용약관" data-type="agreement">
|
||||
자세히보기
|
||||
</a>
|
||||
</div>
|
||||
<div class="card-block p-t-0">
|
||||
<textarea class="form-control" rows="4" id="agreement"><?php readfile($agree1File)?></textarea>
|
||||
<p>
|
||||
<label class="custom-control custom-checkbox">
|
||||
<input type="checkbox" class="custom-control-input" id="checkbox-agreement">
|
||||
<span class="custom-control-indicator"></span>
|
||||
<span class="custom-control-description">위 내용을 확인 하였으며 이에 동의함</span>
|
||||
</label>
|
||||
</p>
|
||||
|
||||
</div>
|
||||
</div><!-- /.card -->
|
||||
|
||||
|
||||
<div class="card card-full join-ageement m-b-2 animated fadeIn delay-1">
|
||||
<div class="card-header clearfix">
|
||||
<h4 class="card-title h5 pull-xs-left">개인정보 취급방침</h4>
|
||||
<a href="#modal-docs" class="btn btn-secondary pull-xs-right" data-toggle="modal" data-title="개인정보취급방침" data-type="privacy">
|
||||
자세히보기
|
||||
</a>
|
||||
</div>
|
||||
<div class="card-block p-t-0">
|
||||
<textarea class="form-control" rows="4" id="privacy"><?php readfile($agree2File)?><?php readfile($agree3File)?><?php readfile($agree4File)?><?php readfile($agree5File)?></textarea>
|
||||
<p>
|
||||
<label class="custom-control custom-checkbox">
|
||||
<input type="checkbox" class="custom-control-input" id="checkbox-privacy">
|
||||
<span class="custom-control-indicator"></span>
|
||||
<span class="custom-control-description">위 내용을 확인 하였으며 이에 동의함</span>
|
||||
</label>
|
||||
</p>
|
||||
</div>
|
||||
</div><!-- /.card -->
|
||||
</main>
|
||||
|
||||
</form>
|
||||
|
||||
<?php endif; ?>
|
||||
|
||||
<!-- Modal : 자세히보기 -->
|
||||
<div id="modal-docs" class="modal">
|
||||
<header class="bar bar-nav bar-light bg-faded">
|
||||
<a class="icon icon-close pull-right" data-history="back" role="button"></a>
|
||||
<h1 class="title" data-role="title">문서제목</h1>
|
||||
</header>
|
||||
<div class="bar bar-standard bar-footer bar-light bg-faded">
|
||||
<button class="btn btn-secondary btn-block" data-history="back">닫기</button>
|
||||
</div>
|
||||
<div class="content">
|
||||
<p class="content-padded" data-role="docs">
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script type="text/javascript">
|
||||
|
||||
$('.custom-control-input').attr('checked', false); // 페이지 진입시에 체크박스 초기화
|
||||
|
||||
// 모두 체크해야 다음버튼이 활성화 됨
|
||||
$(".custom-control-input").change(function(e) {
|
||||
if ($('#checkbox-agreement').prop('checked') && $('#checkbox-privacy').prop('checked')){
|
||||
$('#next').removeClass('btn-secondary').addClass('btn-primary').attr('disabled',false) // 버튼활성화 처리하고
|
||||
$('#next').click(function() { $('form[name="procForm"]').submit(); }); // 다음 버튼을 클릭하면 다음단계로 진행
|
||||
} else {
|
||||
$('#next').addClass('btn-secondary').removeClass('btn-primary').attr('disabled',true) // 모두 체크되지 않으면 다음버튼을 비활성 처리함
|
||||
}
|
||||
});
|
||||
|
||||
// 자세히 보기 모달
|
||||
var agreement_docs = $('#agreement').val().replace(/\n/g, '<br>')
|
||||
var privacy_docs = $('#privacy').val().replace(/\n/g, '<br>')
|
||||
|
||||
$('#modal-docs').on('shown.rc.modal', function (event) {
|
||||
var button = $(event.relatedTarget)
|
||||
var type = button.data('type')
|
||||
$(this).find('.content').scrollTop(0);
|
||||
if (type == 'agreement') {
|
||||
$(this).find('[data-role="docs"]').html(agreement_docs)
|
||||
} else {
|
||||
$(this).find('[data-role="docs"]').html(privacy_docs)
|
||||
}
|
||||
})
|
||||
|
||||
</script>
|
||||
852
modules/member/themes/_mobile/rc-default/login/component.php
Normal file
852
modules/member/themes/_mobile/rc-default/login/component.php
Normal file
@@ -0,0 +1,852 @@
|
||||
<!--
|
||||
로그인 관련 컴포넌트 모음
|
||||
1. 모달 : modal-login : 로그인 시작모달 (로그인 방식선택)
|
||||
2. 모달 : modal-combine : 소셜미디어 사용자인증 후 연결정보 입력 (기존 회원중에 동일한 이메일이 존재하나, 본인인증되지 않은 이메일일 경우)
|
||||
3. 모달 : modal-pwReset : 비밀번호 초기화
|
||||
-->
|
||||
|
||||
<!-- 일반모달 : 로그인-->
|
||||
<div id="modal-login" class="modal fast" style="z-index:21">
|
||||
|
||||
<div class="page center" id="page-login-main">
|
||||
<header class="bar bar-nav bar-light bg-faded p-x-0">
|
||||
<a class="icon material-icons pull-left px-3" role="button" data-history="back">arrow_back</a>
|
||||
<h1 class="title">로그인</h1>
|
||||
</header>
|
||||
<nav class="bar bar-tab bar-light bg-faded">
|
||||
<a class="tab-item active" role="button" data-toggle="changeModal" href="#modal-join">
|
||||
<small>처음이신가요? <span class="pl-2">회원가입</span></small>
|
||||
</a>
|
||||
</nav>
|
||||
<main class="content bg-faded">
|
||||
|
||||
<div class="content-padded text-xs-center">
|
||||
|
||||
<button type="button"class="btn btn-secondary btn-block" data-toggle="page" data-target="#page-login-form" data-start="#page-login-main" data-type="email" >
|
||||
이메일로 로그인
|
||||
</button>
|
||||
<span class="section-divider"><span>또는</span></span>
|
||||
<button type="button"class="btn btn-outline-primary btn-block" data-toggle="page" data-target="#page-login-form" data-start="#page-login-main" data-type="phone">
|
||||
휴대폰 번호로 로그인
|
||||
</button>
|
||||
|
||||
<?php if ($d['member']['login_social']): ?>
|
||||
|
||||
<?php if ($d['connect']['use_k']): ?>
|
||||
<button type="button" class="btn btn-lg btn-secondary btn-block btn-social btn-kakao text-xs-center" data-connect="kakao" role="button">
|
||||
<span></span>
|
||||
카카오톡으로 로그인
|
||||
</button>
|
||||
<?php endif; ?>
|
||||
|
||||
<?php if ($d['connect']['use_n']): ?>
|
||||
<button type="button" class="btn btn-lg btn-secondary btn-block btn-social btn-naver text-xs-center" data-connect="naver" role="button">
|
||||
<span></span>
|
||||
네이버로 로그인
|
||||
</button>
|
||||
<?php endif; ?>
|
||||
|
||||
<?php if ($d['connect']['use_g']): ?>
|
||||
<button type="button" class="btn btn-lg btn-secondary btn-block btn-social btn-google text-xs-center" data-connect="google" role="button">
|
||||
<span class="fa fa-google"></span>
|
||||
구글로 로그인
|
||||
</button>
|
||||
<?php endif; ?>
|
||||
|
||||
<?php if ($d['connect']['use_f']): ?>
|
||||
<button type="button" class="btn btn-lg btn-secondary btn-block btn-social btn-facebook text-xs-center" data-connect="facebook" role="button">
|
||||
<span class="fa fa-facebook"></span>
|
||||
페이스북으로 로그인
|
||||
</button>
|
||||
<?php endif; ?>
|
||||
|
||||
<?php if ($d['connect']['use_i']): ?>
|
||||
<button type="button" class="btn btn-lg btn-secondary btn-block btn-social btn-instagram text-xs-center" data-connect="instagram" role="button">
|
||||
<span class="fa fa-instagram"></span>
|
||||
인스타그램으로 로그인
|
||||
</button>
|
||||
<?php endif; ?>
|
||||
|
||||
<?php endif; ?>
|
||||
|
||||
</div>
|
||||
|
||||
</main>
|
||||
</div><!-- /#page-main -->
|
||||
|
||||
<div class="page right" id="page-login-form">
|
||||
<header class="bar bar-nav bar-light bg-white p-x-0">
|
||||
<a class="icon material-icons pull-left px-3" role="button" data-history="back">arrow_back</a>
|
||||
<h1 class="title">로그인</h1>
|
||||
</header>
|
||||
<main class="content">
|
||||
|
||||
<form id="modal-loginform" action="<?php echo $g['s']?>/" method="post" autocomplete="off">
|
||||
<input type="hidden" name="r" value="<?php echo $r?>">
|
||||
<input type="hidden" name="a" value="login">
|
||||
<input type="hidden" name="referer" value="<?php echo $referer ? $referer : $_SERVER['REQUEST_URI']?>">
|
||||
<input type="hidden" name="form" value="">
|
||||
<input type="hidden" name="login_cookie" value="checked">
|
||||
|
||||
<div class="form-list floating mb-2 px-3">
|
||||
<div class="input-row position-relative" data-role="input-phone">
|
||||
<label>휴대폰 번호(숫자만)</label>
|
||||
<input type="number" name="id" placeholder="휴대폰 번호" autocomplete="off">
|
||||
<div class="invalid-tooltip" data-role="idErrorBlock"></div>
|
||||
</div>
|
||||
<div class="input-row position-relative d-none" data-role="input-email">
|
||||
<label>이메일 주소</label>
|
||||
<input type="email" name="id" placeholder="이메일 주소" autocomplete="off">
|
||||
<div class="invalid-tooltip" data-role="idErrorBlock"></div>
|
||||
</div>
|
||||
<div class="input-row position-relative">
|
||||
<label>비밀번호</label>
|
||||
<input type="password" placeholder="비밀번호" name="pw" required autocapitalize="off" autocorrect="off">
|
||||
<div class="invalid-tooltip" data-role="passwordErrorBlock"></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="content-padded">
|
||||
<button type="submit" class="btn btn-outline-primary btn-block" data-role="submit">
|
||||
<span class="not-loading">확인</span>
|
||||
<span class="is-loading"><i class="fa fa-spinner fa-lg fa-spin fa-fw"></i> 로그인중 ...</span>
|
||||
</button>
|
||||
</div>
|
||||
</form>
|
||||
<p class="content-padded text-xs-center mt-3">
|
||||
<a data-toggle="changeModal" href="#modal-pwReset" class="small muted-link" data-role="pwReset" data-type="email">
|
||||
비밀번호를 잊으셨나요? <strong>비밀번호 재설정</strong>
|
||||
</a>
|
||||
</p>
|
||||
|
||||
</main>
|
||||
</div><!-- /#page-login -->
|
||||
|
||||
</div><!-- /.modal -->
|
||||
|
||||
<!-- 팝업 : 로그인 안내-->
|
||||
<div id="popup-login-guide" class="popup zoom">
|
||||
<div class="popup-content rounded-0">
|
||||
<div class="content rounded-0" style="min-height: 6.875rem;">
|
||||
<div class="p-a-1">
|
||||
<h5 data-role="title"></h5>
|
||||
<span data-role="subtext" class="f14 text-muted"></span>
|
||||
<div class="text-xs-right mt-2">
|
||||
<button type="button" class="btn btn-link text-muted mr-2" data-history="back">취소</button>
|
||||
<button type="button" class="btn btn-link" data-toggle="login">로그인</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<?php
|
||||
$avatar_data=array('src'=>$_photo,'width'=>150,'height'=>150);
|
||||
$user_avatar_src=getTimThumb($avatar_data);
|
||||
$_SESSION['SL'] = ''; //세션 비우기
|
||||
?>
|
||||
|
||||
<!-- 1. 일반모달 : 계정통합-->
|
||||
<div id="modal-combine" class="modal zoom">
|
||||
<header class="bar bar-nav bar-light bg-faded">
|
||||
<a class="icon icon-left-nav pull-left" role="button" data-history="back"></a>
|
||||
<?php if (!$has_sns): ?>
|
||||
<button class="btn btn-link btn-nav pull-right p-x-1 js-submit">
|
||||
<span class="not-loading">로그인</span>
|
||||
<span class="is-loading">처리중 ...</span>
|
||||
</button>
|
||||
<?php endif; ?>
|
||||
<h1 class="title">
|
||||
계정통합
|
||||
</h1>
|
||||
</header>
|
||||
|
||||
<div class="bar bar-standard bar-header-secondary">
|
||||
<h1 class="title">
|
||||
<span>
|
||||
<?php if ($_photo): ?>
|
||||
<img src="<?php echo $user_avatar_src ?>" alt=<?php echo $name ?>"" class="rounded-circle border" style="width: 2.1875rem">
|
||||
<?php else: ?>
|
||||
<img src="<?php echo $g['s'].'/files/avatar/0.svg' ?>" alt=<?php echo $name ?>"" class="rounded-circle border" style="width: 2.1875rem">
|
||||
<?php endif; ?>
|
||||
<?php if ($sns_name): ?>
|
||||
<img src="<?php echo $g['img_core']?>/sns/<?php echo $sns_name ?>.png" alt="<?php echo $sns_name ?>" class="rounded-circle" style="width: 2.1875rem;margin-left: -0.625rem">
|
||||
<?php endif; ?>
|
||||
</span>
|
||||
<?php echo $name ?>님
|
||||
</h1>
|
||||
</div>
|
||||
|
||||
<?php if ($call_modal_join_social): ?>
|
||||
<nav class="bar bar-tab bar-light bg-faded">
|
||||
<a class="tab-item active" role="button" data-toggle="changeModal" href="#modal-join-social">
|
||||
<small>신규계정으로 가입하기</small>
|
||||
</a>
|
||||
</nav>
|
||||
<?php endif; ?>
|
||||
|
||||
<main class="content">
|
||||
|
||||
<?php if ($has_sns): ?> <!-- 동일한 이메일로 이미 가입된 소셜로그인 전용 계정이 있을 경우 -->
|
||||
<div class="content-padded">
|
||||
<div class="alert alert-warning f14" role="alert">
|
||||
<?php echo $sns_name_ko ?>로 사용자 인증이 되었으나, <strong><?php echo $email ?></strong>로 이미 연결된 <strong><?php echo $has_sns_ko ?></strong> 계정이 확인 되었습니다.
|
||||
</div>
|
||||
<button type="button" class="btn btn-lg btn-secondary btn-block btn-social btn-<?php echo $has_sns ?> text-xs-center" data-connect="<?php echo $has_sns ?>" role="button">
|
||||
<?php if ($has_sns=='naver' || $has_sns=='kakao'): ?>
|
||||
<span></span>
|
||||
<?php else: ?>
|
||||
<span class="fa fa-<?php echo $has_sns ?>"></span>
|
||||
<?php endif; ?>
|
||||
<span><?php echo $has_sns_ko ?> 으로 로그인</span>
|
||||
</button>
|
||||
<div class="mt-3 text-muted small">
|
||||
<?php echo $has_sns_ko ?>로 로그인 후, <?php echo $sns_name_ko ?>계정을 통합 할수 있습니다.<br>하나의 회원계정으로 다양한 서비스를 이용해 보세요.
|
||||
</div>
|
||||
</div>
|
||||
<?php else: ?>
|
||||
<form id="modal-combineform" action="<?php echo $g['s']?>/" method="post" autocomplete="off">
|
||||
<input type="hidden" name="r" value="<?php echo $r?>">
|
||||
<input type="hidden" name="a" value="login">
|
||||
<input type="hidden" name="sns_access_token" value="<?php echo $sns_access_token?>">
|
||||
<input type="hidden" name="sns_refresh_token" value="<?php echo $sns_refresh_token?>">
|
||||
<input type="hidden" name="sns_expires_in" value="<?php echo $sns_expires_in?>">
|
||||
<input type="hidden" name="snsname" value="<?php echo $sns_name?>">
|
||||
<input type="hidden" name="snsuid" value="<?php echo $snsuid?>">
|
||||
<input type="hidden" name="_photo" value="<?php echo $_photo ?>">
|
||||
<input type="hidden" name="form" value="">
|
||||
|
||||
<div class="form-list floating mb-2 px-3">
|
||||
<div class="input-row position-relative">
|
||||
<label>휴대폰 번호 또는 이메일</label>
|
||||
<input type="text" name="id" placeholder="휴대폰 번호 또는 이메일" autocomplete="off" value="<?php echo $email ?>"<?php echo $email?' readonly':'' ?>>
|
||||
<div class="invalid-tooltip" data-role="idErrorBlock">휴대폰 번호 또는 이메일 입력하세요.</div>
|
||||
</div>
|
||||
<div class="input-row position-relative">
|
||||
<label>비밀번호</label>
|
||||
<input type="password" placeholder="비밀번호" name="pw" required autocapitalize="off" autocorrect="off">
|
||||
<div class="invalid-tooltip" data-role="passwordErrorBlock">비밀번호를 입력하세요.</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="content-padded">
|
||||
<div class="p-y-1">
|
||||
<label class="custom-control custom-checkbox">
|
||||
<input type="checkbox" class="custom-control-input" name="login_cookie" value="checked" checked>
|
||||
<span class="custom-control-indicator"></span>
|
||||
<span class="custom-control-description">로그인 상태 유지</span>
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
|
||||
<div class="content-padded text-muted small">
|
||||
이미, <?php echo $_HS['name'] ?>에 회원계정을 가지고 계시면 로그인을 해주세요.<br>
|
||||
<?php echo $name ?>님의 <?php echo $sns_name_ko ?> 계정과 통합됩니다. <br>
|
||||
하나의 회원계정으로 다양한 서비스를 이용해 보세요.
|
||||
</div>
|
||||
|
||||
<p class="content-padded text-xs-center mt-5">
|
||||
<a href="<?php echo $g['s']?>/?m=member&front=login&page=password_reset" class="small btn btn-outline-info btn-block">비밀번호를 잊으셨나요? <strong class="ml-2">비밀번호 재설정</strong></a>
|
||||
</p>
|
||||
<?php endif; ?>
|
||||
|
||||
</main>
|
||||
</div><!-- /.modal -->
|
||||
|
||||
|
||||
<script>
|
||||
|
||||
var modal_combine = $('#modal-combine')
|
||||
var modal_login = $('#modal-login')
|
||||
|
||||
var page_login_main = $('#page-login-main')
|
||||
var page_login_form = $('#page-login-form')
|
||||
|
||||
var popup_login_guide = $('#popup-login-guide') // 로그인 가이드
|
||||
|
||||
var form_combine = $('#modal-combineform')
|
||||
var f_combine = document.getElementById('modal-combineform');
|
||||
|
||||
|
||||
<?php if ($call_modal_combine): ?>
|
||||
modal_combine.modal('show')
|
||||
<?php endif; ?>
|
||||
|
||||
modal_combine.on('show.rc.modal', function () {
|
||||
modal_combine.find('.input-row').removeClass('active');
|
||||
modal_combine.find('[name="id"]').val('')
|
||||
modal_combine.find('[name="pw"]').val('')
|
||||
})
|
||||
|
||||
modal_combine.find(".form-list.floating .input-row input").on('keyup', function() {
|
||||
$(this).removeClass('is-invalid') // 에러이력 초기화
|
||||
if ($(this).val().length >= 1) {
|
||||
$(this).parents('.input-row').addClass('active');
|
||||
} else {
|
||||
$(this).parents('.input-row').removeClass('active');
|
||||
}
|
||||
})
|
||||
|
||||
modal_combine.on('tap click','.js-submit',function(){
|
||||
form_combine.submit()
|
||||
});
|
||||
|
||||
form_combine.submit( function(event){
|
||||
|
||||
event.preventDefault();
|
||||
event.stopPropagation();
|
||||
|
||||
if (f_combine.id.value == '')
|
||||
{
|
||||
f_combine.id.classList.add('is-invalid');
|
||||
f_combine.id.focus();
|
||||
return false;
|
||||
}
|
||||
if (f_combine.pw.value == '')
|
||||
{
|
||||
f_combine.pw.classList.add('is-invalid');
|
||||
f_combine.pw.focus();
|
||||
return false;
|
||||
}
|
||||
|
||||
modal_combine.find('.js-submit').attr("disabled",true);
|
||||
|
||||
setTimeout(function(){
|
||||
siteLogin(form_combine)
|
||||
modal_combine.find('.js-submit').attr("disabled",false);
|
||||
}, 300);
|
||||
|
||||
});
|
||||
|
||||
//로그인폼 - 실행
|
||||
page_login_form.find('form').submit( function(e){
|
||||
e.preventDefault();
|
||||
e.stopPropagation();
|
||||
var form = $(this)
|
||||
siteLogin(form)
|
||||
});
|
||||
|
||||
// 로그인폼 모달이 열릴때,
|
||||
modal_login.on('show.rc.modal', function () {
|
||||
// 액션페이지 초기화
|
||||
page_login_main.addClass('page center').removeClass('transition left')
|
||||
page_login_form.addClass('page right').removeClass('transition center')
|
||||
if ($('#drawer-left').length) {
|
||||
setTimeout(function(){ $('#drawer-left').drawer('hide'); }, 1000); // 왼쪽 드로워 닫기
|
||||
}
|
||||
})
|
||||
|
||||
// 로그인폼 페이지가 열렸을때
|
||||
page_login_form.on('shown.rc.page', function (e) {
|
||||
var button = $(e.relatedTarget)
|
||||
var type = button.data('type')
|
||||
var input = page_login_form.find('.input-row input')
|
||||
|
||||
//초기화
|
||||
input.val('') // 아이디/비밀번호 입력항목 초기화
|
||||
page_login_form.find('.input-row').removeClass('active focus')
|
||||
page_login_form.find('[data-role="input-email"]').addClass('d-none')
|
||||
page_login_form.find('[data-role="input-phone"]').removeClass('d-none')
|
||||
page_login_form.find('[type="number"]').attr({'name':'id','required':'ture'})
|
||||
page_login_form.find('[type="email"]').removeAttr('name').removeAttr('required')
|
||||
page_login_form.find('[data-role="pwReset"]').attr('data-type','phone').attr('data-id','')
|
||||
|
||||
if (type=="email") {
|
||||
page_login_form.find('[data-role="input-email"]').removeClass('d-none')
|
||||
page_login_form.find('[data-role="input-phone"]').addClass('d-none')
|
||||
page_login_form.find('[type="number"]').removeAttr('name').removeAttr('required')
|
||||
page_login_form.find('[type="email"]').attr({'name':'id','required':'ture'})
|
||||
page_login_form.find('[data-role="pwReset"]').attr('data-type','email')
|
||||
}
|
||||
|
||||
setTimeout(function(){
|
||||
page_login_form.find('[name="id"]').focus()
|
||||
}, 300);
|
||||
|
||||
input.focus(function(){
|
||||
$(this).parents('.input-row').addClass('focus');
|
||||
});
|
||||
input.focusout(function(){
|
||||
$(this).parents('.input-row').removeClass('focus');
|
||||
});
|
||||
})
|
||||
|
||||
// modal 로그인이 닫혔을대
|
||||
page_login_form.on('hidden.rc.page', function () {
|
||||
$(this).find('input').removeClass('is-invalid') // 에러흔적 초기화
|
||||
})
|
||||
|
||||
page_login_form.find('input').keyup(function() {
|
||||
$(this).removeClass('is-invalid') //에러 발생후 다시 입력 시도시에 에러 흔적 초기화
|
||||
});
|
||||
|
||||
page_login_form.find('[name="id"]').keyup(function() {
|
||||
var id = $(this).val()
|
||||
var btn_pwReset = page_login_form.find('[data-role="pwReset"]')
|
||||
btn_pwReset.attr('data-id',id)
|
||||
});
|
||||
|
||||
page_login_form.find(".form-list.floating .input-row input").on('keyup', function() {
|
||||
if ($(this).val().length >= 1) {
|
||||
$(this).parents('.input-row').addClass('active');
|
||||
} else {
|
||||
$(this).parents('.input-row').removeClass('active');
|
||||
}
|
||||
})
|
||||
</script>
|
||||
|
||||
|
||||
<!-- 3. 모달 : modal-pwReset : 비밀번호 초기화 -->
|
||||
<div class="modal zoom" id="modal-pwReset">
|
||||
|
||||
<div class="page center" id="page-pw-main">
|
||||
<header class="bar bar-nav bar-light bg-white px-0">
|
||||
<a class="icon material-icons pull-left px-3" role="button" data-history="back">arrow_back</a>
|
||||
<button class="btn btn-link btn-nav pull-right p-l-1 p-r-2" data-act="send_code" data-type="phone" data-device="mobile" tabindex="2">
|
||||
다음
|
||||
</button>
|
||||
<h1 class="title">비밀번호 재설정</h1>
|
||||
</header>
|
||||
<nav class="bar bar-tab bar-light bg-faded">
|
||||
<a class="tab-item d-none" role="button" data-type="email" data-role="change-input">
|
||||
<small>또는 이메일로 받기</small>
|
||||
</a>
|
||||
<a class="tab-item" role="button" data-type="phone" data-role="change-input">
|
||||
<small>또는 휴대폰으로 받기</small>
|
||||
</a>
|
||||
</nav>
|
||||
<div class="content">
|
||||
<div class="content-padded">
|
||||
|
||||
<div class="form-list floating px-3 mb-3">
|
||||
<div class="input-row position-relative d-none" data-role="input-phone">
|
||||
<label>휴대폰 번호(숫자만)</label>
|
||||
<input type="number" name="phone" placeholder="휴대폰 번호" data-role="phone" autocomplete="off" tabindex="1">
|
||||
<div class="invalid-tooltip" data-role="phoneErrorBlock"></div>
|
||||
</div>
|
||||
<div class="input-row position-relative" data-role="input-email">
|
||||
<label>이메일 주소</label>
|
||||
<input type="email" name="email" placeholder="이메일 주소" data-role="email" autocomplete="off">
|
||||
<div class="invalid-tooltip" data-role="emailErrorBlock"></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<ul class="f13 text-muted">
|
||||
<li>인증번호를 받을 정보를 입력해 주세요.</li>
|
||||
<li>본인 확인을 통해 비밀번호를 재설정 하실 수 있습니다.</li>
|
||||
<li>비밀번호는 암호화 저장되어 분실 시 찾아드릴 수 없습니다.</li>
|
||||
</ul>
|
||||
|
||||
</div><!-- /.content-padded -->
|
||||
|
||||
</div><!-- /.content -->
|
||||
</div><!-- /.page -->
|
||||
|
||||
<div class="page right" id="page-pw-code">
|
||||
<header class="bar bar-nav bar-light bg-white px-0">
|
||||
<a class="icon material-icons pull-left px-3" role="button" data-history="back">arrow_back</a>
|
||||
<button class="btn btn-link btn-nav pull-right p-l-1 p-r-2" data-type="phone" data-act="confirm_code" data-device="mobile" data-role="confirm_code">
|
||||
확인
|
||||
</button>
|
||||
<button class="btn btn-link btn-nav pull-right p-l-1 p-r-2 d-none" data-type="phone" data-act="change_pw" data-device="mobile" data-role="change_pw">
|
||||
변경
|
||||
</button>
|
||||
<h1 class="title">비밀번호 재설정</h1>
|
||||
</header>
|
||||
<main class="content">
|
||||
|
||||
<div class="content-padded" data-role="confirm_code">
|
||||
<div class="form-list floating px-3">
|
||||
<div class="input-row position-relative" data-role="input-phone">
|
||||
<label>인증번호 (6자리)</label>
|
||||
<input type="number" name="confirm_phone_code" data-role="confirm_phone_code" placeholder="인증번호" autocomplete="off">
|
||||
<div class="invalid-tooltip" data-role="phoneCodeBlock"></div>
|
||||
</div>
|
||||
</div>
|
||||
<small class="form-text text-success px-3">
|
||||
<span data-role="target"></span> 로 인증번호를 발송했습니다.<br>
|
||||
6자리 인증번호를 입력해 주세요. (유효시간 <?php echo $d['member']['join_keyexpire'] ?>분) <span data-role="countdown" data-email-countdown="">[00:00]</span><br>
|
||||
인증번호가 오지 않으면 입력정보가 정확한지 확인하여 주세요.
|
||||
</small>
|
||||
</div><!-- /.content-padded -->
|
||||
|
||||
<div class="content-padded d-none" data-role="change_pw">
|
||||
|
||||
<form id="pwResetForm" role="form" action="<?php echo $g['s']?>/" method="post" autocomplete="off">
|
||||
<input type="hidden" name="r" value="<?php echo $r?>">
|
||||
<input type="hidden" name="m" value="member">
|
||||
<input type="hidden" name="a" value="pw_reset">
|
||||
<input type="hidden" name="act" value="change_pw">
|
||||
<input type="hidden" name="device" value="mobile">
|
||||
<input type="hidden" name="code" value="">
|
||||
<input type="hidden" name="target" value="">
|
||||
<input type="hidden" name="type" value="">
|
||||
<input type="hidden" name="check_pw1" value="0">
|
||||
<input type="hidden" name="check_pw2" value="0">
|
||||
|
||||
<div class="form-list floating px-3">
|
||||
<div class="input-row position-relative" data-role="input-phone">
|
||||
<label>비밀번호(6~16자리)</label>
|
||||
<input type="password" name="pw1" placeholder="비밀번호" autocomplete="off" data-role="pw1">
|
||||
<div class="invalid-tooltip" data-role="pw1CodeBlock" id="pw1-feedback"></div>
|
||||
</div>
|
||||
<div class="input-row position-relative" data-role="input-phone">
|
||||
<label>비밀번호 재입력</label>
|
||||
<input type="password" name="pw2" placeholder="비밀번호 재입력" autocomplete="off" data-role="pw2">
|
||||
<div class="invalid-tooltip" data-role="pw2CodeBlock" id="pw2-feedback"></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</form>
|
||||
</div><!-- /.content-padded -->
|
||||
|
||||
</main>
|
||||
</div><!-- /.page -->
|
||||
</div><!-- /.modal -->
|
||||
|
||||
|
||||
<script>
|
||||
|
||||
var modal_pwReset = $('#modal-pwReset')
|
||||
var page_pw_main = $('#page-pw-main')
|
||||
var page_pw_code = $('#page-pw-code')
|
||||
|
||||
function doPwCountdown(type) {
|
||||
page_pw_code.find('[data-'+type+'-countdown]').each(function() {
|
||||
var $this = $(this), finalDate = $(this).data(type+'-countdown');
|
||||
$this.html('');
|
||||
$this.countdown(finalDate, function(event) {
|
||||
$this.html('['+event.strftime('%M:%S')+']');
|
||||
});
|
||||
});
|
||||
};
|
||||
|
||||
function doPwChangeInput(type,id) {
|
||||
var page = $('#page-pw-main')
|
||||
page.find('[data-act="send_code"]').attr('data-type',type)
|
||||
page.find('.input-row').removeClass('active') //상태초기화
|
||||
page.find('input').removeClass('is-invalid is-valid') //에러항목 초기화
|
||||
if (type=='email') {
|
||||
page.find('[name="phone"]').val('') // 입력항목 초기화
|
||||
page.find('[data-role="input-email"]').removeClass('d-none')
|
||||
if (id) page.find('[data-role="input-email"]').addClass('active')
|
||||
page.find('[data-role="input-phone"]').addClass('d-none')
|
||||
page.find('.bar-tab [data-type="phone"]').removeClass('d-none')
|
||||
page.find('.bar-tab [data-type="email"]').addClass('d-none')
|
||||
setTimeout(function(){ page.find('[name="email"]').focus().val(id) }, 500);
|
||||
} else {
|
||||
page.find('[name="email"]').val('') // 입력항목 초기화
|
||||
page.find('[data-role="input-phone"]').removeClass('d-none')
|
||||
if (id) page.find('[data-role="input-phone"]').addClass('active')
|
||||
page.find('[data-role="input-email"]').addClass('d-none')
|
||||
page.find('.bar-tab [data-type="email"]').removeClass('d-none')
|
||||
page.find('.bar-tab [data-type="phone"]').addClass('d-none')
|
||||
setTimeout(function(){ page.find('[name="phone"]').focus().val(id) }, 500);
|
||||
}
|
||||
};
|
||||
|
||||
function pwResetCheck(obj,layer) {
|
||||
var f = document.getElementById('pwResetForm');
|
||||
if (!obj.value)
|
||||
{
|
||||
obj.classList.remove('is-invalid');
|
||||
getId(layer).innerHTML = '';
|
||||
}
|
||||
else
|
||||
{
|
||||
if (obj.name == 'pw1') {
|
||||
f.classList.remove('was-validated');
|
||||
|
||||
if (f.pw1.value.length < 6 || f.pw1.value.length > 16) {
|
||||
|
||||
f.check_pw1.value = '0';
|
||||
f.classList.remove('was-validated');
|
||||
obj.classList.add('is-invalid');
|
||||
obj.classList.remove('is-valid');
|
||||
|
||||
getId(layer).innerHTML = '영문/숫자 2개 이상의 조합으로 최소 6~16자로 입력하셔야 합니다.';
|
||||
obj.focus();
|
||||
return false;
|
||||
}
|
||||
if (getTypeCheck(f.pw1.value,"abcdefghijklmnopqrstuvwxyz")) {
|
||||
getId(layer).innerHTML = '비밀번호가 영문만으로 입력되었습니다.\n영문/숫자 2개 이상의 조합으로 최소 6자이상 입력하셔야 합니다.';
|
||||
obj.focus();
|
||||
return false;
|
||||
}
|
||||
if (getTypeCheck(f.pw1.value,"1234567890")) {
|
||||
getId(layer).innerHTML = '비밀번호가 숫자만으로 입력되었습니다.\n영문/숫자 2개 이상의 조합으로 최소 6자이상 입력하셔야 합니다.';
|
||||
obj.focus();
|
||||
return false;
|
||||
}
|
||||
f.pw1.classList.add('is-valid');
|
||||
f.pw1.classList.remove('is-invalid');
|
||||
getId(layer).innerHTML = '';
|
||||
f.check_pw1.value = '1';
|
||||
}
|
||||
|
||||
if (obj.name == 'pw2') {
|
||||
f.classList.remove('was-validated');
|
||||
obj.classList.add('is-invalid');
|
||||
obj.classList.remove('is-valid');
|
||||
|
||||
if (f.pw1.value != f.pw2.value)
|
||||
{
|
||||
getId(layer).innerHTML = '비밀번호가 일치하지 않습니다.';
|
||||
f.classList.remove('was-validated');
|
||||
obj.focus();
|
||||
f.check_pw2.value = '0';
|
||||
return false;
|
||||
}
|
||||
|
||||
f.pw2.classList.add('is-valid');
|
||||
f.pw2.classList.remove('is-invalid');
|
||||
getId(layer).innerHTML = '';
|
||||
|
||||
f.check_pw2.value = '1';
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
$(function () {
|
||||
//비밀번호 유용성 체크
|
||||
page_pw_code.find('.input-row input').keyup(function(){
|
||||
var item = $(this).data('role')
|
||||
var item_pw_check = page_pw_code.find('[name=check_pw]').val()
|
||||
if (item =='pw1') {
|
||||
element = document.querySelector('[name="pw1"]');
|
||||
pwResetCheck(element,'pw1-feedback')
|
||||
}
|
||||
if (item =='pw2') {
|
||||
element = document.querySelector('[name="pw2"]');
|
||||
pwResetCheck(element,'pw2-feedback')
|
||||
}
|
||||
});
|
||||
|
||||
// 비밀번호 초기화 모달이 열리기전에, 액션페이지 초기화
|
||||
modal_pwReset.on('show.rc.modal', function (event) {
|
||||
var button = $(event.relatedTarget)
|
||||
var type = button.attr('data-type')?button.attr('data-type'):'email';
|
||||
var id = button.attr('data-id')
|
||||
doPwChangeInput(type,id)
|
||||
page_pw_main.addClass('page center').removeClass('transition left')
|
||||
page_pw_code.addClass('page right').removeClass('transition center')
|
||||
})
|
||||
|
||||
// 비밀번호 초기화 모달이 열린후에..
|
||||
modal_pwReset.on('shown.rc.modal', function(event) {
|
||||
var input_phone = page_pw_main.find('[data-role="input-phone"]')
|
||||
var input_email = page_pw_main.find('[data-role="input-email"]')
|
||||
var btn_send = page_pw_main.find('[data-act="send_code"]')
|
||||
|
||||
//각종 상태 초기화
|
||||
page_pw_main.find('input').removeClass('is-invalid is-valid') //에러항목 초기화
|
||||
input_phone.find('[name="phone"]').val('')
|
||||
input_email.find('[name="email"]').val('')
|
||||
})
|
||||
|
||||
page_pw_code.on('show.rc.page', function (event) {
|
||||
page_pw_code.find('[type="number"]').val('')
|
||||
page_pw_code.find('[name="pw1"]').val('')
|
||||
page_pw_code.find('[name="pw2"]').val('')
|
||||
page_pw_code.find('[data-role="change_pw"]').addClass('d-none')
|
||||
page_pw_code.find('[data-role="confirm_code"]').removeClass('d-none')
|
||||
})
|
||||
|
||||
})
|
||||
|
||||
|
||||
//비번초기화시 입력항목 변경 (휴대폰-이메일 전환)
|
||||
page_pw_main.on('tap','[data-role="change-input"]',function(){
|
||||
var type = $(this).data('type')
|
||||
doPwChangeInput(type)
|
||||
});
|
||||
|
||||
// 본인인증 코드발송
|
||||
page_pw_main.on('tap','[data-act="send_code"]',function(){
|
||||
var button = $(this)
|
||||
var act = 'send_code'
|
||||
var type = button.attr('data-type')
|
||||
var device = button.attr('data-device')
|
||||
|
||||
if (type=='email') {
|
||||
var input = page_pw_main.find('[name="email"]')
|
||||
var _input = document.querySelector('#page-pw-main [name="email"]');
|
||||
var target = input.val()
|
||||
var msg = page_pw_main.find('[data-role="emailErrorBlock"]')
|
||||
|
||||
// 상태초기화
|
||||
input.removeClass('is-invalid is-valid')
|
||||
|
||||
// 이메일 입력폼 유효성 체크
|
||||
if (!target) {
|
||||
input.focus()
|
||||
input.addClass('is-invalid')
|
||||
msg.text('이메일을 입력해주세요.')
|
||||
return false;
|
||||
}
|
||||
if (!chkEmailAddr(_input.value)) {
|
||||
input.focus()
|
||||
input.addClass('is-invalid')
|
||||
msg.text('이메일 형식이 아닙니다.')
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
if (type=='phone') {
|
||||
var input = page_pw_main.find('[name="phone"]')
|
||||
var _input = document.querySelector('#page-pw-main [name="phone"]');
|
||||
var target = input.val()
|
||||
var msg = page_pw_main.find('[data-role="phoneErrorBlock"]')
|
||||
|
||||
// 상태초기화
|
||||
input.removeClass('is-invalid is-valid')
|
||||
|
||||
// 휴대폰번호 입력폼 유효성 체크
|
||||
if (!target) {
|
||||
input.focus()
|
||||
input.addClass('is-invalid')
|
||||
msg.text('휴대폰 번호를 입력해주세요.')
|
||||
return false;
|
||||
}
|
||||
if (!chkPhoneNumber(_input.value)) {
|
||||
input.focus()
|
||||
input.addClass('is-invalid')
|
||||
msg.text('휴대폰 번호 형식이 아닙니다.')
|
||||
return false;
|
||||
}
|
||||
}
|
||||
setTimeout(function() { //가상키보드 내려가는 시간 확보
|
||||
page_pw_main.loader({ //로더 출력
|
||||
text: "확인중...",
|
||||
position: "overlay"
|
||||
});
|
||||
}, 300);
|
||||
|
||||
var url = rooturl+'/?r='+raccount+'&m=member&a=pw_reset&act='+act+'&type='+type+'&target='+target+'&device='+device
|
||||
|
||||
getIframeForAction();
|
||||
|
||||
page_pw_code.find('[data-act=confirm_code]').attr('data-type',type);
|
||||
page_pw_code.find('[type=number]').attr('data-role','confirm_'+type+'_code').attr('name','confirm_'+type+'_code');
|
||||
page_pw_code.find('.invalid-tooltip').attr('data-role',type+'CodeBlock');
|
||||
page_pw_code.find('[data-role=countdown]').text('');
|
||||
|
||||
page_pw_code.find('[data-role="target"]').text(target)
|
||||
|
||||
setTimeout(function() {
|
||||
frames.__iframe_for_action__.location.href = url;
|
||||
}, 700);
|
||||
|
||||
});
|
||||
|
||||
// 본인인증 코드확인
|
||||
page_pw_code.on('tap','[data-act="confirm_code"]',function(){
|
||||
var button = $(this)
|
||||
var act = 'confirm_code'
|
||||
var type = button.data('type')
|
||||
var device = button.data('device')
|
||||
|
||||
if (type=='email') {
|
||||
var input = page_pw_code.find('[name="confirm_email_code"]')
|
||||
var code = input.val()
|
||||
var msg = page_pw_code.find('[data-role="emailCodeBlock"]')
|
||||
|
||||
// 상태초기화
|
||||
input.removeClass('is-invalid is-valid')
|
||||
|
||||
// 인증번호 입력폼 유효성 체크
|
||||
if (!code) {
|
||||
input.focus()
|
||||
input.addClass('is-invalid')
|
||||
msg.text('인증번호를 입력해주세요.')
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
if (type=='phone') {
|
||||
var input = page_pw_code.find('[name="confirm_phone_code"]')
|
||||
var code = input.val()
|
||||
var msg = page_pw_code.find('[data-role="phoneCodeBlock"]')
|
||||
|
||||
// 상태초기화
|
||||
input.removeClass('is-invalid is-valid')
|
||||
|
||||
// 인증번호 입력폼 유효성 체크
|
||||
if (!code) {
|
||||
input.focus()
|
||||
input.addClass('is-invalid')
|
||||
msg.text('인증번호를 입력해주세요.')
|
||||
return false;
|
||||
}
|
||||
}
|
||||
setTimeout(function() { //가상키보드 내려가는 시간 확보
|
||||
page_pw_code.loader({ //로더 출력
|
||||
text: "확인중...",
|
||||
position: "overlay"
|
||||
});
|
||||
}, 300);
|
||||
|
||||
var url = rooturl+'/?r='+raccount+'&m=member&a=pw_reset&act='+act+'&type='+type+'&code='+code+'&device='+device
|
||||
|
||||
getIframeForAction();
|
||||
setTimeout(function() {
|
||||
frames.__iframe_for_action__.location.href = url;
|
||||
}, 700);
|
||||
|
||||
});
|
||||
|
||||
// 비밀번호 변경
|
||||
page_pw_code.on('tap','[data-act="change_pw"]',function(){
|
||||
$('#pwResetForm').submit()
|
||||
});
|
||||
|
||||
$('#pwResetForm').submit( function(e){
|
||||
e.preventDefault();
|
||||
e.stopPropagation();
|
||||
var form = $(this)
|
||||
var formID = form.attr('id')
|
||||
var f = document.getElementById(formID);
|
||||
|
||||
if (f.check_pw1.value == '0' || f.check_pw2.value == '0') {
|
||||
e.preventDefault();
|
||||
e.stopPropagation();
|
||||
}
|
||||
|
||||
page_pw_code.loader({ //로더 출력
|
||||
text: "처리중...",
|
||||
position: "overlay"
|
||||
});
|
||||
|
||||
form.find('[name="form"]').val('#'+formID);
|
||||
form.find('[type="submit"]').attr("disabled",true);
|
||||
form.find('.form-control').removeClass('is-invalid') //에러이력 초기화
|
||||
setTimeout(function(){
|
||||
getIframeForAction(f);
|
||||
f.submit();
|
||||
}, 500);
|
||||
}
|
||||
);
|
||||
|
||||
|
||||
modal_pwReset.find(".form-list.floating .input-row input").on('keyup', function() {
|
||||
$(this).removeClass('is-invalid') // 에러이력 초기화
|
||||
if ($(this).val().length >= 1) {
|
||||
$(this).parents('.input-row').addClass('active');
|
||||
} else {
|
||||
$(this).parents('.input-row').removeClass('active');
|
||||
}
|
||||
})
|
||||
|
||||
|
||||
popup_login_guide.on('click','[data-toggle="login"]',function(){
|
||||
history.back();
|
||||
setTimeout(function(){
|
||||
modal_login.modal();
|
||||
}, 200);
|
||||
});
|
||||
|
||||
|
||||
</script>
|
||||
114
modules/member/themes/_mobile/rc-default/login/main.php
Normal file
114
modules/member/themes/_mobile/rc-default/login/main.php
Normal file
@@ -0,0 +1,114 @@
|
||||
<header class="bar bar-nav bar-light bg-faded">
|
||||
<a class="icon icon-home pull-left" role="button" href="<?php echo RW(0) ?>"></a>
|
||||
<h1 class="title">로그인</h1>
|
||||
</header>
|
||||
|
||||
<main class="content">
|
||||
<form id="page-loginform" action="<?php echo $g['s']?>/" method="post" novalidate>
|
||||
<input type="hidden" name="r" value="<?php echo $r?>">
|
||||
<input type="hidden" name="a" value="login">
|
||||
<input type="hidden" name="referer" value="<?php echo $referer ? $referer : $_SERVER['HTTP_REFERER']?>">
|
||||
<input type="hidden" name="form" value="">
|
||||
|
||||
<div class="card">
|
||||
<div class="form-list">
|
||||
<span class="position-relative d-block">
|
||||
<input type="text" placeholder="아이디" name="id" required autocapitalize="off" autocorrect="off">
|
||||
<div class="invalid-tooltip" data-role="idErrorBlock"></div>
|
||||
</span>
|
||||
<span class="position-relative d-block">
|
||||
<input type="password" placeholder="패스워드" name="pw" required autocapitalize="off" autocorrect="off">
|
||||
<div class="invalid-tooltip" data-role="passwordErrorBlock"></div>
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="content-padded">
|
||||
<div class="p-y-1">
|
||||
<label class="custom-control custom-checkbox">
|
||||
<input type="checkbox" class="custom-control-input" name="login_cookie" value="checked" checked>
|
||||
<span class="custom-control-indicator"></span>
|
||||
<span class="custom-control-description">로그인 상태 유지</span>
|
||||
</label>
|
||||
</div>
|
||||
<button type="submit" class="btn btn-outline-primary btn-lg btn-block js-submit">
|
||||
<span class="not-loading">로그인</span>
|
||||
<span class="is-loading"><i class="fa fa-spinner fa-lg fa-spin fa-fw"></i> 로그인중 ...</span>
|
||||
</button>
|
||||
</div>
|
||||
<p class="m-t-2 content-padded d-flex justify-content-between">
|
||||
<a class="muted-link" href="<?php echo RW('mod=join') ?>">처음오셨나요? 가입하기</a>
|
||||
<a href="<?php echo $g['s']?>/?m=member&front=login&page=password_reset" class="muted-link">비밀번호를 잊으셨나요?</a>
|
||||
</p>
|
||||
</form>
|
||||
|
||||
<?php if ($d['member']['login_social']): ?>
|
||||
<span class="section-divider"><span>또는</span></span>
|
||||
<div class="content-padded mt-3">
|
||||
|
||||
<?php if ($d['connect']['use_n']): ?>
|
||||
<button type="button" class="btn btn-lg btn-secondary btn-block btn-social btn-naver text-xs-center" data-connect="naver" role="button">
|
||||
<span></span>
|
||||
네이버로 로그인
|
||||
</button>
|
||||
<?php endif; ?>
|
||||
|
||||
<?php if ($d['connect']['use_k']): ?>
|
||||
<button type="button" class="btn btn-lg btn-secondary btn-block btn-social btn-kakao text-xs-center" data-connect="kakao" role="button">
|
||||
<span></span>
|
||||
카카오톡으로 로그인
|
||||
</button>
|
||||
<?php endif; ?>
|
||||
|
||||
<?php if ($d['connect']['use_g']): ?>
|
||||
<button type="button" class="btn btn-lg btn-secondary btn-block btn-social btn-google text-xs-center" data-connect="google" role="button">
|
||||
<span class="fa fa-google"></span>
|
||||
구글로 로그인
|
||||
</button>
|
||||
<?php endif; ?>
|
||||
|
||||
<?php if ($d['connect']['use_f']): ?>
|
||||
<button type="button" class="btn btn-lg btn-secondary btn-block btn-social btn-facebook text-xs-center" data-connect="facebook" role="button">
|
||||
<span class="fa fa-facebook"></span>
|
||||
페이스북으로 로그인
|
||||
</button>
|
||||
<?php endif; ?>
|
||||
|
||||
<?php if ($d['connect']['use_i']): ?>
|
||||
<button type="button" class="btn btn-lg btn-secondary btn-block btn-social btn-instagram text-xs-center" data-connect="instagram" role="button">
|
||||
<span class="fa fa-instagram"></span>
|
||||
인스타그램으로 로그인
|
||||
</button>
|
||||
<?php endif; ?>
|
||||
|
||||
</div>
|
||||
<?php endif; ?>
|
||||
|
||||
</main>
|
||||
|
||||
<script type="text/javascript">
|
||||
|
||||
$(function () {
|
||||
|
||||
$('#page-loginform').submit(function(e){
|
||||
e.preventDefault();
|
||||
e.stopPropagation();
|
||||
var form = $(this)
|
||||
var formID = form.attr('id')
|
||||
var f = document.getElementById(formID);
|
||||
form.find('[name="form"]').val('#'+formID);
|
||||
form.find('[type="submit"]').attr("disabled",true);
|
||||
form.find('input').removeClass('is-invalid') //에러이력 초기화
|
||||
setTimeout(function(){
|
||||
getIframeForAction(f);
|
||||
f.submit();
|
||||
}, 500);
|
||||
});
|
||||
|
||||
// page 로그인 관련
|
||||
$("#page-loginform").find('input').keyup(function() {
|
||||
$(this).removeClass('is-invalid') //에러 흔적 초기화
|
||||
});
|
||||
|
||||
})
|
||||
</script>
|
||||
@@ -0,0 +1,139 @@
|
||||
<header class="bar bar-nav bar-light bg-faded">
|
||||
<a class="icon icon-left-nav pull-left" role="button" data-history="back"></a>
|
||||
<h1 class="title">임시 비밀번호 요청</h1>
|
||||
</header>
|
||||
|
||||
|
||||
<?php $id_or_email='회원가입시 등록한 '.($d['member']['login_emailid']?'아이디':'이메일').'을 입력해주세요.'?>
|
||||
|
||||
<div class="content">
|
||||
|
||||
<form id="request_tmpPW" class="content-padded" action="<?php echo $g['s']?>/" method="post" target="_action_frame_<?php echo $m?>">
|
||||
<input type="hidden" name="r" value="<?php echo $r?>">
|
||||
<input type="hidden" name="m" value="<?php echo $m?>">
|
||||
<input type="hidden" name="a" value="pw_tmp">
|
||||
|
||||
<div id="notice"></div>
|
||||
|
||||
<div class="">
|
||||
<div class="card-body">
|
||||
<div class="form-group">
|
||||
<label for="join_email" class="control-label">
|
||||
등록된 이메일을 입력해 주세요.
|
||||
</label>
|
||||
<input type="email" id="email_field" class="form-control" name="email" placeholder="이메일을 입력해주세요." required autofocus value="<?php echo $my['email'] ?>">
|
||||
</div>
|
||||
<div class="div">
|
||||
<button type="submit" class="btn btn-primary btn-block">임시 비밀번호 요청</button>
|
||||
|
||||
<?php if (!$my['email']): ?>
|
||||
<button type="button" class="btn btn-secondary btn-block" data-target="#findEmail" data-toggle="modal">이메일 찾기</button>
|
||||
<?php endif; ?>
|
||||
|
||||
</div>
|
||||
</div><!-- /.card-boy -->
|
||||
|
||||
|
||||
<div class="rb-complete m-t-1">
|
||||
<p>
|
||||
몇분이 지나도 메일수신이 안되었을 경우, 스펨 메일함을 확인해 보시고 기타사항에 대해서는 관리자에게 문의해주세요.
|
||||
<mark>임시 비밀번호로 로그인한 후, 비밀번호를 변경해주세요.</mark>
|
||||
</p>
|
||||
|
||||
<?php if ($my['uid']): ?>
|
||||
<a href="#" class="btn btn-light btn-block">비밀번호 변경 페이지로 돌아가기</a>
|
||||
<?php else: ?>
|
||||
<a href="#modal-login" data-toggle="modal" class="btn btn-secondary btn-block">로그인 하기</a>
|
||||
<?php endif; ?>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
</form>
|
||||
|
||||
</div>
|
||||
|
||||
<!-- 이메일 찾기 -->
|
||||
|
||||
<!-- Modal -->
|
||||
<div id="findEmail" class="modal">
|
||||
<header class="bar bar-nav bar-light bg-faded">
|
||||
<a class="icon icon-close pull-right" data-dismiss="modal" role="button"></a>
|
||||
<h1 class="title"><i class="fa fa-search"></i> 이메일 찾기</h1>
|
||||
</header>
|
||||
<div class="content bg-faded">
|
||||
<form name="procForm1" action="<?php echo $g['s']?>/" method="post" target="_action_frame_<?php echo $m?>">
|
||||
<input type="hidden" name="r" value="<?php echo $r?>" />
|
||||
<input type="hidden" name="m" value="<?php echo $m?>" />
|
||||
<input type="hidden" name="a" value="email_search" />
|
||||
|
||||
<p class="f12 mb-3 content-padded">
|
||||
회원가입시 등록한 이름(실명)과 아이디를 입력하시면 이메일을 확인하실 수 있습니다.
|
||||
</p>
|
||||
|
||||
<div class="card">
|
||||
<div class="form-list">
|
||||
<input type="text" name="name" id="join_name" placeholder="등록된 이름을 입력 해주세요." required>
|
||||
<input type="text" name="id" id="join_id" placeholder="등록된 <?php echo $d['member']['login_emailid']?'아이디':'이메일'?>를 입력 해주세요." required>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="content-padded">
|
||||
<button type="submit" class="btn btn-secondary btn-block">찾기</button>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<script type="text/javascript">
|
||||
|
||||
$('#findEmail').on('shown.bs.modal', function () {
|
||||
$('#join_name').val('').trigger('focus')
|
||||
$('#join_id').val('')
|
||||
})
|
||||
|
||||
|
||||
function pwCheck(f)
|
||||
{
|
||||
if (f.new_id.value == '')
|
||||
{
|
||||
alert('<?php echo $d['member']['login_emailid']?'이메일을':'아이디를'?> 입력해 주세요. ');
|
||||
f.new_id.focus();
|
||||
return false;
|
||||
}
|
||||
if (f.id_auth.value == '2')
|
||||
{
|
||||
if (f.new_pw_a.value == '')
|
||||
{
|
||||
alert('답변을 입력해 주세요. ');
|
||||
f.new_pw_a.focus();
|
||||
return false;
|
||||
}
|
||||
}
|
||||
if (f.id_auth.value == '3')
|
||||
{
|
||||
if (f.new_pw1.value == '')
|
||||
{
|
||||
alert('새 패스워드를 입력해 주세요.');
|
||||
f.new_pw1.focus();
|
||||
return false;
|
||||
}
|
||||
if (f.new_pw2.value == '')
|
||||
{
|
||||
alert('새 패스워드를 한번더 입력해 주세요.');
|
||||
f.new_pw2.focus();
|
||||
return false;
|
||||
}
|
||||
if (f.new_pw1.value != f.new_pw2.value)
|
||||
{
|
||||
alert('새 패스워드가 일치하지 않습니다.');
|
||||
f.new_pw1.focus();
|
||||
return false;
|
||||
}
|
||||
|
||||
alert('입력하신 패스워드로 재등록 되었습니다.');
|
||||
}
|
||||
}
|
||||
|
||||
</script>
|
||||
1
modules/member/themes/_mobile/rc-default/name.txt
Normal file
1
modules/member/themes/_mobile/rc-default/name.txt
Normal file
@@ -0,0 +1 @@
|
||||
알씨 심플형
|
||||
11
modules/member/themes/_mobile/rc-default/noti/_main.css
Normal file
11
modules/member/themes/_mobile/rc-default/noti/_main.css
Normal file
@@ -0,0 +1,11 @@
|
||||
.table-view-cell p {
|
||||
font-size: .875rem;
|
||||
color: #818a91;
|
||||
line-height: 1.3;
|
||||
max-height: 2.1rem;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.table-view-cell .badge {
|
||||
font-weight: normal;
|
||||
}
|
||||
185
modules/member/themes/_mobile/rc-default/noti/component.php
Normal file
185
modules/member/themes/_mobile/rc-default/noti/component.php
Normal file
@@ -0,0 +1,185 @@
|
||||
<!-- 사이트 페이지 -->
|
||||
<section class="page right" id="page-noti-list">
|
||||
<header class="bar bar-nav bar-light bg-white px-0">
|
||||
<a class="icon pull-left material-icons px-3" role="button" data-history="back">arrow_back</a>
|
||||
<h1 class="title title-left" data-history="back">
|
||||
새 알림
|
||||
<?php if ($my['uid']): ?>
|
||||
<span class="badge badge-danger badge-inverted ml-2" data-role="noti-status"><?php echo $my['num_notice']==0?'':$my['num_notice']?></span>
|
||||
<?php endif; ?>
|
||||
</h1>
|
||||
</header>
|
||||
|
||||
<div class="content bg-white">
|
||||
|
||||
<?php if ($my['uid']): ?>
|
||||
<ul class="table-view table-view-full border-top-0 my-0 bg-white" data-role="noti-list">
|
||||
<!-- 드러어가 열릴때, 여기에 알림정보를 받아옴 -->
|
||||
</ul>
|
||||
<?php else: ?>
|
||||
<p class="content-padded">
|
||||
|
||||
<small class="text-muted">
|
||||
내 알림을 확인하기 위해서는 로그인이 필요합니다.
|
||||
</small>
|
||||
|
||||
<button type="button" class="btn btn-secondary btn-block mt-3" data-toggle="modal" data-target="#modal-login">
|
||||
로그인 하기
|
||||
</button>
|
||||
</p>
|
||||
|
||||
<?php endif; ?>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<!-- Sheet -->
|
||||
<div id="sheet-noti" class="sheet">
|
||||
|
||||
<div class="card card-full">
|
||||
<div class="card-header bg-primary px-2 clearfix rounded-0" data-history="back" style="padding-bottom: 0.5rem;">
|
||||
<div class="pull-left">
|
||||
<span data-role="micon" style="vertical-align: middle;"></span>
|
||||
<span data-role="title" class="ml-1" style="vertical-align: middle;"></span>
|
||||
</div>
|
||||
<div class="pull-right">
|
||||
<a class="icon icon-close" role="button"></a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="card-body">
|
||||
|
||||
<div class="content-padded">
|
||||
|
||||
<div class="media">
|
||||
<span class="media-left">
|
||||
<img class="img-circle" src="" style="width:3.75rem" data-role="avatar">
|
||||
</span>
|
||||
<div class="media-body">
|
||||
<span data-role="message"></span>
|
||||
<div>
|
||||
<span class="badge badge-default badge-inverted" data-role="from"></span>
|
||||
<span class="badge badge-default badge-inverted"><i class="fa fa-clock-o" aria-hidden="true"></i> </span>
|
||||
<span class="badge badge-default badge-inverted" data-role="d_regis"></span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</div><!-- /.card-body -->
|
||||
<div class="card-footer bg-white px-2" data-role="has-referer">
|
||||
<a href="" class="btn btn-outline-primary btn-block" data-role="referer">
|
||||
<span data-role="acton-label">내용확인</span>
|
||||
</a>
|
||||
</div><!-- /.card-footer -->
|
||||
</div><!-- /.card -->
|
||||
</div> <!-- /.sheet -->
|
||||
|
||||
|
||||
<script>
|
||||
|
||||
var page_noti_list = $('#page-noti-list');
|
||||
var sheet_noti = $('#sheet-noti'); // 알림보기 시트
|
||||
|
||||
$(function() {
|
||||
|
||||
page_noti_list.on('show.rc.page', function (event) {
|
||||
|
||||
var page = $(this);
|
||||
|
||||
if (memberid) {
|
||||
var page_content = page_noti_list.find('.content')
|
||||
$.get(rooturl+'/?r='+raccount+'&m=notification&a=get_notiList',{
|
||||
sort: noti_sort,
|
||||
orderby: noti_orderby,
|
||||
recnum: noti_recnum,
|
||||
callMod: ''
|
||||
},function(response){
|
||||
var result = $.parseJSON(response);
|
||||
var num=result.num;
|
||||
var tpg=result.tpg;
|
||||
var content=result.content;
|
||||
|
||||
page.find('[data-role="noti-list"]').html(content);
|
||||
page.find('[data-plugin="timeago"]').timeago();
|
||||
bar.find('[data-role="noti-status"]').text(num);
|
||||
page.find('[data-role="noti-status"]').text(num);
|
||||
page.find('[data-role="noti-list"]').attr('data-totalPage',tpg);
|
||||
moreNOTI(page_content,tpg)
|
||||
});
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
page_noti_list.on('hidden.rc.page', function (event) {
|
||||
|
||||
var page = $(this);
|
||||
|
||||
if (memberid) {
|
||||
page.find('.content').infinitescroll('destroy') //무한스크롤 리셋
|
||||
page.append('<div class="content bg-white"><ul class="table-view table-view-full my-0 bg-white border-top-0" data-role="noti-list"></ul></div>');
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
sheet_noti.on('show.rc.sheet', function (event) {
|
||||
var item = $(event.relatedTarget)
|
||||
var from = item.data('from')
|
||||
var avatar = item.data('avatar')
|
||||
var uid = item.data('uid')
|
||||
var micon = item.data('icon')
|
||||
var cell = item.closest('.table-view-cell')
|
||||
cell.attr('tabindex','-1').focus().removeClass('table-view-active'); // 모달을 호출한 아이템을 포커싱 처리함 (css로 배경색 적용)
|
||||
sheet_noti.find('[data-role="from"]').text(from)
|
||||
sheet_noti.find('[data-role="avatar"]').attr('src',avatar)
|
||||
sheet_noti.find('[data-role="micon"]').addClass(micon)
|
||||
$.post(rooturl+'/?r='+raccount+'&m=notification&a=get_notiData',{
|
||||
uid : uid
|
||||
},function(response){
|
||||
var result = $.parseJSON(response);
|
||||
var referer=result.referer;
|
||||
var button=result.button;
|
||||
var d_regis=result.d_regis;
|
||||
var title=result.title;
|
||||
var message=result.message;
|
||||
sheet_noti.find('[data-role="title"]').text(title)
|
||||
sheet_noti.find('[data-role="message"]').html(message)
|
||||
sheet_noti.find('[data-role="d_regis"]').text(d_regis)
|
||||
|
||||
if (referer) {
|
||||
sheet_noti.find('[data-role="referer"]').attr('href',referer)
|
||||
sheet_noti.find('[data-role="not-referer"]').addClass('d-none')
|
||||
sheet_noti.find('[data-role="has-referer"]').removeClass('d-none')
|
||||
sheet_noti.find('[data-role="acton-label"]').text(button?button:'내용확인')
|
||||
}
|
||||
else {
|
||||
sheet_noti.find('[data-role="not-referer"]').removeClass('d-none')
|
||||
sheet_noti.find('[data-role="has-referer"]').addClass('d-none')
|
||||
}
|
||||
});
|
||||
|
||||
})
|
||||
|
||||
sheet_noti.on('hidden.rc.sheet', function (event) {
|
||||
//내용 초기화
|
||||
var item = $(event.relatedTarget)
|
||||
var noti_badge = $('[data-role="noti-status"]')
|
||||
sheet_noti.find('[data-role="from"]').html('')
|
||||
sheet_noti.find('[data-role="referer"]').removeClass('d-none')
|
||||
sheet_noti.find('[data-role="micon"]').removeAttr('class')
|
||||
sheet_noti.find('[data-role="acton-label"]').text('')
|
||||
sheet_noti.find('[data-role="message"]').html('')
|
||||
sheet_noti.find('[data-role="d_regis"]').text('')
|
||||
sheet_noti.find('[data-role="not-referer"]').removeClass('d-none')
|
||||
sheet_noti.find('[data-role="has-referer"]').addClass('d-none')
|
||||
var noti_badge = $('[data-role="noti-status"]')
|
||||
$.post(rooturl+'/?r='+raccount+'&m=notification&a=get_notiNum_ajax',function(response){
|
||||
var result = $.parseJSON(response);
|
||||
var noti_badge_num=result.num;
|
||||
noti_badge.text(noti_badge_num)
|
||||
});
|
||||
|
||||
})
|
||||
|
||||
});
|
||||
|
||||
</script>
|
||||
117
modules/member/themes/_mobile/rc-default/noti/main.php
Normal file
117
modules/member/themes/_mobile/rc-default/noti/main.php
Normal file
@@ -0,0 +1,117 @@
|
||||
<?php
|
||||
$sort = $sort ? $sort : 'uid';
|
||||
$orderby= $orderby ? $orderby : 'desc';
|
||||
$recnum = $recnum && $recnum < 200 ? $recnum : 20;
|
||||
|
||||
$sqlque = 'mbruid='.$my['uid'];
|
||||
if ($category) $sqlque .= " and category='".$category."'";
|
||||
|
||||
$RCD = getDbArray($table['s_notice'],$sqlque,'*',$sort,$orderby,$recnum,$p);
|
||||
$NUM = getDbRows($table['s_notice'],$sqlque);
|
||||
$TPG = getTotalPage($NUM,$recnum);
|
||||
|
||||
$PageLink = './noti?';
|
||||
if ($type) $PageLink .= 'type='.$type.'&';
|
||||
|
||||
?>
|
||||
|
||||
<header class="bar bar-nav bar-dark bg-primary px-0">
|
||||
<a class="icon icon-left-nav pull-left p-x-1" role="button" data-history="back"></a>
|
||||
<a class="icon icon-gear pull-right p-x-1" role="button" href="<?php echo $g['s'] ?>/?r=<?php echo $r ?>&mod=settings&page=noti"></a>
|
||||
<h1 class="title" data-location="reload">내 알림함</h1>
|
||||
</header>
|
||||
|
||||
<div class="bar bar-standard bar-footer bar-light bg-white">
|
||||
<a href="<?php echo $g['s']?>/?r=<?php echo $r?>&m=notification&a=multi_delete_user&deltype=delete_all" class="btn btn-secondary btn-block" onclick="return hrefCheck(this,true,'정말로 전체 알림 삭제를 하시겠습니까?');">
|
||||
<i class="fa fa-trash-o fa-fw" aria-hidden="true"></i>
|
||||
알림함 비우기
|
||||
</a>
|
||||
</div>
|
||||
|
||||
|
||||
<main class="content bg-faded">
|
||||
|
||||
<ul class="table-view table-view-full bg-white mb-0 animated fadeIn delay-1" style="margin-top: -.0625rem">
|
||||
<?php $_i=0;while($R=db_fetch_array($RCD)):?>
|
||||
<?php $SM1=$R['mbruid']?getDbData($table['s_mbrdata'],'memberuid='.$R['mbruid'],'name,nic'):array()?>
|
||||
<?php $SM2=$R['frommbr']?getDbData($table['s_mbrdata'],'memberuid='.$R['frommbr'],'memberuid,name,nic'):array()?>
|
||||
<?php $MD = getDbData($table['s_module'],"id='".$R['frommodule']."'",'icon'); ?>
|
||||
<?php $avatar =$R['frommbr']?getAvatarSrc($SM2['memberuid'],'120'):'/_core/images/touch/homescreen-192x192.png' ?>
|
||||
<li class="table-view-cell<?php echo $R['d_read']?'':' table-view-active' ?>">
|
||||
<a data-toggle="sheet" href="#sheet-noti"
|
||||
data-from="<?php echo $SM2[$_HS['nametype']] ?>"
|
||||
data-icon="<?php echo $MD['icon'] ?>"
|
||||
data-avatar="<?php echo $avatar ?>"
|
||||
data-uid="<?php echo $R["uid"] ?>">
|
||||
<span class="media-object pull-left position-relative">
|
||||
<img class="img-circle" src="<?php echo $avatar ?>" style="width:52px">
|
||||
<?php if ($R['frommbr']): ?>
|
||||
<i class="<?php echo $MD['icon'] ?> bg-primary position-absolute"></i>
|
||||
<?php endif; ?>
|
||||
</span>
|
||||
|
||||
<div class="media-body">
|
||||
<span class="d-flex justify-content-between">
|
||||
<span><?php echo $R['title'] ?> <span class="badge"><?php echo $R['frommbr']?$SM2[$_HS['nametype']]:'' ?></span></span>
|
||||
<span style="margin-top: -.2rem">
|
||||
<?php echo getNew($R['d_regis'],24)?' <span class="rb-new ml-1"></span>':'' ?>
|
||||
<time class="small badge badge-default badge-inverted" data-plugin="timeago" datetime="<?php echo getDateFormat($R['d_regis'],'c') ?>"></time>
|
||||
</span>
|
||||
</span>
|
||||
<p><?php echo getStrCut($R['message'],150,'')?> </p>
|
||||
</div>
|
||||
</a>
|
||||
</li>
|
||||
<?php $_i++;endwhile?>
|
||||
|
||||
<?php if(!$NUM):?>
|
||||
<li class="table-view-cell text-xs-center p-5 text-muted d-flex align-items-center justify-content-center bg-faded" style="height: calc(100vh - 10.5rem);">
|
||||
내역이 없습니다.
|
||||
</li>
|
||||
<?php endif?>
|
||||
|
||||
</ul>
|
||||
|
||||
</main>
|
||||
|
||||
|
||||
<script>
|
||||
|
||||
// 더보기
|
||||
var currentPage =1; // 처음엔 무조건 1, 아래 더보기 진행되면서 +1 증가
|
||||
var totalPage = '<?php echo $TPG?>';
|
||||
var totalNUM = '<?php echo $NUM?>';
|
||||
var sort = '<?php echo $sort?>';
|
||||
var orderby = '<?php echo $orderby?>';
|
||||
var recnum = '<?php echo $recnum?>';
|
||||
|
||||
$('.content').infinitescroll({
|
||||
dataSource: function(helpers, callback){
|
||||
var nextPage = parseInt(currentPage)+1;
|
||||
if (totalPage>currentPage) {
|
||||
$.get(rooturl+'/?r='+raccount+'&m=notification&a=get_moreList',{
|
||||
page : nextPage,
|
||||
sort: sort,
|
||||
orderby: orderby,
|
||||
recnum: recnum,
|
||||
},function(response) {
|
||||
var result = $.parseJSON(response);
|
||||
var error = result.error;
|
||||
var content = result.content;
|
||||
if(error) alert(result.error_comment);
|
||||
callback({ content: content });
|
||||
currentPage++; // 현재 페이지 +1
|
||||
console.log(currentPage+'페이지 불러옴')
|
||||
$('[data-plugin="timeago"]').timeago();
|
||||
});
|
||||
} else {
|
||||
callback({ end: true });
|
||||
console.log('더이상 불러올 페이지가 없습니다.')
|
||||
}
|
||||
},
|
||||
appendToEle : $('.table-view'),
|
||||
percentage : 95, // 95% 아래로 스크롤할때 다움페이지 호출
|
||||
hybrid : false // true: 버튼형, false: 자동
|
||||
});
|
||||
|
||||
</script>
|
||||
120
modules/member/themes/_mobile/rc-default/profile/component.js
Normal file
120
modules/member/themes/_mobile/rc-default/profile/component.js
Normal file
@@ -0,0 +1,120 @@
|
||||
var sheet_member_profile = $('#sheet-member-profile');
|
||||
|
||||
sheet_member_profile.on('show.rc.sheet', function (event) {
|
||||
var button = $(event.relatedTarget);
|
||||
var sheet = $(this);
|
||||
var nic = button.attr('data-nic');
|
||||
var mbruid = button.attr('data-mbruid');
|
||||
var avatar = button.attr('data-avatar');
|
||||
sheet.find('[data-role="avatar"]').attr('src',avatar);
|
||||
sheet.find('[data-toggle="follow"]').attr('data-mbruid',mbruid);
|
||||
setTimeout(function(){
|
||||
$.post(rooturl+'/?r='+raccount+'&m=member&a=get_profileDataSimple',{
|
||||
mbruid : mbruid
|
||||
},function(response){
|
||||
var result = $.parseJSON(response);
|
||||
var id=result.id;
|
||||
var nic=result.nic;
|
||||
var bio=result.bio;
|
||||
var num_follower=result.num_follower;
|
||||
var num_post=result.num_post;
|
||||
var num_list=result.num_list;
|
||||
var _avatar=result.avatar;
|
||||
var isFollowing=result.isFollowing;
|
||||
sheet.find('[data-role="bio"]').text(bio);
|
||||
sheet.find('[data-role="num_follower"]').text(num_follower);
|
||||
sheet.find('[data-role="num_post"]').text(num_post);
|
||||
sheet.find('[data-role="num_list"]').text(num_list);
|
||||
if (!avatar) sheet.find('[data-role="avatar"]').attr('src',_avatar);
|
||||
sheet.find('[data-toggle="profile"]').attr('data-url','/@'+id).attr('data-mbruid',mbruid).attr('data-nic',nic);
|
||||
|
||||
if (memberid==id) {
|
||||
sheet.find('[data-role="follower"]').addClass('d-none');
|
||||
sheet.find('[data-role="ismy"]').text('(나)');
|
||||
} else {
|
||||
sheet.find('[data-role="follower"]').removeClass('d-none');
|
||||
sheet.find('[data-role="ismy"]').text('');
|
||||
}
|
||||
|
||||
if (isFollowing) {
|
||||
sheet.find('[data-role="isfollowing"]').removeClass('d-none');
|
||||
sheet.find('[data-toggle="follow"]').addClass('d-none');
|
||||
} else {
|
||||
sheet.find('[data-role="isfollowing"]').addClass('d-none');
|
||||
sheet.find('[data-toggle="follow"]').removeClass('d-none');
|
||||
}
|
||||
|
||||
});
|
||||
}, 100);
|
||||
|
||||
})
|
||||
|
||||
sheet_member_profile.on('hidden.rc.sheet', function (event) {
|
||||
var sheet = $(this);
|
||||
sheet.find('[data-role="nic"]').text('');
|
||||
sheet.find('[data-role="avatar"]').removeAttr('src');
|
||||
sheet.find('[data-role="bio"]').text('');
|
||||
sheet.find('[data-toggle="profile"]').removeAttr('data-url').removeAttr('data-mbruid').removeAttr('data-nic');
|
||||
})
|
||||
|
||||
|
||||
$(document).on('click','[data-toggle="profile"]',function(){
|
||||
var button = $(this);
|
||||
var mbruid = button.attr('data-mbruid');
|
||||
var target = button.attr('data-target');
|
||||
var url = button.attr('data-url');
|
||||
var nic = button.attr('data-nic');
|
||||
var modal_id = 'modal-member-profile-'+mbruid;
|
||||
var modal = $('#'+modal_id);
|
||||
var zindex = button.attr('data-zindex');
|
||||
var delay = 10;
|
||||
|
||||
if (!modal.length) {
|
||||
var _modal = $(target).clone().appendTo('[data-role="profile-wapper"]');
|
||||
_modal.attr('id',modal_id);
|
||||
modal = _modal;
|
||||
}
|
||||
if (button.attr('data-change')){
|
||||
history.back();
|
||||
delay = 250;
|
||||
}
|
||||
|
||||
modal.css('z-index','');
|
||||
if (zindex) modal.css('z-index',zindex);
|
||||
|
||||
setTimeout(function(){
|
||||
modal.attr('data-mbruid',mbruid);
|
||||
modal.find('.bar-header-secondary .nav-inline').empty();
|
||||
modal.find('.bar').css('background-color','');
|
||||
modal.modal({
|
||||
title: nic,
|
||||
url : url
|
||||
});
|
||||
modal.find('.content').loader({ position: 'inside' });
|
||||
getPofileView(modal,mbruid)
|
||||
}, delay);
|
||||
});
|
||||
|
||||
$(document).on('click','[data-toggle="follow"]',function(){
|
||||
var button = $(this);
|
||||
var mbruid = button.attr('data-mbruid');
|
||||
var url = '/?r='+raccount+'&m=member&a=profile_follow&mbruid='+mbruid;
|
||||
if (memberid) {
|
||||
button.toggleClass('active');
|
||||
getIframeForAction('');
|
||||
frames.__iframe_for_action__.location.href = url;
|
||||
} else {
|
||||
var title = button.attr('data-title')
|
||||
var subtext = button.attr('data-subtext')
|
||||
popup_login_guide.find('[data-role="title"]').text(title);
|
||||
popup_login_guide.find('[data-role="subtext"]').text(subtext);
|
||||
popup_login_guide.popup('show');
|
||||
}
|
||||
});
|
||||
|
||||
$(document).on('shown.rc.modal', '[id*="modal-member-profile"]', function (event) {
|
||||
$('.modal.miniplayer').addClass('no-bartab');
|
||||
});
|
||||
$(document).on('hidden.rc.modal', '[id*="modal-member-profile"]', function (event) {
|
||||
$('.modal.miniplayer').removeClass('no-bartab');
|
||||
});
|
||||
@@ -0,0 +1,73 @@
|
||||
<!--
|
||||
회원 모듈 프로필 포론트 컴포넌트 모음
|
||||
|
||||
1. 페이지 : 프로필 메인
|
||||
1. 모달 : 프로필 메인
|
||||
|
||||
-->
|
||||
|
||||
<div data-role="profile-wapper">
|
||||
|
||||
<div id="modal-member-profile" class="modal fast" data-mbruid="" data-role="profile">
|
||||
<header class="bar bar-nav px-0 border-bottom-0" data-snap-ignore="true">
|
||||
<a class="icon material-icons pull-left px-3" role="button" data-history="back">arrow_back</a>
|
||||
<a class="icon material-icons pull-right pl-2 pr-3" role="button" data-toggle="modal" data-target="#modal-search">search</a>
|
||||
<h1 class="title title-left" data-history="back">
|
||||
<span data-role="title"></span>
|
||||
</h1>
|
||||
</header>
|
||||
<div class="bar bar-header-secondary border-bottom-0 p-x-0 shadow-sm">
|
||||
<nav class="nav nav-inline" style="margin-top: 0.1875rem;"></nav>
|
||||
</div>
|
||||
<div class="content bg-white" data-control="scroll" data-type="updown" data-defaultHeight="180"></div>
|
||||
</div><!-- /.modal -->
|
||||
|
||||
</div>
|
||||
|
||||
<div id="sheet-member-profile" class="sheet shadow-sm">
|
||||
<div class="content-padded py-1">
|
||||
<div class="media" data-history="back">
|
||||
<span class="media-left media-middle">
|
||||
<img data-role="avatar" class="border rounded-circle" style="width:4.6875rem">
|
||||
</span>
|
||||
<div class="media-body">
|
||||
<h6 class="media-heading mb-2">
|
||||
<span data-role="nic"></span>
|
||||
<small class="ml-1 text-muted" data-role="ismy"></small>
|
||||
</h6>
|
||||
<p class="text-muted f12 mb-1 pr-2 line-clamp-3" data-role="bio" style="line-height: 1.35"></p>
|
||||
<div class="d-flex justify-content-between align-items-end">
|
||||
<div class="">
|
||||
<span class="badge badge-inverted">구독자 <span class="ml-1" data-role="num_follower"></span></span>
|
||||
<span class="badge badge-inverted">포스트 <span class="ml-1" data-role="num_post"></span></span>
|
||||
<span class="badge badge-inverted">리스트 <span class="ml-1" data-role="num_list"></span></span>
|
||||
</div>
|
||||
<div class="">
|
||||
|
||||
</div>
|
||||
</div><!-- /.d-flex -->
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<ul class="table-view mb-0">
|
||||
<li class="table-view-cell" data-role="follower">
|
||||
구독
|
||||
<span class="badge badge-pill d-none" data-role="isfollowing">구독중</span>
|
||||
<button type="button" class="btn btn-outline-primary d-none"
|
||||
data-title="채널을 구독하시겠습니까?"
|
||||
data-subtext="채널을 구독하려면 로그인하세요."
|
||||
data-toggle="follow"
|
||||
data-mbruid="">
|
||||
구독하기
|
||||
</button>
|
||||
</li>
|
||||
<li class="table-view-cell">
|
||||
<a class="navigate-right" data-toggle="profile" data-target="#modal-member-profile" data-change="true">
|
||||
채널 바로가기
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<script src="/modules/member/themes/<?php echo $d['member']['theme_mobile']?>/profile/profile.js<?php echo $g['wcache']?>" ></script>
|
||||
<script src="/modules/member/themes/<?php echo $d['member']['theme_mobile']?>/profile/component.js<?php echo $g['wcache']?>" ></script>
|
||||
25
modules/member/themes/_mobile/rc-default/profile/main.php
Normal file
25
modules/member/themes/_mobile/rc-default/profile/main.php
Normal file
@@ -0,0 +1,25 @@
|
||||
<div data-role="loader">
|
||||
<div class="d-flex justify-content-center align-items-center text-muted" style="height:90vh">
|
||||
<div class="spinner-border" role="status"></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="d-flex justify-content-center align-items-center text-muted" style="height:80vh">
|
||||
<button class="btn btn-secondary btn-block"
|
||||
data-toggle="profile"
|
||||
data-target="#modal-member-profile"
|
||||
data-mbruid="<?php echo $_MP['uid'] ?>"
|
||||
data-title="<?php echo $mbrid ?>"
|
||||
data-url="/@<?php echo $mbrid ?>">
|
||||
프로필 열기
|
||||
</button>
|
||||
</div>
|
||||
|
||||
<script>
|
||||
|
||||
$( document ).ready(function() {
|
||||
$('[data-role="loader"]').addClass('d-none');
|
||||
$('[data-toggle="profile"]').click();
|
||||
});
|
||||
|
||||
</script>
|
||||
250
modules/member/themes/_mobile/rc-default/profile/profile.js
Normal file
250
modules/member/themes/_mobile/rc-default/profile/profile.js
Normal file
@@ -0,0 +1,250 @@
|
||||
// RGB 코드 헥사코드 변환
|
||||
function RGBToHex(rgb) {
|
||||
let sep = rgb.indexOf(",") > -1 ? "," : " ";
|
||||
rgb = rgb.substr(4).split(")")[0].split(sep);
|
||||
let r = (+rgb[0]).toString(16),
|
||||
g = (+rgb[1]).toString(16),
|
||||
b = (+rgb[2]).toString(16);
|
||||
if (r.length == 1)
|
||||
r = "0" + r;
|
||||
if (g.length == 1)
|
||||
g = "0" + g;
|
||||
if (b.length == 1)
|
||||
b = "0" + b;
|
||||
return "#" + r + g + b;
|
||||
}
|
||||
|
||||
// 배경밝기에 따라 반전된 폰트 칼라 적용
|
||||
function convertColor(hex) {
|
||||
hex = hex.replace('#', '');
|
||||
r = parseInt(hex.substring(0, 2), 16);
|
||||
g = parseInt(hex.substring(2, 4), 16);
|
||||
b = parseInt(hex.substring(4, 6), 16);
|
||||
var o = Math.round(((parseInt(r) * 299) + (parseInt(g) * 587) + (parseInt(b) * 114)) / 1000);
|
||||
if (o > 125) {
|
||||
result = true;
|
||||
} else {
|
||||
result = false;
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
function getPofileView(modal,mbruid) {
|
||||
$.post(rooturl+'/?r='+raccount+'&m=member&a=get_profileData',{
|
||||
mbruid : mbruid,
|
||||
type : 'modal'
|
||||
},function(response){
|
||||
var result = $.parseJSON(response);
|
||||
var profile=result.profile;
|
||||
var nic=result.nic;
|
||||
modal.find('[data-role="title"]').text(nic);
|
||||
modal.find('.content').html(profile);
|
||||
|
||||
modal.find('[data-role="cover"]').load(function(){
|
||||
var colorThief = new ColorThief();
|
||||
var coverImage = modal.find('[data-role="cover"]')[0];
|
||||
var cover_rgb = colorThief.getColor(coverImage);
|
||||
modal.find('.bar').css('background-color', 'rgb(' + cover_rgb + ')');
|
||||
var _cover_rgb = modal.find('.bar').css('background-color');
|
||||
var cover_hex = RGBToHex(_cover_rgb)
|
||||
|
||||
if (convertColor(cover_hex)) {
|
||||
modal.find('.bar').removeClass('bar-dark').addClass('bar-light');
|
||||
} else {
|
||||
modal.find('.bar').removeClass('bar-light').addClass('bar-dark');
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
modal.find('.content [data-plugin="timeago"]').timeago();
|
||||
var nav_control = modal.find('.profile-nav-control')
|
||||
var swiper_member_profile = new Swiper('#modal-member-profile-'+mbruid+' .swiper-container', {
|
||||
autoHeight: true,
|
||||
pagination: {
|
||||
el: '#modal-member-profile-'+mbruid+' .bar-header-secondary .nav-inline',
|
||||
clickable: true,
|
||||
autoHeight: true,
|
||||
effect : 'fade',
|
||||
spaceBetween: 30,
|
||||
slideActiveClass :'active',
|
||||
bulletClass : 'nav-link',
|
||||
bulletActiveClass : 'active' ,
|
||||
autoHeight : true,
|
||||
renderBullet: function (index, className) {
|
||||
var title;
|
||||
if (index === 0) title = '홈';
|
||||
if (index === 1) title = '동영상'
|
||||
if (index === 2) title = '재생목록'
|
||||
if (index === 3) title = '커뮤니티'
|
||||
if (index === 4) title = '채널'
|
||||
if (index === 5) title = '정보'
|
||||
return '<a class="' + className + '">'+title+'</a>';
|
||||
},
|
||||
},
|
||||
on: {
|
||||
init: function () {
|
||||
console.log('swiper 초기화');
|
||||
},
|
||||
}
|
||||
});
|
||||
|
||||
swiper_member_profile.on('slideChange', function () {
|
||||
var index = swiper_member_profile.activeIndex
|
||||
nav_control.find('.nav-link').removeClass('active')
|
||||
nav_control.find('[data-index="'+index+'"]').addClass('active')
|
||||
setTimeout(function(){
|
||||
modal.find('.content').animate({scrollTop:0}, '400');
|
||||
}, 600);
|
||||
|
||||
var currentPage =1; // 처음엔 무조건 1, 아래 더보기 진행되면서 +1 증가
|
||||
var recnum = 10;
|
||||
|
||||
//무한 스크롤 환경 초기화
|
||||
modal.find('.infinitescroll-end').remove();
|
||||
modal.find('.content .content-padded [data-role="list"]').empty();
|
||||
// var content_markup = modal.find('.content').clone().wrapAll("<div/>").parent().html();
|
||||
// modal.find('.content').infinitescroll('destroy');
|
||||
// modal.append(content_markup);
|
||||
|
||||
if (index==0) { // 프로필 홈
|
||||
|
||||
}
|
||||
|
||||
if (index==1) { // 동영상
|
||||
modal.find('[data-role="postList"] [data-role="list"]').loader({ position: 'inside' });
|
||||
$.post(rooturl+'/?r='+raccount+'&m=member&a=get_profilePost',{
|
||||
mbruid : mbruid,
|
||||
format : 2, //video
|
||||
type : 'modal',
|
||||
recnum : recnum
|
||||
},function(response){
|
||||
var result = $.parseJSON(response);
|
||||
var postlist=result.list;
|
||||
var postnum=result.num;
|
||||
var totalPage=result.tpg;
|
||||
modal.find('[data-role="postList"] [data-role="list"]').html(postlist);
|
||||
|
||||
if (postnum) {
|
||||
modal.find('[data-role="postList"] .btn').show();
|
||||
|
||||
if (postnum>recnum) {
|
||||
//무한 스크롤
|
||||
modal.find('.content').infinitescroll({
|
||||
dataSource: function(helpers, callback){
|
||||
var nextPage = parseInt(currentPage)+1;
|
||||
if (totalPage>currentPage) {
|
||||
$.post(rooturl+'/?r='+raccount+'&m=member&a=get_profilePost',{
|
||||
mbruid : mbruid,
|
||||
format : 2, //video
|
||||
type : 'modal',
|
||||
recnum : recnum,
|
||||
p : nextPage
|
||||
},function(response) {
|
||||
var result = $.parseJSON(response);
|
||||
var error = result.error;
|
||||
var list=result.list;
|
||||
if(error) alert(result.error);
|
||||
callback({ content: list });
|
||||
|
||||
currentPage++; // 현재 페이지 +1
|
||||
console.log(currentPage+'페이지 불러옴')
|
||||
wrapper.find('[data-plugin="timeago"]').timeago();
|
||||
//wrapper.find('[data-plugin="markjs"]').mark(keyword); // marks.js
|
||||
swiper_member_profile.updateAutoHeight(100);
|
||||
});
|
||||
} else {
|
||||
callback({ end: true });
|
||||
console.log('더이상 불러올 페이지가 없습니다.')
|
||||
}
|
||||
},
|
||||
appendToEle : modal.find('[data-role="postList"] .content-padded'),
|
||||
percentage : 85, // 95% 아래로 스크롤할때 다움페이지 호출
|
||||
hybrid : false // true: 버튼형, false: 자동
|
||||
});
|
||||
}
|
||||
|
||||
} else {
|
||||
modal.find('[data-role="postList"] .btn').hide();
|
||||
}
|
||||
|
||||
swiper_member_profile.updateAutoHeight(100);
|
||||
modal.find('[data-role="postList"] [data-role="list"] [data-plugin="timeago"]').timeago();
|
||||
});
|
||||
}
|
||||
|
||||
if (index==2) { // 리스트
|
||||
modal.find('[data-role="listList"] [data-role="list"]').loader({ position: 'inside' });
|
||||
$.post(rooturl+'/?r='+raccount+'&m=member&a=get_profileList',{
|
||||
mbruid : mbruid,
|
||||
type : 'modal'
|
||||
},function(response){
|
||||
var result = $.parseJSON(response);
|
||||
var listlist=result.list;
|
||||
var listnum=result.num;
|
||||
modal.find('[data-role="listList"] [data-role="list"]').html(listlist);
|
||||
if (listnum) modal.find('[data-role="listList"] .btn').show();
|
||||
else modal.find('[data-role="listList"] .btn').hide();
|
||||
swiper_member_profile.updateAutoHeight(100);
|
||||
modal.find('[data-role="listList"] [data-role="list"] [data-plugin="timeago"]').timeago();
|
||||
});
|
||||
}
|
||||
|
||||
if (index==3) { // 커뮤니티
|
||||
modal.find('[data-role="commList"] [data-role="list"]').loader({ position: 'inside' });
|
||||
$.post(rooturl+'/?r='+raccount+'&m=member&a=get_profileComm',{
|
||||
mbruid : mbruid,
|
||||
type : 'modal'
|
||||
},function(response){
|
||||
var result = $.parseJSON(response);
|
||||
var commlist=result.list;
|
||||
var commnum=result.num;
|
||||
modal.find('[data-role="commList"] [data-role="list"]').html(commlist);
|
||||
swiper_member_profile.updateAutoHeight(100);
|
||||
modal.find('[data-role="commList"] [data-role="list"] [data-plugin="timeago"]').timeago();
|
||||
});
|
||||
}
|
||||
|
||||
if (index==4) { // 채널
|
||||
modal.find('[data-role="followList"] [data-role="list"]').loader({ position: 'inside' });
|
||||
$.post(rooturl+'/?r='+raccount+'&m=member&a=get_profileFollow',{
|
||||
mbruid : mbruid,
|
||||
type : 'modal'
|
||||
},function(response){
|
||||
var result = $.parseJSON(response);
|
||||
var followlist=result.list;
|
||||
var follownum=result.num;
|
||||
modal.find('[data-role="followList"] [data-role="list"]').html(followlist);
|
||||
swiper_member_profile.updateAutoHeight(100);
|
||||
modal.find('[data-role="followList"] [data-role="list"] [data-plugin="timeago"]').timeago();
|
||||
});
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
nav_control.find('.nav-link').click(function(){
|
||||
var index = $(this).data('index')
|
||||
swiper_member_profile.slideTo(index);
|
||||
});
|
||||
});
|
||||
|
||||
// edgeEffect
|
||||
var wrapper_startY = 0;
|
||||
modal.find('.content').on('touchstart',function(event){
|
||||
wrapper_startY = event.originalEvent.changedTouches[0].pageY;
|
||||
});
|
||||
modal.find('.content').on('touchmove',function(event){
|
||||
var wrapper_moveY = event.originalEvent.changedTouches[0].pageY;
|
||||
var wrapper_contentY = $(this).scrollTop();
|
||||
if (wrapper_contentY === 0 && wrapper_moveY > wrapper_startY) {
|
||||
if (wrapper_moveY-wrapper_startY>80) {
|
||||
edgeEffect(modal,'top','show');
|
||||
}
|
||||
}
|
||||
if( (wrapper_moveY < wrapper_startY) && ($(this).scrollTop() + $(this).innerHeight() >= $(this)[0].scrollHeight)) {
|
||||
if (wrapper_startY-wrapper_moveY>80) {
|
||||
edgeEffect(modal,'bottom','show');
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
} // getPofileView
|
||||
398
modules/member/themes/_mobile/rc-default/settings/_main.js
Normal file
398
modules/member/themes/_mobile/rc-default/settings/_main.js
Normal file
@@ -0,0 +1,398 @@
|
||||
$(function() {
|
||||
|
||||
var f = document.getElementById("memberForm");
|
||||
var page_main = $('#page-main')
|
||||
var page_profile = $('#page-profile')
|
||||
var page_name = $('#page-name')
|
||||
var page_tel1 = $('#page-tel1')
|
||||
var page_tel2 = $('#page-tel2')
|
||||
var page_birth = $('#page-birth')
|
||||
var page_sex = $('#page-sex')
|
||||
var page_addr = $('#page-addr')
|
||||
var page_bio = $('#page-bio')
|
||||
var page_home = $('#page-home')
|
||||
var page_job = $('#page-job')
|
||||
var page_marr = $('#page-marr')
|
||||
|
||||
function _submit() {
|
||||
getIframeForAction(f);
|
||||
f.submit();
|
||||
}
|
||||
|
||||
$(".js-avatar-img").tap(function() {
|
||||
$("#rb-upfile-avatar").click();
|
||||
});
|
||||
$("#rb-upfile-avatar").change(function() {
|
||||
var f = document.MbrPhotoForm;
|
||||
getIframeForAction(f);
|
||||
setTimeout(function() {
|
||||
page_profile.find('.content').loader({
|
||||
text: "업로드중...",
|
||||
position: "overlay"
|
||||
});
|
||||
}, 300); //가상 키보드가 내려오는 시간동안 대기
|
||||
f.submit();
|
||||
});
|
||||
|
||||
|
||||
$(".js-btn-action-iframe").click(function() {
|
||||
getIframeForAction('');
|
||||
frames.__iframe_for_action__.location.href = $(this).attr("data-href");
|
||||
});
|
||||
|
||||
$('#reception_sms').on('changed.rc.switch', function (event) {
|
||||
var handle = $(event.relatedTarget)
|
||||
var button = handle.closest('.switch')
|
||||
if (button.hasClass('active')){
|
||||
console.log('문자 수신설정 되었습니다.')
|
||||
page_main.find('[name="sms"]').val(1);
|
||||
} else {
|
||||
console.log('문자 수신해제 되었습니다.')
|
||||
page_main.find('[name="sms"]').val(0);
|
||||
}
|
||||
_submit() // submit 실행
|
||||
})
|
||||
|
||||
$('#reception_email').on('changed.rc.switch', function (event) {
|
||||
var handle = $(event.relatedTarget)
|
||||
var button = handle.closest('.switch')
|
||||
if (button.hasClass('active')){
|
||||
console.log('이메일 수신설정 되었습니다.')
|
||||
page_main.find('[name="remail"]').val(1);
|
||||
} else {
|
||||
console.log('이메일 수신해제 되었습니다.')
|
||||
page_main.find('[name="remail"]').val(0);
|
||||
}
|
||||
_submit() // submit 실행
|
||||
})
|
||||
|
||||
// 닉네임 시작
|
||||
page_profile.find('.js-save').tap(function() {
|
||||
var nic = page_profile.find('[name="nic"]').val()
|
||||
page_main.find('[data-role="nic"]').removeClass('animated fadeIn');
|
||||
page_main.find('[name="nic"]').val(nic);
|
||||
|
||||
setTimeout(function() {
|
||||
page_profile.find('.content').loader({
|
||||
text: "변경중...",
|
||||
position: "overlay"
|
||||
});
|
||||
}, 300); //가상 키보드가 내려오는 시간동안 대기
|
||||
|
||||
setTimeout(function() {
|
||||
page_profile.find('.content').loader("hide");
|
||||
window.history.back(); // 메인 페이지로 복귀
|
||||
setTimeout(function() {
|
||||
_submit() // submit 실행
|
||||
page_main.find('[data-role="nic"]').text(nic).addClass('animated fadeIn');
|
||||
}, 500); //페이지 전환효과 소요시간동안 대기
|
||||
}, 700);
|
||||
});
|
||||
|
||||
// 이름변경 시작
|
||||
page_name.find('.js-save').tap(function() {
|
||||
var name = page_name.find('[name="name"]').val()
|
||||
page_main.find('[data-role="name"]').removeClass('animated fadeIn');
|
||||
page_main.find('[name="name"]').val(name);
|
||||
|
||||
setTimeout(function() {
|
||||
page_name.find('.content').loader({
|
||||
text: "변경중...",
|
||||
position: "overlay"
|
||||
});
|
||||
}, 300); //가상 키보드가 내려오는 시간동안 대기
|
||||
|
||||
setTimeout(function() {
|
||||
page_name.find('.content').loader("hide");
|
||||
window.history.back(); // 메인 페이지로 복귀
|
||||
setTimeout(function() {
|
||||
_submit() // submit 실행
|
||||
page_main.find('[data-role="name"]').text(name).addClass('animated fadeIn');
|
||||
}, 500); //페이지 전환효과 소요시간동안 대기
|
||||
}, 700);
|
||||
});
|
||||
|
||||
// 유선전화 시작
|
||||
page_tel1.find('.js-save').tap(function() {
|
||||
var tel1_1 = page_tel1.find('[name="tel1_1"]').val()
|
||||
var tel1_2 = page_tel1.find('[name="tel1_2"]').val()
|
||||
var tel1_3 = page_tel1.find('[name="tel1_3"]').val()
|
||||
var tel1 = tel1_1+'-'+tel1_2+'-'+tel1_3
|
||||
page_main.find('[data-role="tel1"]').removeClass('animated fadeIn');
|
||||
page_main.find('[name="tel1_1"]').val(tel1_1);
|
||||
page_main.find('[name="tel1_2"]').val(tel1_2);
|
||||
page_main.find('[name="tel1_3"]').val(tel1_3);
|
||||
|
||||
setTimeout(function() {
|
||||
page_tel1.find('.content').loader({
|
||||
text: "변경중...",
|
||||
position: "overlay"
|
||||
});
|
||||
}, 300); //가상 키보드가 내려오는 시간동안 대기
|
||||
|
||||
setTimeout(function() {
|
||||
page_tel1.find('.content').loader("hide");
|
||||
window.history.back(); // 메인 페이지로 복귀
|
||||
setTimeout(function() {
|
||||
_submit() // submit 실행
|
||||
page_main.find('[data-role="tel1"]').text(tel1).addClass('animated fadeIn');
|
||||
}, 500); //페이지 전환효과 소요시간동안 대기
|
||||
}, 700);
|
||||
});
|
||||
|
||||
// 휴대전화 시작
|
||||
page_tel2.find('.js-save').tap(function() {
|
||||
var tel2_1 = page_tel2.find('[name="tel2_1"]').val()
|
||||
var tel2_2 = page_tel2.find('[name="tel2_2"]').val()
|
||||
var tel2_3 = page_tel2.find('[name="tel2_3"]').val()
|
||||
var tel2 = tel2_1+'-'+tel2_2+'-'+tel2_3
|
||||
page_main.find('[data-role="tel2"]').removeClass('animated fadeIn');
|
||||
page_main.find('[name="tel2_1"]').val(tel2_1);
|
||||
page_main.find('[name="tel2_2"]').val(tel2_2);
|
||||
page_main.find('[name="tel2_3"]').val(tel2_3);
|
||||
|
||||
setTimeout(function() {
|
||||
page_tel2.find('.content').loader({
|
||||
text: "변경중...",
|
||||
position: "overlay"
|
||||
});
|
||||
}, 300); //가상 키보드가 내려오는 시간동안 대기
|
||||
|
||||
setTimeout(function() {
|
||||
page_tel2.find('.content').loader("hide");
|
||||
window.history.back(); // 메인 페이지로 복귀
|
||||
setTimeout(function() {
|
||||
_submit() // submit 실행
|
||||
page_main.find('[data-role="tel2"]').text(tel2).addClass('animated fadeIn');
|
||||
}, 500); //페이지 전환효과 소요시간동안 대기
|
||||
}, 700);
|
||||
});
|
||||
|
||||
// 생년월일 시작
|
||||
page_birth.find('.js-save').tap(function() {
|
||||
var birth_1 = page_birth.find('[name="birth_1"]').val()
|
||||
var birth_2 = page_birth.find('[name="birth_2"]').val()
|
||||
var birth_3 = page_birth.find('[name="birth_3"]').val()
|
||||
var birthtype = page_birth.find('[name="birthtype"]:checked').val()
|
||||
var birth = birth_1+'.'+birth_2+'.'+birth_3
|
||||
page_main.find('[data-role="birth"]').removeClass('animated fadeIn');
|
||||
page_main.find('[name="birth_1"]').val(birth_1);
|
||||
page_main.find('[name="birth_2"]').val(birth_2);
|
||||
page_main.find('[name="birth_3"]').val(birth_3);
|
||||
page_main.find('[name="birthtype"]').val(birthtype);
|
||||
|
||||
setTimeout(function() {
|
||||
page_birth.find('.content').loader({
|
||||
text: "변경중...",
|
||||
position: "overlay"
|
||||
});
|
||||
}, 300); //가상 키보드가 내려오는 시간동안 대기
|
||||
|
||||
setTimeout(function() {
|
||||
page_birth.find('.content').loader("hide");
|
||||
window.history.back(); // 메인 페이지로 복귀
|
||||
setTimeout(function() {
|
||||
_submit() // submit 실행
|
||||
page_main.find('[data-role="birth"]').text(birth).addClass('animated fadeIn');
|
||||
}, 500); //페이지 전환효과 소요시간동안 대기
|
||||
}, 700);
|
||||
});
|
||||
|
||||
// 성별 시작
|
||||
page_sex.find('.js-save').tap(function() {
|
||||
var sex = page_sex.find('[name="sex"]:checked').val()
|
||||
page_main.find('[data-role="sex"]').removeClass('animated fadeIn');
|
||||
page_main.find('[name="sex"]').val(sex);
|
||||
|
||||
setTimeout(function() {
|
||||
page_sex.find('.content').loader({
|
||||
text: "변경중...",
|
||||
position: "overlay"
|
||||
});
|
||||
}, 300); //가상 키보드가 내려오는 시간동안 대기
|
||||
|
||||
setTimeout(function() {
|
||||
page_sex.find('.content').loader("hide");
|
||||
window.history.back(); // 메인 페이지로 복귀
|
||||
setTimeout(function() {
|
||||
_submit() // submit 실행
|
||||
if (sex==1) page_main.find('[data-role="sex"]').text('남성').addClass('animated fadeIn');
|
||||
if (sex==2) page_main.find('[data-role="sex"]').text('여성').addClass('animated fadeIn');
|
||||
}, 500); //페이지 전환효과 소요시간동안 대기
|
||||
}, 700);
|
||||
});
|
||||
|
||||
// 주소 시작
|
||||
page_addr.find('.js-save').tap(function() {
|
||||
var zip = page_addr.find('[name="zip"]').val()
|
||||
var addr1 = page_addr.find('[name="addr1"]').val()
|
||||
var addr2 = page_addr.find('[name="addr2"]').val()
|
||||
page_main.find('[data-role="addr1"]').removeClass('animated fadeIn');
|
||||
page_main.find('[name="zip"]').val(zip);
|
||||
page_main.find('[name="addr1"]').val(addr1);
|
||||
page_main.find('[name="addr2"]').val(addr2);
|
||||
|
||||
setTimeout(function() {
|
||||
page_addr.find('.content').loader({
|
||||
text: "변경중...",
|
||||
position: "overlay"
|
||||
});
|
||||
}, 300); //가상 키보드가 내려오는 시간동안 대기
|
||||
|
||||
setTimeout(function() {
|
||||
page_addr.find('.content').loader("hide");
|
||||
_submit() // submit 실행
|
||||
page_main.find('[data-role="addr1"]').text(addr1).addClass('animated fadeIn');
|
||||
page_main.find('[data-role="addr"]').text('');
|
||||
}, 700);
|
||||
});
|
||||
|
||||
// 간단설명 시작
|
||||
page_bio.find('.js-save').tap(function() {
|
||||
var bio = page_bio.find('[name="bio"]').val()
|
||||
page_main.find('[data-role="bio"]').removeClass('animated fadeIn');
|
||||
page_main.find('[name="bio"]').val(bio);
|
||||
|
||||
setTimeout(function() {
|
||||
page_bio.find('.content').loader({
|
||||
text: "변경중...",
|
||||
position: "overlay"
|
||||
});
|
||||
}, 300); //가상 키보드가 내려오는 시간동안 대기
|
||||
|
||||
setTimeout(function() {
|
||||
page_bio.find('.content').loader("hide");
|
||||
window.history.back(); // 메인 페이지로 복귀
|
||||
setTimeout(function() {
|
||||
_submit() // submit 실행
|
||||
page_main.find('[data-role="bio"]').text(bio).addClass('animated fadeIn');
|
||||
page_main.find('[data-role="_bio"]').text('').addClass('animated fadeIn');
|
||||
}, 500); //페이지 전환효과 소요시간동안 대기
|
||||
}, 700);
|
||||
});
|
||||
|
||||
// 홈페이지 변경 시작
|
||||
page_home.find('.js-save').tap(function() {
|
||||
var home = page_home.find('[name="home"]').val()
|
||||
page_main.find('[data-role="home"]').removeClass('animated fadeIn');
|
||||
page_main.find('[name="home"]').val(home);
|
||||
|
||||
setTimeout(function() {
|
||||
page_home.find('.content').loader({
|
||||
text: "변경중...",
|
||||
position: "overlay"
|
||||
});
|
||||
}, 300); //가상 키보드가 내려오는 시간동안 대기
|
||||
|
||||
setTimeout(function() {
|
||||
page_home.find('.content').loader("hide");
|
||||
window.history.back(); // 메인 페이지로 복귀
|
||||
setTimeout(function() {
|
||||
_submit() // submit 실행
|
||||
page_main.find('[data-role="home"]').text(home).addClass('animated fadeIn');
|
||||
}, 500); //페이지 전환효과 소요시간동안 대기
|
||||
}, 700);
|
||||
});
|
||||
|
||||
// 직업 변경 시작
|
||||
page_job.find('.js-save').tap(function() {
|
||||
var job = page_job.find('[name="job"]').val()
|
||||
page_main.find('[data-role="job"]').removeClass('animated fadeIn');
|
||||
page_main.find('[name="job"]').val(job);
|
||||
|
||||
setTimeout(function() {
|
||||
page_job.find('.content').loader({
|
||||
text: "변경중...",
|
||||
position: "overlay"
|
||||
});
|
||||
}, 300); //가상 키보드가 내려오는 시간동안 대기
|
||||
|
||||
setTimeout(function() {
|
||||
page_job.find('.content').loader("hide");
|
||||
window.history.back(); // 메인 페이지로 복귀
|
||||
setTimeout(function() {
|
||||
_submit() // submit 실행
|
||||
page_main.find('[data-role="job"]').text(job).addClass('animated fadeIn');
|
||||
}, 500); //페이지 전환효과 소요시간동안 대기
|
||||
}, 700);
|
||||
});
|
||||
|
||||
// 결혼기념일 시작
|
||||
page_marr.find('.js-save').tap(function() {
|
||||
var marr_1 = page_marr.find('[name="marr_1"]').val()
|
||||
var marr_2 = page_marr.find('[name="marr_2"]').val()
|
||||
var marr_3 = page_marr.find('[name="marr_3"]').val()
|
||||
var marr = marr_1+'.'+marr_2+'.'+marr_3
|
||||
page_main.find('[data-role="marr"]').removeClass('animated fadeIn');
|
||||
page_main.find('[name="marr_1"]').val(marr_1);
|
||||
page_main.find('[name="marr_2"]').val(marr_2);
|
||||
page_main.find('[name="marr_3"]').val(marr_3);
|
||||
|
||||
setTimeout(function() {
|
||||
page_marr.find('.content').loader({
|
||||
text: "변경중...",
|
||||
position: "overlay"
|
||||
});
|
||||
}, 300); //가상 키보드가 내려오는 시간동안 대기
|
||||
|
||||
setTimeout(function() {
|
||||
page_marr.find('.content').loader("hide");
|
||||
window.history.back(); // 메인 페이지로 복귀
|
||||
setTimeout(function() {
|
||||
_submit() // submit 실행
|
||||
page_main.find('[data-role="marr"]').text(marr).addClass('animated fadeIn');
|
||||
}, 500); //페이지 전환효과 소요시간동안 대기
|
||||
}, 700);
|
||||
});
|
||||
|
||||
|
||||
$(document).on('click','#execDaumPostcode',function(){
|
||||
|
||||
// 우편번호 찾기 화면을 넣을 element
|
||||
var element_wrap = document.getElementById('postLayer');
|
||||
|
||||
function execDaumPostcode() {
|
||||
daum.postcode.load(function(){
|
||||
new daum.Postcode({
|
||||
oncomplete: function(data) {
|
||||
// 검색결과 항목을 클릭했을때 실행할 코드를 작성하는 부분.
|
||||
// 각 주소의 노출 규칙에 따라 주소를 조합한다.
|
||||
// 내려오는 변수가 값이 없는 경우엔 공백('')값을 가지므로, 이를 참고하여 분기 한다.
|
||||
var fullAddr = data.address; // 최종 주소 변수
|
||||
var extraAddr = ''; // 조합형 주소 변수
|
||||
|
||||
// 기본 주소가 도로명 타입일때 조합한다.
|
||||
if(data.addressType === 'R'){
|
||||
//법정동명이 있을 경우 추가한다.
|
||||
if(data.bname !== ''){
|
||||
extraAddr += data.bname;
|
||||
}
|
||||
// 건물명이 있을 경우 추가한다.
|
||||
if(data.buildingName !== ''){
|
||||
extraAddr += (extraAddr !== '' ? ', ' + data.buildingName : data.buildingName);
|
||||
}
|
||||
// 조합형주소의 유무에 따라 양쪽에 괄호를 추가하여 최종 주소를 만든다.
|
||||
fullAddr += (extraAddr !== '' ? ' ('+ extraAddr +')' : '');
|
||||
}
|
||||
|
||||
// 우편번호와 주소 정보를 해당 필드에 넣는다.
|
||||
document.getElementById('zip1').value = data.zonecode; //5자리 새우편번호 사용
|
||||
document.getElementById('addr1').value = fullAddr;
|
||||
$('#modal-DaumPostcode').removeClass('active') // 우편번호 검색모달을 숨김
|
||||
},
|
||||
|
||||
// 우편번호 찾기 화면 크기가 조정되었을때 실행할 코드를 작성하는 부분. iframe을 넣은 element의 높이값을 조정한다.
|
||||
width : '100%',
|
||||
height : '100%'
|
||||
}).embed(element_wrap);
|
||||
});
|
||||
// element_wrap.style.display = 'block';
|
||||
|
||||
$('#modal-DaumPostcode').modal('show')
|
||||
}
|
||||
execDaumPostcode()
|
||||
|
||||
})
|
||||
|
||||
|
||||
});
|
||||
106
modules/member/themes/_mobile/rc-default/settings/account.php
Normal file
106
modules/member/themes/_mobile/rc-default/settings/account.php
Normal file
@@ -0,0 +1,106 @@
|
||||
<div class="page center" id="page-main">
|
||||
<header class="bar bar-nav bar-dark bg-primary px-0">
|
||||
<a class="icon icon-left-nav pull-left p-x-1" role="button" data-history="back"></a>
|
||||
<h1 class="title" data-location="reload">
|
||||
<i class="fa fa-user fa-fw mr-1 text-muted" aria-hidden="true"></i> 회원계정 관리
|
||||
</h1>
|
||||
</header>
|
||||
<main class="content bg-faded">
|
||||
<ul class="table-view bg-white m-t-0 animated fadeIn delay-1">
|
||||
<li class="table-view-cell">
|
||||
<a class="navigate-right" data-toggle="page" data-start="#page-main" href="#page-pw">
|
||||
<?php if ($my['last_pw']): ?>
|
||||
<span class="badge badge-default badge-inverted"><?php echo -getRemainDate($my['last_pw'])?>일전 변경</span>
|
||||
<?php endif; ?>
|
||||
<i class="fa fa-key fa-fw mr-1 text-muted" aria-hidden="true"></i> 비밀번호 <?php echo $my['last_pw']?'변경':'등록' ?>
|
||||
</a>
|
||||
</li>
|
||||
<li class="table-view-cell">
|
||||
<a class="navigate-right" data-toggle="page" data-start="#page-main" href="#page-id">
|
||||
<span class="badge badge-default badge-inverted"><?php echo $my['id'] ?></span>
|
||||
<i class="fa fa-id-badge fa-fw mr-1 text-muted" aria-hidden="true"></i> 아이디 변경
|
||||
</a>
|
||||
</li>
|
||||
<li class="table-view-cell">
|
||||
<a class="navigate-right" data-toggle="page" data-start="#page-main" href="#page-leave">
|
||||
<i class="fa fa-ban fa-fw mr-1 text-muted" aria-hidden="true"></i> 탈퇴
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</main>
|
||||
</div><!-- /.page -->
|
||||
|
||||
<!-- Target Page : 비밀번호 변경 -->
|
||||
<div id="page-pw" class="page right">
|
||||
<header class="bar bar-nav bar-dark bg-primary px-0">
|
||||
<a class="icon icon-left-nav pull-left p-x-1" role="button" data-history="back"></a>
|
||||
<h1 class="title"><i class="fa fa-key fa-fw text-muted" aria-hidden="true"></i> 비밀번호 <?php echo $my['only_sns']?'등록':'변경' ?></h1>
|
||||
</header>
|
||||
<div class="bar bar-standard bar-footer bar-light bg-faded">
|
||||
<button type="button" class="btn btn-outline-primary btn-block">변경하기</button>
|
||||
</div>
|
||||
<div class="content bg-faded">
|
||||
|
||||
<form name="procForm" class="content-padded" role="form" action="<?php echo $g['s']?>/" method="post" autocomplete="off">
|
||||
<input type="hidden" name="r" value="<?php echo $r?>">
|
||||
<input type="hidden" name="m" value="<?php echo $m?>">
|
||||
<input type="hidden" name="front" value="<?php echo $front?>">
|
||||
<input type="hidden" name="a" value="pw_update">
|
||||
|
||||
<div class="form-group">
|
||||
<label>새 비밀번호</label>
|
||||
<input type="password" class="form-control" name="pw1" id="pw1" placeholder="8자이상 영문과 숫자만 사용할 수 있습니다.">
|
||||
<small class="form-text text-muted"></small>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label>새 비밀번호 확인</label>
|
||||
<input type="password" class="form-control" name="pw2" id="pw2" placeholder="변경할 비밀번호를 한번 더 입력하세요">
|
||||
<small class="form-text text-muted"></small>
|
||||
</div>
|
||||
</form>
|
||||
|
||||
<div class="content-padded">
|
||||
<?php if ($my['only_sns']): ?>
|
||||
<p class="text-muted">비밀번호를 등록하면 비밀번호를 통한 로그인이 가능합니다.</p>
|
||||
<?php else: ?>
|
||||
<p class="text-muted">현재 비밀번호는 <code><?php echo getDateFormat($my['last_pw'],'Y.m.d')?></code> 에 변경(등록)되었으며 <code>
|
||||
<?php echo -getRemainDate($my['last_pw'])?>일</code>이 경과되었습니다.
|
||||
비밀번호는 가급적 주기적으로 변경해 주세요.</p>
|
||||
<?php endif; ?>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div><!-- /.page -->
|
||||
|
||||
<div class="page right" id="page-id">
|
||||
<header class="bar bar-nav bar-dark bg-primary px-0">
|
||||
<a class="icon icon-left-nav pull-left p-x-1" role="button" data-history="back"></a>
|
||||
<h1 class="title"><i class="fa fa-id-badge fa-fw text-muted" aria-hidden="true"></i> 아이디 변경</h1>
|
||||
</header>
|
||||
<div class="content">
|
||||
<div class="content-padded">
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div><!-- /.page -->
|
||||
|
||||
<!-- Target Page : 회원탈퇴 -->
|
||||
<div id="page-leave" class="page right">
|
||||
<header class="bar bar-nav bar-dark bg-primary px-0">
|
||||
<a class="icon icon-left-nav pull-left p-x-1" role="button" data-history="back"></a>
|
||||
<h1 class="title"><i class="fa fa-ban fa-fw text-muted" aria-hidden="true"></i> 회원탈퇴</h1>
|
||||
</header>
|
||||
<div class="bar bar-standard bar-footer bar-light bg-faded">
|
||||
<button type="button" class="btn btn-outline-danger btn-block">탈퇴</button>
|
||||
</div>
|
||||
<div class="content">
|
||||
<div class="content-padded">
|
||||
|
||||
회원님은 <span class="badge badge-default badge-inverted"><?php echo -getRemainDate($my['d_regis'])?>일전 가입</span>에 가입
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div><!-- /.page -->
|
||||
425
modules/member/themes/_mobile/rc-default/settings/component.js
Normal file
425
modules/member/themes/_mobile/rc-default/settings/component.js
Normal file
@@ -0,0 +1,425 @@
|
||||
var memberForm = document.getElementById("memberForm");
|
||||
|
||||
var modal_settings_general = $('#modal-settings-general'); // 계정설정 모달
|
||||
var modal_settings_profile = $('#modal-settings-profile'); // 프로필 설정
|
||||
|
||||
var page_settings_main = $('#page-settings-main'); // 설정메인
|
||||
var page_settings_account = $('#page-settings-account'); //회원계정
|
||||
var page_settings_pw = $('#page-settings-pw'); //비밀번호 변경
|
||||
var page_settings_email = $('#page-settings-email'); //이메일 관리
|
||||
var page_settings_phone = $('#page-settings-phone'); //휴대폰 관리
|
||||
var page_settings_noti = $('#page-settings-noti'); //알림설정
|
||||
var page_settings_connect = $('#page-settings-connect'); //연결계정
|
||||
var page_settings_shipping = $('#page-settings-shipping'); //배송지관리
|
||||
var page_settings_name = $('#page-settings-name'); //이름변경
|
||||
|
||||
var page_settings_profile = $('#page-settings-profile') //프로필 수정 메인
|
||||
var page_settings_avatar = $('#page-settings-avatar') //아바타
|
||||
var page_settings_cover = $('#page-settings-cover') //배경이미지
|
||||
var page_settings_nic = $('#page-settings-nic') //닉네임
|
||||
var page_settings_tel1 = $('#page-settings-tel1'); //유선전화
|
||||
var page_settings_bio = $('#page-settings-bio'); //간단설명
|
||||
|
||||
function saveMemberInfo(mbruid,field) {
|
||||
var wrapper = settings.wrapper;
|
||||
var keyword=settings.keyword; // keyword
|
||||
|
||||
$.post(rooturl+'/?r='+raccount+'&m=member&a=info_update',{
|
||||
sort : sort,
|
||||
keyword : keyword,
|
||||
recnum : recnum,
|
||||
p : currentPage,
|
||||
markup_file : markup_file,
|
||||
start : start
|
||||
},function(response,status){
|
||||
if(status=='success'){
|
||||
var result = $.parseJSON(response);
|
||||
var list=result.list;
|
||||
var num=result.num;
|
||||
|
||||
wrapper.loader('hide');
|
||||
if (num) wrapper.html(list)
|
||||
else wrapper.html(none)
|
||||
|
||||
|
||||
} else {
|
||||
alert(status);
|
||||
}
|
||||
});
|
||||
|
||||
} // saveMemberInfo
|
||||
|
||||
function pwChangeCheck(obj,layer) {
|
||||
var f = document.getElementById('pwChangeForm');
|
||||
if (!obj.value)
|
||||
{
|
||||
obj.classList.remove('is-invalid');
|
||||
layer.innerHTML = '';
|
||||
}
|
||||
else
|
||||
{
|
||||
if (obj.name == 'pw1') {
|
||||
f.classList.remove('was-validated');
|
||||
|
||||
if (f.pw1.value.length < 6 || f.pw1.value.length > 16) {
|
||||
|
||||
f.check_pw1.value = '0';
|
||||
f.classList.remove('was-validated');
|
||||
obj.classList.add('is-invalid');
|
||||
obj.classList.remove('is-valid');
|
||||
|
||||
|
||||
layer.innerHTML = '영문/숫자 2개 이상 조합 6~16자로 입력';
|
||||
obj.focus();
|
||||
return false;
|
||||
}
|
||||
if (getTypeCheck(f.pw1.value,"abcdefghijklmnopqrstuvwxyz")) {
|
||||
layer.innerHTML = '비밀번호가 영문만으로 입력되었습니다.\n영문/숫자 2개 이상의 조합으로 최소 6자이상 입력하셔야 합니다.';
|
||||
obj.focus();
|
||||
return false;
|
||||
}
|
||||
if (getTypeCheck(f.pw1.value,"1234567890")) {
|
||||
layer.innerHTML = '비밀번호가 숫자만으로 입력되었습니다.\n영문/숫자 2개 이상의 조합으로 최소 6자이상 입력하셔야 합니다.';
|
||||
obj.focus();
|
||||
return false;
|
||||
}
|
||||
f.pw1.classList.add('is-valid');
|
||||
f.pw1.classList.remove('is-invalid');
|
||||
layer.innerHTML = '';
|
||||
f.check_pw1.value = '1';
|
||||
}
|
||||
|
||||
if (obj.name == 'pw2') {
|
||||
f.classList.remove('was-validated');
|
||||
obj.classList.add('is-invalid');
|
||||
obj.classList.remove('is-valid');
|
||||
|
||||
if (f.pw1.value != f.pw2.value)
|
||||
{
|
||||
layer.innerHTML = '비밀번호가 일치하지 않습니다.';
|
||||
f.classList.remove('was-validated');
|
||||
obj.focus();
|
||||
f.check_pw2.value = '0';
|
||||
return false;
|
||||
}
|
||||
|
||||
f.pw2.classList.add('is-valid');
|
||||
f.pw2.classList.remove('is-invalid');
|
||||
layer.innerHTML = '';
|
||||
|
||||
f.check_pw2.value = '1';
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
modal_settings_general.on('show.rc.modal', function(event) {
|
||||
var button = $(event.relatedTarget);
|
||||
var modal = $(this);
|
||||
modal.attr('data-mbruid','');
|
||||
$('#modal-post-view').find('[data-act="pauseVideo"]').click(); //유튜브 비디오 일시정지
|
||||
if ($('#drawer-left').length) {
|
||||
setTimeout(function(){ $('#drawer-left').drawer('hide'); }, 1000); // 왼쪽 드로워 닫기
|
||||
}
|
||||
})
|
||||
|
||||
page_settings_main.on('show.rc.page', function(event) {
|
||||
var button = $(event.relatedTarget);
|
||||
var page = $(this);
|
||||
|
||||
})
|
||||
|
||||
// 비밀번호 변경
|
||||
page_settings_pw.on('show.rc.page', function(event) {
|
||||
var button = $(event.relatedTarget);
|
||||
var page = $(this);
|
||||
page.find('[type="password"]').val('')
|
||||
})
|
||||
|
||||
|
||||
//비밀번호 유용성 체크
|
||||
page_settings_pw.find('input').keyup(function(){
|
||||
var item = $(this).attr('data-role')
|
||||
var item_pw_check = page_settings_pw.find('#page-settings-pw [name=check_pw]').val()
|
||||
if (item =='pw1') {
|
||||
element = document.querySelector('#page-settings-pw [name="pw1"]');
|
||||
feedback = document.querySelector('#page-settings-pw [data-role="pw1CodeBlock"]');
|
||||
pwChangeCheck(element,feedback)
|
||||
}
|
||||
if (item =='pw2') {
|
||||
element = document.querySelector('#page-settings-pw [name="pw2"]');
|
||||
feedback = document.querySelector('#page-settings-pw [data-role="pw2CodeBlock"]');
|
||||
pwChangeCheck(element,feedback)
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
page_settings_pw.find('[data-act="changePW"]').click(function(){
|
||||
var button = $(this)
|
||||
var page = page_settings_pw;
|
||||
var f = document.getElementById('pwChangeForm');
|
||||
button.attr('disabled',true);
|
||||
|
||||
if (f.check_pw1.value == '0' || f.check_pw2.value == '0') {
|
||||
button.attr('disabled',false);
|
||||
return false;
|
||||
}
|
||||
|
||||
page.find('.form-control').removeClass('is-invalid') //에러이력 초기화
|
||||
|
||||
setTimeout(function(){
|
||||
getIframeForAction(f);
|
||||
f.submit();
|
||||
}, 1000);
|
||||
});
|
||||
|
||||
// 이메일 관리
|
||||
page_settings_email.on('show.rc.page', function(event) {
|
||||
var button = $(event.relatedTarget);
|
||||
var page = $(this);
|
||||
|
||||
page.find('.content').loader({ position: 'inside' });
|
||||
|
||||
setTimeout(function(){
|
||||
|
||||
$.post(rooturl+'/?r='+raccount+'&m=member&a=get_emailList',{
|
||||
},function(response){
|
||||
var result = $.parseJSON(response);
|
||||
var error=result.error;
|
||||
var list=result.list;
|
||||
|
||||
if (error) {
|
||||
history.back();
|
||||
setTimeout(function(){ $.notify({message: error},{type: 'default'}) }, 500);
|
||||
} else {
|
||||
page.find('.content').html(list)
|
||||
}
|
||||
|
||||
})
|
||||
|
||||
}, 300);
|
||||
|
||||
})
|
||||
|
||||
|
||||
// 휴대폰 관리
|
||||
page_settings_phone.on('show.rc.page', function(event) {
|
||||
var button = $(event.relatedTarget);
|
||||
var page = $(this);
|
||||
|
||||
page.find('.content').loader({ position: 'inside' });
|
||||
|
||||
setTimeout(function(){
|
||||
|
||||
$.post(rooturl+'/?r='+raccount+'&m=member&a=get_phoneList',{
|
||||
},function(response){
|
||||
var result = $.parseJSON(response);
|
||||
var error=result.error;
|
||||
var list=result.list;
|
||||
|
||||
if (error) {
|
||||
history.back();
|
||||
setTimeout(function(){ $.notify({message: error},{type: 'default'}) }, 500);
|
||||
} else {
|
||||
page.find('.content').html(list)
|
||||
}
|
||||
|
||||
})
|
||||
|
||||
}, 300);
|
||||
|
||||
})
|
||||
|
||||
// 알림설정
|
||||
page_settings_noti.on('show.rc.page', function(event) {
|
||||
var button = $(event.relatedTarget);
|
||||
var page = $(this);
|
||||
|
||||
console.log('알림설정')
|
||||
|
||||
})
|
||||
|
||||
// 연결계정
|
||||
page_settings_connect.on('show.rc.page', function(event) {
|
||||
var button = $(event.relatedTarget);
|
||||
var page = $(this);
|
||||
|
||||
console.log('연결계정')
|
||||
|
||||
})
|
||||
|
||||
// 배송지관리
|
||||
page_settings_shipping.on('show.rc.page', function(event) {
|
||||
var button = $(event.relatedTarget);
|
||||
var page = $(this);
|
||||
|
||||
page.find('.content').loader({ position: 'inside' });
|
||||
|
||||
setTimeout(function(){
|
||||
|
||||
$.post(rooturl+'/?r='+raccount+'&m=member&a=get_shippingList',{
|
||||
},function(response){
|
||||
var result = $.parseJSON(response);
|
||||
var error=result.error;
|
||||
var list=result.list;
|
||||
|
||||
if (error) {
|
||||
history.back();
|
||||
setTimeout(function(){ $.notify({message: error},{type: 'default'}) }, 500);
|
||||
} else {
|
||||
page.find('.content').html(list)
|
||||
}
|
||||
|
||||
})
|
||||
|
||||
}, 300);
|
||||
|
||||
})
|
||||
|
||||
// 아바타 변경
|
||||
page_settings_avatar.find(".js-avatar-img").tap(function() {
|
||||
$("#rb-upfile-avatar").click();
|
||||
});
|
||||
page_settings_avatar.find("#rb-upfile-avatar").change(function() {
|
||||
var f = document.MbrPhotoForm;
|
||||
getIframeForAction(f);
|
||||
setTimeout(function() {
|
||||
page_settings_avatar.find('.content').loader({
|
||||
text: "업로드중...",
|
||||
position: "overlay"
|
||||
});
|
||||
}, 300); //가상 키보드가 내려오는 시간동안 대기
|
||||
f.submit();
|
||||
});
|
||||
|
||||
// 배경이미지 변경
|
||||
page_settings_cover.find(".js-cover-img").tap(function() {
|
||||
$("#rb-upfile-cover").click();
|
||||
});
|
||||
page_settings_cover.find("#rb-upfile-cover").change(function() {
|
||||
var f = document.MbrCoverForm;
|
||||
getIframeForAction(f);
|
||||
setTimeout(function() {
|
||||
page_settings_cover.find('.content').loader({
|
||||
text: "업로드중...",
|
||||
position: "overlay"
|
||||
});
|
||||
}, 300); //가상 키보드가 내려오는 시간동안 대기
|
||||
f.submit();
|
||||
});
|
||||
|
||||
// 이름변경
|
||||
page_settings_name.on('shown.rc.page', function(event) {
|
||||
setTimeout(function() {
|
||||
page_settings_name.find('input').focus().putCursorAtEnd();
|
||||
}, 300);
|
||||
})
|
||||
page_settings_name.on('hidden.rc.page', function(event) {
|
||||
page_settings_name.find('input').blur()
|
||||
})
|
||||
page_settings_name.find('[data-act="submit"]').click(function(){
|
||||
var input = page_settings_name.find('[name="name"]')
|
||||
var name = input.val()
|
||||
if (!name) {
|
||||
input.focus();
|
||||
return false
|
||||
}
|
||||
page_settings_profile.find('[data-role="name"]').removeClass('animated fadeIn');
|
||||
$('#memberForm').find('[name="name"]').val(name);
|
||||
setTimeout(function() {
|
||||
page_settings_name.find('.content').loader({
|
||||
text: "변경중...",
|
||||
position: "overlay"
|
||||
});
|
||||
}, 300); //가상 키보드가 내려오는 시간동안 대기
|
||||
setTimeout(function() {
|
||||
page_settings_name.find('.content').loader("hide");
|
||||
history.back(); // 메인 페이지로 복귀
|
||||
setTimeout(function() {
|
||||
getIframeForAction(memberForm);
|
||||
memberForm.submit();
|
||||
page_settings_profile.find('[data-role="name"]').text(name).addClass('animated fadeIn');
|
||||
}, 500); //페이지 전환효과 소요시간동안 대기
|
||||
}, 700);
|
||||
});
|
||||
|
||||
// 닉네임(채널) 변경
|
||||
page_settings_nic.on('shown.rc.page', function(event) {
|
||||
setTimeout(function() {
|
||||
page_settings_nic.find('input').focus().putCursorAtEnd();
|
||||
}, 300);
|
||||
})
|
||||
page_settings_nic.on('hidden.rc.page', function(event) {
|
||||
page_settings_nic.find('input').blur();
|
||||
})
|
||||
page_settings_nic.find('[data-act="submit"]').click(function(){
|
||||
var input = page_settings_nic.find('[name="nic"]')
|
||||
var nic = input.val()
|
||||
if (!nic) {
|
||||
input.focus();
|
||||
return false
|
||||
}
|
||||
page_settings_profile.find('[data-role="nic"]').removeClass('animated fadeIn');
|
||||
$('#memberForm').find('[name="nic"]').val(nic);
|
||||
setTimeout(function() {
|
||||
page_settings_nic.find('.content').loader({
|
||||
text: "변경중...",
|
||||
position: "overlay"
|
||||
});
|
||||
}, 300); //가상 키보드가 내려오는 시간동안 대기
|
||||
setTimeout(function() {
|
||||
page_settings_nic.find('.content').loader("hide");
|
||||
history.back(); // 메인 페이지로 복귀
|
||||
setTimeout(function() {
|
||||
getIframeForAction(memberForm);
|
||||
memberForm.submit();
|
||||
page_settings_profile.find('[data-role="nic"]').text(nic).addClass('animated fadeIn');
|
||||
}, 500); //페이지 전환효과 소요시간동안 대기
|
||||
}, 700);
|
||||
});
|
||||
|
||||
|
||||
// 유선전화
|
||||
page_settings_tel1.on('show.rc.page', function(event) {
|
||||
var button = $(event.relatedTarget);
|
||||
var page = $(this);
|
||||
|
||||
console.log('유선전화')
|
||||
|
||||
})
|
||||
|
||||
// 간단설명
|
||||
page_settings_bio.on('show.rc.page', function(event) {
|
||||
setTimeout(function() {
|
||||
page_settings_bio.find('textarea').focus().putCursorAtEnd();
|
||||
}, 300);
|
||||
})
|
||||
page_settings_bio.on('hidden.rc.page', function(event) {
|
||||
page_settings_bio.find('textarea').blur();
|
||||
})
|
||||
page_settings_bio.find('[data-act="submit"]').click(function(){
|
||||
var textarea = page_settings_bio.find('[name="bio"]')
|
||||
var bio = textarea.val()
|
||||
if (!bio) {
|
||||
textarea.focus();
|
||||
return false
|
||||
}
|
||||
page_settings_profile.find('[data-role="bio"]').removeClass('animated fadeIn');
|
||||
$('#memberForm').find('[name="bio"]').val(bio);
|
||||
setTimeout(function() {
|
||||
page_settings_bio.find('.content').loader({
|
||||
text: "변경중...",
|
||||
position: "overlay"
|
||||
});
|
||||
}, 300); //가상 키보드가 내려오는 시간동안 대기
|
||||
setTimeout(function() {
|
||||
page_settings_bio.find('.content').loader("hide");
|
||||
history.back(); // 메인 페이지로 복귀
|
||||
setTimeout(function() {
|
||||
getIframeForAction(memberForm);
|
||||
memberForm.submit();
|
||||
page_settings_profile.find('[data-role="bio"]').text(bio).addClass('animated fadeIn');
|
||||
}, 500); //페이지 전환효과 소요시간동안 대기
|
||||
}, 700);
|
||||
|
||||
});
|
||||
1344
modules/member/themes/_mobile/rc-default/settings/component.php
Normal file
1344
modules/member/themes/_mobile/rc-default/settings/component.php
Normal file
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,91 @@
|
||||
<header class="bar bar-nav bar-dark bg-primary px-0">
|
||||
<a class="icon icon-left-nav pull-left p-x-1" role="button" data-history="back"></a>
|
||||
<h1 class="title" data-location="reload">
|
||||
<i class="fa fa-user-plus fa-fw mr-1 text-muted" aria-hidden="true"></i> 연결계정 관리
|
||||
</h1>
|
||||
</header>
|
||||
|
||||
<main class="content bg-faded">
|
||||
|
||||
<ul class="table-view bg-white m-t-0 animated fadeIn delay-1">
|
||||
<?php if ($d['connect']['use_n']): ?>
|
||||
<li class="table-view-cell" style="padding-right: 6rem ">
|
||||
<img class="media-object pull-left rounded-circle <?php echo !$my_naver['uid']?' filter grayscale':'' ?>" src="/_core/images/sns/naver.png" alt="네이버" width="28">
|
||||
<div class="media-body">
|
||||
네이버
|
||||
<?php if ($my_naver['uid']): ?>
|
||||
<p><?php echo getDateFormat($my_naver['d_regis'],'Y.m.d H:i') ?> 연결</p>
|
||||
<?php endif; ?>
|
||||
</div>
|
||||
<div data-toggle="switch" class="switch<?php echo $my_naver['uid']?' active':'' ?>" id="reception_sms">
|
||||
<div class="switch-handle"></div>
|
||||
</div>
|
||||
</li>
|
||||
<?php endif; ?>
|
||||
|
||||
<?php if ($d['connect']['use_k']): ?>
|
||||
<li class="table-view-cell" style="padding-right: 6rem ">
|
||||
<img class="media-object pull-left rounded-circle<?php echo !$my_kakao['uid']?' filter grayscale':'' ?>" src="/_core/images/sns/kakao.png" alt="카카오" width="28">
|
||||
<div class="media-body">
|
||||
카카오
|
||||
<?php if ($my_kakao['uid']): ?>
|
||||
<p><?php echo getDateFormat($my_kakao['d_regis'],'Y.m.d H:i') ?> 연결</p>
|
||||
<?php endif; ?>
|
||||
</div>
|
||||
<div data-toggle="switch" class="switch<?php echo $my_kakao['uid']?' active':'' ?>" id="reception_sms">
|
||||
<div class="switch-handle"></div>
|
||||
</div>
|
||||
</li>
|
||||
<?php endif; ?>
|
||||
|
||||
<?php if ($d['connect']['use_g']): ?>
|
||||
<li class="table-view-cell" style="padding-right: 6rem ">
|
||||
<img class="media-object pull-left rounded-circle<?php echo !$my_google['uid']?' filter grayscale':'' ?>" src="/_core/images/sns/google.png" alt="구글" width="28">
|
||||
<div class="media-body">
|
||||
구글
|
||||
<?php if ($my_google['uid']): ?>
|
||||
<p><?php echo getDateFormat($my_google['d_regis'],'Y.m.d H:i') ?> 연결</p>
|
||||
<?php endif; ?>
|
||||
</div>
|
||||
<div data-toggle="switch" class="switch<?php echo $my_google['uid']?' active':'' ?>" id="reception_sms">
|
||||
<div class="switch-handle"></div>
|
||||
</div>
|
||||
</li>
|
||||
<?php endif; ?>
|
||||
|
||||
<?php if ($d['connect']['use_f']): ?>
|
||||
<li class="table-view-cell" style="padding-right: 6rem ">
|
||||
<img class="media-object pull-left rounded-circle<?php echo !$my_facebook['uid']?' filter grayscale':'' ?>" src="/_core/images/sns/facebook.png" alt="페이스북" width="28">
|
||||
<div class="media-body">
|
||||
페이스북
|
||||
<?php if ($my_facebook['uid']): ?>
|
||||
<p><?php echo getDateFormat($my_facebook['d_regis'],'Y.m.d H:i') ?> 연결</p>
|
||||
<?php endif; ?>
|
||||
</div>
|
||||
<div data-toggle="switch" class="switch<?php echo $my_facebook['uid']?' active':'' ?>" id="reception_sms">
|
||||
<div class="switch-handle"></div>
|
||||
</div>
|
||||
</li>
|
||||
<?php endif; ?>
|
||||
|
||||
<?php if ($d['connect']['use_i']): ?>
|
||||
<li class="table-view-cell" style="padding-right: 6rem ">
|
||||
<img class="media-object pull-left rounded-circle<?php echo !$my_instagram['uid']?' filter grayscale':'' ?>" src="/_core/images/sns/instagram.png" alt="인스타그램" width="28">
|
||||
<div class="media-body">
|
||||
인스타그램
|
||||
<?php if ($my_instagram['uid']): ?>
|
||||
<p><?php echo getDateFormat($my_instagram['d_regis'],'Y.m.d H:i') ?> 연결</p>
|
||||
<?php endif; ?>
|
||||
</div>
|
||||
<div data-toggle="switch" class="switch<?php echo $my_instagram['uid']?' active':'' ?>" id="reception_sms">
|
||||
<div class="switch-handle"></div>
|
||||
</div>
|
||||
</li>
|
||||
<?php endif; ?>
|
||||
</ul>
|
||||
|
||||
<div class="content-padded">
|
||||
<p class="text-muted">외부의 소셜미디어 계정을 연결하고 통합관리 합니다. 연결된 소셜미디어로 사용자인증 및 연결을 지원합니다.</p>
|
||||
</div>
|
||||
|
||||
</main>
|
||||
67
modules/member/themes/_mobile/rc-default/settings/email.php
Normal file
67
modules/member/themes/_mobile/rc-default/settings/email.php
Normal file
@@ -0,0 +1,67 @@
|
||||
<?php
|
||||
$vtype = $vtype ? $vtype : 'point';
|
||||
$sort = $sort ? $sort : 'uid';
|
||||
$orderby= $orderby ? $orderby : 'desc';
|
||||
$recnum = $recnum && $recnum < 200 ? $recnum : 10;
|
||||
|
||||
$sqlque = 'my_mbruid='.$my['uid'];
|
||||
if ($type == '1') $sqlque .= ' and price > 0';
|
||||
if ($type == '2') $sqlque .= ' and price < 0';
|
||||
if ($where && $keyword)
|
||||
{
|
||||
$sqlque .= getSearchSql($where,$keyword,$ikeyword,'or');
|
||||
}
|
||||
$RCD = getDbArray($table['s_'.$vtype],$sqlque,'*',$sort,$orderby,$recnum,$p);
|
||||
$NUM = getDbRows($table['s_'.$vtype],$sqlque);
|
||||
$TPG = getTotalPage($NUM,$recnum);
|
||||
|
||||
$PageLink = './point?';
|
||||
if ($type) $PageLink .= 'type='.$type.'&';
|
||||
|
||||
?>
|
||||
|
||||
|
||||
<header class="bar bar-nav bar-dark bg-primary px-0">
|
||||
<a class="icon icon-left-nav pull-left p-x-1" role="button" href="<?php echo RW('mod=settings') ?>"></a>
|
||||
<h1 class="title" data-location="reload">
|
||||
<i class="fa fa-envelope-o mr-1 fa-fw text-muted" aria-hidden="true"></i> 이메일 관리
|
||||
</h1>
|
||||
</header>
|
||||
|
||||
<?php if ($TPG > 1): ?>
|
||||
<footer class="bar bar-standard bar-footer bar-light bg-white p-x-0">
|
||||
<div class="">
|
||||
<?php echo getPageLink($d['theme']['pagenum'],$p,$TPG,'')?>
|
||||
</div>
|
||||
</footer>
|
||||
<?php endif; ?>
|
||||
|
||||
<main class="content bg-faded animated fadeIn delay-1">
|
||||
|
||||
<ul class="table-view bg-white" style="margin-top: -.0625rem">
|
||||
<?php while($R=db_fetch_array($RCD)):?>
|
||||
<li class="table-view-cell">
|
||||
<?php echo $R['content']?>
|
||||
<?php if(getNew($R['d_regis'],24)):?><small class="text-danger">new</small><?php endif?>
|
||||
<p><?php echo getDateFormat($R['d_regis'],'Y.m.d H:i')?></p>
|
||||
<span class="badge badge-primary badge-outline"><?php echo ($R['price']>0?'+':'').number_format($R['price'])?></span>
|
||||
</li>
|
||||
<?php endwhile?>
|
||||
|
||||
<?php if(!$NUM):?>
|
||||
<li class="table-view-cell text-xs-center p-5 text-muted d-flex align-items-center justify-content-center bg-faded" style="height: calc(100vh - 10.5rem);">
|
||||
내역이 없습니다.
|
||||
</li>
|
||||
<?php endif?>
|
||||
</ul>
|
||||
|
||||
</main>
|
||||
|
||||
|
||||
<script>
|
||||
|
||||
$(function() {
|
||||
|
||||
});
|
||||
|
||||
</script>
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 67 B |
Binary file not shown.
|
After Width: | Height: | Size: 66 B |
793
modules/member/themes/_mobile/rc-default/settings/main.php
Normal file
793
modules/member/themes/_mobile/rc-default/settings/main.php
Normal file
@@ -0,0 +1,793 @@
|
||||
<?php
|
||||
$NT_DATA = explode('|',$my['noticeconf']);
|
||||
$nt_web = $NT_DATA[0];
|
||||
$_add = file($g['path_var'].'site/'.$_HS['id'].'/member.add_field.txt');
|
||||
$my_shipping_num = getDbRows($table['s_mbrshipping'],'mbruid='.$my['uid']);
|
||||
?>
|
||||
|
||||
<!-- Start Page -->
|
||||
<div id="page-main" class="page center">
|
||||
<header class="bar bar-nav bar-dark bg-primary px-0">
|
||||
<a class="icon icon-home pull-left p-x-1" role="button" data-href="<?php echo RW(0) ?>"></a>
|
||||
<h1 class="title" data-location="reload">설정</h1>
|
||||
</header>
|
||||
<main class="content bg-faded">
|
||||
|
||||
<ul class="table-view bg-white m-t-0 animated fadeIn delay-1">
|
||||
<li class="table-view-cell">
|
||||
<a class="navigate-right" data-toggle="page" data-start="#page-main" href="#page-profile">
|
||||
|
||||
<?php if($d['member']['form_settings_avatar']):?>
|
||||
<img class="media-object pull-left img-circle bg-faded" data-role="avatar" src="<?php echo getAvatarSrc($my['uid'],'100') ?>" width="49">
|
||||
<?php endif; ?>
|
||||
|
||||
<div class="media-body">
|
||||
|
||||
<?php if (!$my['nic']): ?>
|
||||
<span data-role="name"><?php echo $my['name'] ?></span>
|
||||
<?php else: ?>
|
||||
<span data-role="nic"><?php echo $my['nic'] ?></span>
|
||||
<?php endif; ?>
|
||||
<?php if ($my['admin']): ?><span class="badge badge-danger badge-outline">ADMIN</span><?php endif; ?>
|
||||
<p> <?php echo $d['member']['form_settings_nic']?'닉네임과 ':'' ?>사진을 변경해 보세요.</p>
|
||||
</div>
|
||||
</a>
|
||||
</li>
|
||||
<li class="table-view-cell">
|
||||
<a class="navigate-right" data-href="<?php echo$g['url_reset']?>&page=account">
|
||||
<span class="badge badge-default badge-inverted"><?php echo $my['id'] ?></span>
|
||||
<i class="fa fa-user fa-fw text-muted mr-1" aria-hidden="true"></i> 회원계정
|
||||
</a>
|
||||
</li>
|
||||
<li class="table-view-cell">
|
||||
<a class="navigate-right" data-href="<?php echo$g['url_reset']?>&page=email">
|
||||
<span class="badge badge-default badge-inverted"><?php echo $my['email']?$my['email']:'미등록' ?></span>
|
||||
<i class="fa fa-envelope fa-fw mr-1 text-muted" aria-hidden="true"></i> 이메일
|
||||
</a>
|
||||
</li>
|
||||
<li class="table-view-cell">
|
||||
<a class="navigate-right" data-href="<?php echo$g['url_reset']?>&page=phone">
|
||||
<span class="badge badge-default badge-inverted"><?php echo $my['phone']?$my['phone']:'미등록' ?></span>
|
||||
<i class="fa fa-mobile fa-lg fa-fw text-muted" aria-hidden="true"></i> 휴대폰
|
||||
</a>
|
||||
</li>
|
||||
<li class="table-view-cell">
|
||||
<a class="navigate-right" data-href="<?php echo$g['url_reset']?>&page=noti">
|
||||
<?php if ($nt_web==''): ?>
|
||||
<span class="badge badge-primary badge-pill">ON</span>
|
||||
<?php else: ?>
|
||||
<span class="badge badge-default badge-outline">OFF</span>
|
||||
<?php endif; ?>
|
||||
<i class="fa fa-bell fa-fw mr-1 text-muted" aria-hidden="true"></i> 알림설정
|
||||
</a>
|
||||
</li>
|
||||
<!-- 소셜미디어 연결 -->
|
||||
<?php if ($d['member']['login_social']): ?>
|
||||
<?php $isSNSlogin = getDbData($table['s_mbrsns'],'memberuid='.$my['uid'],'*'); ?>
|
||||
<li class="table-view-cell">
|
||||
<a class="navigate-right" data-href="<?php echo$g['url_reset']?>&page=connect">
|
||||
<span class="badge badge-inverted">
|
||||
<?php if ($my_naver['uid']): ?><img class="rounded-circle" src="/_core/images/sns/naver.png" alt="네이버" width="22"><?php endif; ?>
|
||||
<?php if ($my_kakao['uid']): ?><img class="rounded-circle" src="/_core/images/sns/kakao.png" alt="카카오" width="22"><?php endif; ?>
|
||||
<?php if ($my_google['uid']): ?><img class="rounded-circle" src="/_core/images/sns/google.png" alt="구글" width="22"><?php endif; ?>
|
||||
<?php if ($my_facebook['uid']): ?><img class="rounded-circle" src="/_core/images/sns/facebook.png" alt="페이스북" width="22"><?php endif; ?>
|
||||
<?php if ($my_instagram['uid']): ?><img class="rounded-circle" src="/_core/images/sns/instagram.png" alt="인스타그램" width="22"><?php endif; ?>
|
||||
</span>
|
||||
<i class="fa fa-user-plus fa-fw mr-1 text-muted" aria-hidden="true"></i> 연결계정
|
||||
</a>
|
||||
</li>
|
||||
<?php endif; ?>
|
||||
<li class="table-view-cell">
|
||||
<a class="navigate-right" data-href="<?php echo$g['url_reset']?>&page=shipping">
|
||||
<span class="badge badge-default badge-inverted">
|
||||
<?php echo $my_shipping_num?number_format($my_shipping_num).' 곳':'미등록'?>
|
||||
</span>
|
||||
<i class="fa fa-truck fa-fw text-muted mr-1" aria-hidden="true"></i> 배송지 관리
|
||||
</a>
|
||||
</li>
|
||||
|
||||
<li class="table-view-cell">
|
||||
<a class="navigate-right" data-href="<?php echo$g['url_reset']?>&page=point">
|
||||
<span class="badge badge-default badge-inverted"><?php echo number_format($my['point'])?> P</span>
|
||||
<i class="fa fa-product-hunt mr-1 fa-fw text-muted" aria-hidden="true"></i> 포인트 내역
|
||||
</a>
|
||||
</li>
|
||||
|
||||
<li class="table-view-cell">
|
||||
<a class="navigate-right" href="#popup-logout" data-toggle="popup">
|
||||
<i class="fa fa-sign-out fa-fw mr-1 text-muted" aria-hidden="true"></i> 로그아웃
|
||||
</a>
|
||||
</li>
|
||||
<li class="table-view-divider">
|
||||
<i class="fa fa-address-card-o fa-fw mr-1" aria-hidden="true"></i> 개인정보
|
||||
</li>
|
||||
<li class="table-view-cell">
|
||||
<a class="navigate-right" data-toggle="page" data-start="#page-main" href="#page-name">
|
||||
<span class="badge badge-default badge-inverted" data-role="name"><?php echo $my['name'] ?></span>
|
||||
이름
|
||||
</a>
|
||||
</li>
|
||||
|
||||
<?php if($d['member']['form_settings_tel1']):?>
|
||||
<li class="table-view-cell">
|
||||
<a class="navigate-right" data-toggle="page" data-start="#page-main" href="#page-tel1">
|
||||
<?php if ($my['tel1']): ?>
|
||||
<span class="badge badge-default badge-inverted" data-role="tel1"><?php echo $my['tel1'] ?></span>
|
||||
<?php else: ?>
|
||||
<span class="badge badge-default badge-inverted" data-role="tel1">미등록</span>
|
||||
<?php endif; ?>
|
||||
유선전화
|
||||
</a>
|
||||
</li>
|
||||
<?php endif?>
|
||||
|
||||
<?php if($d['member']['form_settings_birth']):?>
|
||||
<li class="table-view-cell">
|
||||
<a class="navigate-right" data-toggle="page" data-start="#page-main" href="#page-birth">
|
||||
<?php if ($my['birth1']): ?>
|
||||
<span class="badge badge-default badge-inverted" data-role="birth"><?php echo $my['birth1'] ?>.<?php echo substr($my['birth2'],0,2) ?>.<?php echo substr($my['birth2'],2,4) ?></span>
|
||||
<?php else: ?>
|
||||
<span class="badge badge-default badge-inverted" data-role="birth">미등록</span>
|
||||
<?php endif; ?>
|
||||
생년월일
|
||||
</a>
|
||||
</li>
|
||||
<?php endif?>
|
||||
|
||||
<?php if($d['member']['form_settings_sex']):?>
|
||||
<li class="table-view-cell">
|
||||
<a class="navigate-right" data-toggle="page" data-start="#page-main" href="#page-sex">
|
||||
<?php if ($my['sex']): ?>
|
||||
<span class="badge badge-default badge-inverted" data-role="sex"><?php echo $my['sex']==1?'남성':'여성' ?></span>
|
||||
<?php else: ?>
|
||||
<span class="badge badge-default badge-inverted" data-role="sex">미등록</span>
|
||||
<?php endif; ?>
|
||||
성별
|
||||
</a>
|
||||
</li>
|
||||
<?php endif?>
|
||||
|
||||
<?php if($d['member']['form_settings_bio']):?>
|
||||
<li class="table-view-cell">
|
||||
<a class="navigate-right" data-toggle="page" data-start="#page-main" href="#page-bio">
|
||||
<div class="media-body">
|
||||
간단소개
|
||||
<p data-role="bio"><?php echo $my['bio']?></p>
|
||||
</div>
|
||||
<?php if (!$my['bio']): ?>
|
||||
<span class="badge badge-default badge-inverted" data-role="_bio">미등록</span>
|
||||
<?php endif; ?>
|
||||
</a>
|
||||
</li>
|
||||
<?php endif?>
|
||||
|
||||
<?php if($d['member']['form_settings_home']):?>
|
||||
<li class="table-view-cell">
|
||||
<a class="navigate-right" data-toggle="page" data-start="#page-main" href="#page-home">
|
||||
<?php if ($my['home']): ?>
|
||||
<span class="badge badge-default badge-inverted" data-role="home"><?php echo $my['home'] ?></span>
|
||||
<?php else: ?>
|
||||
<span class="badge badge-default badge-inverted" data-role="home">미등록</span>
|
||||
<?php endif; ?>
|
||||
홈페이지
|
||||
</a>
|
||||
</li>
|
||||
<?php endif?>
|
||||
|
||||
<?php if($d['member']['form_settings_job']):?>
|
||||
<li class="table-view-cell">
|
||||
<a class="navigate-right" data-toggle="page" data-start="#page-main" href="#page-job">
|
||||
<?php if ($my['job']): ?>
|
||||
<span class="badge badge-default badge-inverted" data-role="job"><?php echo $my['job'] ?></span>
|
||||
<?php else: ?>
|
||||
<span class="badge badge-default badge-inverted" data-role="job">미등록</span>
|
||||
<?php endif; ?>
|
||||
직업
|
||||
</a>
|
||||
</li>
|
||||
<?php endif?>
|
||||
|
||||
<?php if($d['member']['form_settings_marr']):?>
|
||||
<li class="table-view-cell">
|
||||
<a class="navigate-right" data-toggle="page" data-start="#page-main" href="#page-marr">
|
||||
<?php if ($my['marr1']): ?>
|
||||
<span class="badge badge-default badge-inverted" data-role="marr"><?php echo $my['marr1'] ?>.<?php echo substr($my['marr2'],0,2) ?>.<?php echo substr($my['marr2'],2,4) ?></span>
|
||||
<?php else: ?>
|
||||
<span class="badge badge-default badge-inverted" data-role="marr">미등록</span>
|
||||
<?php endif; ?>
|
||||
결혼기념일
|
||||
</a>
|
||||
</li>
|
||||
<?php endif?>
|
||||
|
||||
<?php if($_add):?>
|
||||
<li class="table-view-cell">
|
||||
<a class="navigate-right" data-toggle="page" data-start="#page-main" href="#page-addfield">
|
||||
추가정보
|
||||
</a>
|
||||
</li>
|
||||
<?php endif?>
|
||||
</ul>
|
||||
|
||||
|
||||
<form id="memberForm" role="form" action="<?php echo $g['s']?>/" method="post" hidden>
|
||||
<input type="hidden" name="r" value="<?php echo $r?>">
|
||||
<input type="hidden" name="m" value="<?php echo $m?>">
|
||||
<input type="hidden" name="front" value="<?php echo $front?>">
|
||||
<input type="hidden" name="a" value="info_update">
|
||||
<input type="hidden" name="act" value="info">
|
||||
<input type="hidden" name="send_mod" value="ajax">
|
||||
<input type="hidden" name="check_nic" value="<?php echo $my['nic']?1:0?>">
|
||||
<input type="hidden" name="check_email" value="<?php echo $my['email']?1:0?>">
|
||||
<input type="hidden" name="name" value="<?php echo $my['name']?>">
|
||||
<input type="hidden" name="nic" value="<?php echo $my['nic']?>">
|
||||
<input type="hidden" name="email" value="<?php echo $my['email']?>">
|
||||
|
||||
<?php $tel1=explode('-',$my['tel1'])?>
|
||||
<input type="hidden" name="tel1_1" value="<?php echo $tel1[0]?>">
|
||||
<input type="hidden" name="tel1_2" value="<?php echo $tel1[1]?>">
|
||||
<input type="hidden" name="tel1_3" value="<?php echo $tel1[2]?>">
|
||||
|
||||
<?php $tel2=explode('-',$my['tel2'])?>
|
||||
<input type="hidden" name="tel2_1" value="<?php echo $tel2[0]?>">
|
||||
<input type="hidden" name="tel2_2" value="<?php echo $tel2[1]?>">
|
||||
<input type="hidden" name="tel2_3" value="<?php echo $tel2[2]?>">
|
||||
|
||||
<?php $birth_2=substr($my['birth2'],0,2)?>
|
||||
<?php $birth_3=substr($my['birth2'],2,2)?>
|
||||
<input type="hidden" name="birth_1" value="<?php echo $my['birth1']?>">
|
||||
<input type="hidden" name="birth_2" value="<?php echo $birth_2?>">
|
||||
<input type="hidden" name="birth_3" value="<?php echo $birth_3?>">
|
||||
<input type="hidden" name="birthtype" value="<?php echo $my['birthtype']?>">
|
||||
|
||||
<input type="hidden" name="remail" value="<?php echo $my['mailing']?>">
|
||||
<input type="hidden" name="sms" value="<?php echo $my['sms']?>">
|
||||
|
||||
<input type="hidden" name="sex" value="<?php echo $my['sex']?>">
|
||||
|
||||
<input type="hidden" name="zip" value="<?php echo $my['zip']?>">
|
||||
<input type="hidden" name="addr1" value="<?php echo $my['addr1']?>">
|
||||
<input type="hidden" name="addr2" value="<?php echo $my['addr2']?>">
|
||||
|
||||
<input type="hidden" name="bio" value="<?php echo $my['bio']?>">
|
||||
<input type="hidden" name="home" value="<?php echo $my['home']?>">
|
||||
<input type="hidden" name="job" value="<?php echo $my['job']?>">
|
||||
|
||||
<input type="hidden" name="marr_1" value="<?php echo $my['marr1']?>">
|
||||
<input type="hidden" name="marr_2" value="<?php echo substr($my['marr2'],0,2)?>">
|
||||
<input type="hidden" name="marr_3" value="<?php echo substr($my['marr2'],2,4)?>">
|
||||
|
||||
<?php foreach($_add as $_key):?>
|
||||
<?php $_val = explode('|',trim($_key))?>
|
||||
<?php if($_val[6]) continue?>
|
||||
<?php $_myadd1 = explode($_val[0].'^^^',$my['addfield'])?>
|
||||
<?php $_myadd2 = explode('|||',$_myadd1[1])?>
|
||||
|
||||
<?php if ($_val[2]=='checkbox'): ?>
|
||||
<input type="hidden" name="add_<?php echo $_val[0]?>[]" value="<?php echo $_myadd2[0]?>">
|
||||
<?php else: ?>
|
||||
<input type="hidden" name="add_<?php echo $_val[0]?>" value="<?php echo $_myadd2[0]?>">
|
||||
<?php endif; ?>
|
||||
<?php endforeach?>
|
||||
|
||||
</form>
|
||||
|
||||
</main>
|
||||
</div>
|
||||
|
||||
<!-- Target Page : 프로필 설정 -->
|
||||
<div id="page-profile" class="page right">
|
||||
<header class="bar bar-nav bar-dark bg-primary px-0">
|
||||
<a class="icon icon-left-nav pull-left p-x-1" role="button" data-history="back"></a>
|
||||
<h1 class="title">프로필 설정</h1>
|
||||
</header>
|
||||
|
||||
<div class="bar bar-standard bar-footer bar-light bg-faded">
|
||||
<button type="button" class="btn btn-outline-primary btn-block js-save">저장하기</button>
|
||||
</div>
|
||||
<div class="content bg-faded">
|
||||
<div class="content-padded">
|
||||
<div class="input-group input-group-lg">
|
||||
<span class="input-group-addon">닉네임</span>
|
||||
<input type="text" class="form-control" name="nic" value="<?php echo $my['nic']?>" maxlength="20" required autocomplete="off">
|
||||
</div>
|
||||
|
||||
<div class="form-control-feedback" id="hLayernic"></div>
|
||||
<div class="invalid-feedback">
|
||||
닉네임을 입력해 주세요.
|
||||
</div>
|
||||
<small class="form-text text-muted">
|
||||
사용하고 싶은 닉네임을 입력해 주세요 (8자이내 중복불가)
|
||||
</small>
|
||||
|
||||
<?php if($d['member']['form_settings_avatar']):?>
|
||||
<div class="avatar-wrapper p-t-2<?php echo $my['photo']?' active':'' ?>" data-role="avatar-wrapper">
|
||||
|
||||
<div class="avatar-blank">
|
||||
<span>
|
||||
<img class="img-circle js-avatar-img m-x-auto" src="<?php echo $g['s'].'/files/avatar/0.svg' ?>" alt="" width="160">
|
||||
<span class="fa-stack fa-lg js-avatar-img">
|
||||
<i class="fa fa-circle fa-stack-2x"></i>
|
||||
<i class="fa fa-camera fa-stack-1x fa-inverse"></i>
|
||||
</span>
|
||||
</span>
|
||||
<p class="m-t-1 text-muted">아바타를 등록해 보세요.</p>
|
||||
</div><!-- /.avatar-blank -->
|
||||
|
||||
<div class="avatar-photo">
|
||||
<span class="avatar-photo">
|
||||
<img class="img-circle m-x-auto" data-role="avatar" src="<?php echo getAvatarSrc($my['uid'],'320') ?>" alt="<?php echo $my[$_HS['nametype']]?>" width="160">
|
||||
</span>
|
||||
<div class="m-t-1">
|
||||
<a class="btn btn-secondary" href="<?php echo $g['s']?>/?r=<?php echo $r?>&m=<?php echo $m?>&a=member_photo_delete" onclick="return hrefCheck(this,true,'정말로 삭제 하시겠습니까?');">
|
||||
<i class="fa fa-trash-o" aria-hidden="true"></i>
|
||||
현재 사진삭제
|
||||
</a>
|
||||
|
||||
<div class="btn-group btn-group-lg m-t-2" role="group" hidden>
|
||||
<button type="button" class="btn btn-secondary"><i class="fa fa-undo" aria-hidden="true"></i> 반시계방향</button>
|
||||
<button type="button" class="btn btn-secondary"><i class="fa fa-repeat" aria-hidden="true"></i> 시계방향</button>
|
||||
</div>
|
||||
</div>
|
||||
</div><!-- /.avatar-photo -->
|
||||
|
||||
</div><!-- /.avatar-wrapper -->
|
||||
|
||||
<form name="MbrPhotoForm" action="<?php echo $g['s']?>/" method="post" enctype="multipart/form-data">
|
||||
<input type="hidden" name="r" value="<?php echo $r?>">
|
||||
<input type="hidden" name="m" value="<?php echo $m?>">
|
||||
<input type="hidden" name="a" value="member_photo">
|
||||
<input type="file" name="upfile" class="hidden" id="rb-upfile-avatar" accept="image/jpg">
|
||||
</form>
|
||||
<?php endif?>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Target Page : 이름 설정 -->
|
||||
<div id="page-name" class="page right">
|
||||
<header class="bar bar-nav bar-dark bg-primary px-0">
|
||||
<a class="icon icon-left-nav pull-left p-x-1" role="button" data-history="back"></a>
|
||||
<h1 class="title">이름 설정</h1>
|
||||
</header>
|
||||
|
||||
<div class="bar bar-standard bar-footer bar-light bg-faded">
|
||||
<button type="button" class="btn btn-outline-primary btn-block js-save">변경하기</button>
|
||||
</div>
|
||||
<div class="content">
|
||||
<div class="content-padded">
|
||||
|
||||
<input type="text" class="form-control form-control-lg" name="name" value="<?php echo $my['name']?>" maxlength="20" required autocomplete="off">
|
||||
<div class="form-control-feedback"></div>
|
||||
<div class="invalid-feedback">
|
||||
이름 입력해 주세요.
|
||||
</div>
|
||||
<small class="form-text text-muted">
|
||||
사용하고 싶은 이름 입력해 주세요 (8자이내 중복불가)
|
||||
</small>
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<?php if($d['member']['form_settings_tel1']):?>
|
||||
<!-- Target Page : 전화번호 설정 -->
|
||||
<div id="page-tel1" class="page right">
|
||||
<header class="bar bar-nav bar-dark bg-primary px-0">
|
||||
<a class="icon icon-left-nav pull-left p-x-1" role="button" data-history="back"></a>
|
||||
<h1 class="title">유선전화 설정</h1>
|
||||
</header>
|
||||
<div class="bar bar-standard bar-footer bar-light bg-faded">
|
||||
<button type="button" class="btn btn-outline-primary btn-block js-save">변경하기</button>
|
||||
</div>
|
||||
<div class="content">
|
||||
<div class="content-padded">
|
||||
|
||||
<div class="form-group">
|
||||
<label>전화번호 <?php if($d['member']['form_settings_tel1_required']):?><span class="text-danger">*</span><?php endif?></label>
|
||||
<?php $tel1=explode('-',$my['tel1'])?>
|
||||
<div class="form-row">
|
||||
<div class="col-xs-4">
|
||||
<input type="text" name="tel1_1" value="<?php echo $tel1[0]?>" maxlength="4" size="4" class="form-control form-control-lg" autocomplete="off">
|
||||
<div class="invalid-feedback">
|
||||
입력필요
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-xs-4">
|
||||
<input type="text" name="tel1_2" value="<?php echo $tel1[1]?>" maxlength="4" size="4" class="form-control form-control-lg" autocomplete="off">
|
||||
<div class="invalid-feedback">
|
||||
입력필요
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-xs-4">
|
||||
<input type="text" name="tel1_3" value="<?php echo $tel1[2]?>" maxlength="4" size="4" class="form-control form-control-lg" autocomplete="off">
|
||||
<div class="invalid-feedback">
|
||||
입력필요
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<?php endif?>
|
||||
|
||||
<?php if($d['member']['form_settings_birth']):?>
|
||||
<!-- Target Page : 생년월일 설정 -->
|
||||
<div id="page-birth" class="page right">
|
||||
<header class="bar bar-nav bar-dark bg-primary px-0">
|
||||
<a class="icon icon-left-nav pull-left p-x-1" role="button" data-history="back"></a>
|
||||
<h1 class="title">생년월일 설정</h1>
|
||||
</header>
|
||||
<div class="bar bar-standard bar-footer bar-light bg-faded">
|
||||
<button type="button" class="btn btn-outline-primary btn-block js-save">변경하기</button>
|
||||
</div>
|
||||
<div class="content">
|
||||
<div class="content-padded">
|
||||
|
||||
<div class="form-group">
|
||||
<label>생년월일 <?php if($d['member']['form_settings_birth_required']):?> <span class="text-danger">*</span><?php endif?></label>
|
||||
<div class="form-row m-b-1">
|
||||
<div class="col-xs-4">
|
||||
<select class="form-control custom-select" name="birth_1">
|
||||
<option value="">년도</option>
|
||||
<?php for($i = substr($date['today'],0,4); $i > 1930; $i--):?>
|
||||
<option value="<?php echo $i?>"<?php if($my['birth1']==$i):?> selected="selected"<?php endif?>><?php echo $i?></option>
|
||||
<?php endfor?>
|
||||
</select>
|
||||
<div class="invalid-feedback">
|
||||
입력필요
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-xs-4">
|
||||
<select class="form-control custom-select" name="birth_2">
|
||||
<option value="">월</option>
|
||||
<?php $birth_2=substr($my['birth2'],0,2)?>
|
||||
<?php for($i = 1; $i < 13; $i++):?>
|
||||
<option value="<?php echo sprintf('%02d',$i)?>"<?php if($birth_2==$i):?> selected="selected"<?php endif?>><?php echo $i?></option>
|
||||
<?php endfor?>
|
||||
</select>
|
||||
<div class="invalid-feedback">
|
||||
입력필요
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-xs-4">
|
||||
<select class="form-control custom-select" name="birth_3">
|
||||
<option value="">일</option>
|
||||
<?php $birth_3=substr($my['birth2'],2,2)?>
|
||||
<?php for($i = 1; $i < 32; $i++):?>
|
||||
<option value="<?php echo sprintf('%02d',$i)?>"<?php if($birth_3==$i):?> selected="selected"<?php endif?>><?php echo $i?></option>
|
||||
<?php endfor?>
|
||||
</select>
|
||||
<div class="invalid-feedback">
|
||||
입력필요
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<label class="custom-control custom-checkbox m-t-3">
|
||||
<input type="checkbox" class="custom-control-input" name="birthtype" id="birthtype" value="1"<?php if($my['birthtype']):?> checked="checked"<?php endif?>>
|
||||
<span class="custom-control-indicator"></span>
|
||||
<span class="custom-control-description">음력</span>
|
||||
</label>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<?php endif?>
|
||||
|
||||
<?php if($d['member']['form_settings_sex']):?>
|
||||
<!-- Target Page : 성별 설정 -->
|
||||
<div id="page-sex" class="page right">
|
||||
<header class="bar bar-nav bar-dark bg-primary px-0">
|
||||
<a class="icon icon-left-nav pull-left p-x-1" role="button" data-history="back"></a>
|
||||
<h1 class="title">성별 설정</h1>
|
||||
</header>
|
||||
<div class="bar bar-standard bar-footer bar-light bg-faded">
|
||||
<button type="button" class="btn btn-outline-primary btn-block js-save">변경하기</button>
|
||||
</div>
|
||||
<div class="content">
|
||||
<div class="content-padded">
|
||||
|
||||
|
||||
<div class="form-group">
|
||||
<label>성별 <?php if($d['member']['form_settings_sex_required']):?><span class="text-danger">*</span><?php endif?></label>
|
||||
<div class="form-group">
|
||||
<label class="custom-control custom-radio">
|
||||
<input type="radio" class="custom-control-input" name="sex" class="custom-control-input" value="1"<?php if($my['sex']==1):?> checked="checked"<?php endif?>>
|
||||
<span class="custom-control-indicator"></span>
|
||||
<span class="custom-control-description">남성</span>
|
||||
</label>
|
||||
<label class="custom-control custom-radio">
|
||||
<input type="radio" class="custom-control-input" name="sex" class="custom-control-input" value="2"<?php if($my['sex']==2):?> checked="checked"<?php endif?>>
|
||||
<span class="custom-control-indicator"></span>
|
||||
<span class="custom-control-description">여성</span>
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<?php endif?>
|
||||
|
||||
<?php if($d['member']['form_settings_bio']):?>
|
||||
<!-- Target Page : 간단소개 설정 -->
|
||||
<div id="page-bio" class="page right">
|
||||
<header class="bar bar-nav bar-dark bg-primary px-0">
|
||||
<a class="icon icon-left-nav pull-left p-x-1" role="button" data-history="back"></a>
|
||||
<h1 class="title">간단소개 설정</h1>
|
||||
</header>
|
||||
<div class="bar bar-standard bar-footer bar-light bg-faded">
|
||||
<button type="button" class="btn btn-outline-primary btn-block js-save">변경하기</button>
|
||||
</div>
|
||||
<div class="content">
|
||||
<div class="content-padded">
|
||||
|
||||
<div class="form-group">
|
||||
<label>간단소개 <?php if($d['member']['form_settings_bio_required']):?> <span class="text-danger">*</span><?php endif?></label>
|
||||
<textarea class="form-control" name="bio" rows="5" placeholder="간략한 소개글을 입력해주세요."><?php echo $my['bio']?></textarea>
|
||||
<div class="invalid-feedback">
|
||||
간단소개를 입력해 주세요.
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<?php endif?>
|
||||
|
||||
<?php if($d['member']['form_settings_home']):?>
|
||||
<!-- Target Page : 홈페이지 설정 -->
|
||||
<div id="page-home" class="page right">
|
||||
<header class="bar bar-nav bar-dark bg-primary px-0">
|
||||
<a class="icon icon-left-nav pull-left p-x-1" role="button" data-history="back"></a>
|
||||
<h1 class="title">홈페이지 설정</h1>
|
||||
</header>
|
||||
<div class="bar bar-standard bar-footer bar-light bg-faded">
|
||||
<button type="button" class="btn btn-outline-primary btn-block js-save">변경하기</button>
|
||||
</div>
|
||||
<div class="content">
|
||||
<div class="content-padded">
|
||||
|
||||
<div class="form-group">
|
||||
<label>홈페이지<?php if($d['member']['form_settings_home_required']):?> <span class="text-danger">*</span><?php endif?></label>
|
||||
<input type="url" class="form-control form-control-lg" name="home" value="<?php echo $my['home']?>" placeholder="URL을 입력하세요." autocomplete="off">
|
||||
<div class="invalid-feedback">
|
||||
홈페이지 주소를 입력해주세요.
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<?php endif?>
|
||||
|
||||
<?php if($d['member']['form_settings_job']):?>
|
||||
<!-- Target Page : 직업 설정 -->
|
||||
<div id="page-job" class="page right">
|
||||
<header class="bar bar-nav bar-dark bg-primary px-0">
|
||||
<a class="icon icon-left-nav pull-left p-x-1" role="button" data-history="back"></a>
|
||||
<h1 class="title">직업 설정</h1>
|
||||
</header>
|
||||
<div class="bar bar-standard bar-footer bar-light bg-faded">
|
||||
<button type="button" class="btn btn-outline-primary btn-block js-save">변경하기</button>
|
||||
</div>
|
||||
<div class="content">
|
||||
<div class="content-padded">
|
||||
|
||||
<div class="form-group">
|
||||
<label>직업<?php if($d['member']['form_settings_job_required']):?> <span class="text-danger">*</span><?php endif?></label>
|
||||
<select class="form-control custom-select" name="job">
|
||||
<option value=""> + 선택하세요</option>
|
||||
<option value="" disabled>------------------</option>
|
||||
<?php
|
||||
$g['memberJobVarForSite'] = $g['path_var'].'site/'.$r.'/member.job.txt';
|
||||
$_tmpvfile = file_exists($g['memberJobVarForSite']) ? $g['memberJobVarForSite'] : $g['path_module'].$module.'/var/member.job.txt';
|
||||
$_job=file($_tmpvfile);
|
||||
?>
|
||||
<?php foreach($_job as $_val):?>
|
||||
<option value="<?php echo trim($_val)?>"<?php if(trim($_val)==$my['job']):?> selected="selected"<?php endif?>>ㆍ<?php echo trim($_val)?></option>
|
||||
<?php endforeach?>
|
||||
</select>
|
||||
<div class="invalid-feedback">
|
||||
직업을 선택해 주세요.
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<?php endif?>
|
||||
|
||||
<?php if($d['member']['form_settings_marr']):?>
|
||||
<!-- Target Page : 결혼기념일 설정 -->
|
||||
<div id="page-marr" class="page right">
|
||||
<header class="bar bar-nav bar-dark bg-primary px-0">
|
||||
<a class="icon icon-left-nav pull-left p-x-1" role="button" data-history="back"></a>
|
||||
<h1 class="title">결혼기념일 설정</h1>
|
||||
</header>
|
||||
<div class="bar bar-standard bar-footer bar-light bg-faded">
|
||||
<button type="button" class="btn btn-outline-primary btn-block js-save">변경하기</button>
|
||||
</div>
|
||||
<div class="content">
|
||||
<div class="content-padded">
|
||||
|
||||
<div class="form-group">
|
||||
<label>결혼기념일 <?php if($d['member']['form_settings_marr_required']):?> <span class="text-danger">*</span><?php endif?></label>
|
||||
<?php $tel2=explode('-',$my['tel2'])?>
|
||||
<div class="form-row m-b-1">
|
||||
<div class="col-xs-4">
|
||||
<select class="form-control custom-select" name="marr_1">
|
||||
<option value="">년도</option>
|
||||
<?php for($i = substr($date['today'],0,4); $i > 1930; $i--):?>
|
||||
<option value="<?php echo $i?>"<?php if($i==$my['marr1']):?> selected="selected"<?php endif?>><?php echo $i?></option>
|
||||
<?php endfor?>
|
||||
</select>
|
||||
<div class="invalid-feedback">
|
||||
입력필요
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-xs-4">
|
||||
<select class="form-control custom-select" name="marr_2">
|
||||
<option value="">월</option>
|
||||
<?php for($i = 1; $i < 13; $i++):?>
|
||||
<option value="<?php echo sprintf('%02d',$i)?>"<?php if($i==substr($my['marr2'],0,2)):?> selected="selected"<?php endif?>><?php echo $i?></option>
|
||||
<?php endfor?>
|
||||
</select>
|
||||
<div class="invalid-feedback">
|
||||
입력필요
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-xs-4">
|
||||
<select class="form-control custom-select" name="marr_3">
|
||||
<option value="">일</option>
|
||||
<?php for($i = 1; $i < 32; $i++):?>
|
||||
<option value="<?php echo sprintf('%02d',$i)?>"<?php if($i==substr($my['marr2'],2,2)):?> selected="selected"<?php endif?>><?php echo $i?></option>
|
||||
<?php endfor?>
|
||||
</select>
|
||||
<div class="invalid-feedback">
|
||||
입력필요
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<?php endif?>
|
||||
|
||||
<!-- Target Page : 추가 가입항목 -->
|
||||
<div id="page-addfield" class="page right">
|
||||
<header class="bar bar-nav bar-dark bg-primary px-0">
|
||||
<a class="icon icon-left-nav pull-left p-x-1" role="button" data-history="back"></a>
|
||||
<h1 class="title">추가정보</h1>
|
||||
</header>
|
||||
<div class="bar bar-standard bar-footer bar-light bg-faded">
|
||||
<button type="button" class="btn btn-outline-primary btn-block js-save">변경하기</button>
|
||||
</div>
|
||||
<div class="content">
|
||||
<div class="content-padded">
|
||||
|
||||
<?php $_add = file($g['path_var'].'site/'.$_HS['id'].'/member.add_field.txt')?>
|
||||
<?php foreach($_add as $_key):?>
|
||||
<?php $_val = explode('|',trim($_key))?>
|
||||
<?php if($_val[6]) continue?>
|
||||
<?php $_myadd1 = explode($_val[0].'^^^',$my['addfield'])?>
|
||||
<?php $_myadd2 = explode('|||',$_myadd1[1])?>
|
||||
|
||||
<div class="form-group">
|
||||
<label><?php echo $_val[1]?><?php if($_val[5]):?> <span class="text-danger">*</span><?php endif?></label>
|
||||
<?php if($_val[2]=='text'):?>
|
||||
<input type="text" name="add_<?php echo $_val[0]?>" class="form-control" value="<?php echo $_myadd2[0]?>" />
|
||||
<?php endif?>
|
||||
<?php if($_val[2]=='password'):?>
|
||||
<input type="password" name="add_<?php echo $_val[0]?>" class="form-control" value="<?php echo $_myadd2[0]?>" />
|
||||
<?php endif?>
|
||||
<?php if($_val[2]=='select'): $_skey=explode(',',$_val[3])?>
|
||||
<select name="add_<?php echo $_val[0]?>" class="form-control custom-select">
|
||||
<option value=""> + 선택하세요</option>
|
||||
<?php foreach($_skey as $_sval):?>
|
||||
<option value="<?php echo trim($_sval)?>"<?php if(trim($_sval)==$_myadd2[0]):?> selected="selected"<?php endif?>>ㆍ<?php echo trim($_sval)?></option>
|
||||
<?php endforeach?>
|
||||
</select>
|
||||
<?php endif?>
|
||||
<?php if($_val[2]=='radio'): $_skey=explode(',',$_val[3])?>
|
||||
<div class="custom-controls-stacked">
|
||||
<?php foreach($_skey as $_sval):?>
|
||||
<div class="custom-control custom-radio">
|
||||
<input type="radio" class="custom-control-input" id="add_<?php echo $_val[0]?>_<?php echo trim($_sval)?>" name="add_<?php echo $_val[0]?>" value="<?php echo trim($_sval)?>"<?php if(trim($_sval)==$_myadd2[0]):?> checked="checked"<?php endif?> class="custom-control-input">
|
||||
<span class="custom-control-indicator"></span>
|
||||
<label class="custom-control-description" for="add_<?php echo $_val[0]?>_<?php echo trim($_sval)?>"><?php echo trim($_sval)?></label>
|
||||
</div>
|
||||
<?php endforeach?>
|
||||
</div>
|
||||
<?php endif?>
|
||||
<?php if($_val[2]=='checkbox'): $_skey=explode(',',$_val[3])?>
|
||||
<div class="custom-controls-stacked">
|
||||
<?php foreach($_skey as $_sval):?>
|
||||
<div class="custom-control custom-checkbox">
|
||||
<input type="checkbox" class="custom-control-input" id="add_<?php echo $_val[0]?>_<?php echo trim($_sval)?>" name="add_<?php echo $_val[0]?>[]" value="<?php echo trim($_sval)?>"<?php if(strstr($_myadd2[0],'['.trim($_sval).']')):?> checked="checked"<?php endif?> >
|
||||
<span class="custom-control-indicator"></span>
|
||||
<label class="custom-control-description" for="add_<?php echo $_val[0]?>_<?php echo trim($_sval)?>"><?php echo trim($_sval)?></label>
|
||||
</div>
|
||||
|
||||
<?php endforeach?>
|
||||
</div>
|
||||
<?php endif?>
|
||||
<?php if($_val[2]=='textarea'):?>
|
||||
<textarea name="add_<?php echo $_val[0]?>" rows="5" class="form-control"><?php echo $_myadd2[0]?></textarea>
|
||||
<?php endif?>
|
||||
</div>
|
||||
|
||||
<?php endforeach?>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<?php if ($_add): ?>
|
||||
<script>
|
||||
|
||||
//추가정보 전용
|
||||
var f = document.getElementById("memberForm");
|
||||
var page_main = $('#page-main')
|
||||
var page_addfield = $('#page-addfield')
|
||||
|
||||
page_addfield.find('.js-save').tap(function() {
|
||||
|
||||
<?php foreach($_add as $_key):?>
|
||||
|
||||
<?php $_val = explode('|',trim($_key))?>
|
||||
<?php if($_val[6]) continue?>
|
||||
<?php $_myadd1 = explode($_val[0].'^^^',$my['addfield'])?>
|
||||
<?php $_myadd2 = explode('|||',$_myadd1[1])?>
|
||||
|
||||
<?php if ($_val[2]=='radio'): ?>
|
||||
var add_<?php echo $_val[0]?> = page_addfield.find('[name="add_<?php echo $_val[0]?>"]:checked').val()
|
||||
page_main.find('[name="add_<?php echo $_val[0]?>"]').val(add_<?php echo $_val[0]?>);
|
||||
|
||||
<?php elseif ($_val[2]=='checkbox'): ?>
|
||||
var add_checkbox = page_main.find('[name="add_<?php echo $_val[0]?>[]"]')
|
||||
add_checkbox.val('');
|
||||
|
||||
page_addfield.find('[name="add_<?php echo $_val[0]?>[]"]:checked').each(function() {
|
||||
var item = $(this).val();
|
||||
var item2 = add_checkbox.val();
|
||||
add_checkbox.val(item2+'['+item+']');
|
||||
});
|
||||
|
||||
<?php else: ?>
|
||||
var add_<?php echo $_val[0]?> = page_addfield.find('[name="add_<?php echo $_val[0]?>"]').val()
|
||||
page_main.find('[name="add_<?php echo $_val[0]?>"]').val(add_<?php echo $_val[0]?>);
|
||||
<?php endif; ?>
|
||||
|
||||
<?php endforeach?>
|
||||
|
||||
setTimeout(function() {
|
||||
$('#page-addfield').find('.content').loader({
|
||||
text: "변경중...",
|
||||
position: "overlay"
|
||||
});
|
||||
}, 300); //가상 키보드가 내려오는 시간동안 대기
|
||||
|
||||
setTimeout(function() {
|
||||
$('#page-addfield').find('.content').loader("hide");
|
||||
window.history.back(); // 메인 페이지로 복귀
|
||||
setTimeout(function() {
|
||||
getIframeForAction(f);
|
||||
f.submit();
|
||||
}, 500); //페이지 전환효과 소요시간동안 대기
|
||||
}, 700);
|
||||
});
|
||||
|
||||
</script>
|
||||
<?php endif; ?>
|
||||
424
modules/member/themes/_mobile/rc-default/settings/noti.php
Normal file
424
modules/member/themes/_mobile/rc-default/settings/noti.php
Normal file
@@ -0,0 +1,424 @@
|
||||
<?php
|
||||
$emailque= 'mbruid='.$my['uid'].' and d_verified<>0';
|
||||
$RCD = getDbArray($table['s_mbremail'],$emailque,'*','uid','asc',0,1);
|
||||
|
||||
$NT_DATA = explode('|',$my['noticeconf']);
|
||||
$nt_web = $NT_DATA[0];
|
||||
$nt_email = $NT_DATA[1];
|
||||
$nt_fcm = $NT_DATA[2];
|
||||
$nt_modules = getArrayString($NT_DATA[3]);
|
||||
$nt_members = getArrayString($NT_DATA[4]);
|
||||
?>
|
||||
|
||||
<style>
|
||||
.nt-label.badge-primary:before {
|
||||
content: 'ON'
|
||||
}
|
||||
.nt-label.badge-default:before {
|
||||
content: 'OFF'
|
||||
}
|
||||
|
||||
</style>
|
||||
|
||||
<?php getImport('font-kimsq','css/font-kimsq',false,'css')?>
|
||||
|
||||
<div class="page center" id="page-main">
|
||||
<header class="bar bar-nav bar-dark bg-primary px-0">
|
||||
<a class="icon icon-left-nav pull-left p-x-1" role="button" data-history="back"></a>
|
||||
<h1 class="title" data-location="reload">
|
||||
<i class="fa fa-bell-o fa-fw mr-1 text-muted" aria-hidden="true"></i> 알림설정
|
||||
</h1>
|
||||
</header>
|
||||
|
||||
<main class="content bg-faded">
|
||||
|
||||
<form id="procForm" role="form" action="<?php echo $g['s']?>/" method="post">
|
||||
<input type="hidden" name="r" value="<?php echo $r?>">
|
||||
<input type="hidden" name="m" value="notification">
|
||||
<input type="hidden" name="a" value="notice_config_user">
|
||||
<input type="hidden" name="mobile" value="1">
|
||||
<input type="hidden" name="nt_web" value="<?php echo $nt_web ?>">
|
||||
<input type="hidden" name="nt_email" value="<?php echo $nt_email ?>">
|
||||
<input type="hidden" name="nt_fcm" value="<?php echo $nt_fcm ?>">
|
||||
<input type="hidden" name="reload" value="">
|
||||
|
||||
<ul class="table-view bg-white mt-0 mb-0 animated fadeIn delay-1">
|
||||
<li class="table-view-cell media" style="padding-right: 6rem ">
|
||||
<i class="media-object pull-left fa fa-bell-o fa-fw mt-1 mr-2 text-muted" aria-hidden="true"></i>
|
||||
<div class="media-body">
|
||||
사이트 알림
|
||||
<p>OFF 설정시 모든알림이 차단됩니다.</p>
|
||||
</div>
|
||||
<div data-toggle="switch" class="switch<?php echo $nt_web==''?' active':'' ?>" id="nt_web">
|
||||
<div class="switch-handle"></div>
|
||||
</div>
|
||||
</li>
|
||||
<?php if ($nt_web==''): ?>
|
||||
<li class="table-view-cell">
|
||||
<a class="navigate-right" data-toggle="page" data-start="#page-main" href="#page-email">
|
||||
<span class="badge badge-<?php echo $nt_email=='1'?'primary badge-pill':'default badge-outline' ?> nt-label" data-role="email"> </span>
|
||||
<i class="fa fa-envelope-o fa-fw mr-2 text-muted" aria-hidden="true"></i> 이메일 알림
|
||||
</a>
|
||||
</li>
|
||||
|
||||
|
||||
<?php if ($g['push_active']==1): ?>
|
||||
<li class="table-view-cell" id="push_setting" style="display: block">
|
||||
<a class="navigate-right" data-toggle="page" data-start="#page-main" href="#page-fcm">
|
||||
<span class="badge badge-<?php echo $nt_fcm=='1'?'primary badge-pill':'default badge-outline' ?> nt-label" data-role="fcm"> </span>
|
||||
<i class="fa fa-bolt fa-fw fa-lg mr-1 text-muted" aria-hidden="true"></i> 푸시 알림
|
||||
</a>
|
||||
</li>
|
||||
|
||||
<li class="table-view-cell" id="permission_div" style="display: none">
|
||||
<a class="navigate-right" href="" id="RequestPermission">
|
||||
<span class="badge badge-primary badge-outline">권한요청</span>
|
||||
<i class="fa fa-bolt fa-lg fa-fw mt-2 mr-2 text-muted" aria-hidden="true"></i> 푸시 알림
|
||||
</a>
|
||||
</li>
|
||||
|
||||
<li class="table-view-cell" id="push_disabled" style="display: none">
|
||||
<a class="navigate-right" href="https://support.google.com/chrome/answer/114662?hl=ko&co=GENIE.Platform%3DAndroid&oco=1" target="_blank">
|
||||
<i class="media-object pull-left fa fa-bolt fa-lg fa-fw mt-2 mr-2 text-muted" aria-hidden="true"></i>
|
||||
<span class="badge badge-danger badge-outline">해제</span>
|
||||
<div class="media-body">
|
||||
푸시 알림 차단됨
|
||||
<p class="mr-4">
|
||||
알림발송이 차단되었습니다.<br> 상태를 해제하려면 설정변경이 필요합니다.
|
||||
</p>
|
||||
</div>
|
||||
</a>
|
||||
</li>
|
||||
<?php elseif ($g['push_active']==2): ?>
|
||||
<li class="table-view-cell">
|
||||
<i class="media-object pull-left fa fa-bolt fa-fw mt-1 mr-2 text-muted" aria-hidden="true"></i>
|
||||
<div class="media-body">
|
||||
푸시 알림이 지원되지 않습니다.
|
||||
<p class="text-danger">푸시알림을 위한 연결정보가 없습니다.<br>관리자에게 문의하세요.</p>
|
||||
</div>
|
||||
</li>
|
||||
<?php else: ?>
|
||||
<li class="table-view-cell">
|
||||
<i class="media-object pull-left fa fa-bolt fa-fw mt-1 mr-2 text-muted" aria-hidden="true"></i>
|
||||
<div class="media-body">
|
||||
푸시 알림이 지원되지 않습니다.
|
||||
<p>안드로이드(Android)기기에서 지원됩니다.</p>
|
||||
</div>
|
||||
</li>
|
||||
<?php endif; ?>
|
||||
|
||||
|
||||
|
||||
|
||||
<li class="table-view-cell table-view-divider">
|
||||
모듈별 설정
|
||||
</li>
|
||||
<?php $_MODULES=getDbArray($table['s_module'],'','*','gid','asc',0,1)?>
|
||||
<?php while($_MD=db_fetch_array($_MODULES)):?>
|
||||
|
||||
<li class="table-view-cell<?php if(strstr($d['ntfc']['cut_modules'],'['.$_MD['id'].']')):?> d-none<?php endif?>" style="padding-right: 6rem " >
|
||||
<div class="media-body">
|
||||
<i class="<?php echo $_MD['icon']?> fa-fw mr-2 text-muted"></i>
|
||||
<?php echo $_MD['name']?>
|
||||
</div>
|
||||
<div data-toggle="switch" class="module_members switch<?php echo strstr($NT_DATA[3],'['.$_MD['id'].']')?'':' active' ?>" data-module="<?php echo $_MD['id']?>" id="module_members_<?php echo $_MD['id']?>">
|
||||
<div class="switch-handle"></div>
|
||||
</div>
|
||||
</li>
|
||||
<?php endwhile?>
|
||||
<li class="table-view-cell table-view-divider">알림발송이 차단된 회원</li>
|
||||
|
||||
<?php $_i=0;foreach($nt_members['data'] as $_md):?>
|
||||
<?php $_R=getDbData($table['s_mbrdata'],'memberuid='.$_md,'*')?>
|
||||
<li class="table-view-cell">
|
||||
<div class="media">
|
||||
<img class="img-circle mr-3" src="<?php echo getAvatarSrc($_R['memberuid'],'96') ?>" alt="" width="48" height="48">
|
||||
<div class="media-body">
|
||||
<h5 class="f14 mt-1 mb-0">
|
||||
<?php if($_R['name']):?>
|
||||
<?php echo $_R['name']?> <span class="badge badge-default badge-inverted align-text-top ml-2"><?php echo $_R['nic']?></span>
|
||||
<?php else: ?>
|
||||
<span class="badge badge-outline">시스템</span>
|
||||
<?php endif?>
|
||||
</h5>
|
||||
<span class="badge badge-default badge-inverted"><?php echo getDateFormat($_R['d_regis'],'Y.m.d')?> 가입</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<a class="btn btn-secondary btn-sm" href="<?php echo $g['s']?>/?r=<?php echo $r?>&m=notification&a=notice_config_user&member_uid=<?php echo $_R['memberuid']?>" onclick="return hrefCheck(this,true,'정말로 해제하시겠습니까?');">
|
||||
차단해제
|
||||
</a>
|
||||
</li>
|
||||
<?php $_i++;endforeach?>
|
||||
|
||||
<?php if(!$nt_members['count']):?>
|
||||
<li class="table-view-cell text-xs-center p-4 small text-muted">
|
||||
차단된 회원이 없습니다.
|
||||
</li>
|
||||
<?php endif?>
|
||||
|
||||
<?php endif?>
|
||||
|
||||
</ul>
|
||||
|
||||
<?php if ($nt_web): ?>
|
||||
<div class="p-5 text-xs-center text-muted">
|
||||
알림이 꺼져서 소식을 받을 수 없습니다. <br>
|
||||
알림을 켜서 글, 댓글, 나 언급한 글 등<br>
|
||||
중요알림을 받아보세요.
|
||||
</div>
|
||||
<?php endif?>
|
||||
|
||||
</form>
|
||||
|
||||
</main>
|
||||
|
||||
</div><!-- /.page -->
|
||||
|
||||
<div class="page right" id="page-email">
|
||||
<header class="bar bar-nav bar-dark bg-primary px-0">
|
||||
<a class="icon icon-left-nav pull-left p-x-1" role="button" data-history="back"></a>
|
||||
<h1 class="title" data-location="reload"><i class="fa fa-envelope-o fa-fw text-muted" aria-hidden="true"></i> 이메일 알림</h1>
|
||||
</header>
|
||||
<main class="content bg-faded">
|
||||
<ul class="table-view bg-white m-t-0 animated fadeIn delay-1">
|
||||
<li class="table-view-cell" style="padding-right: 6rem ">
|
||||
<div class="media-body">
|
||||
이메일 알림
|
||||
<p>알림발송시 이메일도 받음</p>
|
||||
</div>
|
||||
<div data-toggle="switch" class="switch<?php echo $nt_email==1?' active':'' ?>" id="nt_email">
|
||||
<div class="switch-handle"></div>
|
||||
</div>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<div class="content-padded">
|
||||
<div class="form-group">
|
||||
<label for="exampleSelect2">수신 이메일</label>
|
||||
<select class="form-control custom-select form-control-lg" name="email_noti">
|
||||
<option value="">사용안함</option>
|
||||
<?php while($R=db_fetch_array($RCD)):?>
|
||||
<option value="<?php echo $R['email'] ?>"<?php echo ($my['email_noti']==$R['email'])?' selected':'' ?>>
|
||||
<?php echo $R['email'] ?>
|
||||
</option>
|
||||
<?php endwhile?>
|
||||
</select>
|
||||
<p class="form-text text-muted mt-3">
|
||||
<a href="/?r=home&mod=settings&page=email">이메일 관리</a>에서 추가 할수있으며, 본인인증된 메일만 추가할 수 있습니다.
|
||||
</p>
|
||||
<button type="button" class="btn btn-outline-primary btn-block mt-3 js-submit">
|
||||
<span class="not-loading">저장</span>
|
||||
<span class="is-loading">저장중..</span>
|
||||
</button>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</main>
|
||||
</div><!-- /.page -->
|
||||
|
||||
|
||||
<div class="page right" id="page-fcm">
|
||||
<header class="bar bar-nav bar-dark bg-primary px-0">
|
||||
<a class="icon icon-left-nav pull-left p-x-1" role="button" data-history="back"></a>
|
||||
<h1 class="title" data-history="back"><i class="fa fa-bolt fa-fw text-muted" aria-hidden="true"></i> 푸시 알림</h1>
|
||||
</header>
|
||||
<main class="content bg-faded">
|
||||
|
||||
<ul class="table-view bg-white mt-0 mb-0 animated fadeIn delay-1">
|
||||
<li class="table-view-cell" style="padding-right: 6rem ">
|
||||
<div class="media-body">
|
||||
푸시 알림
|
||||
</div>
|
||||
<div data-toggle="switch" class="switch<?php echo $nt_fcm==1?' active':'' ?>" id="nt_fcm">
|
||||
<div class="switch-handle"></div>
|
||||
</div>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<div id="token_div" class="<?php echo $nt_fcm==1?'':'d-none' ?>">
|
||||
|
||||
<ul class="table-view bg-white m-t-0 animated fadeIn delay-1" style="margin-top: -.0625rem!important ">
|
||||
<li class="table-view-divider">
|
||||
<i class="fa fa-mobile fa-lg mr-2 text-muted" aria-hidden="true"></i>
|
||||
인스턴스 ID 토큰
|
||||
</li>
|
||||
<li class="table-view-cell" style="line-height: 1.2;">
|
||||
<small class="token text-muted" style="word-break: break-all;"></small>
|
||||
<button class="btn btn-secondary js-deleteToken">
|
||||
재발급
|
||||
</button>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<div class="content-padded text-muted small">
|
||||
|
||||
<button type="button" class="btn btn-secondary btn-block js-sendTest">
|
||||
<span class="not-loading">나에게 푸시알림 보내기</span>
|
||||
<span class="is-loading"><i class="fa fa-spinner fa-lg fa-spin fa-fw"></i> 보내는중 ...</span>
|
||||
</button>
|
||||
<p class="mt-3">
|
||||
푸시알림이 수신되지 않는다면, 토큰 '재발급'을 시도해 보세요. 알림메시지를 받았다면 정상 입니다.
|
||||
</p>
|
||||
<p>
|
||||
인스턴스 ID 토큰은 푸시알림에 활용됩니다.
|
||||
접속한 기기가 변경되면 토큰 또한 변경됩니다.
|
||||
</p>
|
||||
|
||||
</div>
|
||||
|
||||
</div><!-- /#token_div -->
|
||||
|
||||
</main>
|
||||
</div><!-- /.page -->
|
||||
|
||||
|
||||
<div id="popup-noti" class="popup zoom">
|
||||
<div class="popup-content">
|
||||
<header class="bar bar-nav bar-light bg-faded">
|
||||
<h1 class="title text-xs-left pl-3">
|
||||
<i class="fa fa-bell-o fa-fw" aria-hidden="true"></i>
|
||||
<span data-role="from"></span>
|
||||
</h1>
|
||||
<div class="btn pull-right">
|
||||
<span class="badge badge-default badge-inverted"><i class="fa fa-clock-o" aria-hidden="true"></i> </span>
|
||||
<span class="badge badge-default badge-inverted" data-role="d_regis"></span>
|
||||
</div>
|
||||
</header>
|
||||
|
||||
<nav class="bar bar-standard bar-footer bg-faded d-none" data-role="not-referer">
|
||||
<button type="button" class="btn btn-secondary btn-block" data-history="back">닫기</button>
|
||||
</nav>
|
||||
|
||||
|
||||
<nav class="bar bar-standard bar-footer bg-faded" data-role="has-referer">
|
||||
<div class="row">
|
||||
<div class="col-xs-6">
|
||||
<button type="button" class="btn btn-secondary btn-block" data-history="back">닫기</button>
|
||||
</div>
|
||||
<div class="col-xs-6 p-l-0">
|
||||
<a href="" class="btn btn-primary btn-block" data-role="referer">내용확인</a>
|
||||
</div>
|
||||
</div>
|
||||
</nav>
|
||||
|
||||
|
||||
<div class="content">
|
||||
<p class="content-padded" data-role="message"></p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<script>
|
||||
|
||||
$(function() {
|
||||
|
||||
var f = document.getElementById("procForm");
|
||||
var form = $('#procForm')
|
||||
|
||||
putCookieAlert('member_settings_result') // 실행결과 알림 메시지 출력
|
||||
|
||||
//알림수신설정(웹알림)
|
||||
$('#nt_web').on('changed.rc.switch', function (event) {
|
||||
var handle = $(event.relatedTarget)
|
||||
var button = handle.closest('.switch')
|
||||
form.find('[name="reload"]').val(1);
|
||||
if (button.hasClass('active')){
|
||||
form.find('[name="nt_web"]').val('');
|
||||
} else {
|
||||
form.find('[name="nt_web"]').val(1);
|
||||
}
|
||||
getIframeForAction(f);
|
||||
f.submit();
|
||||
})
|
||||
|
||||
//알림수신설정(이메일 알림)
|
||||
$('#nt_email').on('changed.rc.switch', function (event) {
|
||||
var handle = $(event.relatedTarget)
|
||||
var button = handle.closest('.switch')
|
||||
if (button.hasClass('active')){
|
||||
form.find('[name="nt_email"]').val(1);
|
||||
} else {
|
||||
form.find('[name="nt_email"]').val('');
|
||||
}
|
||||
getIframeForAction(f);
|
||||
f.submit();
|
||||
})
|
||||
|
||||
// 알림 수신용 이메일 지정
|
||||
$('#page-email').find('.js-submit').tap(function() {
|
||||
var form = $('#page-email')
|
||||
var email_noti = form.find('[name=email_noti]').val();
|
||||
var act = 'save_config'
|
||||
var url = rooturl+'/?r='+raccount+'&m=member&a=settings_noti&act='+act+'&email_noti='+email_noti+'&mobile=1'
|
||||
$(this).attr('disabled',true)
|
||||
getIframeForAction();
|
||||
setTimeout(function(){
|
||||
frames.__iframe_for_action__.location.href = url;
|
||||
}, 300);
|
||||
});
|
||||
|
||||
|
||||
//알림수신설정(FCM 알림)
|
||||
$('#nt_fcm').on('changed.rc.switch', function (event) {
|
||||
var handle = $(event.relatedTarget)
|
||||
var button = handle.closest('.switch')
|
||||
if (button.hasClass('active')){
|
||||
form.find('[name="nt_fcm"]').val(1);
|
||||
$('#token_div').removeClass('d-none')
|
||||
} else {
|
||||
form.find('[name="nt_fcm"]').val('');
|
||||
$('#token_div').addClass('d-none')
|
||||
}
|
||||
getIframeForAction(f);
|
||||
f.submit();
|
||||
})
|
||||
|
||||
//모듈별 차단설정
|
||||
$('.module_members').on('changed.rc.switch', function (event) {
|
||||
var handle = $(event.relatedTarget)
|
||||
var button = handle.closest('.switch')
|
||||
var mid = button.data('module')
|
||||
if (button.hasClass('active')){
|
||||
var url = rooturl+'/?r='+raccount+'&m=notification&a=notice_config_user&module_id='+mid+'&mobile=1'
|
||||
} else {
|
||||
var url = rooturl+'/?r='+raccount+'&m=notification&a=multi_delete_user&module_id='+mid+'&deltype=off_module&mobile=1'
|
||||
}
|
||||
console.log(url)
|
||||
getIframeForAction();
|
||||
frames.__iframe_for_action__.location.href = url;
|
||||
})
|
||||
|
||||
$('#RequestPermission').click(function(event) {
|
||||
event.preventDefault();
|
||||
requestPermission()
|
||||
});
|
||||
$('.js-deleteToken').click(function(event) {
|
||||
event.preventDefault();
|
||||
deleteToken()
|
||||
});
|
||||
$('.js-sendTest').click(function(event) {
|
||||
event.preventDefault();
|
||||
var btn = $(this)
|
||||
btn.attr('disabled',true)
|
||||
var title = '<?php echo $_HS['name'] ?> 모바일에서 보낸 푸시알림'
|
||||
var message = '푸시알림이 정상적으로 수신되었습니다.'
|
||||
$.post(rooturl+'/?r='+raccount+'&m=notification&a=push_testonly',{
|
||||
mbruid : '<?php echo $my['uid'] ?>',
|
||||
title : title,
|
||||
message : message
|
||||
},function(response){
|
||||
var result = $.parseJSON(response);
|
||||
var error=result.error;
|
||||
if (!error) {
|
||||
btn.attr('disabled',false)
|
||||
console.log('테스트 푸시알림가 수신 되었습니다.')
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
</script>
|
||||
67
modules/member/themes/_mobile/rc-default/settings/phone.php
Normal file
67
modules/member/themes/_mobile/rc-default/settings/phone.php
Normal file
@@ -0,0 +1,67 @@
|
||||
<?php
|
||||
$vtype = $vtype ? $vtype : 'point';
|
||||
$sort = $sort ? $sort : 'uid';
|
||||
$orderby= $orderby ? $orderby : 'desc';
|
||||
$recnum = $recnum && $recnum < 200 ? $recnum : 10;
|
||||
|
||||
$sqlque = 'my_mbruid='.$my['uid'];
|
||||
if ($type == '1') $sqlque .= ' and price > 0';
|
||||
if ($type == '2') $sqlque .= ' and price < 0';
|
||||
if ($where && $keyword)
|
||||
{
|
||||
$sqlque .= getSearchSql($where,$keyword,$ikeyword,'or');
|
||||
}
|
||||
$RCD = getDbArray($table['s_'.$vtype],$sqlque,'*',$sort,$orderby,$recnum,$p);
|
||||
$NUM = getDbRows($table['s_'.$vtype],$sqlque);
|
||||
$TPG = getTotalPage($NUM,$recnum);
|
||||
|
||||
$PageLink = './point?';
|
||||
if ($type) $PageLink .= 'type='.$type.'&';
|
||||
|
||||
?>
|
||||
|
||||
|
||||
<header class="bar bar-nav bar-dark bg-primary px-0">
|
||||
<a class="icon icon-left-nav pull-left p-x-1" role="button" href="<?php echo RW('mod=settings') ?>"></a>
|
||||
<h1 class="title" data-location="reload">
|
||||
<i class="fa fa-mobile fa-lg fa-fw text-muted" aria-hidden="true"></i> 휴대폰 관리
|
||||
</h1>
|
||||
</header>
|
||||
|
||||
<?php if ($TPG > 1): ?>
|
||||
<footer class="bar bar-standard bar-footer bar-light bg-white p-x-0">
|
||||
<div class="">
|
||||
<?php echo getPageLink($d['theme']['pagenum'],$p,$TPG,'')?>
|
||||
</div>
|
||||
</footer>
|
||||
<?php endif; ?>
|
||||
|
||||
<main class="content bg-faded animated fadeIn delay-1">
|
||||
|
||||
<ul class="table-view bg-white" style="margin-top: -.0625rem">
|
||||
<?php while($R=db_fetch_array($RCD)):?>
|
||||
<li class="table-view-cell">
|
||||
<?php echo $R['content']?>
|
||||
<?php if(getNew($R['d_regis'],24)):?><small class="text-danger">new</small><?php endif?>
|
||||
<p><?php echo getDateFormat($R['d_regis'],'Y.m.d H:i')?></p>
|
||||
<span class="badge badge-primary badge-outline"><?php echo ($R['price']>0?'+':'').number_format($R['price'])?></span>
|
||||
</li>
|
||||
<?php endwhile?>
|
||||
|
||||
<?php if(!$NUM):?>
|
||||
<li class="table-view-cell text-xs-center p-5 text-muted d-flex align-items-center justify-content-center bg-faded" style="height: calc(100vh - 10.5rem);">
|
||||
내역이 없습니다.
|
||||
</li>
|
||||
<?php endif?>
|
||||
</ul>
|
||||
|
||||
</main>
|
||||
|
||||
|
||||
<script>
|
||||
|
||||
$(function() {
|
||||
|
||||
});
|
||||
|
||||
</script>
|
||||
74
modules/member/themes/_mobile/rc-default/settings/point.php
Normal file
74
modules/member/themes/_mobile/rc-default/settings/point.php
Normal file
@@ -0,0 +1,74 @@
|
||||
<?php
|
||||
$vtype = $vtype ? $vtype : 'point';
|
||||
$sort = $sort ? $sort : 'uid';
|
||||
$orderby= $orderby ? $orderby : 'desc';
|
||||
$recnum = $recnum && $recnum < 200 ? $recnum : 10;
|
||||
|
||||
$sqlque = 'my_mbruid='.$my['uid'];
|
||||
if ($type == '1') $sqlque .= ' and price > 0';
|
||||
if ($type == '2') $sqlque .= ' and price < 0';
|
||||
if ($where && $keyword)
|
||||
{
|
||||
$sqlque .= getSearchSql($where,$keyword,$ikeyword,'or');
|
||||
}
|
||||
$RCD = getDbArray($table['s_'.$vtype],$sqlque,'*',$sort,$orderby,$recnum,$p);
|
||||
$NUM = getDbRows($table['s_'.$vtype],$sqlque);
|
||||
$TPG = getTotalPage($NUM,$recnum);
|
||||
|
||||
$PageLink = './point?';
|
||||
if ($type) $PageLink .= 'type='.$type.'&';
|
||||
|
||||
?>
|
||||
|
||||
|
||||
<header class="bar bar-nav bar-dark bg-primary px-0">
|
||||
<a class="icon icon-left-nav pull-left p-x-1" role="button" href="<?php echo RW('mod=settings') ?>"></a>
|
||||
<span class="btn badge badge-pill badge-primary mr-2 pull-right"><?php echo number_format($my['point'])?> P</span>
|
||||
<h1 class="title" data-location="reload">
|
||||
<i class="fa fa-product-hunt mr-1 fa-fw text-muted" aria-hidden="true"></i> 포인트 내역
|
||||
</h1>
|
||||
</header>
|
||||
<div class="bar bar-standard bar-header-secondary bar-light bg-faded p-x-0">
|
||||
<nav class="nav nav-inline">
|
||||
<a class="nav-link<?php echo !$type?' active':'' ?>" href="<?php echo $g['s'] ?>/?r=<?php echo $r ?>&mod=settings&page=point" data-control="push">전체</a>
|
||||
<a class="nav-link<?php echo $type==1?' active':'' ?>" href="<?php echo $g['s'] ?>/?r=<?php echo $r ?>&mod=settings&page=point&type=1" data-control="push">획득</a>
|
||||
<a class="nav-link<?php echo $type==2?' active':'' ?>" href="<?php echo $g['s'] ?>/?r=<?php echo $r ?>&mod=settings&page=point&type=2" data-control="push">사용</a>
|
||||
</nav>
|
||||
</div>
|
||||
<?php if ($TPG > 1): ?>
|
||||
<footer class="bar bar-standard bar-footer bar-light bg-white p-x-0">
|
||||
<div class="">
|
||||
<?php echo getPageLink($d['theme']['pagenum'],$p,$TPG,'')?>
|
||||
</div>
|
||||
</footer>
|
||||
<?php endif; ?>
|
||||
|
||||
<main class="content bg-faded animated fadeIn delay-1">
|
||||
|
||||
<ul class="table-view bg-white" style="margin-top: -.0625rem">
|
||||
<?php while($R=db_fetch_array($RCD)):?>
|
||||
<li class="table-view-cell">
|
||||
<?php echo $R['content']?>
|
||||
<?php if(getNew($R['d_regis'],24)):?><small class="text-danger">new</small><?php endif?>
|
||||
<p><?php echo getDateFormat($R['d_regis'],'Y.m.d H:i')?></p>
|
||||
<span class="badge badge-outline badge-default"><?php echo ($R['price']>0?'+':'').number_format($R['price'])?></span>
|
||||
</li>
|
||||
<?php endwhile?>
|
||||
|
||||
<?php if(!$NUM):?>
|
||||
<li class="table-view-cell text-xs-center p-5 text-muted d-flex align-items-center justify-content-center bg-faded" style="height: calc(100vh - 10.5rem);">
|
||||
내역이 없습니다.
|
||||
</li>
|
||||
<?php endif?>
|
||||
</ul>
|
||||
|
||||
</main>
|
||||
|
||||
|
||||
<script>
|
||||
|
||||
$(function() {
|
||||
|
||||
});
|
||||
|
||||
</script>
|
||||
260
modules/member/themes/_mobile/rc-default/settings/shipping.php
Normal file
260
modules/member/themes/_mobile/rc-default/settings/shipping.php
Normal file
@@ -0,0 +1,260 @@
|
||||
<?php
|
||||
$sqlque0 = 'mbruid='.$my['uid'];
|
||||
$sqlque1 = 'mbruid='.$my['uid'].' and base=1';
|
||||
$sqlque2 = 'mbruid='.$my['uid'].' and base=0';
|
||||
|
||||
$PCD = getDbArray($table['s_mbrshipping'],$sqlque1,'*','uid','asc',0,1);
|
||||
$RCD = getDbArray($table['s_mbrshipping'],$sqlque2,'*','uid','asc',0,1);
|
||||
|
||||
$NUM = getDbRows($table['s_mbrshipping'],$sqlque0);
|
||||
?>
|
||||
|
||||
<div class="page center" id="page-main">
|
||||
<header class="bar bar-nav bar-dark bg-primary px-0">
|
||||
<a class="icon icon-left-nav pull-left p-x-1" role="button" data-history="back"></a>
|
||||
<h1 class="title" data-location="reload">
|
||||
<i class="fa fa-truck fa-fw text-muted mr-1" aria-hidden="true"></i> 배송지 관리
|
||||
</h1>
|
||||
</header>
|
||||
<div class="bar bar-standard bar-footer bar-light bg-faded">
|
||||
<button class="btn btn-outline-primary btn-block"
|
||||
data-toggle="page"
|
||||
data-target="#page-edit"
|
||||
data-start="#page-main"
|
||||
data-act="edit"
|
||||
data-title="배송지 등록">
|
||||
배송지 등록
|
||||
</button>
|
||||
</div>
|
||||
<?php if ($TPG > 1): ?>
|
||||
<footer class="bar bar-standard bar-footer bar-light bg-white p-x-0">
|
||||
<div class="">
|
||||
<?php echo getPageLink($d['theme']['pagenum'],$p,$TPG,'')?>
|
||||
</div>
|
||||
</footer>
|
||||
<?php endif; ?>
|
||||
|
||||
<main class="content bg-faded animated fadeIn delay-1">
|
||||
|
||||
<ul class="table-view bg-white" style="margin-top: -.0625rem">
|
||||
|
||||
<?php while($P=db_fetch_array($PCD)):?>
|
||||
<li class="table-view-cell">
|
||||
<div class="media-body">
|
||||
<?php echo $P['label'] ?><span class="badge badge-primary badge-outline ml-2">기본배송지</span>
|
||||
<p>
|
||||
<span class="text-muted"><?php echo $P['zip'] ?></span>
|
||||
<?php echo $P['addr1'] ?><br><?php echo $P['addr2'] ?>
|
||||
<span class="ml-1"><?php echo $P['tel1'] ?></span>
|
||||
<span class="ml-1"><?php echo $P['tel2'] ?></span>
|
||||
<span class="ml-1"><?php echo $P['name'] ?></span>
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<button class="btn btn-secondary"
|
||||
data-toggle="page"
|
||||
data-target="#page-edit"
|
||||
data-start="#page-main"
|
||||
data-uid="<?php echo $P['uid'] ?>"
|
||||
data-act="edit"
|
||||
data-title="<?php echo $P['label'] ?>"
|
||||
data-url="">
|
||||
관리
|
||||
</button>
|
||||
</li>
|
||||
<?php endwhile?>
|
||||
|
||||
<?php while($R=db_fetch_array($RCD)):?>
|
||||
<li class="table-view-cell">
|
||||
<div class="media-body">
|
||||
<?php echo $R['label'] ?>
|
||||
<p>
|
||||
<span class="text-muted"><?php echo $R['zip'] ?></span>
|
||||
<?php echo $R['addr1'] ?><br><?php echo $R['addr2'] ?>
|
||||
<span class="ml-1"><?php echo $R['tel1'] ?></span>
|
||||
<span class="ml-1"><?php echo $R['tel2'] ?></span>
|
||||
<span class="ml-1"><?php echo $R['name'] ?></span>
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<button class="btn btn-secondary"
|
||||
data-toggle="page"
|
||||
data-target="#page-edit"
|
||||
data-start="#page-main"
|
||||
data-uid="<?php echo $R['uid'] ?>"
|
||||
data-act="edit"
|
||||
data-title="<?php echo $R['label'] ?>"
|
||||
data-url="">
|
||||
관리
|
||||
</button>
|
||||
</li>
|
||||
<?php endwhile?>
|
||||
|
||||
<?php if(!$NUM):?>
|
||||
<li class="table-view-cell text-xs-center p-5 text-muted d-flex align-items-center justify-content-center bg-faded" style="height: calc(100vh - 10.5rem);">
|
||||
내역이 없습니다.
|
||||
</li>
|
||||
<?php endif?>
|
||||
</ul>
|
||||
|
||||
</main>
|
||||
|
||||
</div><!-- /.page -->
|
||||
|
||||
<div class="page right" id="page-edit">
|
||||
<header class="bar bar-nav bar-dark bg-primary px-0">
|
||||
<a class="icon icon-left-nav pull-left p-x-1" role="button" data-history="back"></a>
|
||||
<button class="btn btn-link pull-right mr-3">
|
||||
저장
|
||||
</button>
|
||||
<h1 class="title" data-location="reload">
|
||||
<i class="fa fa-truck fa-fw text-muted mr-1" aria-hidden="true"></i> <span data-role="title"></span>
|
||||
</h1>
|
||||
</header>
|
||||
<div class="bar bar-standard bar-footer bar-light bg-faded">
|
||||
<button class="btn btn-outline-danger btn-block">
|
||||
배송지 삭제
|
||||
</button>
|
||||
</div>
|
||||
<main class="content bg-faded">
|
||||
|
||||
<div class="content-padded">
|
||||
|
||||
<div class="form-group">
|
||||
<label>배송지명</label>
|
||||
<input type="text" class="form-control" name="label" value="" placeholder="배송지명을 입력하세요." autocomplete="off">
|
||||
<div class="invalid-feedback">
|
||||
배송지명을 입력해주세요.
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label>수령인 <span class="text-danger">*</span></label>
|
||||
<input type="text" class="form-control" name="name" value="" placeholder="수령인을 입력하세요." autocomplete="off">
|
||||
<div class="invalid-feedback">
|
||||
수령인을 입력해주세요.
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label>주소 <span class="text-danger">*</span></label>
|
||||
<div id="addrbox"<?php if($my['addr0']=='해외'):?> class="hidden"<?php endif?>>
|
||||
<div class="input-group" style="margin-bottom: 5px">
|
||||
<input type="number" class="form-control" name="zip" value="<?php echo substr($my['zip'],0,5)?>" id="zip1" placeholder="" readonly>
|
||||
<span class="input-group-btn">
|
||||
<button class="btn btn-secondary" type="button" id="execDaumPostcode">
|
||||
<i class="fa fa-search"></i>우편번호
|
||||
</button>
|
||||
</span>
|
||||
</div>
|
||||
<input class="form-control" type="text" value="<?php echo $my['addr1']?>" name="addr1" id="addr1" readonly placeholder="우편번호를 선택" style="margin-bottom: 5px">
|
||||
<input class="form-control" type="text" value="<?php echo $my['addr2']?>" name="addr2" id="addr2" style="margin-bottom: 5px" placeholder="상세 주소를 입력">
|
||||
<div class="invalid-feedback">
|
||||
주소를 입력해주세요.
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<?php if($d['member']['form_settings_overseas']):?>
|
||||
<div class="m-t-1">
|
||||
<?php if($my['addr0']=='해외'):?>
|
||||
<label class="custom-control custom-checkbox">
|
||||
<input type="checkbox" class="custom-control-input" name="overseas" value="1" checked="checked" onclick="overseasChk(this);">
|
||||
<span class="custom-control-indicator"></span>
|
||||
<span class="custom-control-description" id="overseas_ment">해외거주자 입니다.</span>
|
||||
</label>
|
||||
<?php else:?>
|
||||
<label class="custom-control custom-checkbox">
|
||||
<input type="checkbox" class="custom-control-input" name="overseas" value="1" onclick="overseasChk(this);">
|
||||
<span class="custom-control-indicator"></span>
|
||||
<span class="custom-control-description" id="overseas_ment">해외거주자일 경우 체크해 주세요.</span>
|
||||
</label>
|
||||
<?php endif?>
|
||||
</div>
|
||||
<?php endif?>
|
||||
|
||||
</div><!-- /.form-group -->
|
||||
|
||||
<div class="form-group">
|
||||
<label>연락처 <span class="text-danger">*</span></label>
|
||||
<?php $tel1=explode('-',$my['tel1'])?>
|
||||
<div class="form-row">
|
||||
<div class="col-xs-4">
|
||||
<input type="text" name="tel1_1" value="<?php echo $tel1[0]?>" maxlength="4" size="4" class="form-control" autocomplete="off">
|
||||
<div class="invalid-feedback">
|
||||
입력필요
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-xs-4">
|
||||
<input type="text" name="tel1_2" value="<?php echo $tel1[1]?>" maxlength="4" size="4" class="form-control" autocomplete="off">
|
||||
<div class="invalid-feedback">
|
||||
입력필요
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-xs-4">
|
||||
<input type="text" name="tel1_3" value="<?php echo $tel1[2]?>" maxlength="4" size="4" class="form-control" autocomplete="off">
|
||||
<div class="invalid-feedback">
|
||||
입력필요
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label>연락처2</label>
|
||||
<?php $tel1=explode('-',$my['tel1'])?>
|
||||
<div class="form-row">
|
||||
<div class="col-xs-4">
|
||||
<input type="text" name="tel1_1" value="<?php echo $tel1[0]?>" maxlength="4" size="4" class="form-control" autocomplete="off">
|
||||
<div class="invalid-feedback">
|
||||
입력필요
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-xs-4">
|
||||
<input type="text" name="tel1_2" value="<?php echo $tel1[1]?>" maxlength="4" size="4" class="form-control" autocomplete="off">
|
||||
<div class="invalid-feedback">
|
||||
입력필요
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-xs-4">
|
||||
<input type="text" name="tel1_3" value="<?php echo $tel1[2]?>" maxlength="4" size="4" class="form-control" autocomplete="off">
|
||||
<div class="invalid-feedback">
|
||||
입력필요
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<label class="custom-control custom-checkbox m-t-3">
|
||||
<input type="checkbox" class="custom-control-input" name="birthtype" id="birthtype" value="1">
|
||||
<span class="custom-control-indicator"></span>
|
||||
<span class="custom-control-description">기본 배송지로 등록</span>
|
||||
</label>
|
||||
|
||||
</div><!-- /.content-padded -->
|
||||
|
||||
</main>
|
||||
</div><!-- /.page -->
|
||||
|
||||
<!-- Modal -->
|
||||
<div id="modal-DaumPostcode" class="modal">
|
||||
<header class="bar bar-nav bar-light bg-faded px-0">
|
||||
<a class="icon icon-close pull-right p-x-1" data-history="back" role="button"></a>
|
||||
<h1 class="title">우편번호 검색</h1>
|
||||
</header>
|
||||
<div class="content" id="postLayer">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<?php if($_SERVER['HTTPS'] == 'on'):?>
|
||||
<script src="https://ssl.daumcdn.net/dmaps/map_js_init/postcode.v2.js"></script>
|
||||
<?php else:?>
|
||||
<script src="http://dmaps.daum.net/map_js_init/postcode.v2.js"></script>
|
||||
<?php endif?>
|
||||
|
||||
<script>
|
||||
|
||||
$(function() {
|
||||
|
||||
});
|
||||
|
||||
</script>
|
||||
Reference in New Issue
Block a user