first
This commit is contained in:
29
modules/member/admin/_info.php
Normal file
29
modules/member/admin/_info.php
Normal file
@@ -0,0 +1,29 @@
|
||||
<?php
|
||||
$license_local = $g['path_module'].$module.'/LICENSE';
|
||||
$license_global = $g['path_root'].'LICENSE';
|
||||
|
||||
if (file_exists($license_local)) $license = $license_local;
|
||||
else $license = $license_global;
|
||||
?>
|
||||
|
||||
<link href="<?php echo $g['s']?>/_core/css/github-markdown.css" rel="stylesheet">
|
||||
<?php getImport('jquery-markdown','jquery.markdown','0.0.10','js')?>
|
||||
|
||||
<?php @include $g['path_module'].$module.'/var/var.moduleinfo.php' ?>
|
||||
|
||||
<article class="rb-docs markdown-body px-5 pt-3">
|
||||
<h1><?php echo sprintf('%s 모듈정보',ucfirst($MD['name']))?></h1>
|
||||
|
||||
<div class="pb-5 readme">
|
||||
<?php readfile($g['path_module'].$module.'/README.md')?>
|
||||
</div>
|
||||
|
||||
<div class="pb-5">
|
||||
<h2>라이센스</h2>
|
||||
<textarea class="form-control" rows="10"><?php readfile($license)?></textarea>
|
||||
</div>
|
||||
</article>
|
||||
|
||||
<script type="text/javascript">
|
||||
$(".markdown-body .readme").markdown();
|
||||
</script>
|
||||
135
modules/member/admin/_modal.php
Normal file
135
modules/member/admin/_modal.php
Normal file
@@ -0,0 +1,135 @@
|
||||
<!-- 회원추가 모달 -->
|
||||
<div class="modal fade" id="modal-member-add" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
|
||||
<div class="modal-dialog">
|
||||
<div class="modal-content">
|
||||
<form name="addForm" id="add-form" class="form-horizontal" action="<?php echo $g['s']?>/" method="post" enctype="multipart/form-data" onsubmit="return saveCheck(this);">
|
||||
<input type="hidden" name="r" value="<?php echo $r?>">
|
||||
<input type="hidden" name="m" value="<?php echo $module?>">
|
||||
<input type="hidden" name="a" value="admin_member_add">
|
||||
<input type="hidden" name="check_id" value="0">
|
||||
<input type="hidden" name="check_nic" value="0">
|
||||
<input type="hidden" name="check_email" value="0">
|
||||
<input type="hidden" name="check_phone" value="0">
|
||||
|
||||
<div class="modal-header">
|
||||
<h5 class="modal-title">회원 추가</h5>
|
||||
<button type="button" class="close" data-dismiss="modal"><span aria-hidden="true">×</span><span class="sr-only">Close</span></button>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
|
||||
<div class="form-group row">
|
||||
<label class="col-sm-2 col-form-label">아이디</label>
|
||||
<div class="col-sm-9">
|
||||
<div class="input-group">
|
||||
<input type="text" class="form-control" name="id" placeholder="4~12자의 영문(소문자)과 숫자만 사용" value="" maxlength="12" onchange="sendCheck('rb-idcheck','id');">
|
||||
<span class="input-group-append">
|
||||
<button type="button" class="btn btn-light" id="rb-idcheck" onclick="sendCheck('rb-idcheck','id');">중복확인</button>
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group row">
|
||||
<label class="col-sm-2 col-form-label">비번</label>
|
||||
<div class="col-sm-9">
|
||||
<input type="password" class="form-control" name="pw1" placeholder="비밀번호">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group row">
|
||||
<label class="col-sm-2 col-form-label"></label>
|
||||
<div class="col-sm-9">
|
||||
<input type="password" class="form-control" name="pw2" placeholder="비밀번호 확인">
|
||||
</div>
|
||||
</div>
|
||||
<hr>
|
||||
<div class="form-group row">
|
||||
<label class="col-sm-2 col-form-label">이름</label>
|
||||
<div class="col-sm-9">
|
||||
<input type="text" class="form-control" name="name" placeholder="이름을 입력해주세요" value="<?php echo $regis_name?>" maxlength="10">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group row">
|
||||
<label class="col-sm-2 col-form-label">닉네임</label>
|
||||
<div class="col-sm-9">
|
||||
<div class="input-group">
|
||||
<input type="text" class="form-control" name="nic" placeholder="닉네임을 입력해주세요" value="" maxlength="20" onchange="sendCheck('rb-nickcheck','nic');">
|
||||
<span class="input-group-append">
|
||||
<button type="button" class="btn btn-light" id="rb-nickcheck" onclick="sendCheck('rb-nickcheck','nic');">중복확인</button>
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group row">
|
||||
<label class="col-sm-2 col-form-label">이메일</label>
|
||||
<div class="col-sm-9">
|
||||
<div class="input-group">
|
||||
<input type="email" class="form-control" name="email" placeholder="이메일을 입력해주세요" value="" onchange="sendCheck('rb-emailcheck','email');">
|
||||
<span class="input-group-append">
|
||||
<button type="button" class="btn btn-light" id="rb-emailcheck" onclick="sendCheck('rb-emailcheck','email');">중복확인</button>
|
||||
</span>
|
||||
</div>
|
||||
<p class="form-control-static"><small class="text-muted">비밀번호 분실시에 사용됩니다. 정확하게 입력하세요.</small></p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group row">
|
||||
<label class="col-sm-2 col-form-label">휴대폰</label>
|
||||
<div class="col-sm-9">
|
||||
|
||||
<div class="input-group">
|
||||
<input type="number" class="form-control" name="phone" placeholder="숫자만 등록" value="" onchange="sendCheck('rb-phonecheck','phone');">
|
||||
<span class="input-group-append">
|
||||
<button type="button" class="btn btn-light" id="rb-phonecheck" onclick="sendCheck('rb-phonecheck','phone');">중복확인</button>
|
||||
</span>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="modal-footer justify-content-between">
|
||||
<button type="button" class="btn btn-light pull-left" data-dismiss="modal">취소</button>
|
||||
<button type="submit" class="btn btn-primary">등록하기</button>
|
||||
</div>
|
||||
</form>
|
||||
<form name="actionform" action="<?php echo $g['s']?>/" method="post">
|
||||
<input type="hidden" name="r" value="<?php echo $r?>">
|
||||
<input type="hidden" name="m" value="<?php echo $module?>">
|
||||
<input type="hidden" name="a" value="admin_member_add_check">
|
||||
<input type="hidden" name="type" value="">
|
||||
<input type="hidden" name="fvalue" value="">
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<!-- 이메일 발송 -->
|
||||
<div class="modal fade" id="modal-email" tabindex="-1" role="dialog">
|
||||
<div class="modal-dialog modal-dialog-centered" role="document">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<h5 class="modal-title">
|
||||
<i class="fa fa-envelope-o fa-fw" aria-hidden="true"></i> 이메일 발송
|
||||
<span class="badge badge-pill badge-dark align-text-top" data-role="name"></span>
|
||||
</h5>
|
||||
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
|
||||
<span aria-hidden="true">×</span>
|
||||
</button>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<form>
|
||||
<div class="form-group">
|
||||
<label class="col-form-label">받는 이메일주소:</label>
|
||||
<input type="text" class="form-control" data-role="to">
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="message-text" class="col-form-label">내용:</label>
|
||||
<textarea class="form-control" data-role="content"></textarea>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<button type="button" class="btn btn-secondary" data-dismiss="modal">Close</button>
|
||||
<button type="button" class="btn btn-primary">Save changes</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
251
modules/member/admin/_tool_modal.php
Normal file
251
modules/member/admin/_tool_modal.php
Normal file
@@ -0,0 +1,251 @@
|
||||
<!-- 포인트 지급 모달 -->
|
||||
<div class="modal fade" id="modal-give_point" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
|
||||
<div class="modal-dialog">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<h4 class="modal-title"><span id="point_type" class="label label-danger"></span> 지급/차감</h4>
|
||||
<button type="button" class="close" data-dismiss="modal"><span aria-hidden="true">×</span><span class="sr-only">Close</span></button>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<div class="form-group row">
|
||||
<label class="col-sm-3 control-label">지급/차감</label>
|
||||
<div class="col-sm-8">
|
||||
<label class="radio-inline">
|
||||
<input type="radio" name="how" value="+" /> <span class="text-primary">지급</span>
|
||||
</label>
|
||||
<label class="radio-inline">
|
||||
<input type="radio" name="how" value="-" /> <span class="text-danger">차감</span>
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group row">
|
||||
<label class="col-sm-3 control-label">금액</label>
|
||||
<div class="col-sm-8">
|
||||
<input type="text" class="form-control numOnly" name="price" placeholder="금액을 입력해주세요" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group row">
|
||||
<label class="col-sm-3 control-label">사유</label>
|
||||
<div class="col-sm-8">
|
||||
<input type="text" class="form-control" name="comment" placeholder="사유를 입력해주세요" />
|
||||
</div>
|
||||
</div>
|
||||
</div> <!--.modal-body-->
|
||||
<div class="modal-footer justify-content-between">
|
||||
<button type="button" class="btn btn-light" data-dismiss="modal">취소</button>
|
||||
<button type="button" class="btn btn-primary" onclick="modal_act(this);" id="give_point">확인</button>
|
||||
</div>
|
||||
</div> <!--.modal-content-->
|
||||
</div> <!--.modal-dialog-->
|
||||
</div> <!--.modal-->
|
||||
|
||||
<!-- 그룹변경 모달 -->
|
||||
<div class="modal fade" id="modal-tool_mygroup" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
|
||||
<div class="modal-dialog">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<h4 class="modal-title"><span class="label label-danger">그룹</span> 변경</h4>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<div class="form-group">
|
||||
<label class="sr-only">그룹 선택</label>
|
||||
<select name="mygroup" class="form-control custom-select">
|
||||
<option value="">회원그룹</option>
|
||||
<option value="" disabled>--------</option>
|
||||
<?php $_GRPARR = array()?>
|
||||
<?php $GRP = getDbArray($table['s_mbrgroup'],'','*','uid','asc',0,1)?>
|
||||
<?php while($_G=db_fetch_array($GRP)):$_GRPARR[$_G['uid']] = $_G['name']?>
|
||||
<option value="<?php echo $_G['uid']?>">ㆍ<?php echo $_G['name']?> (<?php echo number_format($_G['num'])?>)</option>
|
||||
<?php endwhile?>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="modal-footer justify-content-between">
|
||||
<button type="button" class="btn btn-light" data-dismiss="modal">취소</button>
|
||||
<button type="button" class="btn btn-primary" onclick="modal_act(this);" id="tool_mygroup">확인</button>
|
||||
</div>
|
||||
</div> <!--.modal-content-->
|
||||
</div> <!--.modal-dialog-->
|
||||
</div> <!--.modal-->
|
||||
|
||||
<!-- 등급변경 모달 -->
|
||||
<div class="modal fade" id="modal-tool_level" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
|
||||
<div class="modal-dialog">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<h4 class="modal-title"><span class="label label-danger">등급</span> 변경</h4>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<div class="form-group">
|
||||
<label class="sr-only">등급 선택</label>
|
||||
<select name="level" class="form-control">
|
||||
<option value="">회원등급</option>
|
||||
<option value="" disabled>--------</option>
|
||||
<?php $_LVLARR = array()?>
|
||||
<?php $levelnum = getDbData($table['s_mbrlevel'],'gid=1','*')?>
|
||||
<?php $LVL=getDbArray($table['s_mbrlevel'],'','*','uid','asc',$levelnum['uid'],1)?>
|
||||
<?php while($_L=db_fetch_array($LVL)):$_LVLARR[$_L['uid']] = $_L['name']?>
|
||||
<option value="<?php echo $_L['uid']?>">ㆍ<?php echo $_L['name']?> (<?php echo number_format($_L['num'])?>)</option>
|
||||
<?php endwhile?>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="modal-footer justify-content-between">
|
||||
<button type="button" class="btn btn-light" data-dismiss="modal">취소</button>
|
||||
<button type="button" class="btn btn-primary" onclick="modal_act(this);" id="tool_level">확인</button>
|
||||
</div>
|
||||
</div> <!--.modal-content-->
|
||||
</div> <!--.modal-dialog-->
|
||||
</div> <!--.modal-->
|
||||
|
||||
<!-- 쪽지 전송 모달 -->
|
||||
<div class="modal fade" id="modal-send_paper" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
|
||||
<div class="modal-dialog">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<h4 class="modal-title"><span class="label label-danger">쪽지</span> 전송</h4>
|
||||
<button type="button" class="close" data-dismiss="modal"><span aria-hidden="true">×</span><span class="sr-only">Close</span></button>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
|
||||
<div class="form-group">
|
||||
<label class="sr-only">메세지 입력</label>
|
||||
<textarea name="memo" class="form-control" placeholder="메시지를 입력해 주세요." rows="5"></textarea>
|
||||
</div>
|
||||
|
||||
<div class="form-group row">
|
||||
<label class="col-sm-3 control-label">전송 년도</label>
|
||||
<div class="col-sm-8">
|
||||
<select name="year1" class="form-control">
|
||||
<?php for($i=$date['year'];$i<$date['year']+2;$i++):?><option value="<?php echo $i?>"<?php if($xyear1==$i):?> selected="selected"<?php endif?>><?php echo $i?></option><?php endfor?>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group row">
|
||||
<label class="col-sm-3 control-label">전송 월</label>
|
||||
<div class="col-sm-8">
|
||||
<select name="month1" class="form-control">
|
||||
<?php for($i=1;$i<13;$i++):?><option value="<?php echo sprintf('%02d',$i)?>"<?php if($xmonth1==$i):?> selected="selected"<?php endif?>><?php echo sprintf('%02d',$i)?></option><?php endfor?>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group row">
|
||||
<label class="col-sm-3 control-label">전송 일</label>
|
||||
<div class="col-sm-8">
|
||||
<select name="day1" class="form-control">
|
||||
<?php for($i=1;$i<32;$i++):?><option value="<?php echo sprintf('%02d',$i)?>"<?php if($xday1==$i):?> selected="selected"<?php endif?>><?php echo sprintf('%02d',$i)?></option><?php endfor?>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group row">
|
||||
<label class="col-sm-3 control-label">전송 시간</label>
|
||||
<div class="col-sm-8">
|
||||
<select name="hour1" class="form-control">
|
||||
<?php for($i=0;$i<24;$i++):?><option value="<?php echo sprintf('%02d',$i)?>"<?php if($xhour1==$i):?> selected="selected"<?php endif?>><?php echo sprintf('%02d',$i)?></option><?php endfor?>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group row">
|
||||
<label class="col-sm-3 control-label">전송 분</label>
|
||||
<div class="col-sm-8">
|
||||
<select name="min1" class="form-control">
|
||||
<?php for($i=0;$i<60;$i++):?><option value="<?php echo sprintf('%02d',$i)?>"<?php if($xmin1==$i):?> selected="selected"<?php endif?>><?php echo sprintf('%02d',$i)?></option><?php endfor?>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="modal-footer justify-content-between justify-content-between">
|
||||
<button type="button" class="btn btn-light" data-dismiss="modal">취소</button>
|
||||
<button type="button" class="btn btn-primary" onclick="modal_act(this);" id="send_paper">확인</button>
|
||||
</div>
|
||||
</div> <!--.modal-content-->
|
||||
</div> <!--.modal-dialog-->
|
||||
</div> <!--.modal-->
|
||||
|
||||
<!-- 알림 전송 모달 -->
|
||||
<div class="modal fade" id="modal-send_notice" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
|
||||
<div class="modal-dialog">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<h4 class="modal-title"><span class="label label-danger">알림</span> 전송</h4>
|
||||
<button type="button" class="close" data-dismiss="modal"><span aria-hidden="true">×</span><span class="sr-only">Close</span></button>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<div class="form-group">
|
||||
<label class="sr-only">타이틀</label>
|
||||
<input type="url" class="form-control" name="notice_title" value="" placeholder="알림 제목을 입력해 주세요.">
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="sr-only">메세지 입력</label>
|
||||
<textarea name="notice" class="form-control" placeholder="알림내용을 입력해 주세요." rows="5"></textarea>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label>연결링크</label>
|
||||
<input type="url" class="form-control f12" name="notice_referer" value="" placeholder="URL을 입력해 주세요.">
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label>연결링크 버튼명</label>
|
||||
<input type="text" class="form-control f12" name="notice_button" value="" placeholder="버튼명을 입력해 주세요.">
|
||||
</div>
|
||||
</div>
|
||||
<div class="modal-footer justify-content-between">
|
||||
<button type="button" class="btn btn-light" data-dismiss="modal">취소</button>
|
||||
<button type="button" class="btn btn-primary" onclick="modal_act(this);" id="send_notice">전송</button>
|
||||
</div>
|
||||
</div> <!--.modal-content-->
|
||||
</div> <!--.modal-dialog-->
|
||||
</div> <!--.modal-->
|
||||
|
||||
<!-- 메일 전송 모달 -->
|
||||
<div class="modal fade" id="modal-send_email" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
|
||||
<div class="modal-dialog modal-lg">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<h4 class="modal-title"><span class="label label-danger">메일</span> 전송</h4>
|
||||
<button type="button" class="close" data-dismiss="modal"><span aria-hidden="true">×</span><span class="sr-only">Close</span></button>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<div class="form-group dropdown">
|
||||
<label class="sr-only">메일 양식</label>
|
||||
<button type="button" class="btn btn-light dropdown-toggle" data-toggle="dropdown">
|
||||
<i class="fa fa-download"></i> 메일양식 불러오기 <span class="caret"></span>
|
||||
</button>
|
||||
<div class="dropdown-menu" role="menu" style="left:15px;padding-right:10px;">
|
||||
<?php $tdir = $g['path_module'].$module.'/doc/'?>
|
||||
<?php $dirs = opendir($tdir)?>
|
||||
<?php while(false !== ($skin = readdir($dirs))):?>
|
||||
<?php if($skin=='.' || $skin == '..')continue?>
|
||||
<?php $_type = str_replace('.txt','',$skin)?>
|
||||
<a href="#" class="dropdown-item doc-type">
|
||||
<?php echo getMDname($_type)?>
|
||||
<input type="hidden" name="doc_type" value="<?php echo htmlspecialchars(implode('',file($g['path_module'].$module.'/doc/'.$_type.'.txt')))?>" />
|
||||
</a>
|
||||
<?php endwhile?>
|
||||
<?php closedir($dirs)?>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="sr-only">제목</label>
|
||||
<input type="text" class="form-control" name="subject" placeholder="제목을 입력해주세요" />
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="sr-only">메세지 입력</label>
|
||||
<textarea name="content" id="summernote" class="form-control" placeholder="메시지를 입력해 주세요." rows="8"></textarea>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<div class="modal-footer justify-content-between">
|
||||
<button type="button" class="btn btn-light" data-dismiss="modal">취소</button>
|
||||
<button type="button" class="btn btn-primary" onclick="modal_act(this);" id="send_email">전송</button>
|
||||
</div>
|
||||
</div> <!--.modal-content-->
|
||||
</div> <!--.modal-dialog-->
|
||||
</div> <!--.modal-->
|
||||
<script>
|
||||
$('.doc-type').on('click',function(e) {
|
||||
e.preventDefault();
|
||||
var cnt=$(this).find('input[name="doc_type"]').val();
|
||||
alert(cnt);
|
||||
$('#summernote').code(cnt);
|
||||
})
|
||||
</script>
|
||||
1189
modules/member/admin/config.php
Normal file
1189
modules/member/admin/config.php
Normal file
File diff suppressed because it is too large
Load Diff
BIN
modules/member/admin/image/bg_group.gif
Normal file
BIN
modules/member/admin/image/bg_group.gif
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 2.4 KiB |
29
modules/member/admin/main.css
Normal file
29
modules/member/admin/main.css
Normal file
@@ -0,0 +1,29 @@
|
||||
/* 첨부파일 : input-file*/
|
||||
.btn-file {
|
||||
position: relative;
|
||||
overflow: hidden;
|
||||
}
|
||||
.btn-file input[type=file] {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
right: 0;
|
||||
min-width: 100%;
|
||||
min-height: 100%;
|
||||
font-size: 100px;
|
||||
text-align: right;
|
||||
filter: alpha(opacity=0);
|
||||
opacity: 0;
|
||||
background: red;
|
||||
cursor: inherit;
|
||||
display: block;
|
||||
}
|
||||
input.form-control[readonly] {
|
||||
color: #777
|
||||
}
|
||||
.datepicker {z-index: 1151 !important;}
|
||||
|
||||
.sidebar .card.phone {
|
||||
border-width: 5px;
|
||||
border-color: rgb(52, 59, 67);
|
||||
border-radius: 15px;
|
||||
}
|
||||
1169
modules/member/admin/main.php
Normal file
1169
modules/member/admin/main.php
Normal file
File diff suppressed because it is too large
Load Diff
143
modules/member/admin/manager/comment.php
Normal file
143
modules/member/admin/manager/comment.php
Normal file
@@ -0,0 +1,143 @@
|
||||
<?php
|
||||
//댓글링크
|
||||
function _getPostLink($arr)
|
||||
{
|
||||
$sync_arr=explode('|',$arr['sync']);
|
||||
$B = getUidData($sync_arr[0],$sync_arr[2]);
|
||||
return RW('m='.$sync_arr[1].'&bid='.$B['bbsid'].'&uid='.$sync_arr[2].($GLOBALS['s']!=$arr['site']?'&s='.$arr['site']:''.'#CMT-'.$arr['uid']));
|
||||
}
|
||||
$sort = $sort ? $sort : 'uid';
|
||||
$orderby= $orderby ? $orderby : 'asc';
|
||||
$recnum = $recnum && $recnum < 200 ? $recnum : 5;
|
||||
|
||||
$bbsque = 'mbruid='.$_M['uid'];
|
||||
if ($account) $bbsque .= ' and site='.$account;
|
||||
if ($d_start) $bbsque .= ' and d_regis > '.str_replace('/','',$d_start).'000000';
|
||||
if ($d_finish) $bbsque .= ' and d_regis < '.str_replace('/','',$d_finish).'240000';
|
||||
if ($where && $keyw)
|
||||
{
|
||||
if (strstr('[name][nic][id][ip]',$where)) $bbsque .= " and ".$where."='".$keyw."'";
|
||||
else if ($where == 'term') $bbsque .= " and d_regis like '".$keyw."%'";
|
||||
else $bbsque .= getSearchSql($where,$keyw,$ikeyword,'or');
|
||||
}
|
||||
$RCD = getDbArray($table['s_comment'],$bbsque,'*',$sort,$orderby,$recnum,$p);
|
||||
$NUM = getDbRows($table['s_comment'],$bbsque);
|
||||
$TPG = getTotalPage($NUM,$recnum);
|
||||
?>
|
||||
|
||||
<div class="manager-list pt-3 px-3">
|
||||
|
||||
<form name="searchForm" 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="module" value="<?php echo $module?>">
|
||||
<input type="hidden" name="front" value="<?php echo $front?>">
|
||||
<input type="hidden" name="tab" value="<?php echo $tab?>">
|
||||
<input type="hidden" name="uid" value="<?php echo $_M['uid']?>">
|
||||
<input type="hidden" name="p" value="<?php echo $p?>">
|
||||
<input type="hidden" name="iframe" value="<?php echo $iframe?>">
|
||||
|
||||
<div class="d-flex justify-content-between align-items-center">
|
||||
<div>
|
||||
<small><?php echo sprintf('총 %d건',$NUM)?></small>
|
||||
<span class="badge badge-pill badge-dark"><?php echo $p?>/<?php echo $TPG?> 페이지</span>
|
||||
<button type="button" class="btn btn-link btn-sm muted-link" data-toggle="collapse" data-target="#search-more-bbs" onclick="sessionSetting('sh_bbslist','1','','1');">
|
||||
고급 검색
|
||||
</button>
|
||||
</div>
|
||||
<div class="form-inline">
|
||||
<select name="siteuid" class="form-control form-control-sm custom-select mr-2" onchange="this.form.submit();">
|
||||
<option value="">전체 사이트</option>
|
||||
<?php $SITES = getDbArray($table['s_site'],'','*','gid','asc',0,$p)?>
|
||||
<?php while($S = db_fetch_array($SITES)):?>
|
||||
<option value="<?php echo $S['uid']?>"<?php if($S['uid']==$siteuid):?> selected<?php endif?>><?php echo $S['name']?> (<?php echo $S['id']?>)</option>
|
||||
<?php endwhile?>
|
||||
</select>
|
||||
</div>
|
||||
</div><!-- /.d-flex -->
|
||||
|
||||
<div id="search-more-bbs" class="mt-3 collapse<?php if($_SESSION['sh_bbslist']):?> show<?php endif?>">
|
||||
<div class="d-flex justify-content-between align-items-center">
|
||||
<div class="form-inline">
|
||||
<span class="input-daterange">
|
||||
<input type="text" class="form-control form-control-sm" name="d_start" placeholder="시작일" value="<?php echo $d_start?>">
|
||||
<span class="px-1">~</span>
|
||||
<input type="text" class="form-control form-control-sm mr-1" name="d_finish" placeholder="종료일" value="<?php echo $d_finish?>">
|
||||
</span>
|
||||
<button class="btn btn-light" type="submit"><i class="fa fa-search"></i></button>
|
||||
</div><!-- /.form-inline -->
|
||||
<div class="form-inline">
|
||||
<select name="where" class="form-control form-control-sm custom-select mr-2">
|
||||
<option value="subject"<?php if($where=='subject'):?> selected="selected"<?php endif?>>제목</option>
|
||||
<option value="content"<?php if($where=='content'):?> selected="selected"<?php endif?>>본문</option>
|
||||
</select>
|
||||
<input type="text" name="keyw" class="form-control form-control-sm mr-1" placeholder="검색어를 입력해주세요." value="<?php echo $keyw?>">
|
||||
<button class="btn btn-light" type="submit"><i class="fa fa-search"></i>검색</button>
|
||||
<button class="btn btn-light ml-1" type="button" onclick="this.form.keyw.value='';this.form.submit();">리셋</button>
|
||||
</div><!-- /.form-inline -->
|
||||
</div><!-- /.d-flex -->
|
||||
</div><!-- /.collapse -->
|
||||
|
||||
</form>
|
||||
|
||||
</div>
|
||||
|
||||
<form name="adm_list_form" class="mt-3" 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="module" value="comment">
|
||||
<input type="hidden" name="front" value="<?php echo $front?>">
|
||||
<input type="hidden" name="tab" value="<?php echo $tab?>">
|
||||
<input type="hidden" name="p" value="<?php echo $p?>">
|
||||
<input type="hidden" name="iframe" value="<?php echo $iframe?>">
|
||||
<input type="hidden" name="a" value="">
|
||||
<div class="table-responsive">
|
||||
<table class="table table-hover f13 text-center">
|
||||
<thead class="small text-muted">
|
||||
<tr>
|
||||
<th><input type="checkbox" class="checkAll-act-list" data-toggle="tooltip" title="전체선택"></th>
|
||||
<th>번호</th>
|
||||
<th>제목</th>
|
||||
<th>좋아요</th>
|
||||
<th>싫어요</th>
|
||||
<th>의견</th>
|
||||
<th>날짜</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<?php while($R=db_fetch_array($RCD)):?>
|
||||
<?php $R['mobile']=isMobileConnect($R['agent'])?>
|
||||
<tr>
|
||||
<td><input type="checkbox" name="comment_members[]" onclick="checkboxCheck();" class="mbr-act-list" value="<?php echo $R['uid']?>"></td>
|
||||
<td><?php echo $NUM-((($p-1)*$recnum)+$_rec++)?></td>
|
||||
<td class="text-left">
|
||||
<?php if($R['mobile']):?><i class="fa fa-mobile fa-lg"></i><?php endif?>
|
||||
<a href="<?php echo getPostLink($R)?>" target="_blank" class="muted-link"><?php echo getStrCut($R['subject'],40,'')?></a>
|
||||
<?php if(strstr($R['content'],'.jpg')):?><i class="fa fa-image fa-lg"></i><?php endif?>
|
||||
<?php if($R['upload']):?><i class="glyphicon glyphicon-floppy-disk glyphicon-lg"></i><?php endif?>
|
||||
<?php if($R['hidden']):?><i class="fa fa-lock fa-lg"></i><?php endif?>
|
||||
<?php if(getNew($R['d_regis'],24)):?><small class="text-danger">New</small><?php endif?>
|
||||
</td>
|
||||
<td><?php echo $R['likes']?></td>
|
||||
<td><?php echo $R['dislikes']?></td>
|
||||
<td><?php echo $R['oneline']?></td>
|
||||
<td class="rb-update">
|
||||
<time class="timeago small text-muted" data-toggle="tooltip" datetime="<?php echo getDateFormat($R['d_regis'],'c')?>" data-tooltip="tooltip" title="<?php echo getDateFormat($R['d_regis'],'Y.m.d H:i')?>"></time>
|
||||
</td>
|
||||
</tr>
|
||||
<?php endwhile?>
|
||||
</tbody>
|
||||
</table>
|
||||
<?php if(!$NUM):?>
|
||||
<div class="text-muted text-center py-4">
|
||||
<i class="fa fa-exclamation-circle fa-2x mb-1 d-block" aria-hidden="true"></i>
|
||||
<small>데이타가 없습니다.</small>
|
||||
</div>
|
||||
<?php endif?>
|
||||
</div>
|
||||
|
||||
<ul class="pagination pagination-sm justify-content-center py-3">
|
||||
<script type="text/javascript">getPageLink(5,<?php echo $p?>,<?php echo $TPG?>,'');</script>
|
||||
</ul>
|
||||
|
||||
</form>
|
||||
375
modules/member/admin/manager/info.php
Normal file
375
modules/member/admin/manager/info.php
Normal file
@@ -0,0 +1,375 @@
|
||||
<form name="addForm" class="f13 p-4" action="<?php echo $g['s']?>/" method="post" enctype="multipart/form-data" onsubmit="return saveCheck(this);">
|
||||
<input type="hidden" name="r" value="<?php echo $r?>">
|
||||
<input type="hidden" name="m" value="<?php echo $module?>">
|
||||
<input type="hidden" name="a" value="admin_member_add">
|
||||
<input type="hidden" name="id" value="<?php echo $_M['id']?>">
|
||||
<input type="hidden" name="uid" value="<?php echo $_M['uid']?>">
|
||||
<input type="hidden" name="avatar" value="<?php echo $_M['photo']?>">
|
||||
<input type="hidden" name="check_id" value="1">
|
||||
<input type="hidden" name="check_nic" value="1">
|
||||
<input type="hidden" name="check_email" value="1">
|
||||
<input type="hidden" name="check_phone" value="1">
|
||||
<input type="submit" style="position:absolute;left:-1000px;">
|
||||
|
||||
|
||||
<div class="row">
|
||||
<div class="col">
|
||||
|
||||
<div class="media">
|
||||
<img alt="avatar" src="<?php echo getAvatarSrc($_M['uid'],'64') ?>" width="64" height="64" class="rounded-circle mr-3">
|
||||
<div class="media-body">
|
||||
<p class="mb-1">
|
||||
<input type="file" name="upfile" class="hidden" id="rb-upfile-avatar" accept="image/jpg" onchange="getId('rb-photo-btn').innerHTML='이미지 파일 선택됨';">
|
||||
<button type="button" class="btn btn-light btn-sm" onclick="$('#rb-upfile-avatar').click();" id="rb-photo-btn">
|
||||
<i class="fa fa-upload" aria-hidden="true"></i>
|
||||
업로드
|
||||
</button>
|
||||
</p>
|
||||
<span class="text-muted">
|
||||
<strong>사이즈</strong>는 250*250 <strong>이상</strong>
|
||||
<?php if($_M['photo']):?> <label>( <input type="checkbox" name="avatar_delete" value="1"> 현재 아바타 삭제 )</label><?php endif?>
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
<hr>
|
||||
<div class="form-group">
|
||||
<label class="sr-only">비밀번호</label>
|
||||
<input type="password" class="form-control form-control-sm mb-2" name="pw1" placeholder="새 비밀번호">
|
||||
<input type="password" class="form-control form-control-sm" name="pw2" placeholder="비밀번호 재입력">
|
||||
</div>
|
||||
|
||||
<div class="form-group row">
|
||||
<label class="col-sm-2 col-form-label">아이디</label>
|
||||
<div class="col-sm-10 pt-2">
|
||||
<span><?php echo $_M['id']?></span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group row no-gutters">
|
||||
<label class="col-sm-2 col-form-label">이름</label>
|
||||
<div class="col-sm-10">
|
||||
<input type="text" class="form-control form-control-sm" name="name" placeholder="" value="<?php echo $_M['name']?>" maxlength="10">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group row no-gutters">
|
||||
<label class="col-sm-2 col-form-label">이메일</label>
|
||||
<div class="col-sm-10">
|
||||
|
||||
<select class="form-control custom-select form-control-sm" name="email">
|
||||
<option value=""> + 선택하세요</option>
|
||||
<option value="" disabled>------------------</option>
|
||||
<?php
|
||||
$sqlque = 'mbruid='.$_M['uid'];
|
||||
$ECD = getDbArray($table['s_mbremail'],$sqlque,'*','uid','asc',0,1);
|
||||
$NUM_MAIL = getDbRows($table['s_mbremail'],$sqlque);
|
||||
?>
|
||||
<?php while($E=db_fetch_array($ECD)):?>
|
||||
<option value="<?php echo $E['email']?>"<?php if($E['email']==$_M['email']):?> selected="selected"<?php endif?>>
|
||||
<?php echo $E['email']?> <?php if (!$E['d_verified']): ?>(미인증)<?php endif; ?>
|
||||
</option>
|
||||
<?php endwhile?>
|
||||
<?php if (!$NUM_MAIL): ?>
|
||||
<option value="" disabled selected="selected">등록된 이메일이 없습니다.</option>
|
||||
<?php endif; ?>
|
||||
</select>
|
||||
|
||||
<div class=" mt-2">
|
||||
<div class="custom-control custom-checkbox custom-control-inline">
|
||||
<input type="checkbox" class="custom-control-input" id="remail" name="remail" value="1"<?php if($_M['mailing']):?> checked="checked"<?php endif?> <?php echo !$_M['email']?' disabled':'' ?>>
|
||||
<label class="custom-control-label" for="remail">뉴스레터나 공지이메일을 수신받겠습니다.</label>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group row no-gutters">
|
||||
<label class="col-sm-2 col-form-label">휴대전화</label>
|
||||
<div class="col-sm-10">
|
||||
<select class="form-control custom-select form-control-sm" name="phone">
|
||||
<option value=""> + 선택하세요</option>
|
||||
<option value="" disabled>------------------</option>
|
||||
<?php
|
||||
$sqlque = 'mbruid='.$_M['uid'];
|
||||
$PCD = getDbArray($table['s_mbrphone'],$sqlque,'*','uid','asc',0,1);
|
||||
$NUM_PHONE = getDbRows($table['s_mbrphone'],$sqlque);
|
||||
?>
|
||||
<?php while($P=db_fetch_array($PCD)):?>
|
||||
<option value="<?php echo $P['phone']?>"<?php if($P['phone']==$_M['phone']):?> selected="selected"<?php endif?>>
|
||||
<?php echo substr($P['phone'], 0,3).'-'.substr($P['phone'], 3,4).'-'.substr($P['phone'], 7,4) ?> <?php if (!$P['d_verified']): ?>(미인증)<?php endif; ?>
|
||||
</option>
|
||||
<?php endwhile?>
|
||||
<?php if (!$NUM_PHONE): ?>
|
||||
<option value="" disabled selected="selected">등록된 휴대폰이 없습니다.</option>
|
||||
<?php endif; ?>
|
||||
</select>
|
||||
|
||||
<div class="pt-2">
|
||||
<div class="custom-control custom-checkbox custom-control-inline">
|
||||
<input type="checkbox" class="custom-control-input" id="sms" name="sms" value="1"<?php if($_M['sms']):?> checked="checked"<?php endif?><?php echo !$_M['phone']?' disabled':'' ?>>
|
||||
<label class="custom-control-label" for="sms">이벤트와 공지 SMS를 수신 받겠습니다.</label>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
</div><!-- /.col -->
|
||||
<div class="col border-left">
|
||||
|
||||
<div class="form-group row no-gutters">
|
||||
<label class="col-sm-2 col-form-label">닉네임</label>
|
||||
<div class="col-sm-10">
|
||||
<div class="input-group">
|
||||
<input type="text" class="form-control form-control-sm" name="nic" placeholder="" value="<?php echo $_M['nic']?>" maxlength="20" onchange="sendCheck('rb-nickcheck','nic');">
|
||||
<span class="input-group-append">
|
||||
<button type="button" class="btn btn-light" id="rb-nickcheck" onclick="sendCheck('rb-nickcheck','nic');">중복확인</button>
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group row no-gutters">
|
||||
<label class="col-sm-2 col-form-label">전화번호</label>
|
||||
<div class="col-sm-10">
|
||||
<?php $tel=explode('-',$_M['tel'])?>
|
||||
<div class="form-inline">
|
||||
<input type="text" name="tel_1" value="<?php echo $tel[0]?>" maxlength="4" size="4" class="form-control form-control-sm">
|
||||
<input type="text" name="tel_2" value="<?php echo $tel[1]?>" maxlength="4" size="4" class="form-control form-control-sm ml-2">
|
||||
<input type="text" name="tel_3" value="<?php echo $tel[2]?>" maxlength="4" size="4" class="form-control form-control-sm ml-2">
|
||||
<div class="invalid-feedback">
|
||||
전화번호를 입력해주세요.
|
||||
</div>
|
||||
</div><!-- /.form-inline -->
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<div class="form-group row no-gutters">
|
||||
<label class="col-sm-2 col-form-label">생년월일</label>
|
||||
<div class="col-sm-10">
|
||||
|
||||
<div class="form-inline">
|
||||
<select class="form-control custom-select form-control-sm" name="birth_1">
|
||||
<option value="">년도</option>
|
||||
<?php for($i = substr($date['today'],0,4); $i > 1930; $i--):?>
|
||||
<option value="<?php echo $i?>"<?php if($_M['birth1']==$i):?> selected="selected"<?php endif?>><?php echo $i?></option>
|
||||
<?php endfor?>
|
||||
</select>
|
||||
<select class="form-control custom-select ml-2 form-control-sm" name="birth_2">
|
||||
<option value="">월</option>
|
||||
<?php $birth_2=substr($_M['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>
|
||||
<select class="form-control custom-select ml-2 form-control-sm" name="birth_3">
|
||||
<option value="">일</option>
|
||||
<?php $birth_3=substr($_M['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="custom-control custom-checkbox ml-3">
|
||||
<input type="checkbox" class="custom-control-input" name="birthtype" id="birthtype" value="1"<?php if($_M['birthtype']):?> checked="checked"<?php endif?>>
|
||||
<label class="custom-control-label" for="birthtype">음력</label>
|
||||
</div>
|
||||
<div class="invalid-feedback">
|
||||
생년월일을 지정해 주세요.
|
||||
</div>
|
||||
</div><!-- /.form-inline -->
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group row no-gutters">
|
||||
<label class="col-sm-2 col-form-label">성별</label>
|
||||
<div class="col-sm-10 pt-1">
|
||||
<div class="custom-control custom-radio custom-control-inline">
|
||||
<input type="radio" id="sex_1" name="sex" class="custom-control-input" value="1"<?php if($_M['sex']==1):?> checked="checked"<?php endif?>>
|
||||
<label class="custom-control-label" for="sex_1">남성</label>
|
||||
</div>
|
||||
<div class="custom-control custom-radio custom-control-inline">
|
||||
<input type="radio" id="sex_2" name="sex" class="custom-control-input" value="2"<?php if($_M['sex']==2):?> checked="checked"<?php endif?>>
|
||||
<label class="custom-control-label" for="sex_2">여성</label>
|
||||
</div>
|
||||
<div class="invalid-feedback">
|
||||
성별을 선택해 주세요.
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<hr>
|
||||
<div class="form-group">
|
||||
<label>간단소개</label>
|
||||
<textarea class="form-control" name="bio" rows="2" placeholder="간단소개를 입력해 주세요."><?php echo $_M['bio']?></textarea>
|
||||
</div>
|
||||
<div class="form-group row no-gutters">
|
||||
<label class="col-sm-2 col-form-label">홈페이지</label>
|
||||
<div class="col-sm-10">
|
||||
<input type="text" class="form-control form-control-sm" name="home" value="<?php echo $_M['home']?>" placeholder="URL을 입력하세요.">
|
||||
<div class="invalid-feedback">
|
||||
홈페이지 주소를 입력해주세요.
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<hr>
|
||||
<div class="form-group row no-gutters">
|
||||
<label class="col-sm-2 col-form-label">거주지역</label>
|
||||
<div class="col-sm-10">
|
||||
<select class="form-control custom-select form-control-sm" name="location">
|
||||
<option value=""> + 선택하세요</option>
|
||||
<option value="" disabled>------------------</option>
|
||||
<?php
|
||||
$_tmpvfile = $g['path_module'].$module.'/var/location.txt';
|
||||
$_location=file($_tmpvfile);
|
||||
?>
|
||||
<?php foreach($_location as $_val):?>
|
||||
<option value="<?php echo trim($_val)?>"<?php if(trim($_val)==$_M['location']):?> selected="selected"<?php endif?>>ㆍ<?php echo trim($_val)?></option>
|
||||
<?php endforeach?>
|
||||
</select>
|
||||
<div class="invalid-feedback">
|
||||
거주지역을 선택해 주세요.
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group row no-gutters">
|
||||
<label class="col-sm-2 col-form-label">직업</label>
|
||||
<div class="col-sm-10">
|
||||
<select class="form-control custom-select form-control-sm" name="job">
|
||||
<option value=""> + 선택하세요</option>
|
||||
<option value="" disabled>------------------</option>
|
||||
<?php
|
||||
$_tmpvfile = $g['path_module'].$module.'/var/job.txt';
|
||||
$_job=file($_tmpvfile);
|
||||
?>
|
||||
<?php foreach($_job as $_val):?>
|
||||
<option value="<?php echo trim($_val)?>"<?php if(trim($_val)==$_M['job']):?> selected="selected"<?php endif?>>ㆍ<?php echo trim($_val)?></option>
|
||||
<?php endforeach?>
|
||||
</select>
|
||||
<div class="invalid-feedback">
|
||||
직업을 선택해 주세요.
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group row no-gutters">
|
||||
<label class="col-sm-2 col-form-label">결혼기념일</label>
|
||||
<div class="col-sm-10">
|
||||
|
||||
<div class="form-inline">
|
||||
|
||||
<select class="form-control custom-select form-control-sm" 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==$_M['marr1']):?> selected="selected"<?php endif?>><?php echo $i?></option>
|
||||
<?php endfor?>
|
||||
</select>
|
||||
<select class="form-control custom-select ml-2 form-control-sm" name="marr_2">
|
||||
<option value="">월</option>
|
||||
<?php for($i = 1; $i < 13; $i++):?>
|
||||
<option value="<?php echo sprintf('%02d',$i)?>"<?php if($i==substr($_M['marr2'],0,2)):?> selected="selected"<?php endif?>><?php echo $i?></option>
|
||||
<?php endfor?>
|
||||
</select>
|
||||
<select class="form-control custom-select ml-2 form-control-sm" name="marr_3">
|
||||
<option value="">일</option>
|
||||
<?php for($i = 1; $i < 32; $i++):?>
|
||||
<option value="<?php echo sprintf('%02d',$i)?>"<?php if($i==substr($_M['marr2'],2,2)):?> selected="selected"<?php endif?>><?php echo $i?></option>
|
||||
<?php endfor?>
|
||||
</select>
|
||||
<div class="invalid-feedback">
|
||||
결혼기념일을 입력해주세요.
|
||||
</div>
|
||||
</div><!-- /.form-inline -->
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div><!-- /.col -->
|
||||
</div><!-- /.row -->
|
||||
<hr>
|
||||
<div class="row">
|
||||
<div class="col">
|
||||
|
||||
<?php $g['memberAddFieldSite'] = $g['path_var'].'site/'.$r.'/member.add_field.txt'; ?>
|
||||
<?php $_add = file_exists($g['memberAddFieldSite']) ? file($g['memberAddFieldSite']) : file($g['path_module'].'member/var/add_field.txt');?>
|
||||
<?php foreach($_add as $_key):?>
|
||||
<?php $_val = explode('|',trim($_key))?>
|
||||
<?php if($_val[6]) continue?>
|
||||
<?php $_myadd1 = explode($_val[0].'^^^',$_M['addfield'])?>
|
||||
<?php $_myadd2 = explode('|||',$_myadd1[1])?>
|
||||
|
||||
<div class="form-group row">
|
||||
<label class="col-sm-2 col-form-label"><?php echo $_val[1]?></label>
|
||||
<div class="col-sm-10 pt-2">
|
||||
<?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="shift">
|
||||
<?php foreach($_skey as $_sval):?>
|
||||
<div class="custom-control custom-radio custom-control-inline">
|
||||
<input type="radio" 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">
|
||||
<label class="custom-control-label" 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="shift">
|
||||
<?php foreach($_skey as $_sval):?>
|
||||
<div class="custom-control custom-checkbox custom-control-inline">
|
||||
<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?>>
|
||||
<label class="custom-control-label" 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>
|
||||
</div><!-- /.form-group -->
|
||||
<?php endforeach?>
|
||||
|
||||
</div><!-- /.col -->
|
||||
</div><!-- /.row -->
|
||||
|
||||
|
||||
</form>
|
||||
|
||||
<form name="actionform" action="<?php echo $g['s']?>/" method="post">
|
||||
<input type="hidden" name="r" value="<?php echo $r?>">
|
||||
<input type="hidden" name="m" value="<?php echo $module?>">
|
||||
<input type="hidden" name="a" value="admin_member_add_check">
|
||||
<input type="hidden" name="type" value="">
|
||||
<input type="hidden" name="fvalue" value="">
|
||||
</form>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<script>
|
||||
|
||||
|
||||
$(function() {
|
||||
|
||||
});
|
||||
|
||||
</script>
|
||||
128
modules/member/admin/manager/log.php
Normal file
128
modules/member/admin/manager/log.php
Normal file
@@ -0,0 +1,128 @@
|
||||
<?php
|
||||
$sort = $sort ? $sort : 'uid';
|
||||
$orderby= $orderby ? $orderby : 'desc';
|
||||
$recnum = $recnum && $recnum < 200 ? $recnum : 10;
|
||||
|
||||
$sqlque = 'mbruid='.$_M['uid'];
|
||||
if ($siteuid) $sqlque .= ' and site='.$siteuid;
|
||||
if ($d_start) $sqlque .= ' and d_regis > '.str_replace('/','',$d_start).'000000';
|
||||
if ($d_finish) $sqlque .= ' and d_regis < '.str_replace('/','',$d_finish).'240000';
|
||||
if ($where && $keyw)
|
||||
{
|
||||
$sqlque .= getSearchSql($where,$keyw,$ikeyword,'or');
|
||||
}
|
||||
$RCD = getDbArray($table['s_referer'],$sqlque,'*',$sort,$orderby,$recnum,$p);
|
||||
$NUM = getDbRows($table['s_referer'],$sqlque);
|
||||
$TPG = getTotalPage($NUM,$recnum);
|
||||
?>
|
||||
|
||||
<div class="manager-list pt-3 px-3">
|
||||
|
||||
<form name="searchForm" 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="module" value="<?php echo $module?>">
|
||||
<input type="hidden" name="front" value="<?php echo $front?>">
|
||||
<input type="hidden" name="tab" value="<?php echo $tab?>">
|
||||
<input type="hidden" name="uid" value="<?php echo $_M['uid']?>">
|
||||
<input type="hidden" name="p" value="<?php echo $p?>">
|
||||
<input type="hidden" name="iframe" value="<?php echo $iframe?>">
|
||||
|
||||
<div class="d-flex justify-content-between align-items-center">
|
||||
<div>
|
||||
<small><?php echo sprintf('총 %d건',$NUM)?></small>
|
||||
<span class="badge badge-pill badge-dark"><?php echo $p?>/<?php echo $TPG?> 페이지</span>
|
||||
<button type="button" class="btn btn-link btn-sm muted-link" data-toggle="collapse" data-target="#search-more-bbs" onclick="sessionSetting('sh_bbslist','1','','1');">
|
||||
고급검색
|
||||
</button>
|
||||
</div>
|
||||
<div class="form-inline">
|
||||
<select name="siteuid" class="form-control form-control-sm custom-select" onchange="this.form.submit();">
|
||||
<option value="">전체 사이트</option>
|
||||
<?php $SITES = getDbArray($table['s_site'],'','*','gid','asc',0,$p)?>
|
||||
<?php while($S = db_fetch_array($SITES)):?>
|
||||
<option value="<?php echo $S['uid']?>"<?php if($S['uid']==$siteuid):?> selected<?php endif?>><?php echo $S['name']?> (<?php echo $S['id']?>)</option>
|
||||
<?php endwhile?>
|
||||
</select>
|
||||
|
||||
<select name="bid" class="form-control form-control-sm custom-select ml-2" onchange="this.form.submit();">
|
||||
<option value="">전체 게시판</option>
|
||||
<?php $_BBSLIST = getDbArray($table['bbslist'],'','*','gid','asc',0,1)?>
|
||||
<?php while($_B=db_fetch_array($_BBSLIST)):?>
|
||||
<option value="<?php echo $_B['uid']?>"<?php if($_B['uid']==$bid):?> selected="selected"<?php endif?>>ㆍ<?php echo $_B['name']?>(<?php echo $_B['id']?>)</option>
|
||||
<?php endwhile?>
|
||||
<?php if(!db_num_rows($_BBSLIST)):?>
|
||||
<option value="">등록된 게시판이 없습니다.</option>
|
||||
<?php endif?>
|
||||
</select>
|
||||
|
||||
</div><!-- /.form-inline -->
|
||||
</div><!-- /.d-flex -->
|
||||
|
||||
<div id="search-more-bbs" class="mt-3 collapse<?php if($_SESSION['sh_bbslist']):?> show<?php endif?>">
|
||||
<div class="d-flex justify-content-between align-items-center">
|
||||
<div class="form-inline input-daterange" id="datepicker">
|
||||
<input type="text" class="form-control form-control-sm" name="d_start" placeholder="시작일" value="<?php echo $d_start?>">
|
||||
<span class="px-1">~</span>
|
||||
<input type="text" class="form-control form-control-sm" name="d_finish" placeholder="종료일" value="<?php echo $d_finish?>">
|
||||
<button class="btn btn-light btn-sm ml-1" type="submit"><i class="fa fa-search"></i></button>
|
||||
</div><!-- /.form-inline -->
|
||||
<div class="form-inline">
|
||||
<select name="where" class="form-control form-control-sm custom-select">
|
||||
<option<?php if($where=='ip'):?> selected<?php endif?> value="ip">아이피</option>
|
||||
<option<?php if($where=='referer'):?> selected<?php endif?> value="referer">접속경로</option>
|
||||
</select>
|
||||
<input type="text" name="keyw" class="form-control form-control-sm ml-1" placeholder="검색어를 입력해주세요." value="<?php echo $keyw?>">
|
||||
<button class="btn btn-light ml-1" type="submit"><i class="fa fa-search"></i>검색</button>
|
||||
<button class="btn btn-light ml-1" type="button" onclick="this.form.keyw.value='';this.form.submit();">리셋</button>
|
||||
</div><!-- /.form-inline -->
|
||||
</div><!-- /.d-flex -->
|
||||
</div><!-- /.collapse -->
|
||||
</form>
|
||||
</div>
|
||||
|
||||
<table class="table table-sm table-hover border-bottom mt-3 text-center f12">
|
||||
<thead class="small text-muted">
|
||||
<tr>
|
||||
<th>번호</th>
|
||||
<th>아이피</th>
|
||||
<th class="rb-url">접속경로</th>
|
||||
<th>브라우저</th>
|
||||
<th>기기</th>
|
||||
<th>날짜</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<?php while($R=db_fetch_array($RCD)):?>
|
||||
<?php $_browzer=getBrowzer($R['agent'])?>
|
||||
<?php $_deviceKind=isMobileConnect($R['agent'])?>
|
||||
<?php $_deviceType=getDeviceKind($R['agent'],$_deviceKind)?>
|
||||
<tr>
|
||||
<td><?php echo $NUM-((($p-1)*$recnum)+$_rec++)?></td>
|
||||
<td><?php echo $R['ip']?></td>
|
||||
<td class="rb-url"><a href="<?php echo $R['referer']?>" target="_blank"><?php echo getDomain($R['referer'])?></a></td>
|
||||
<td><?php echo strtoupper($_browzer)?></td>
|
||||
<td>
|
||||
<?php if($_browzer=='Mobile'):?>
|
||||
<small class="badge badge-<?php echo $_deviceType=='tablet'?'danger':'warning'?>" data-tooltip="tooltip" title="<?php echo $_deviceKind?>"><?php echo $_deviceType?></small>
|
||||
<?php else:?>
|
||||
<small class="badge badge-dark">DESKTOP</small>
|
||||
<?php endif?>
|
||||
</td>
|
||||
<td class="rb-update">
|
||||
<time class="timeago" data-toggle="tooltip" datetime="<?php echo getDateFormat($R['d_regis'],'c')?>" data-tooltip="tooltip" title="<?php echo getDateFormat($R['d_regis'],'Y.m.d H:i')?>"></time>
|
||||
</td>
|
||||
</tr>
|
||||
<?php endwhile?>
|
||||
</tbody>
|
||||
</table>
|
||||
<?php if(!$NUM):?>
|
||||
<div class="text-muted text-center py-4">
|
||||
<i class="fa fa-exclamation-circle fa-2x mb-1 d-block" aria-hidden="true"></i>
|
||||
<small>데이타가 없습니다.</small>
|
||||
</div>
|
||||
<?php endif?>
|
||||
|
||||
<ul class="pagination pagination-sm justify-content-center py-3">
|
||||
<script type="text/javascript">getPageLink(5,<?php echo $p?>,<?php echo $TPG?>,'');</script>
|
||||
</ul>
|
||||
174
modules/member/admin/manager/notice.php
Normal file
174
modules/member/admin/manager/notice.php
Normal file
@@ -0,0 +1,174 @@
|
||||
<?php
|
||||
$sort = $sort ? $sort : 'uid';
|
||||
$orderby= $orderby ? $orderby : 'desc';
|
||||
$recnum = $recnum && $recnum < 200 ? $recnum : 5;
|
||||
|
||||
$sqlque = 'mbruid='.$_M['uid'];
|
||||
if ($account) $sqlque .= ' and site='.$account;
|
||||
if ($moduleid) $sqlque .= " and frommodule='".$moduleid."'";
|
||||
if ($isread)
|
||||
{
|
||||
if ($isread == 1) $sqlque .= " and d_read<>''";
|
||||
else $sqlque .= " and d_read=''";
|
||||
}
|
||||
if ($d_start) $sqlque .= ' and d_regis > '.str_replace('/','',$d_start).'000000';
|
||||
if ($d_finish) $sqlque .= ' and d_regis < '.str_replace('/','',$d_finish).'240000';
|
||||
if ($where && $keyw)
|
||||
{
|
||||
$sqlque .= getSearchSql($where,$keyw,$ikeyword,'or');
|
||||
}
|
||||
$RCD = getDbArray($table['s_notice'],$sqlque,'*',$sort,$orderby,$recnum,$p);
|
||||
$NUM = getDbRows($table['s_notice'],$sqlque);
|
||||
$TPG = getTotalPage($NUM,$recnum);
|
||||
?>
|
||||
|
||||
<div class="manager-list pt-3 px-3">
|
||||
|
||||
<form name="searchForm" 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="module" value="<?php echo $module?>">
|
||||
<input type="hidden" name="front" value="<?php echo $front?>">
|
||||
<input type="hidden" name="tab" value="<?php echo $tab?>">
|
||||
<input type="hidden" name="uid" value="<?php echo $_M['uid']?>">
|
||||
<input type="hidden" name="p" value="<?php echo $p?>">
|
||||
<input type="hidden" name="iframe" value="<?php echo $iframe?>">
|
||||
|
||||
<div class="d-flex justify-content-between align-items-center">
|
||||
<div>
|
||||
<small><?php echo sprintf('총 %d건',$NUM)?></small>
|
||||
<span class="badge badge-pill badge-dark"><?php echo $p?>/<?php echo $TPG?> 페이지</span>
|
||||
<button type="button" class="btn btn-link btn-sm muted-link" data-toggle="collapse" data-target="#search-more-bbs" onclick="sessionSetting('sh_bbslist','1','','1');">
|
||||
고급검색
|
||||
</button>
|
||||
</div>
|
||||
<div class="form-inline">
|
||||
<select name="bid" class="form-control form-control-sm custom-select" onchange="this.form.submit();">
|
||||
<option value="">모듈</option>
|
||||
<?php $MODULES = getDbArray($table['s_module'],'','*','gid','asc',0,$p)?>
|
||||
<?php while($MD = db_fetch_array($MODULES)):?>
|
||||
<option value="<?php echo $MD['id']?>"<?php if($MD['id']==$moduleid):?> selected<?php endif?>><?php echo $MD['name']?> (<?php echo $MD['id']?>)</option>
|
||||
<?php endwhile?>
|
||||
</select>
|
||||
<select name="isread" class="form-control form-control-sm custom-select ml-2" onchange="this.form.submit();">
|
||||
<option value="">상태</option>
|
||||
<option value="1"<?php if($isread==1):?> selected<?php endif?>>확인</option>
|
||||
<option value="2"<?php if($isread==2):?> selected<?php endif?>>미확인</option>
|
||||
</select>
|
||||
</div><!-- /.form-inline -->
|
||||
</div><!-- /.d-flex -->
|
||||
|
||||
<div id="search-more-bbs" class="mt-3 collapse<?php if($_SESSION['sh_bbslist']):?> show<?php endif?>">
|
||||
<div class="d-flex justify-content-between align-items-center">
|
||||
<div class="form-inline input-daterange" id="datepicker">
|
||||
<input type="text" class="form-control form-control-sm" name="d_start" placeholder="시작일" value="<?php echo $d_start?>">
|
||||
<span class="px-1">~</span>
|
||||
<input type="text" class="form-control form-control-sm" name="d_finish" placeholder="종료일" value="<?php echo $d_finish?>">
|
||||
<button class="btn btn-light btn-sm ml-1" type="submit"><i class="fa fa-search"></i></button>
|
||||
</div><!-- /.form-inline -->
|
||||
<div class="form-inline">
|
||||
<select name="where" class="form-control form-control-sm custom-select">
|
||||
<option value="message"<?php if($where=='message'):?> selected="selected"<?php endif?>>메세지</option>
|
||||
<option value="referer"<?php if($where=='referer'):?> selected="selected"<?php endif?>>URL</option>
|
||||
</select>
|
||||
<input type="text" name="keyw" class="form-control form-control-sm ml-1" placeholder="검색어를 입력해주세요." value="<?php echo $keyw?>">
|
||||
<button class="btn btn-light ml-1" type="submit"><i class="fa fa-search"></i>검색</button>
|
||||
<button class="btn btn-light ml-1" type="button" onclick="this.form.keyw.value='';this.form.submit();">리셋</button>
|
||||
</div><!-- /.form-inline -->
|
||||
</div><!-- /.d-flex -->
|
||||
</div><!-- /.collapse -->
|
||||
|
||||
</form>
|
||||
</div>
|
||||
|
||||
<form name="adm_list_form" class="mt-3" action="<?php echo $g['s']?>/" method="post">
|
||||
<input type="hidden" name="r" value="<?php echo $r?>">
|
||||
<input type="hidden" name="module" value="<?php echo $module?>">
|
||||
<input type="hidden" name="front" value="<?php echo $front?>">
|
||||
<input type="hidden" name="tab" value="<?php echo $tab?>">
|
||||
<input type="hidden" name="p" value="<?php echo $p?>">
|
||||
<input type="hidden" name="iframe" value="<?php echo $iframe?>">
|
||||
<input type="hidden" name="m" value=""> <!-- 액션파일이 있는 모듈명 -->
|
||||
<input type="hidden" name="a" value=""> <!-- 액션명 -->
|
||||
<div class="table-responsive">
|
||||
<table class="table table-hover f13 text-center">
|
||||
<colgroup>
|
||||
<col width="50">
|
||||
<col width="50">
|
||||
<col width="50">
|
||||
<col>
|
||||
<col width="100">
|
||||
<col width="100">
|
||||
</colgroup>
|
||||
<thead class="small text-muted">
|
||||
<tr>
|
||||
<th><input type="checkbox" class="checkAll-act-list" data-toggle="tooltip" title="전체선택"></th>
|
||||
<th>번호</th>
|
||||
<th>보낸사람</th>
|
||||
<th>내용</th>
|
||||
<th>전송일시</th>
|
||||
<th>확인일시</th>
|
||||
<th>이메일</th>
|
||||
<th>푸시</th>
|
||||
<th>참조링크</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<?php 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'],'name,nic'):array()?>
|
||||
<tr>
|
||||
<td><input type="checkbox" name="noti_members[]" onclick="checkboxCheck();" class="mbr-act-list" value="<?php echo $R['uid']?>"></td>
|
||||
<td><?php echo $NUM-((($p-1)*$recnum)+$_rec++)?></td>
|
||||
<td>
|
||||
<span class="badge badge-pill badge-dark"><?php echo $SM2['name']?$SM2['name']:'시스템'?></span><br>
|
||||
<span class="badge badge-pill badge-dark mt-1"><?php echo $R['frommodule'] ?></span>
|
||||
</td>
|
||||
<td class="text-left">
|
||||
<a tabindex="0"
|
||||
<?php if ($R['referer']): ?>
|
||||
href="<?php echo $R['referer'] ?>" target="_blank"
|
||||
<?php endif; ?>
|
||||
class="muted-link" role="button" data-toggle="popover" data-trigger="hover" data-html="true" data-content="<?php echo $R['message'] ?>" data-placement="top">
|
||||
<?php echo getStrCut($R['title'],'80','..')?><br>
|
||||
<small class="text-muted"><?php echo getStrCut($R['message'],'50','..')?><small>
|
||||
</a>
|
||||
</td>
|
||||
<td class="rb-update">
|
||||
<time class="timeago small text-muted" data-toggle="tooltip" datetime="<?php echo getDateFormat($R['d_regis'],'c')?>" data-tooltip="tooltip" title="<?php echo getDateFormat($R['d_regis'],'Y.m.d H:i')?>"></time>
|
||||
</td>
|
||||
<td class="rb-update">
|
||||
<time class="timeago small text-muted" data-toggle="tooltip" datetime="<?php echo getDateFormat($R['d_read'],'c')?>" data-tooltip="tooltip" title="<?php echo getDateFormat($R['d_read'],'Y.m.d H:i')?>"></time>
|
||||
</td>
|
||||
<td><span class="badge badge-pill badge-dark"><?php echo $R['email']?'발송':'' ?></span></td>
|
||||
<td><span class="badge badge-pill badge-dark"><?php echo $R['push']?'발송':'' ?></span></td>
|
||||
<td>
|
||||
<?php if ($R['referer']): ?>
|
||||
<a href="<?php echo $R['referer'] ?>" class="badge badge-pill badge-dark" target="_blank">
|
||||
<?php echo $R['button'] ?>
|
||||
</span>
|
||||
<?php endif; ?>
|
||||
|
||||
</td>
|
||||
</tr>
|
||||
<?php endwhile?>
|
||||
</tbody>
|
||||
</table>
|
||||
<?php if(!$NUM):?>
|
||||
<div class="text-muted text-center py-4">
|
||||
<i class="fa fa-exclamation-circle fa-2x mb-1 d-block" aria-hidden="true"></i>
|
||||
<small>데이타가 없습니다.</small>
|
||||
</div>
|
||||
<?php endif?>
|
||||
</div>
|
||||
|
||||
<ul class="pagination pagination-sm justify-content-center py-3">
|
||||
<script type="text/javascript">getPageLink(5,<?php echo $p?>,<?php echo $TPG?>,'');</script>
|
||||
</ul>
|
||||
|
||||
</form>
|
||||
|
||||
|
||||
<script>
|
||||
$('[data-toggle="popover"]').popover()
|
||||
</script>
|
||||
143
modules/member/admin/manager/oneline.php
Normal file
143
modules/member/admin/manager/oneline.php
Normal file
@@ -0,0 +1,143 @@
|
||||
<?php
|
||||
//한줄의견링크
|
||||
function _getPostLink($arr)
|
||||
{
|
||||
global $table;
|
||||
$C = getUidData($table['s_comment'],$arr['parent']);
|
||||
$sync_arr=explode('|',$C['sync']);
|
||||
$B = getUidData($sync_arr[0],$sync_arr[2]);
|
||||
return RW('m='.$sync_arr[1].'&bid='.$B['bbsid'].'&uid='.$sync_arr[2].($GLOBALS['s']!=$arr['site']?'&s='.$arr['site']:''.'#OLN-'.$arr['uid']));
|
||||
}
|
||||
$sort = $sort ? $sort : 'uid';
|
||||
$orderby= $orderby ? $orderby : 'desc';
|
||||
$recnum = $recnum && $recnum < 200 ? $recnum : 5;
|
||||
|
||||
$bbsque = 'mbruid='.$_M['uid'];
|
||||
if ($account) $bbsque .= ' and site='.$account;
|
||||
if ($d_start) $bbsque .= ' and d_regis > '.str_replace('/','',$d_start).'000000';
|
||||
if ($d_finish) $bbsque .= ' and d_regis < '.str_replace('/','',$d_finish).'240000';
|
||||
if ($where && $keyw)
|
||||
{
|
||||
if (strstr('[name][nic][id][ip]',$where)) $bbsque .= " and ".$where."='".$keyw."'";
|
||||
else if ($where == 'term') $bbsque .= " and d_regis like '".$keyw."%'";
|
||||
else $bbsque .= getSearchSql($where,$keyw,$ikeyword,'or');
|
||||
}
|
||||
$RCD = getDbArray($table['s_oneline'],$bbsque,'*',$sort,$orderby,$recnum,$p);
|
||||
$NUM = getDbRows($table['s_oneline'],$bbsque);
|
||||
$TPG = getTotalPage($NUM,$recnum);
|
||||
?>
|
||||
|
||||
<div class="manager-list pt-3 px-3">
|
||||
|
||||
<form name="searchForm" 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="module" value="<?php echo $module?>">
|
||||
<input type="hidden" name="front" value="<?php echo $front?>">
|
||||
<input type="hidden" name="tab" value="<?php echo $tab?>">
|
||||
<input type="hidden" name="uid" value="<?php echo $_M['uid']?>">
|
||||
<input type="hidden" name="p" value="<?php echo $p?>">
|
||||
<input type="hidden" name="iframe" value="<?php echo $iframe?>">
|
||||
|
||||
<div class="d-flex justify-content-between align-items-center">
|
||||
<div>
|
||||
<small><?php echo sprintf('총 %d건',$NUM)?></small>
|
||||
<span class="badge badge-pill badge-dark"><?php echo $p?>/<?php echo $TPG?> 페이지</span>
|
||||
<button type="button" class="btn btn-link btn-sm muted-link" data-toggle="collapse" data-target="#search-more-bbs" onclick="sessionSetting('sh_bbslist','1','','1');">
|
||||
고급 검색
|
||||
</button>
|
||||
</div>
|
||||
<div class="form-inline">
|
||||
<select name="siteuid" class="form-control form-control-sm custom-select mr-2" onchange="this.form.submit();">
|
||||
<option value="">전체 사이트</option>
|
||||
<?php $SITES = getDbArray($table['s_site'],'','*','gid','asc',0,$p)?>
|
||||
<?php while($S = db_fetch_array($SITES)):?>
|
||||
<option value="<?php echo $S['uid']?>"<?php if($S['uid']==$siteuid):?> selected<?php endif?>><?php echo $S['name']?> (<?php echo $S['id']?>)</option>
|
||||
<?php endwhile?>
|
||||
</select>
|
||||
</div><!-- /.form-inline -->
|
||||
</div><!-- /.d-flex -->
|
||||
|
||||
<div id="search-more-bbs" class="mt-2 collapse<?php if($_SESSION['sh_bbslist']):?> show<?php endif?>">
|
||||
<div class="d-flex justify-content-between align-items-center">
|
||||
<div class="form-inline">
|
||||
<div class="input-daterange input-group input-group-sm" id="datepicker">
|
||||
<input type="text" class="form-control form-control-sm" name="d_start" placeholder="시작일" value="<?php echo $d_start?>">
|
||||
<span class="p-1">~</span>
|
||||
<input type="text" class="form-control form-control-sm" name="d_finish" placeholder="종료일" value="<?php echo $d_finish?>">
|
||||
</div>
|
||||
<button class="btn btn-light ml-1" type="submit"><i class="fa fa-search"></i></button>
|
||||
</div><!-- /.form-inline -->
|
||||
<div class="form-inline">
|
||||
<select name="where" class="form-control form-control-sm custom-select mr-1">
|
||||
<option value="content"<?php if($where=='content'):?> selected="selected"<?php endif?>>본문</option>
|
||||
</select>
|
||||
<input type="text" name="keyw" class="form-control form-control-sm" placeholder="검색어를 입력해주세요." value="<?php echo $keyw?>">
|
||||
<button class="btn btn-light ml-1" type="submit"><i class="fa fa-search"></i>검색</button>
|
||||
<button class="btn btn-light ml-1" type="button" onclick="this.form.keyw.value='';this.form.submit();">리셋</button>
|
||||
</div><!-- /.form-inline -->
|
||||
</div><!-- /.d-flex -->
|
||||
</div><!-- /.collapse -->
|
||||
|
||||
</form>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
<form name="adm_list_form" class="mt-3" 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="module" value="comment">
|
||||
<input type="hidden" name="front" value="<?php echo $front?>">
|
||||
<input type="hidden" name="tab" value="<?php echo $tab?>">
|
||||
<input type="hidden" name="p" value="<?php echo $p?>">
|
||||
<input type="hidden" name="iframe" value="<?php echo $iframe?>">
|
||||
<input type="hidden" name="a" value="">
|
||||
<div class="table-responsive">
|
||||
<table class="table table-hover f13 text-center">
|
||||
<colgroup>
|
||||
<col width="50">
|
||||
<col width="80">
|
||||
<col>
|
||||
<col width="130">
|
||||
</colgroup>
|
||||
<thead class="small text-muted">
|
||||
<tr>
|
||||
<th><input type="checkbox" class="checkAll-act-list" data-toggle="tooltip" title="전체선택"></th>
|
||||
<th>번호</th>
|
||||
<th>한줄의견</th>
|
||||
<th>날짜</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<?php while($R=db_fetch_array($RCD)):?>
|
||||
<?php $R['mobile']=isMobileConnect($R['agent'])?>
|
||||
<tr>
|
||||
<td><input type="checkbox" name="oneline_members[]" onclick="checkboxCheck();" class="mbr-act-list" value="<?php echo $R['uid']?>"></td>
|
||||
<td><?php echo $NUM-((($p-1)*$recnum)+$_rec++)?></td>
|
||||
<td class="text-left">
|
||||
<?php if($R['mobile']):?><i class="fa fa-mobile fa-lg"></i><?php endif?>
|
||||
<a href="<?php echo getPostLink($R)?>" target="_blank" class="muted-link"><?php echo getStrCut($R['content'],40,'')?></a>
|
||||
<?php if(getNew($R['d_regis'],24)):?><small class="text-danger">New</small><?php endif?>
|
||||
</td>
|
||||
<td class="rb-update">
|
||||
<time class="timeago small text-muted" data-toggle="tooltip" datetime="<?php echo getDateFormat($R['d_regis'],'c')?>" data-tooltip="tooltip" title="<?php echo getDateFormat($R['d_regis'],'Y.m.d H:i')?>"></time>
|
||||
</td>
|
||||
</tr>
|
||||
<?php endwhile?>
|
||||
</tbody>
|
||||
</table>
|
||||
<?php if(!$NUM):?>
|
||||
<div class="text-muted text-center py-4">
|
||||
<i class="fa fa-exclamation-circle fa-2x mb-1 d-block" aria-hidden="true"></i>
|
||||
<small>데이타가 없습니다.</small>
|
||||
</div>
|
||||
<?php endif?>
|
||||
</div>
|
||||
|
||||
<ul class="pagination pagination-sm justify-content-center py-3">
|
||||
<script type="text/javascript">getPageLink(5,<?php echo $p?>,<?php echo $TPG?>,'');</script>
|
||||
</ul>
|
||||
|
||||
</form>
|
||||
136
modules/member/admin/manager/paper.php
Normal file
136
modules/member/admin/manager/paper.php
Normal file
@@ -0,0 +1,136 @@
|
||||
<?php
|
||||
|
||||
$sort = $sort ? $sort : 'uid';
|
||||
$orderby= $orderby ? $orderby : 'desc';
|
||||
$recnum = $recnum && $recnum < 200 ? $recnum : 15;
|
||||
|
||||
if ($inbox == 3)
|
||||
{
|
||||
$sqlque = 'by_mbruid='.$_M['uid'];
|
||||
}
|
||||
else
|
||||
{
|
||||
$sqlque = 'my_mbruid='.$_M['memberuid'];
|
||||
if ($inbox) $sqlque .= " and inbox='".$inbox."'";
|
||||
if ($where && $keyw)
|
||||
{
|
||||
$sqlque .= getSearchSql($where,$keyw,$ikeyword,'or');
|
||||
}
|
||||
}
|
||||
if ($d_start) $sqlque .= ' and d_regis > '.str_replace('/','',$d_start).'000000';
|
||||
if ($d_finish) $sqlque .= ' and d_regis < '.str_replace('/','',$d_finish).'240000';
|
||||
|
||||
$RCD = getDbArray($table['s_paper'],$sqlque,'*',$sort,$orderby,$recnum,$p);
|
||||
$NUM = getDbRows($table['s_paper'],$sqlque);
|
||||
$TPG = getTotalPage($NUM,$recnum);
|
||||
?>
|
||||
|
||||
<div class="manager-list pt-3 px-3">
|
||||
|
||||
<form name="searchForm" 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="module" value="<?php echo $module?>">
|
||||
<input type="hidden" name="front" value="<?php echo $front?>">
|
||||
<input type="hidden" name="tab" value="<?php echo $tab?>">
|
||||
<input type="hidden" name="uid" value="<?php echo $_M['uid']?>">
|
||||
<input type="hidden" name="p" value="<?php echo $p?>">
|
||||
<input type="hidden" name="iframe" value="<?php echo $iframe?>">
|
||||
|
||||
<div class="d-flex justify-content-between align-items-center">
|
||||
<div>
|
||||
<small><?php echo sprintf('총 %d건',$NUM)?></small>
|
||||
<span class="badge badge-pill badge-dark"><?php echo $p?>/<?php echo $TPG?> 페이지</span>
|
||||
<button type="button" class="btn btn-link btn-sm muted-link" data-toggle="collapse" data-target="#search-more-bbs" onclick="sessionSetting('sh_bbslist','1','','1');">
|
||||
고급 검색
|
||||
</button>
|
||||
</div>
|
||||
<div>
|
||||
<select name="inbox" class="form-control form-control-sm custom-select" onchange="this.form.submit();">
|
||||
<option value="">구분</option>
|
||||
<option value="1"<?php if($inbox==1):?> selected="selected"<?php endif?>>받은쪽지함</option>
|
||||
<option value="2"<?php if($inbox==2):?> selected="selected"<?php endif?>>쪽지보관함</option>
|
||||
<option value="3"<?php if($inbox==3):?> selected="selected"<?php endif?>>보낸쪽지함</option>
|
||||
</select>
|
||||
</div>
|
||||
</div><!-- /.d-flex -->
|
||||
|
||||
<div id="search-more-bbs" class="mt-2 collapse<?php if($_SESSION['sh_bbslist']):?> show<?php endif?>">
|
||||
<div class="form-inline">
|
||||
<div class="input-daterange input-group input-group-sm" id="datepicker">
|
||||
<input type="text" class="form-control form-control-sm" name="d_start" placeholder="시작일" value="<?php echo $d_start?>">
|
||||
<span class="p-2">~</span>
|
||||
<input type="text" class="form-control form-control-sm" name="d_finish" placeholder="종료일" value="<?php echo $d_finish?>">
|
||||
</div>
|
||||
<button class="btn btn-light ml-1" type="submit"><i class="fa fa-search"></i></button>
|
||||
</div><!-- /.form-inline -->
|
||||
</div>
|
||||
</div><!-- /.collapse -->
|
||||
|
||||
</form>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<form name="adm_list_form" class="mt-3" 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="module" value="comment">
|
||||
<input type="hidden" name="front" value="<?php echo $front?>">
|
||||
<input type="hidden" name="tab" value="<?php echo $tab?>">
|
||||
<input type="hidden" name="p" value="<?php echo $p?>">
|
||||
<input type="hidden" name="iframe" value="<?php echo $iframe?>">
|
||||
<input type="hidden" name="a" value="">
|
||||
<div class="table-responsive">
|
||||
<table class="table table-hover f13 text-center">
|
||||
<colgroup>
|
||||
<col width="50">
|
||||
<col width="50">
|
||||
<col width="80">
|
||||
<col width="50">
|
||||
<col>
|
||||
<col width="130">
|
||||
</colgroup>
|
||||
<thead class="small text-muted">
|
||||
<tr>
|
||||
<th><input type="checkbox" class="checkAll-act-list" data-toggle="tooltip" title="전체선택"></th>
|
||||
<th>번호</th>
|
||||
<th><?php echo $inbox==3?'받는이':'보낸이'?></th>
|
||||
<th></th>
|
||||
<th>내용</th>
|
||||
<th>날짜</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<?php while($R=db_fetch_array($RCD)):?>
|
||||
<?php $R['content']=str_replace(' ',' ',$R['content'])?>
|
||||
<?php $M=getDbData($table['s_mbrdata'],'memberuid='.$R[($index==3?'m':'b').'y_mbruid'],'*')?>
|
||||
<tr>
|
||||
<td><input type="checkbox" name="members[]" onclick="checkboxCheck();" class="mbr-act-list" value="<?php echo $R['uid']?>"></td>
|
||||
<td><?php echo $NUM-((($p-1)*$recnum)+$_rec++)?></td>
|
||||
<td><span class="badge badge-pill badge-dark"><?php echo $M[$_HS['nametype']]?$M[$_HS['nametype']]:'시스템'?></span></td>
|
||||
<td><span class="badge badge-pill badge-dark"><?php echo $R['d_read']?getDateFormat($R['d_read'],'Y.m.d H:i 열람'):'읽지않음'?></span></td>
|
||||
<td class="text-left">
|
||||
<?php echo getStrCut(strip_tags($R['content']),50,'..')?>
|
||||
<?php if(getNew($R['d_regis'],24)):?><small class="text-danger">New</small><?php endif?>
|
||||
</td>
|
||||
<td class="rb-update">
|
||||
<time class="timeago small text-muted" data-toggle="tooltip" datetime="<?php echo getDateFormat($R['d_regis'],'c')?>" data-tooltip="tooltip" title="<?php echo getDateFormat($R['d_regis'],'Y.m.d H:i')?>"></time>
|
||||
</td>
|
||||
</tr>
|
||||
<?php endwhile?>
|
||||
</tbody>
|
||||
</table>
|
||||
<?php if(!$NUM):?>
|
||||
<div class="text-muted text-center py-4">
|
||||
<i class="fa fa-exclamation-circle fa-2x mb-1 d-block" aria-hidden="true"></i>
|
||||
<small>데이타가 없습니다.</small>
|
||||
</div>
|
||||
<?php endif?>
|
||||
</div>
|
||||
|
||||
<ul class="pagination pagination-sm justify-content-center py-3">
|
||||
<script type="text/javascript">getPageLink(5,<?php echo $p?>,<?php echo $TPG?>,'');</script>
|
||||
</ul>
|
||||
|
||||
</form>
|
||||
126
modules/member/admin/manager/point.php
Normal file
126
modules/member/admin/manager/point.php
Normal file
@@ -0,0 +1,126 @@
|
||||
<?php
|
||||
|
||||
$type = $type ? $type : 'point';
|
||||
$sort = $sort ? $sort : 'uid';
|
||||
$orderby= $orderby ? $orderby : 'desc';
|
||||
$recnum = $recnum && $recnum < 200 ? $recnum : 15;
|
||||
|
||||
$sqlque = 'my_mbruid='.$_M['uid'];
|
||||
if ($price == '1') $sqlque .= ' and price > 0';
|
||||
if ($price == '2') $sqlque .= ' and price < 0';
|
||||
if ($d_start) $sqlque .= ' and d_regis > '.str_replace('/','',$d_start).'000000';
|
||||
if ($d_finish) $sqlque .= ' and d_regis < '.str_replace('/','',$d_finish).'240000';
|
||||
if ($where && $keyw)
|
||||
{
|
||||
$sqlque .= getSearchSql($where,$keyw,$ikeyword,'or');
|
||||
}
|
||||
$RCD = getDbArray($table['s_'.$type],$sqlque,'*',$sort,$orderby,$recnum,$p);
|
||||
$NUM = getDbRows($table['s_'.$type],$sqlque);
|
||||
$TPG = getTotalPage($NUM,$recnum);
|
||||
?>
|
||||
|
||||
<div class="manager-list pt-3 px-3">
|
||||
|
||||
<form name="searchForm" 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="module" value="<?php echo $module?>">
|
||||
<input type="hidden" name="front" value="<?php echo $front?>">
|
||||
<input type="hidden" name="tab" value="<?php echo $tab?>">
|
||||
<input type="hidden" name="uid" value="<?php echo $_M['uid']?>">
|
||||
<input type="hidden" name="p" value="<?php echo $p?>">
|
||||
<input type="hidden" name="iframe" value="<?php echo $iframe?>">
|
||||
|
||||
<div class="d-flex justify-content-between align-items-center">
|
||||
<div>
|
||||
<small><?php echo sprintf('총 %d건',$NUM)?></small>
|
||||
<span class="badge badge-pill badge-dark"><?php echo $p?>/<?php echo $TPG?> 페이지</span>
|
||||
<button type="button" class="btn btn-link btn-sm muted-link" data-toggle="collapse" data-target="#search-more-bbs" onclick="sessionSetting('sh_bbslist','1','','1');">
|
||||
고급검색
|
||||
</button>
|
||||
</div>
|
||||
<div class="form-inline">
|
||||
<select name="type" class="form-control form-control-sm custom-select" onchange="this.form.submit();">
|
||||
<option value="">구분</option>
|
||||
<option value="point"<?php if($type=='point'):?> selected="selected"<?php endif?>>포인트</option>
|
||||
<option value="cash"<?php if($type=='cash'):?> selected="selected"<?php endif?>>적립금</option>
|
||||
<option value="money"<?php if($type=='money'):?> selected="selected"<?php endif?>>예치금</option>
|
||||
</select>
|
||||
<select name="price" class="form-control form-control-sm custom-select ml-2" onchange="this.form.submit();">
|
||||
<option value="">구분</option>
|
||||
<option value="1"<?php if($price=='1'):?> selected="selected"<?php endif?>>획득</option>
|
||||
<option value="2"<?php if($price=='2'):?> selected="selected"<?php endif?>>사용</option>
|
||||
</select>
|
||||
</div><!-- /.form-inline -->
|
||||
</div><!-- /.d-flex -->
|
||||
|
||||
<div id="search-more-bbs" class="mt-3 collapse<?php if($_SESSION['sh_bbslist']):?> show<?php endif?>">
|
||||
<div class="form-inline input-daterange" id="datepicker">
|
||||
<input type="text" class="form-control form-control-sm" name="d_start" placeholder="시작일" value="<?php echo $d_start?>">
|
||||
<span class="px-1">~</span>
|
||||
<input type="text" class="form-control form-control-sm" name="d_finish" placeholder="종료일" value="<?php echo $d_finish?>">
|
||||
<button class="btn btn-light btn-sm ml-1" type="submit"><i class="fa fa-search"></i></button>
|
||||
</div><!-- /.form-inline -->
|
||||
</div><!-- /.collapse -->
|
||||
</form>
|
||||
</div>
|
||||
|
||||
<form name="adm_list_form" class="mt-3" 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="module" value="comment">
|
||||
<input type="hidden" name="front" value="<?php echo $front?>">
|
||||
<input type="hidden" name="tab" value="<?php echo $tab?>">
|
||||
<input type="hidden" name="p" value="<?php echo $p?>">
|
||||
<input type="hidden" name="iframe" value="<?php echo $iframe?>">
|
||||
<input type="hidden" name="a" value="">
|
||||
<div class="table-responsive">
|
||||
<table class="table table-hover f13 text-center">
|
||||
<colgroup>
|
||||
<col width="50">
|
||||
<col width="50">
|
||||
<col width="80">
|
||||
<col>
|
||||
<col width="100">
|
||||
</colgroup>
|
||||
<thead class="small text-muted">
|
||||
<tr>
|
||||
<th><input type="checkbox" class="checkAll-act-list" data-toggle="tooltip" title="전체선택"></th>
|
||||
<th>번호</th>
|
||||
<th>금액</th>
|
||||
<th>내역</th>
|
||||
<th>날짜</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<?php while($R=db_fetch_array($RCD)):?>
|
||||
<?php $R['content']=str_replace(' ',' ',$R['content'])?>
|
||||
<?php $M=getDbData($table['s_mbrdata'],'memberuid='.$R[($index==3?'m':'b').'y_mbruid'],'*')?>
|
||||
<tr>
|
||||
<td><input type="checkbox" name="members[]" onclick="checkboxCheck();" class="mbr-act-list" value="<?php echo $R['uid']?>"></td>
|
||||
<td><?php echo $NUM-((($p-1)*$recnum)+$_rec++)?></td>
|
||||
<td><span class="badge badge-pill badge-dark"><?php echo ($R['price']>0?'+':'').number_format($R['price'])?></span></td>
|
||||
<td class="text-left">
|
||||
<?php echo getStrCut(strip_tags($R['content']),50,'..')?>
|
||||
<?php if(getNew($R['d_regis'],24)):?><small class="text-danger">New</small><?php endif?>
|
||||
</td>
|
||||
<td class="rb-update">
|
||||
<time class="timeago small text-muted" data-toggle="tooltip" datetime="<?php echo getDateFormat($R['d_regis'],'c')?>" data-tooltip="tooltip" title="<?php echo getDateFormat($R['d_regis'],'Y.m.d H:i')?>"></time>
|
||||
</td>
|
||||
</tr>
|
||||
<?php endwhile?>
|
||||
</tbody>
|
||||
</table>
|
||||
<?php if(!$NUM):?>
|
||||
<div class="text-muted text-center py-4">
|
||||
<i class="fa fa-exclamation-circle fa-2x mb-1 d-block" aria-hidden="true"></i>
|
||||
<small>데이타가 없습니다.</small>
|
||||
</div>
|
||||
<?php endif?>
|
||||
</div>
|
||||
|
||||
<ul class="pagination pagination-sm justify-content-center py-3">
|
||||
<script type="text/javascript">getPageLink(5,<?php echo $p?>,<?php echo $TPG?>,'');</script>
|
||||
</ul>
|
||||
|
||||
</form>
|
||||
162
modules/member/admin/manager/post.php
Normal file
162
modules/member/admin/manager/post.php
Normal file
@@ -0,0 +1,162 @@
|
||||
<?php
|
||||
//게시물링크
|
||||
function _getPostLink($arr)
|
||||
{
|
||||
return RW('m=bbs&bid='.$arr['bbsid'].'&uid='.$arr['uid'].($GLOBALS['s']!=$arr['site']?'&s='.$arr['site']:''));
|
||||
}
|
||||
$sort = $sort ? $sort : 'gid';
|
||||
$orderby= $orderby ? $orderby : 'asc';
|
||||
$recnum = $recnum && $recnum < 200 ? $recnum : 5;
|
||||
|
||||
$bbsque = 'mbruid='.$_M['uid'];
|
||||
if ($account) $bbsque .= ' and site='.$account;
|
||||
if ($bid) $bbsque .= ' and bbs='.$bid;
|
||||
if ($d_start) $bbsque .= ' and d_regis > '.str_replace('/','',$d_start).'000000';
|
||||
if ($d_finish) $bbsque .= ' and d_regis < '.str_replace('/','',$d_finish).'240000';
|
||||
if ($where && $keyw)
|
||||
{
|
||||
if (strstr('[name][nic][id][ip]',$where)) $bbsque .= " and ".$where."='".$keyw."'";
|
||||
else if ($where == 'term') $bbsque .= " and d_regis like '".$keyw."%'";
|
||||
else $bbsque .= getSearchSql($where,$keyw,$ikeyword,'or');
|
||||
}
|
||||
$RCD = getDbArray($table['bbsdata'],$bbsque,'*',$sort,$orderby,$recnum,$p);
|
||||
$NUM = getDbRows($table['bbsdata'],$bbsque);
|
||||
$TPG = getTotalPage($NUM,$recnum);
|
||||
?>
|
||||
|
||||
<div class="manager-list pt-3 px-3">
|
||||
|
||||
<form name="searchForm" 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="module" value="<?php echo $module?>">
|
||||
<input type="hidden" name="front" value="<?php echo $front?>">
|
||||
<input type="hidden" name="tab" value="<?php echo $tab?>">
|
||||
<input type="hidden" name="uid" value="<?php echo $_M['uid']?>">
|
||||
<input type="hidden" name="p" value="<?php echo $p?>">
|
||||
<input type="hidden" name="iframe" value="<?php echo $iframe?>">
|
||||
|
||||
<div class="d-flex justify-content-between align-items-center">
|
||||
<div>
|
||||
<small><?php echo sprintf('총 %d건',$NUM)?></small>
|
||||
<span class="badge badge-pill badge-dark"><?php echo $p?>/<?php echo $TPG?> 페이지</span>
|
||||
<button type="button" class="btn btn-link btn-sm muted-link" data-toggle="collapse" data-target="#search-more-bbs" onclick="sessionSetting('sh_bbslist','1','','1');">
|
||||
고급검색
|
||||
</button>
|
||||
</div>
|
||||
|
||||
<div class="form-inline">
|
||||
|
||||
<select name="siteuid" class="form-control form-control-sm custom-select" onchange="this.form.submit();">
|
||||
<option value="">전체 사이트</option>
|
||||
<?php $SITES = getDbArray($table['s_site'],'','*','gid','asc',0,$p)?>
|
||||
<?php while($S = db_fetch_array($SITES)):?>
|
||||
<option value="<?php echo $S['uid']?>"<?php if($S['uid']==$siteuid):?> selected<?php endif?>><?php echo $S['name']?> (<?php echo $S['id']?>)</option>
|
||||
<?php endwhile?>
|
||||
</select>
|
||||
|
||||
<select name="bid" class="form-control form-control-sm custom-select ml-1" onchange="this.form.submit();">
|
||||
<option value="">전체 게시판</option>
|
||||
<?php $_BBSLIST = getDbArray($table['bbslist'],'','*','gid','asc',0,1)?>
|
||||
<?php while($_B=db_fetch_array($_BBSLIST)):?>
|
||||
<option value="<?php echo $_B['uid']?>"<?php if($_B['uid']==$bid):?> selected="selected"<?php endif?>>ㆍ<?php echo $_B['name']?>(<?php echo $_B['id']?>)</option>
|
||||
<?php endwhile?>
|
||||
<?php if(!db_num_rows($_BBSLIST)):?>
|
||||
<option value="">등록된 게시판이 없습니다.</option>
|
||||
<?php endif?>
|
||||
</select>
|
||||
|
||||
</div><!-- /.form-inline -->
|
||||
</div><!-- /.d-flex -->
|
||||
|
||||
<div id="search-more-bbs" class="mt-3 collapse<?php if($_SESSION['sh_bbslist']):?> show<?php endif?>">
|
||||
<div class="d-flex justify-content-between align-items-center">
|
||||
<div class="form-inline input-daterange" id="datepicker">
|
||||
<input type="text" class="form-control form-control-sm" name="d_start" placeholder="시작일" value="<?php echo $d_start?>">
|
||||
<span class="px-1">~</span>
|
||||
<input type="text" class="form-control form-control-sm" name="d_finish" placeholder="종료일" value="<?php echo $d_finish?>">
|
||||
<button class="btn btn-light btn-sm ml-1" type="submit"><i class="fa fa-search"></i></button>
|
||||
</div><!-- /.form-inline -->
|
||||
|
||||
<div class="form-inline">
|
||||
<select name="where" class="form-control form-control-sm custom-select">
|
||||
<option value="subject|tag"<?php if($where=='subject|tag'):?> selected="selected"<?php endif?>>제목+태그</option>
|
||||
<option value="content"<?php if($where=='content'):?> selected="selected"<?php endif?>>본문</option>
|
||||
</select>
|
||||
<input type="text" name="keyw" class="form-control form-control-sm" placeholder="검색어를 입력해주세요." value="<?php echo $keyw?>">
|
||||
<button class="btn btn-light ml-1" type="submit"><i class="fa fa-search"></i>검색</button>
|
||||
<button class="btn btn-light ml-1" type="button" onclick="this.form.keyw.value='';this.form.submit();">리셋</button>
|
||||
</div><!-- /.form-inline -->
|
||||
</div><!-- /.d-flex -->
|
||||
</div><!-- /.collapse -->
|
||||
</form>
|
||||
|
||||
</div>
|
||||
|
||||
<form name="adm_list_form" class="mt-3" action="<?php echo $g['s']?>/" method="post">
|
||||
<input type="hidden" name="r" value="<?php echo $r?>">
|
||||
<input type="hidden" name="module" value="<?php echo $module?>">
|
||||
<input type="hidden" name="front" value="<?php echo $front?>">
|
||||
<input type="hidden" name="tab" value="<?php echo $tab?>">
|
||||
<input type="hidden" name="p" value="<?php echo $p?>">
|
||||
<input type="hidden" name="iframe" value="<?php echo $iframe?>">
|
||||
<input type="hidden" name="m" value=""> <!-- 액션파일이 있는 모듈명 -->
|
||||
<input type="hidden" name="a" value=""> <!-- 액션명 -->
|
||||
|
||||
<div class="table-responsive">
|
||||
<table class="table table-hover text-center f13">
|
||||
<colgroup>
|
||||
<col width="50">
|
||||
<col width="50">
|
||||
<col width="100">
|
||||
<col>
|
||||
<col width="130">
|
||||
</colgroup>
|
||||
<thead class="small text-muted">
|
||||
<tr>
|
||||
<th><input type="checkbox" class="checkAll-act-list" data-toggle="tooltip" title="전체선택"></th>
|
||||
<th>번호</th>
|
||||
<th>게시판</th>
|
||||
<th>제목</th>
|
||||
<th>조회</th>
|
||||
<th>날짜</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<?php while($R=db_fetch_array($RCD)):?>
|
||||
<?php $R['mobile']=isMobileConnect($R['agent'])?>
|
||||
<tr>
|
||||
<td><input type="checkbox" name="post_members[]" onclick="checkboxCheck();" class="mbr-act-list" value="<?php echo $R['uid']?>"></td>
|
||||
<td><?php echo $NUM-((($p-1)*$recnum)+$_rec++)?></td>
|
||||
<td><span class="badge badge-pill badge-dark"><?php echo $R['bbsid']?></span></td>
|
||||
<td class="text-left">
|
||||
<?php if($R['mobile']):?><i class="fa fa-mobile fa-lg"></i><?php endif?>
|
||||
<?php if($R['category']):?><span class="badge badge-pill badge-dark"><?php echo $R['category']?></span><?php endif?>
|
||||
<a href="<?php echo getPostLink($R)?>" target="_blank"><?php echo getStrCut($R['subject'],$d['bbs']['sbjcut'],'')?></a>
|
||||
<?php if(strstr($R['content'],'.jpg')):?><span class="badge badge-pill badge-dark"><i class="fa fa-image"></i></span><?php endif?>
|
||||
<?php if($R['upload']):?><span class="badge badge-pill badge-dark"><i class="fa fa-paperclip"></i></span><?php endif?>
|
||||
<?php if($R['hidden']):?><span class="badge badge-pill badge-dark"><i class="fa fa-lock"></i></span><?php endif?>
|
||||
<?php if($R['comment']):?><span class="badge badge-pill badge-dark"><?php echo $R['comment']?><?php echo $R['oneline']?'+'.$R['oneline']:''?></span><?php endif?>
|
||||
<?php if(getNew($R['d_regis'],24)):?><span class="text-danger"><small>N</small></span><?php endif?>
|
||||
</td>
|
||||
<td><small><?php echo $R['hit']?></small></td>
|
||||
<td class="rb-update">
|
||||
<time class="timeago small text-muted" data-toggle="tooltip" datetime="<?php echo getDateFormat($R['d_regis'],'c')?>" data-tooltip="tooltip" title="<?php echo getDateFormat($R['d_regis'],'Y.m.d H:i')?>"></time>
|
||||
</td>
|
||||
</tr>
|
||||
<?php endwhile?>
|
||||
</tbody>
|
||||
</table>
|
||||
<?php if(!$NUM):?>
|
||||
<div class="text-muted text-center py-4">
|
||||
<i class="fa fa-exclamation-circle fa-2x mb-1 d-block" aria-hidden="true"></i>
|
||||
<small>데이타가 없습니다.</small>
|
||||
</div>
|
||||
<?php endif?>
|
||||
</div>
|
||||
|
||||
<ul class="pagination pagination-sm justify-content-center py-3 w-100">
|
||||
<script type="text/javascript">getPageLink(5,<?php echo $p?>,<?php echo $TPG?>,'');</script>
|
||||
</ul>
|
||||
|
||||
</form>
|
||||
389
modules/member/admin/manager/profile.php
Normal file
389
modules/member/admin/manager/profile.php
Normal file
@@ -0,0 +1,389 @@
|
||||
<?php
|
||||
$levelnum = getDbData($table['s_mbrlevel'],'gid=1','*');
|
||||
$levelname= getDbData($table['s_mbrlevel'],'uid='.$_M['level'],'*');
|
||||
$sosokname= getDbData($table['s_mbrgroup'],'uid='.$_M['mygroup'],'*');
|
||||
$joinsite = getDbData($table['s_site'],'uid='.$_M['site'],'*');
|
||||
$M1 = getUidData($table['s_mbrid'],$_M['memberuid']);
|
||||
$lastlogdate = -getRemainDate($_M['last_log']);
|
||||
|
||||
// 연결계정 정보
|
||||
$my_naver = getDbData($table['s_mbrsns'],"mbruid='".$_M['uid']."' and sns='naver'",'*');
|
||||
$my_kakao = getDbData($table['s_mbrsns'],"mbruid='".$_M['uid']."' and sns='kakao'",'*');
|
||||
$my_google = getDbData($table['s_mbrsns'],"mbruid='".$_M['uid']."' and sns='google'",'*');
|
||||
$my_facebook = getDbData($table['s_mbrsns'],"mbruid='".$_M['uid']."' and sns='facebook'",'*');
|
||||
$my_instagram = getDbData($table['s_mbrsns'],"mbruid='".$_M['uid']."' and sns='instagram'",'*');
|
||||
|
||||
//이메일,휴대폰,배송지 목록 출력 공통쿼리
|
||||
$sqlque = 'mbruid='.$_M['uid'];
|
||||
?>
|
||||
|
||||
|
||||
<section class="pt-4 f13">
|
||||
<div class="row no-gutters">
|
||||
<div class="col-sm-3 col-lg-3 text-center">
|
||||
<br><br>
|
||||
<p>
|
||||
<img alt="avatar" src="<?php echo getAvatarSrc($_M['uid'],'120') ?>" width="120" height="120" class="rounded-circle">
|
||||
</p>
|
||||
|
||||
<a class="btn btn-light btn-sm" href="/@<?php echo $_M['id']?>" target="_blank">프로필 페이지</a>
|
||||
</div>
|
||||
<div class="col-sm-4 col-lg-4">
|
||||
|
||||
<dl class="row no-gutters f13 mb-0">
|
||||
|
||||
<dt class="col-4 text-muted">ㆍ 계정 이메일</dt>
|
||||
<dd class="col-8">
|
||||
<?php echo $_M['email']?$_M['email']:'<span class="text-muted">미등록</span>'?>
|
||||
<?php if ($_M['mailing']): ?>
|
||||
<span class="badge badge-pill badge-dark">공지수신</span>
|
||||
<?php endif; ?>
|
||||
</dd>
|
||||
|
||||
|
||||
<dt class="col-4 text-muted">ㆍ 아이디</dt>
|
||||
<dd class="col-8"><?php echo $_M['id']?></dd>
|
||||
|
||||
<dt class="col-4 text-muted">ㆍ 회원그룹</dt>
|
||||
<dd class="col-8">
|
||||
<?php echo $sosokname['name']?>
|
||||
</dd>
|
||||
|
||||
|
||||
<dt class="col-4 text-muted">ㆍ 이름</dt>
|
||||
<dd class="col-8">
|
||||
<?php echo $_M['name']?>
|
||||
<?php if($_M['sex']):?><span class="badge badge-pill badge-dark"><?php echo getSex($_M['sex'])?>성</span><?php endif?>
|
||||
</dd>
|
||||
|
||||
<dt class="col-4 text-muted">ㆍ 닉네임</dt>
|
||||
<dd class="col-8"><?php echo $_M['nic']?></dd>
|
||||
|
||||
|
||||
<?php if ($_M['tel']): ?>
|
||||
<dt class="col-4 text-muted">ㆍ 전화</dt>
|
||||
<dd class="col-8"><?php echo $_M['tel']?$_M['tel']:'<small class="text-muted">미등록</small>'?></dd>
|
||||
<?php endif; ?>
|
||||
|
||||
<dt class="col-4 text-muted">ㆍ 가입일</dt>
|
||||
<dd class="col-8">
|
||||
<?php echo getDateFormat($_M['d_regis'],'Y.m.d H:i')?>
|
||||
<span class="badge badge-pill badge-dark"><?php echo sprintf('%d일전',-getRemainDate($_M['d_regis']))?></span>
|
||||
</dd>
|
||||
|
||||
<dt class="col-4 text-muted">ㆍ 최근접속</dt>
|
||||
<dd class="col-8">
|
||||
<?php if($_M['last_log']):?><?php echo getDateFormat($_M['last_log'],'Y.m.d H:i')?>
|
||||
<span class="badge badge-pill badge-dark"><?php echo sprintf('%d일전',-getRemainDate($_M['last_log']))?><?php else:?><small>기록없음</small></span>
|
||||
<?php endif?>
|
||||
</dd>
|
||||
|
||||
<?php if ($_M['home']): ?>
|
||||
<dt class="col-4 text-muted">ㆍ 홈페이지</dt>
|
||||
<dd class="col-8">
|
||||
<a href="<?php echo $_M['home'] ?>" target="_blank" class="muted-link"><?php echo $_M['home'] ?></a>
|
||||
</dd>
|
||||
<?php endif; ?>
|
||||
|
||||
</dl>
|
||||
</div>
|
||||
|
||||
<div class="col-sm-5 col-lg-5">
|
||||
|
||||
<dl class="row f13 mb-0">
|
||||
|
||||
<dt class="col-4 text-muted">ㆍ 계정 휴대폰</dt>
|
||||
<dd class="col-8">
|
||||
<?php echo $_M['phone']?substr($_M['phone'], 0,3).'-'.substr($_M['phone'], 3,4).'-'.substr($_M['phone'], 7,4):'<small class="text-muted">미등록</small>'?>
|
||||
<?php if ($_M['sms']): ?>
|
||||
<span class="badge badge-pill badge-dark">공지수신</span>
|
||||
<?php endif; ?>
|
||||
</dd>
|
||||
|
||||
<dt class="col-4 text-muted">ㆍ 비밀번호</dt>
|
||||
<dd class="col-8">
|
||||
<?php echo $_M['last_pw']?'<span class="text-muted">'.getDateFormat($_M['last_pw'],'Y.m.d').' 등록</span>':'<small class="text-muted">미등록</small>'?>
|
||||
</dd>
|
||||
|
||||
<?php if($_M['birth1']):?>
|
||||
<dt class="col-4 text-muted">ㆍ 나이/성별</dt>
|
||||
<dd class="col-8">
|
||||
<?php echo getAge($_M['birth1'])?>세
|
||||
<?php if($_M['birth1']&&$_M['sex']):?> / <?php echo getSex($_M['sex'])?>성<?php endif?>
|
||||
</dd>
|
||||
|
||||
|
||||
<dt class="col-4 text-muted">ㆍ 생년월일</dt>
|
||||
<dd class="col-8">
|
||||
<?php echo $_M['birth1']?>/<?php echo substr($_M['birth2'],0,2)?>/
|
||||
<?php echo substr($_M['birth2'],2,2)?>
|
||||
<?php if($_M['birthtype']):?><span class="badge badge-pill badge-dark">음력</span><?php endif?>
|
||||
</dd>
|
||||
<?php endif?>
|
||||
|
||||
<dt class="col-4 text-muted">ㆍ 회원등급</dt>
|
||||
<dd class="col-8">
|
||||
<?php echo $levelname['name']?> <span class="badge badge-pill badge-dark"><?php echo $_M['level']?> / <?php echo $levelnum['uid']?></span>
|
||||
</dd>
|
||||
|
||||
<dt class="col-4 text-muted">ㆍ 가입사이트</dt>
|
||||
<dd class="col-8">
|
||||
<?php echo $joinsite['name']?>
|
||||
</dd>
|
||||
|
||||
</dl>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<div class="row no-gutters">
|
||||
|
||||
<div class="offset-sm-3 col">
|
||||
|
||||
<dl class="row">
|
||||
|
||||
<?php if($_M['bio']):?>
|
||||
<dt class="col-2 text-muted">ㆍ 간단소개</dt>
|
||||
<dd class="col-10">
|
||||
<?php echo $_M['bio']?>
|
||||
</dd>
|
||||
<?php endif?>
|
||||
|
||||
<?php if($_M['marr1']):?>
|
||||
<dt class="col-2 text-muted">ㆍ 결혼기념일</dt>
|
||||
<dd class="col-10">
|
||||
<?php echo $_M['marr1']?>/<?php echo substr($_M['marr2'],0,2)?>/
|
||||
<?php echo substr($_M['marr2'],2,2)?>
|
||||
</dd>
|
||||
<?php endif?>
|
||||
|
||||
<?php if($_M['location']):?>
|
||||
<dt class="col-2 text-muted">ㆍ 거주지역</dt>
|
||||
<dd class="col-4">
|
||||
<?php echo $_M['location']?>
|
||||
</dd>
|
||||
<?php endif?>
|
||||
|
||||
<?php if($_M['job']):?>
|
||||
<dt class="col-2 text-muted">ㆍ 직업</dt>
|
||||
<dd class="col-4">
|
||||
<?php echo $_M['job']?>
|
||||
</dd>
|
||||
<?php endif?>
|
||||
</dl>
|
||||
|
||||
<table class="table table-bordered text-center" style="width: 95%">
|
||||
<colgroup>
|
||||
<col width="33.3%">
|
||||
<col width="33.3%">
|
||||
<col width="33.3%">
|
||||
</colgroup>
|
||||
<thead class="small text-muted">
|
||||
<th>포인트</th>
|
||||
<th>적립금</th>
|
||||
<th>예치금</th>
|
||||
</thead>
|
||||
<tbody class="f16">
|
||||
<tr>
|
||||
<td>
|
||||
<?php echo number_format($_M['point'])?> <span class="badge badge-pill badge-dark">사용 : <?php echo number_format($_M['usepoint'])?></span>
|
||||
</td>
|
||||
<td>
|
||||
<?php echo number_format($_M['cash'])?>
|
||||
</td>
|
||||
<td>
|
||||
<?php echo number_format($_M['money'])?>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
|
||||
</table>
|
||||
|
||||
<dl class="row">
|
||||
<?php $g['memberAddFieldSite'] = $g['path_var'].'site/'.$r.'/member.add_field.txt'; ?>
|
||||
<?php $_add = file_exists($g['memberAddFieldSite']) ? file($g['memberAddFieldSite']) : file($g['path_module'].'member/var/add_field.txt');?>
|
||||
<?php foreach($_add as $_key):?>
|
||||
<?php $_val = explode('|',trim($_key))?>
|
||||
<?php if($_val[6]) continue?>
|
||||
<?php $_myadd1 = explode($_val[0].'^^^',$_M['addfield'])?>
|
||||
<?php $_myadd2 = explode('|||',$_myadd1[1])?>
|
||||
<dt class="col-2 text-muted">ㆍ <?php echo $_val[1]?></dt>
|
||||
<dd class="col-10">
|
||||
<?php echo $_myadd2[0] ?>
|
||||
</dd>
|
||||
<?php endforeach?>
|
||||
|
||||
</dl>
|
||||
|
||||
<dl class="row mb-3">
|
||||
<dt class="col-2 text-muted pt-3">ㆍ 연결계정</dt>
|
||||
<dd class="col-10">
|
||||
<ul class="list-group" style="width:95%">
|
||||
<?php if ($my_naver['uid']): ?>
|
||||
<li class="list-group-item d-flex justify-content-between align-items-center">
|
||||
<div class="">
|
||||
<img class="rounded-circle mr-2 align-top" src="/_core/images/sns/naver.png" alt="네이버" width="20">
|
||||
네이버
|
||||
</div>
|
||||
<span class="badge badge-pill badge-dark">
|
||||
<?php echo getDateFormat($my_naver['d_regis'],'Y.m.d H:i') ?> 연결
|
||||
</span>
|
||||
</li>
|
||||
<?php endif?>
|
||||
<?php if ($my_kakao['uid']): ?>
|
||||
<li class="list-group-item d-flex justify-content-between align-items-center">
|
||||
<div class="">
|
||||
<img class="rounded-circle mr-2 align-top" src="/_core/images/sns/kakao.png" alt="카카오" width="20">
|
||||
카카오
|
||||
</div>
|
||||
<span class="badge badge-pill badge-dark">
|
||||
<?php echo getDateFormat($my_kakao['d_regis'],'Y.m.d H:i') ?> 연결
|
||||
</span>
|
||||
</li>
|
||||
<?php endif?>
|
||||
<?php if ($my_google['uid']): ?>
|
||||
<li class="list-group-item d-flex justify-content-between align-items-center">
|
||||
<div class="">
|
||||
<img class="rounded-circle mr-2 align-top" src="/_core/images/sns/google.png" alt="구글" width="20">
|
||||
구글
|
||||
</div>
|
||||
<span class="badge badge-pill badge-dark">
|
||||
<?php echo getDateFormat($my_google['d_regis'],'Y.m.d H:i') ?> 연결
|
||||
</span>
|
||||
</li>
|
||||
<?php endif?>
|
||||
<?php if ($my_facebook['uid']): ?>
|
||||
<li class="list-group-item d-flex justify-content-between align-items-center">
|
||||
<div class="">
|
||||
<img class="rounded-circle mr-2 align-top" src="/_core/images/sns/facebook.png" alt="페이스북" width="20">
|
||||
페이스북
|
||||
</div>
|
||||
<span class="badge badge-pill badge-dark">
|
||||
<?php echo getDateFormat($my_facebook['d_regis'],'Y.m.d H:i') ?> 연결
|
||||
</span>
|
||||
</li>
|
||||
<?php endif?>
|
||||
<?php if ($my_instagram['uid']): ?>
|
||||
<li class="list-group-item d-flex justify-content-between align-items-center">
|
||||
<div class="">
|
||||
<img class="rounded-circle mr-2 align-top" src="/_core/images/sns/instagram.png" alt="인스타그램" width="20">
|
||||
인스타그램
|
||||
</div>
|
||||
<span class="badge badge-pill badge-dark">
|
||||
<?php echo getDateFormat($my_instagram['d_regis'],'Y.m.d H:i') ?> 연결
|
||||
</span>
|
||||
</li>
|
||||
<?php endif?>
|
||||
<?php if (!$my_naver['uid'] && !$my_kakao['uid'] && !$my_google['uid'] && !$my_facebook['uid'] && !$my_instagram['uid'] ): ?>
|
||||
<li class="list-group-item d-flex align-items-center justify-content-center">
|
||||
<small class="text-muted">연결된 외부계정이 없습니다.</small>
|
||||
</li>
|
||||
<?php endif; ?>
|
||||
</ul>
|
||||
</dd>
|
||||
</dl>
|
||||
|
||||
<dl class="row mb-3">
|
||||
<dt class="col-2 text-muted pt-3">ㆍ 이메일 목록</dt>
|
||||
<dd class="col-10">
|
||||
<?php
|
||||
$ECD = getDbArray($table['s_mbremail'],$sqlque,'*','uid','asc',0,1);
|
||||
$NUM_MAIL = getDbRows($table['s_mbremail'],$sqlque);
|
||||
?>
|
||||
|
||||
<ul class="list-group" style="width:95%">
|
||||
<?php while($E=db_fetch_array($ECD)):?>
|
||||
<li class="list-group-item d-flex justify-content-between align-items-center">
|
||||
<div class="">
|
||||
<i class="fa fa-envelope-o fa-fw text-muted" aria-hidden="true"></i>
|
||||
<strong><?php echo $E['email'] ?></strong>
|
||||
</div>
|
||||
<div class="">
|
||||
<?php if ($E['base']): ?><span class="badge badge-pill badge-primary">기본</span><?php endif; ?>
|
||||
<?php if ($_M['email_profile']==$E['email']): ?><span class="badge badge-pill badge-dark">프로필 공개</span><?php endif; ?>
|
||||
<?php if ($_M['email_noti']==$E['email']): ?><span class="badge badge-pill badge-dark">알림수신</span><?php endif; ?>
|
||||
<?php if (!$E['d_verified']): ?><span class="badge badge-pill badge-dark">미인증</span><?php endif; ?>
|
||||
</div>
|
||||
</li>
|
||||
<?php endwhile?>
|
||||
<?php if (!$NUM_MAIL): ?>
|
||||
<li class="list-group-item d-flex align-items-center justify-content-center">
|
||||
<small class="text-muted">등록된 이메일이 없습니다.</small>
|
||||
</li>
|
||||
<?php endif; ?>
|
||||
</ul>
|
||||
</dd>
|
||||
</dl>
|
||||
|
||||
<dl class="row mb-3">
|
||||
<dt class="col-2 text-muted pt-3">ㆍ 휴대폰 목록</dt>
|
||||
<dd class="col-10">
|
||||
<?php
|
||||
$PCD = getDbArray($table['s_mbrphone'],$sqlque,'*','uid','asc',0,1);
|
||||
$NUM_PHONE = getDbRows($table['s_mbrphone'],$sqlque);
|
||||
?>
|
||||
<ul class="list-group" style="width:95%">
|
||||
<?php while($P=db_fetch_array($PCD)):?>
|
||||
<li class="list-group-item d-flex justify-content-between align-items-center">
|
||||
<div class="">
|
||||
<i class="fa fa-mobile fa-lg fa-fw text-muted" aria-hidden="true"></i>
|
||||
<strong><?php echo substr($P['phone'], 0,3).'-'.substr($P['phone'], 3,4).'-'.substr($P['phone'], 7,4) ?></strong>
|
||||
</div>
|
||||
<div class="">
|
||||
<?php if ($P['base']): ?><span class="badge badge-pill badge-primary">기본</span><?php endif; ?>
|
||||
<?php if (!$P['d_verified']): ?><span class="badge badge-pill badge-dark">미인증</span><?php endif; ?>
|
||||
</div>
|
||||
</li>
|
||||
<?php endwhile?>
|
||||
<?php if (!$NUM_PHONE): ?>
|
||||
<li class="list-group-item d-flex align-items-center justify-content-center">
|
||||
<small class="text-muted">등록된 휴대폰이 없습니다.</small>
|
||||
</li>
|
||||
<?php endif; ?>
|
||||
</ul>
|
||||
|
||||
</dd>
|
||||
</dl>
|
||||
|
||||
<dl class="row">
|
||||
<dt class="col-2 text-muted pt-3">ㆍ 배송지 목록</dt>
|
||||
<dd class="col-10">
|
||||
<?php
|
||||
$SCD = getDbArray($table['s_mbrshipping'],$sqlque,'*','uid','asc',0,1);
|
||||
$NUM_SHIPPING = getDbRows($table['s_mbrshipping'],$sqlque);
|
||||
?>
|
||||
<ul class="list-group" style="width:95%">
|
||||
<?php while($S=db_fetch_array($SCD)):?>
|
||||
<li class="list-group-item d-flex justify-content-between align-items-center">
|
||||
<div class="media">
|
||||
<span class="text-center align-self-center mr-3">
|
||||
<i class="fa fa-truck text-muted fa-lg" aria-hidden="true"></i><br>
|
||||
<span class="badge badge-pill badge-dark mt-2"><?php echo $S['label'] ?></span>
|
||||
</span>
|
||||
|
||||
<div class="media-body small text-muted">
|
||||
|
||||
<span class="mr-2"><?php echo $S['zip'] ?></span>
|
||||
<?php echo $S['addr1'] ?><br><?php echo $S['addr2'] ?>
|
||||
( <?php echo $S['name'] ?> / <?php echo $S['tel1'] ?> <?php echo $S['tel2']?' / '.$S['tel2']:'' ?> )
|
||||
</div>
|
||||
</div>
|
||||
<div class="">
|
||||
<?php if ($S['base']): ?><span class="badge badge-pill badge-primary">기본</span><?php endif; ?>
|
||||
</div>
|
||||
</li>
|
||||
<?php endwhile?>
|
||||
|
||||
<?php if (!$NUM_SHIPPING): ?>
|
||||
<li class="list-group-item d-flex align-items-center justify-content-center">
|
||||
<small class="text-muted">등록된 배송지가 없습니다.</small>
|
||||
</li>
|
||||
<?php endif; ?>
|
||||
</ul>
|
||||
</dd>
|
||||
</dl>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</section>
|
||||
130
modules/member/admin/manager/pwa.php
Normal file
130
modules/member/admin/manager/pwa.php
Normal file
@@ -0,0 +1,130 @@
|
||||
<?php
|
||||
$phone_que = 'mbruid='.$_M['uid'].' and device="phone"';
|
||||
$tablet_que = 'mbruid='.$_M['uid'].' and device="tablet"';
|
||||
$desktop_que = 'mbruid='.$_M['uid'].' and device="desktop"';
|
||||
|
||||
$PTK = getDbData($table['s_iidtoken'],$phone_que,'*');
|
||||
$TTK = getDbData($table['s_iidtoken'],$tablet_que,'*');
|
||||
$DTK = getDbData($table['s_iidtoken'],$desktop_que,'*');
|
||||
|
||||
?>
|
||||
|
||||
|
||||
<div class="card" id="token_div" style="">
|
||||
<div class="card-header d-flex justify-content-between align-items-center">
|
||||
<span>
|
||||
인스턴스 토큰
|
||||
</span>
|
||||
<button class="btn btn-light btn-sm js-sendTest" data-toggle="popover" title="" data-content="<span class='text-muted f12'>등록된 토큰을 기반으로 데스크탑과 모바일로<br>푸시알림 메시지가 각각 발송됩니다.<br>메시지가 수신된다면 정상적으로 셋팅된 것입니다.</span>" data-original-title="푸시알림 테스트">
|
||||
<span class="not-loading">회원에게 테스트 푸시알림 전송</span>
|
||||
<span class="is-loading"><i class="fa fa-spinner fa-lg fa-spin fa-fw"></i> 보내는중 ...</span>
|
||||
</button>
|
||||
</div>
|
||||
<div class="card-body">
|
||||
|
||||
<div class="media">
|
||||
<span class="mr-3 text-center">
|
||||
<i class="fa fa-desktop fa-3x align-self-center" aria-hidden="true" style="width: 70px"></i><br>
|
||||
<span class="mt-3 f12 text-muted">데스크탑</span>
|
||||
</span>
|
||||
<div class="media-body">
|
||||
<?php if ($DTK['token']): ?>
|
||||
<dl class="row mb-0 f12 text-muted">
|
||||
<dt class="col-2">브라우저</dt>
|
||||
<dd class="col-9"><?php echo $DTK['browser'] ?> <?php echo $DTK['version'] ?></dd>
|
||||
<dt class="col-2">등록일시</dt>
|
||||
<dd class="col-9"><?php echo getDateFormat($DTK['d_update']?$DTK['d_update']:$DTK['d_regis'],'Y.m.d H:i')?></dd>
|
||||
<dt class="col-2">토큰</dt>
|
||||
<dd class="col-9 mb-0" style="word-break: break-all;"><?php echo $DTK['token'] ?></dd>
|
||||
</dl>
|
||||
<?php else: ?>
|
||||
<div class="py-3 text-muted small">
|
||||
등록된 토큰이 없습니다.
|
||||
</div>
|
||||
<?php endif; ?>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<hr>
|
||||
|
||||
<div class="media">
|
||||
<span class="mr-3 text-center">
|
||||
<i class="fa fa-mobile fa-3x" aria-hidden="true" style="width: 70px"></i><br>
|
||||
<span class="mt-3 f12 text-muted">스마트폰</span>
|
||||
</span>
|
||||
<div class="media-body align-self-center">
|
||||
<?php if ($PTK['token']): ?>
|
||||
<dl class="row mb-0 f12 text-muted">
|
||||
<dt class="col-2">브라우저</dt>
|
||||
<dd class="col-9"><?php echo $PTK['browser'] ?> <?php echo $PTK['version'] ?></dd>
|
||||
<dt class="col-2">등록일시</dt>
|
||||
<dd class="col-9"><?php echo getDateFormat($PTK['d_update']?$PTK['d_update']:$PTK['d_regis'],'Y.m.d H:i')?></dd>
|
||||
<dt class="col-2">토큰</dt>
|
||||
<dd class="col-9 mb-0" style="word-break: break-all;"><?php echo $PTK['token'] ?></dd>
|
||||
</dl>
|
||||
<?php else: ?>
|
||||
<div class="py-3 text-muted small">
|
||||
등록된 토큰이 없습니다.
|
||||
</div>
|
||||
<?php endif; ?>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<hr>
|
||||
|
||||
<div class="media">
|
||||
<span class="mr-3 text-center">
|
||||
<i class="fa fa-tablet fa-3x" aria-hidden="true" style="width: 70px"></i><br>
|
||||
<span class="mt-3 f12 text-muted">태블릿</span>
|
||||
</span>
|
||||
<div class="media-body align-self-center">
|
||||
<?php if ($TTK['token']): ?>
|
||||
<dl class="row mb-0 f12 text-muted">
|
||||
<dt class="col-2">브라우저</dt>
|
||||
<dd class="col-9"><?php echo $TTK['browser'] ?> <?php echo $TTK['version'] ?></dd>
|
||||
<dt class="col-2">등록일시</dt>
|
||||
<dd class="col-9"><?php echo getDateFormat($TTK['d_update']?$TTK['d_update']:$TTK['d_regis'],'Y.m.d H:i')?></dd>
|
||||
<dt class="col-2">토큰</dt>
|
||||
<dd class="col-9 mb-0" style="word-break: break-all;"><?php echo $TTK['token'] ?></dd>
|
||||
</dl>
|
||||
<?php else: ?>
|
||||
<div class="py-3 text-muted small">
|
||||
등록된 토큰이 없습니다.
|
||||
</div>
|
||||
<?php endif; ?>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="card-footer">
|
||||
<span class="f12 text-muted">
|
||||
인스턴스 ID 토큰은 푸시알림에 활용되며 기기별로 1개만 저장 됩니다.<br>
|
||||
접속기기가 변경되면 토큰 또한 변경되며, 변경된 토큰정보는 로그인 후 갱신저장 됩니다.
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script>
|
||||
|
||||
$('.js-sendTest').click(function(event) {
|
||||
event.preventDefault();
|
||||
var btn = $(this)
|
||||
var popover = $('[data-toggle="popover"]')
|
||||
// popover.popover('hide')
|
||||
btn.attr('disabled',true)
|
||||
var title = '<?php echo $_HS['name'] ?> 데스크탑에서 보낸 푸시알림'
|
||||
var message = '푸시알림이 정상적으로 수신되었습니다.'
|
||||
$.post(rooturl+'/?r='+raccount+'&m=notification&a=push_testonly',{
|
||||
mbruid : '<?php echo $_M['uid'] ?>',
|
||||
title : title,
|
||||
message : message
|
||||
},function(response){
|
||||
var result = $.parseJSON(response);
|
||||
var error=result.error;
|
||||
if (!error) {
|
||||
btn.attr('disabled',false)
|
||||
console.log('테스트 푸시알림이 수신 되었습니다.')
|
||||
}
|
||||
});
|
||||
});
|
||||
</script>
|
||||
125
modules/member/admin/manager/saved.php
Normal file
125
modules/member/admin/manager/saved.php
Normal file
@@ -0,0 +1,125 @@
|
||||
<?php
|
||||
|
||||
$sort = $sort ? $sort : 'uid';
|
||||
$orderby= $orderby ? $orderby : 'asc';
|
||||
$recnum = $recnum && $recnum < 200 ? $recnum : 5;
|
||||
|
||||
$sqlque = 'mbruid='.$_M['uid'];
|
||||
if ($category) $sqlque .= " and category='".$category."'";
|
||||
if ($d_start) $sqlque .= ' and d_regis > '.str_replace('/','',$d_start).'000000';
|
||||
if ($d_finish) $sqlque .= ' and d_regis < '.str_replace('/','',$d_finish).'240000';
|
||||
if ($where && $keyw)
|
||||
{
|
||||
$sqlque .= getSearchSql($where,$keyw,$ikeyword,'or');
|
||||
}
|
||||
$RCD = getDbArray($table['s_saved'],$sqlque,'*',$sort,$orderby,$recnum,$p);
|
||||
$NUM = getDbRows($table['s_saved'],$sqlque);
|
||||
$TPG = getTotalPage($NUM,$recnum);
|
||||
?>
|
||||
|
||||
<div class="manager-list pt-3 px-3">
|
||||
|
||||
<form name="searchForm" 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="module" value="<?php echo $module?>">
|
||||
<input type="hidden" name="front" value="<?php echo $front?>">
|
||||
<input type="hidden" name="tab" value="<?php echo $tab?>">
|
||||
<input type="hidden" name="uid" value="<?php echo $_M['uid']?>">
|
||||
<input type="hidden" name="p" value="<?php echo $p?>">
|
||||
<input type="hidden" name="iframe" value="<?php echo $iframe?>">
|
||||
|
||||
<div class="d-flex justify-content-between align-items-center">
|
||||
<div>
|
||||
<small><?php echo sprintf('총 %d건',$NUM)?></small>
|
||||
<span class="badge badge-pill badge-dark"><?php echo $p?>/<?php echo $TPG?> 페이지</span>
|
||||
<button type="button" class="btn btn-link btn-sm muted-link" data-toggle="collapse" data-target="#search-more-bbs" onclick="sessionSetting('sh_bbslist','1','','1');">
|
||||
고급 검색
|
||||
</button>
|
||||
</div>
|
||||
<div class="form-inline">
|
||||
<select name="category" class="form-control form-control-sm custom-select mr-2" onchange="this.form.submit();">
|
||||
<option value="">분류</option>
|
||||
<?php $_CATS = getDbSelect($table['s_saved'],"mbruid=".$M['memberuid']." and category<>'' group by category",'category')?>
|
||||
<?php while($_R=db_fetch_array($_CATS)):?>
|
||||
<option value="<?php echo $_R['category']?>"<?php if($_R['category']==$category):?> selected="selected"<?php endif?>>ㆍ<?php echo $_R['category']?></option>
|
||||
<?php endwhile?>
|
||||
</select>
|
||||
</div><!-- /.form-inline -->
|
||||
</div><!-- /.d-flex -->
|
||||
|
||||
<div id="search-more-bbs" class="mt-2 collapse<?php if($_SESSION['sh_bbslist']):?> show<?php endif?>">
|
||||
<div class="form-inline">
|
||||
<div class="input-daterange input-group input-group-sm" id="datepicker">
|
||||
<input type="text" class="form-control form-control-sm" name="d_start" placeholder="시작일" value="<?php echo $d_start?>">
|
||||
<span class="p-2">~</span>
|
||||
<input type="text" class="form-control form-control-sm" name="d_finish" placeholder="종료일" value="<?php echo $d_finish?>">
|
||||
</div>
|
||||
<button class="btn btn-light ml-2" type="submit"><i class="fa fa-search"></i></button>
|
||||
</div><!-- /.form-inline -->
|
||||
</div>
|
||||
</div><!-- /.collapse -->
|
||||
</form>
|
||||
</div>
|
||||
|
||||
<form name="adm_list_form" class="mt-3" 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="module" value="comment">
|
||||
<input type="hidden" name="front" value="<?php echo $front?>">
|
||||
<input type="hidden" name="tab" value="<?php echo $tab?>">
|
||||
<input type="hidden" name="p" value="<?php echo $p?>">
|
||||
<input type="hidden" name="iframe" value="<?php echo $iframe?>">
|
||||
<input type="hidden" name="a" value="">
|
||||
<div class="table-responsive">
|
||||
<table class="table table-hover f13 text-center">
|
||||
<colgroup>
|
||||
<col width="50">
|
||||
<col width="50">
|
||||
<col width="100">
|
||||
<col>
|
||||
<col width="130">
|
||||
</colgroup>
|
||||
|
||||
<thead class="small text-muted">
|
||||
<tr>
|
||||
<th><input type="checkbox" class="checkAll-act-list" data-toggle="tooltip" title="전체선택"></th>
|
||||
<th>번호</th>
|
||||
<th>분류</th>
|
||||
<th>제목</th>
|
||||
<th>날짜</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<?php while($R=db_fetch_array($RCD)):?>
|
||||
<?php $R['mobile']=isMobileConnect($R['agent'])?>
|
||||
<tr>
|
||||
<td><input type="checkbox" name="members[]" onclick="checkboxCheck();" class="mbr-act-list" value="<?php echo $R['uid']?>"></td>
|
||||
<td><?php echo $NUM-((($p-1)*$recnum)+$_rec++)?></td>
|
||||
<td>
|
||||
<span class="badge badge-pill badge-dark"><?php echo $R['category']?></span>
|
||||
</td>
|
||||
<td class="text-left">
|
||||
<a href="<?php echo $R['url']?>" target="_blank"><?php echo $R['subject']?></a>
|
||||
<?php if(getNew($R['d_regis'],24)):?><small class="text-danger">New</small><?php endif?>
|
||||
</td>
|
||||
<td class="rb-update">
|
||||
<time class="timeago small text-muted" data-toggle="tooltip" datetime="<?php echo getDateFormat($R['d_regis'],'c')?>" data-tooltip="tooltip" title="<?php echo getDateFormat($R['d_regis'],'Y.m.d H:i')?>"></time>
|
||||
</td>
|
||||
</tr>
|
||||
<?php endwhile?>
|
||||
</tbody>
|
||||
</table>
|
||||
<?php if(!$NUM):?>
|
||||
<div class="text-muted text-center py-4">
|
||||
<i class="fa fa-exclamation-circle fa-2x mb-1 d-block" aria-hidden="true"></i>
|
||||
<small>데이타가 없습니다.</small>
|
||||
</div>
|
||||
<?php endif?>
|
||||
</div>
|
||||
|
||||
<ul class="pagination pagination-sm justify-content-center py-3">
|
||||
<script type="text/javascript">getPageLink(5,<?php echo $p?>,<?php echo $TPG?>,'');</script>
|
||||
</ul>
|
||||
|
||||
</form>
|
||||
132
modules/member/admin/manager/sms.php
Normal file
132
modules/member/admin/manager/sms.php
Normal file
@@ -0,0 +1,132 @@
|
||||
<?php
|
||||
|
||||
$sort = $sort ? $sort : 'uid';
|
||||
$orderby= $orderby ? $orderby : 'desc';
|
||||
$recnum = $recnum && $recnum < 200 ? $recnum : 5;
|
||||
|
||||
$sqlque = 'to_mbruid='.$_M['uid'];
|
||||
if ($account) $sqlque .= ' and site='.$account;
|
||||
if ($moduleid) $sqlque .= " and module='".$moduleid."'";
|
||||
|
||||
if ($d_start) $sqlque .= ' and d_regis > '.str_replace('/','',$d_start).'000000';
|
||||
if ($d_finish) $sqlque .= ' and d_regis < '.str_replace('/','',$d_finish).'240000';
|
||||
if ($where && $keyw)
|
||||
{
|
||||
$sqlque .= getSearchSql($where,$keyw,$ikeyword,'or');
|
||||
}
|
||||
$RCD = getDbArray($table['s_sms'],$sqlque,'*',$sort,$orderby,$recnum,$p);
|
||||
$NUM = getDbRows($table['s_sms'],$sqlque);
|
||||
$TPG = getTotalPage($NUM,$recnum);
|
||||
?>
|
||||
|
||||
<div class="manager-list pt-3 px-3">
|
||||
|
||||
<form name="searchForm" 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="module" value="<?php echo $module?>">
|
||||
<input type="hidden" name="front" value="<?php echo $front?>">
|
||||
<input type="hidden" name="tab" value="<?php echo $tab?>">
|
||||
<input type="hidden" name="uid" value="<?php echo $_M['uid']?>">
|
||||
<input type="hidden" name="p" value="<?php echo $p?>">
|
||||
<input type="hidden" name="iframe" value="<?php echo $iframe?>">
|
||||
|
||||
<div class="d-flex justify-content-between align-items-center">
|
||||
<div>
|
||||
<small><?php echo sprintf('총 %d건',$NUM)?></small>
|
||||
<span class="badge badge-pill badge-dark"><?php echo $p?>/<?php echo $TPG?> 페이지</span>
|
||||
<button type="button" class="btn btn-link btn-sm muted-link" data-toggle="collapse" data-target="#search-more-bbs" onclick="sessionSetting('sh_bbslist','1','','1');">
|
||||
고급검색
|
||||
</button>
|
||||
</div>
|
||||
<div class="form-inline">
|
||||
<select name="bid" class="form-control form-control-sm custom-select" onchange="this.form.submit();">
|
||||
<option value="">모듈</option>
|
||||
<?php $MODULES = getDbArray($table['s_module'],'','*','gid','asc',0,$p)?>
|
||||
<?php while($MD = db_fetch_array($MODULES)):?>
|
||||
<option value="<?php echo $MD['id']?>"<?php if($MD['id']==$moduleid):?> selected<?php endif?>><?php echo $MD['name']?> (<?php echo $MD['id']?>)</option>
|
||||
<?php endwhile?>
|
||||
</select>
|
||||
</div><!-- /.form-inline -->
|
||||
</div><!-- /.d-flex -->
|
||||
|
||||
<div id="search-more-bbs" class="mt-3 collapse<?php if($_SESSION['sh_bbslist']):?> show<?php endif?>">
|
||||
<div class="d-flex justify-content-between align-items-center">
|
||||
<div class="form-inline input-daterange" id="datepicker">
|
||||
<input type="text" class="form-control form-control-sm" name="d_start" placeholder="시작일" value="<?php echo $d_start?>">
|
||||
<span class="px-1">~</span>
|
||||
<input type="text" class="form-control form-control-sm" name="d_finish" placeholder="종료일" value="<?php echo $d_finish?>">
|
||||
<button class="btn btn-light btn-sm ml-1" type="submit"><i class="fa fa-search"></i></button>
|
||||
</div><!-- /.form-inline -->
|
||||
<div class="form-inline">
|
||||
<select name="where" class="form-control form-control-sm custom-select">
|
||||
<option value="content"<?php if($where=='content'):?> selected="selected"<?php endif?>>메시지</option>
|
||||
</select>
|
||||
<input type="text" name="keyw" class="form-control form-control-sm ml-1" placeholder="검색어를 입력해주세요." value="<?php echo $keyw?>">
|
||||
<button class="btn btn-light ml-1" type="submit"><i class="fa fa-search"></i>검색</button>
|
||||
<button class="btn btn-light ml-1" type="button" onclick="this.form.keyw.value='';this.form.submit();">리셋</button>
|
||||
</div><!-- /.form-inline -->
|
||||
</div><!-- /.d-flex -->
|
||||
</div><!-- /.collapse -->
|
||||
|
||||
</form>
|
||||
</div>
|
||||
|
||||
<form name="adm_list_form" class="mt-3" action="<?php echo $g['s']?>/" method="post">
|
||||
<input type="hidden" name="r" value="<?php echo $r?>">
|
||||
<input type="hidden" name="module" value="<?php echo $module?>">
|
||||
<input type="hidden" name="front" value="<?php echo $front?>">
|
||||
<input type="hidden" name="tab" value="<?php echo $tab?>">
|
||||
<input type="hidden" name="p" value="<?php echo $p?>">
|
||||
<input type="hidden" name="iframe" value="<?php echo $iframe?>">
|
||||
<input type="hidden" name="m" value=""> <!-- 액션파일이 있는 모듈명 -->
|
||||
<input type="hidden" name="a" value=""> <!-- 액션명 -->
|
||||
<div class="table-responsive">
|
||||
<table class="table table-hover f13 text-center">
|
||||
<colgroup>
|
||||
<col width="50">
|
||||
<col width="50">
|
||||
<col width="50">
|
||||
<col>
|
||||
<col width="150">
|
||||
</colgroup>
|
||||
<thead class="small text-muted">
|
||||
<tr>
|
||||
<th><input type="checkbox" class="checkAll-act-list" data-toggle="tooltip" title="전체선택"></th>
|
||||
<th>번호</th>
|
||||
<th>보낸사람</th>
|
||||
<th>내용</th>
|
||||
<th>알림일시</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<?php while($R=db_fetch_array($RCD)):?>
|
||||
<?php $SM1=$R['to_mbruid']?getDbData($table['s_mbrdata'],'memberuid='.$R['to_mbruid'],'name,nic'):array()?>
|
||||
<?php $SM2=$R['from_mbruid']?getDbData($table['s_mbrdata'],'memberuid='.$R['from_mbruid'],'name,nic'):array()?>
|
||||
<tr>
|
||||
<td><input type="checkbox" name="sms_members[]" onclick="checkboxCheck();" class="mbr-act-list" value="<?php echo $R['uid']?>"></td>
|
||||
<td><?php echo $NUM-((($p-1)*$recnum)+$_rec++)?></td>
|
||||
<td><span class="badge badge-pill badge-dark"><?php echo $SM2['name']?$SM2['name']:'시스템'?></span></td>
|
||||
<td class="text-left">
|
||||
<?php echo getStrCut($R['content'],'80','..')?>
|
||||
</td>
|
||||
<td class="rb-update">
|
||||
<time class="timeago small text-muted" data-toggle="tooltip" datetime="<?php echo getDateFormat($R['d_regis'],'c')?>" data-tooltip="tooltip" title="<?php echo getDateFormat($R['d_regis'],'Y.m.d H:i')?>"></time>
|
||||
</td>
|
||||
</tr>
|
||||
<?php endwhile?>
|
||||
</tbody>
|
||||
</table>
|
||||
<?php if(!$NUM):?>
|
||||
<div class="text-muted text-center py-4">
|
||||
<i class="fa fa-exclamation-circle fa-2x mb-1 d-block" aria-hidden="true"></i>
|
||||
<small>데이타가 없습니다.</small>
|
||||
</div>
|
||||
<?php endif?>
|
||||
</div>
|
||||
|
||||
<ul class="pagination pagination-sm justify-content-center py-3">
|
||||
<script type="text/javascript">getPageLink(5,<?php echo $p?>,<?php echo $TPG?>,'');</script>
|
||||
</ul>
|
||||
|
||||
</form>
|
||||
7
modules/member/admin/modal.mbrinfo.css
Normal file
7
modules/member/admin/modal.mbrinfo.css
Normal file
@@ -0,0 +1,7 @@
|
||||
.nav-tabs .nav-link {
|
||||
padding: .8rem 1rem;
|
||||
}
|
||||
.nav-tabs .nav-link.active {
|
||||
border-top: 2px solid red;
|
||||
}
|
||||
.datepicker {z-index: 1151 !important;}
|
||||
259
modules/member/admin/modal.mbrinfo.php
Normal file
259
modules/member/admin/modal.mbrinfo.php
Normal file
@@ -0,0 +1,259 @@
|
||||
<?php
|
||||
$tab = $tab ? $tab : 'profile';
|
||||
$_R1=getUidData($table['s_mbrid'],$uid);
|
||||
$_R2=getDbData($table['s_mbrdata'],'memberuid='.$_R1['uid'],'*');
|
||||
$_M=array_merge($_R1,$_R2);
|
||||
if (!$_M['uid']) exit;
|
||||
// 삭제파일명 지정
|
||||
if($tab=='post'||$tab=='notice') $del_file='multi_delete';
|
||||
else $del_file=$tab.'_multi_delete';
|
||||
?>
|
||||
|
||||
<ul class="nav nav-tabs f14" role="tablist">
|
||||
<li class="nav-item">
|
||||
<a class="nav-link<?php if($tab=='profile'):?> active<?php endif?>" href="<?php echo $g['adm_href']?>&iframe=Y&tab=profile&uid=<?php echo $_M['uid']?>">프로필</a>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<a class="nav-link<?php if($tab=='info'):?> active<?php endif?>" href="<?php echo $g['adm_href']?>&iframe=Y&tab=info&uid=<?php echo $_M['uid']?>">정보수정</a>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<a class="nav-link<?php if($tab=='post'):?> active<?php endif?>" href="<?php echo $g['adm_href']?>&iframe=Y&tab=post&uid=<?php echo $_M['uid']?>">게시글</a>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<a class="nav-link<?php if($tab=='comment'):?> active<?php endif?>" href="<?php echo $g['adm_href']?>&iframe=Y&tab=comment&uid=<?php echo $_M['uid']?>">댓글</a>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<a class="nav-link<?php if($tab=='oneline'):?> active<?php endif?>" href="<?php echo $g['adm_href']?>&iframe=Y&tab=oneline&uid=<?php echo $_M['uid']?>">한줄의견</a>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<a class="nav-link<?php if($tab=='saved'):?> active<?php endif?>" href="<?php echo $g['adm_href']?>&iframe=Y&tab=saved&uid=<?php echo $_M['uid']?>">저장함</a>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<a class="nav-link<?php if($tab=='sms'):?> active<?php endif?>" href="<?php echo $g['adm_href']?>&iframe=Y&tab=sms&uid=<?php echo $_M['uid']?>">문자</a>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<a class="nav-link<?php if($tab=='paper'):?> active<?php endif?>" href="<?php echo $g['adm_href']?>&iframe=Y&tab=paper&uid=<?php echo $_M['uid']?>">쪽지</a>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<a class="nav-link<?php if($tab=='notice'):?> active<?php endif?>" href="<?php echo $g['adm_href']?>&iframe=Y&tab=notice&uid=<?php echo $_M['uid']?>">알림</a>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<a class="nav-link<?php if($tab=='point'):?> active<?php endif?>" href="<?php echo $g['adm_href']?>&iframe=Y&tab=point&uid=<?php echo $_M['uid']?>">포인트</a>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<a class="nav-link<?php if($tab=='log'):?> active<?php endif?>" href="<?php echo $g['adm_href']?>&iframe=Y&tab=log&uid=<?php echo $_M['uid']?>">접속기록</a>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<a class="nav-link<?php if($tab=='pwa'):?> active<?php endif?>" href="<?php echo $g['adm_href']?>&iframe=Y&tab=pwa&uid=<?php echo $_M['uid']?>">웹앱</a>
|
||||
</li>
|
||||
</ul>
|
||||
<!-- tab 내용 -->
|
||||
<div class="tab-content">
|
||||
<div class="tab-pane active">
|
||||
<?php include $g['path_module'].$module.'/admin/manager/'.$tab.'.php';?>
|
||||
</div>
|
||||
</div>
|
||||
<!--@부모레이어를 제어할 수 있도록 모달의 헤더와 풋터를 부모레이어에 출력시킴-->
|
||||
<div id="_modal_header" class="hidden">
|
||||
<h5 class="modal-title">
|
||||
<small class="badge badge-pill badge-<?php echo $_M['now_log']?'success':'secondary'?> d-inline-block align-top mr-2" data-tooltip="tooltip" title="<?php echo $_M['now_log']?'온라인':'오프라인'?>">
|
||||
<?php echo $_M['admin']?($_M['adm_view']?($_M['super']?'부관리자':'사이트관리자'):'최고관리자'):'일반회원'?>
|
||||
</small>
|
||||
<?php echo sprintf('<strong>%s</strong> 님의 정보',$_M['name'])?>
|
||||
<?php if ($_M['only_sns']): ?><small class="badge badge-pill badge-dark">소셜전용</small><?php endif; ?>
|
||||
</h5>
|
||||
<button type="button" class="close" data-dismiss="modal"><span aria-hidden="true">×</span><span class="sr-only">Close</span></button>
|
||||
</div>
|
||||
<div id="_modal_footer" class="hidden">
|
||||
<button id="_close_btn_" type="button" class="btn btn-light" data-dismiss="modal">닫기</button>
|
||||
<?php if($tab=='info'):?>
|
||||
<button type="submit" class="btn btn-primary pull-left" onclick="frames._modal_iframe_modal_window.saveCheck();">정보 수정하기</button>
|
||||
<?php elseif($tab!='log' && $tab!='profile'):?>
|
||||
<button type="button" class="btn btn-danger btn-sm pull-left act-btn" onclick="frames._modal_iframe_modal_window.actCheck('<?php echo $del_file?>','<?php echo $tab?>');">삭제</button>
|
||||
<?php endif?>
|
||||
</div>
|
||||
|
||||
<!-- bootstrap-datepicker, http://eternicode.github.io/bootstrap-datepicker/ -->
|
||||
<?php getImport('bootstrap-datepicker','css/datepicker3',false,'css')?>
|
||||
<?php getImport('bootstrap-datepicker','js/bootstrap-datepicker',false,'js')?>
|
||||
<?php getImport('bootstrap-datepicker','js/locales/bootstrap-datepicker.kr',false,'js')?>
|
||||
|
||||
<!-- timeago -->
|
||||
<?php getImport('jquery-timeago','jquery.timeago',false,'js')?>
|
||||
<?php getImport('jquery-timeago','locales/jquery.timeago.ko',false,'js')?>
|
||||
|
||||
<script>
|
||||
|
||||
$(document).ready(function() {
|
||||
putCookieAlert('result_member_main') // 실행결과 알림 메시지 출력
|
||||
|
||||
$('[data-toggle=tooltip]').tooltip();
|
||||
|
||||
$('.input-daterange').datepicker({
|
||||
format: "yyyy/mm/dd",
|
||||
todayBtn: "linked",
|
||||
language: "kr",
|
||||
calendarWeeks: true,
|
||||
todayHighlight: true,
|
||||
autoclose: true
|
||||
});
|
||||
|
||||
// 선택박스 체크 이벤트 핸들러
|
||||
$(".checkAll-act-list").click(function(){
|
||||
$(".mbr-act-list").prop("checked",$(".checkAll-act-list").prop("checked"));
|
||||
checkboxCheck();
|
||||
});
|
||||
|
||||
$(".rb-update time").timeago();
|
||||
|
||||
$("#checkAll-perm").click(function(){
|
||||
$(".rb-module-perm").prop("checked",$("#checkAll-perm").prop("checked"))
|
||||
})
|
||||
|
||||
});
|
||||
|
||||
// tab 으로 리스트 체크박스명과 모듈명 추출함수
|
||||
function getTabData(tab,val) {
|
||||
var m; // 모듈
|
||||
var ck; // 체크박스
|
||||
if(tab=='post' || tab=='comment' || tab=='oneline' ){
|
||||
m='bbs'; // 최종적으로 모듈명을 넘겨준다.
|
||||
ck = document.getElementsByName(tab+'_members[]');
|
||||
}else if(tab=='saved'|| tab=='paper'|| tab=='point'){
|
||||
m='member';
|
||||
ck= document.getElementsByName('members[]');
|
||||
}else if(tab=='notice'){
|
||||
m='notification';
|
||||
ck = document.getElementsByName('noti_members[]');
|
||||
}
|
||||
var result={"m":m,"ck":ck,};
|
||||
|
||||
return result[val];
|
||||
}
|
||||
|
||||
// 선택박스 체크시 액션버튼 활성화 함수
|
||||
function checkboxCheck() {
|
||||
var tab=$('input[name="tab"]').val();
|
||||
var f = document.adm_list_form;
|
||||
var l =getTabData(tab,'ck'); // 체크박스명 얻기
|
||||
var n = l.length;
|
||||
var i;
|
||||
var j=0;
|
||||
|
||||
for (i = 0; i < n; i++)
|
||||
{
|
||||
if (l[i].checked == true){
|
||||
$(l[i]).parent().parent().addClass('table-active'); // 선택된 체크박스 tr 강조표시
|
||||
j++;
|
||||
}else{
|
||||
$(l[i]).parent().parent().removeClass('talbe-active');
|
||||
}
|
||||
}
|
||||
// 하단 회원관리 액션 버튼 상태 변경
|
||||
if (j) $('.act-btn').prop("disabled",false);
|
||||
else $('.act-btn').prop("disabled",true);
|
||||
}
|
||||
|
||||
function actCheck(act,tab) {
|
||||
var l; // tab 에 따라서 list 엘리먼트 name 이 바뀐다.
|
||||
var f = document.adm_list_form; // 모든 리스트의 공통 form
|
||||
var l = getTabData(tab,'ck');
|
||||
var n = l.length;
|
||||
var j = 0;
|
||||
var i;
|
||||
var msg;
|
||||
|
||||
// 최종적으로 모듈명을 넘겨준다.
|
||||
f.m.value=getTabData(tab,'m');
|
||||
|
||||
for (i = 0; i < n; i++)
|
||||
{
|
||||
if(l[i].checked == true)
|
||||
{
|
||||
j++;
|
||||
}
|
||||
}
|
||||
if (!j)
|
||||
{
|
||||
alert('선택된 리스트가 없습니다. ');
|
||||
return false;
|
||||
}
|
||||
msg='정말로 삭제하시겠습니가? ';
|
||||
if(confirm(msg))
|
||||
{
|
||||
f.a.value = act;
|
||||
getIframeForAction(f);
|
||||
f.submit();
|
||||
}
|
||||
}
|
||||
|
||||
var submitFlag = false;
|
||||
function sendCheck(id,t) {
|
||||
var f = document.actionform;
|
||||
var f1 = document.addForm;
|
||||
|
||||
if (submitFlag == true)
|
||||
{
|
||||
alert('응답을 기다리는 중입니다. 잠시 기다려 주세요.');
|
||||
return false;
|
||||
}
|
||||
if (eval("f1."+t).value == '')
|
||||
{
|
||||
eval("f1."+t).focus();
|
||||
return false;
|
||||
}
|
||||
f.type.value = t;
|
||||
f.fvalue.value = eval("f1."+t).value;
|
||||
getId(id).innerHTML = '<i class="fa fa-spinner fa-spin"></i>';
|
||||
getIframeForAction(f);
|
||||
f.submit();
|
||||
submitFlag = true;
|
||||
}
|
||||
function saveCheck() {
|
||||
var f = document.addForm;
|
||||
if (f.pw1.value != f.pw2.value)
|
||||
{
|
||||
alert('비밀번호가 서로 일치하지 않습니다. ');
|
||||
return false;
|
||||
}
|
||||
if (f.name.value == '')
|
||||
{
|
||||
alert('이름을 입력해 주세요. ');
|
||||
f.name.focus();
|
||||
return false;
|
||||
}
|
||||
if (f.nic.value == '')
|
||||
{
|
||||
alert('닉네임을 입력해 주세요. ');
|
||||
f.nic.focus();
|
||||
return false;
|
||||
}
|
||||
|
||||
getIframeForAction(f);
|
||||
f.submit();
|
||||
}
|
||||
function saveCheck1() {
|
||||
var f = document.permForm;
|
||||
if (confirm('정말로 수정하시겠습니까? '))
|
||||
{
|
||||
getIframeForAction(f);
|
||||
f.submit();
|
||||
}
|
||||
return false;
|
||||
}
|
||||
function modalSetting() {
|
||||
var ht = document.body.scrollHeight - 1;
|
||||
var _modal_header = $('#_modal_header').html()
|
||||
var _modal_footer = $('#_modal_footer').html()
|
||||
parent.$('#modal_window_dialog_modal_window').css('width','100%').css('max-width','900px')
|
||||
parent.$('#_modal_iframe_modal_window').css('height',ht+'px')
|
||||
parent.$('#_modal_body_modal_window').css('height',ht+'px').css('padding','0')
|
||||
parent.$('#_modal_header_modal_window').html(_modal_header).addClass('modal-header')
|
||||
parent.$('#_modal_footer_modal_window').html(_modal_footer).addClass('modal-footer justify-content-between')
|
||||
}
|
||||
|
||||
document.body.onresize = document.body.onload = function() {
|
||||
setTimeout("modalSetting();",100);
|
||||
setTimeout("modalSetting();",200);
|
||||
}
|
||||
</script>
|
||||
16
modules/member/admin/msgdoc.css
Normal file
16
modules/member/admin/msgdoc.css
Normal file
@@ -0,0 +1,16 @@
|
||||
#accordion > .card .list-group {
|
||||
height: calc(100vh - 8.53rem);
|
||||
overflow: auto;
|
||||
}
|
||||
|
||||
#email-preview {
|
||||
background-color: #fff;
|
||||
color: #000
|
||||
}
|
||||
|
||||
.editor .card.phone {
|
||||
width: 35%;
|
||||
border-width: 5px;
|
||||
border-color: rgb(52, 59, 67);
|
||||
border-radius: 15px;
|
||||
}
|
||||
313
modules/member/admin/msgdoc.php
Normal file
313
modules/member/admin/msgdoc.php
Normal file
@@ -0,0 +1,313 @@
|
||||
<?php
|
||||
function getMDname($id)
|
||||
{
|
||||
global $typeset;
|
||||
if ($typeset[$id]) return $typeset[$id];
|
||||
else return $id;
|
||||
}
|
||||
$typeset = array
|
||||
(
|
||||
'_join.complete'=>'회원가입 완료',
|
||||
'_join.auth'=>'회원가입시 본인인증',
|
||||
'_pw.auth'=>'비밀번호 재설정 본인인증',
|
||||
'_settings.auth.email'=>'이메일 추가시 본인인증',
|
||||
'_settings.auth.phone'=>'휴대폰 추가시 본인인증',
|
||||
);
|
||||
$doc = $doc ? $doc : 'email';
|
||||
$type = $type ? $type : '_join.complete';
|
||||
?>
|
||||
|
||||
<?php getImport('codemirror','lib/codemirror',false,'css')?>
|
||||
<?php getImport('codemirror','lib/codemirror',false,'js')?>
|
||||
<?php getImport('codemirror','theme/'.$d['admin']['codeeidt'],false,'css')?>
|
||||
<?php getImport('codemirror','mode/htmlmixed/htmlmixed',false,'js')?>
|
||||
<?php getImport('codemirror','mode/xml/xml',false,'js')?>
|
||||
<?php getImport('codemirror','mode/javascript/javascript',false,'js')?>
|
||||
<?php getImport('codemirror','mode/css/css',false,'js')?>
|
||||
<?php getImport('codemirror','mode/htmlmixed/htmlmixed',false,'js')?>
|
||||
<?php getImport('codemirror','mode/clike/clike',false,'js')?>
|
||||
<?php getImport('codemirror','mode/php/php',false,'js')?>
|
||||
|
||||
<div class="row no-gutters">
|
||||
<div class="col-sm-4 col-md-3 col-xl-3 d-none d-sm-block sidebar" id="tab-content-list">
|
||||
|
||||
<div id="accordion">
|
||||
<div class="card border-0">
|
||||
<div class="card-header p-0">
|
||||
<a class="d-block accordion-toggle muted-link<?php if($_SESSION['member_msgdoc_collapse']):?> collapsed<?php endif?>"
|
||||
data-toggle="collapse"
|
||||
onclick="sessionSetting('member_msgdoc_collapse','','','');"
|
||||
href="#emaildoc" aria-expanded="true">
|
||||
<i class="fa fa-envelope-o fa-fw"></i>
|
||||
이메일 본문 양식
|
||||
</a>
|
||||
</div>
|
||||
<div class="collapse<?php if(!$_SESSION['member_msgdoc_collapse']):?> show<?php endif?>" id="emaildoc" data-parent="#accordion">
|
||||
<div class="list-group list-group-flush">
|
||||
<?php $tdir = $g['path_module'].$module.'/doc/email/'?>
|
||||
<?php $dirs = opendir($tdir)?>
|
||||
<?php while(false !== ($skin = readdir($dirs))):?>
|
||||
<?php if($skin=='.' || $skin == '..')continue?>
|
||||
<?php $_type = str_replace('.txt','',$skin)?>
|
||||
<a href="<?php echo $g['adm_href']?>&doc=email&type=<?php echo $_type?>" class="list-group-item d-flex justify-content-between align-items-center list-group-item-action <?php if($doc=='email' && $_type==$type):?>active<?php endif?> doc-style">
|
||||
<?php echo getMDname($_type)?>
|
||||
<span class="badge badge-dark"><?php echo $_type?></span>
|
||||
</a>
|
||||
<?php endwhile?>
|
||||
<?php closedir($dirs)?>
|
||||
</div>
|
||||
</div><!-- /.collapse -->
|
||||
</div><!-- /.card -->
|
||||
|
||||
<div class="card border-0">
|
||||
<div class="card-header p-0">
|
||||
<a class="d-block accordion-toggle muted-link<?php if($_SESSION['member_msgdoc_collapse']!='smsdoc'):?> collapsed<?php endif?>"
|
||||
data-toggle="collapse"
|
||||
onclick="sessionSetting('member_msgdoc_collapse','smsdoc','','');"
|
||||
href="#smsdoc" aria-expanded="true">
|
||||
<i class="fa fa-mobile fa-lg fa-fw"></i>
|
||||
휴대폰 문자 양식
|
||||
</a>
|
||||
</div>
|
||||
<div class="collapse<?php if($_SESSION['member_msgdoc_collapse']=='smsdoc'):?> show<?php endif?>" id="smsdoc" data-parent="#accordion">
|
||||
<div class="list-group list-group-flush">
|
||||
<?php $tdir = $g['path_module'].$module.'/doc/sms/'?>
|
||||
<?php $dirs = opendir($tdir)?>
|
||||
<?php while(false !== ($skin = readdir($dirs))):?>
|
||||
<?php if($skin=='.' || $skin == '..')continue?>
|
||||
<?php $_type = str_replace('.txt','',$skin)?>
|
||||
<a href="<?php echo $g['adm_href']?>&doc=sms&type=<?php echo $_type?>" class="list-group-item d-flex justify-content-between align-items-center list-group-item-action <?php if($doc=='sms' && $_type==$type):?>active<?php endif?> doc-style">
|
||||
<?php echo getMDname($_type)?>
|
||||
<span class="badge badge-dark"><?php echo $_type?></span>
|
||||
</a>
|
||||
<?php endwhile?>
|
||||
<?php closedir($dirs)?>
|
||||
</div>
|
||||
</div><!-- /.collapse -->
|
||||
</div><!-- /.card -->
|
||||
|
||||
</div><!-- /#accordion -->
|
||||
|
||||
</div>
|
||||
<div class="col-sm-8 col-md-9 ml-sm-auto col-xl-9" id="tab-content-view">
|
||||
|
||||
<form class="card" name="procForm" action="<?php echo $g['s']?>/" method="post" target="_action_frame_<?php echo $m?>" onsubmit="return saveCheck(this);">
|
||||
<input type="hidden" name="r" value="<?php echo $r?>">
|
||||
<input type="hidden" name="m" value="<?php echo $module?>">
|
||||
<input type="hidden" name="a" value="msgdoc_regis">
|
||||
<input type="hidden" name="doc" value="<?php echo $doc?>">
|
||||
<input type="hidden" name="type" value="<?php echo $type?>">
|
||||
|
||||
<div class="card-header page-body-header">
|
||||
<?php if ($doc=='email'): ?><i class="fa fa-envelope-o fa-fw"></i><?php else: ?><i class="fa fa-mobile fa-lg fa-fw"></i><?php endif; ?>
|
||||
<span><?php echo getMDname($type)?> <span class="badge badge-primary badge-pill">양식수정</span></span>
|
||||
</div>
|
||||
<div class="card-body">
|
||||
<div class="small text-muted">
|
||||
<ul class="pl-3">
|
||||
<li>내용에는 다음과 같은 치환문자를 사용할 수 있습니다.</li>
|
||||
<li>사이트명: <code>{SITE}</code> / 회원이름 : <code>{NAME}</code> / 닉네임 <code>{NICK}</code> / 아이디 <code>{ID}</code> / 이메일 <code>{EMAIL}</code> / 휴대폰 <code>{PHONE}</code>/ 가입일시 <code>{DATE}</code></li>
|
||||
</ul>
|
||||
</div>
|
||||
<!-- 에디터 -->
|
||||
<div class="editor">
|
||||
<?php if ($doc=='email'): ?>
|
||||
|
||||
<div class="card">
|
||||
<div class="card-header pt-0" style="padding-left: 10px">
|
||||
<ul class="nav nav-tabs card-header-tabs" role="tablist">
|
||||
<li class="nav-item">
|
||||
<a class="nav-link active py-3" id="email-code-tab" data-toggle="tab" href="#email-code" role="tab" aria-controls="home" aria-selected="true">
|
||||
<i class="fa fa-code fa-fw" aria-hidden="true"></i>
|
||||
소스코드
|
||||
</a>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<a class="nav-link py-3" id="email-preview-tab" data-toggle="tab" href="#email-preview" role="tab" aria-controls="profile" aria-selected="false">
|
||||
<i class="fa fa-eye fa-fw" aria-hidden="true"></i>
|
||||
미리보기
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="card-body tab-content p-0">
|
||||
<div class="tab-pane fade show active" id="email-code" role="tabpanel">
|
||||
<textarea name ="content" id="email-code-textarea" class="d-none form-control f13" rows="21"><?php echo htmlspecialchars(implode('',file($g['path_module'].$module.'/doc/'.$doc.'/'.$type.'.txt')))?></textarea>
|
||||
</div>
|
||||
<div class="tab-pane fade" id="email-preview" role="tabpanel">
|
||||
<?php
|
||||
$email_header = implode('',file($g['path_module'].'/admin/var/email.header.txt')); //이메일 헤더 양식
|
||||
$email_footer = implode('',file($g['path_module'].'/admin/var/email.footer.txt')); // //이메일 풋터 양식
|
||||
$_email_header = str_replace('{SITE}',$_HS['name'],$email_header); //사이트명
|
||||
$_email_footer = str_replace('{SITE}',$_HS['name'],$email_footer); //사이트명
|
||||
?>
|
||||
<?php echo $_email_header ?>
|
||||
<div id="email-preview-content"></div>
|
||||
<?php echo $_email_footer ?>
|
||||
</div>
|
||||
</div>
|
||||
<div class="card-footer small text-muted">
|
||||
이메일 헤더/풋터 양식은 <a href="<?php echo $g['s']?>/?r=<?php echo $r ?>&m=admin&module=admin#emailTemplate">시스템 환경설정</a>에서 지정할수 있습니다.
|
||||
</div>
|
||||
</div><!-- /.card -->
|
||||
|
||||
<script>
|
||||
var editor_html = CodeMirror.fromTextArea(getId('email-code-textarea'), {
|
||||
mode: "application/x-httpd-php",
|
||||
indentUnit: 2,
|
||||
lineNumbers: true,
|
||||
matchBrackets: false,
|
||||
indentWithTabs: true
|
||||
});
|
||||
</script>
|
||||
|
||||
<?php else: ?>
|
||||
|
||||
<div class="card phone my-5" style="width: 35%">
|
||||
<div class="card-header d-flex justify-content-between align-items-center">
|
||||
<i class="fa fa-signal" aria-hidden="true"></i>
|
||||
SMS
|
||||
<i class="fa fa-battery-half" aria-hidden="true"></i>
|
||||
</div>
|
||||
<div class="card-body p-0">
|
||||
<textarea name ="content" class="form-control f13 py-3" rows="3" onKeyUp="checkByte(this.form);"><?php echo htmlspecialchars(implode('',file($g['path_module'].$module.'/doc/'.$doc.'/'.$type.'.txt')))?></textarea>
|
||||
</div>
|
||||
<div class="card-footer">
|
||||
<small class="text-muted"><code id="HNSpnByte"></code> 80 바이트 이하로 입력하세요.</small>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="card">
|
||||
<div class="card-body p-3 small text-muted">
|
||||
<i class="fa fa-exclamation-triangle fa-fw" aria-hidden="true"></i> 휴대폰 문자메시지(SMS) 발송을 위해서는 <a href="<?php echo $g['s']?>/?r=<?php echo $r ?>&m=admin&module=admin">발송설정</a> 및 <a href="https://kimsq.com/blog/post/25" target="_blank">충전</a>이 필요합니다.
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<?php endif; ?>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
<!-- /에티터 -->
|
||||
</div><!-- /.card-body -->
|
||||
|
||||
<div class="card-footer">
|
||||
<div class="form-row">
|
||||
<div class="col">
|
||||
<button type="submit" class="btn btn-outline-primary btn-block">수정</button>
|
||||
</div>
|
||||
<?php if(!$typeset[$type]):?>
|
||||
<div class="col">
|
||||
<button class="btn btn-outline-danger btn-block" onclick="delCheck('<?php echo $doc?>','<?php echo $type?>');" type="button">삭제</button>
|
||||
</div>
|
||||
<?php endif?>
|
||||
</div>
|
||||
<hr>
|
||||
|
||||
<div class="card">
|
||||
<div class="card-header">
|
||||
새로 만들기
|
||||
</div>
|
||||
<div class="card-body">
|
||||
<div class="input-group mb-2">
|
||||
<div class="input-group-prepend">
|
||||
<span class="input-group-text"><?php echo $doc=='email'?'이메일':'SMS' ?> 양식</span>
|
||||
</div>
|
||||
<input type="text" name="newdoc" value="" size="15" class="form-control" placeholder="신규양식 이름..">
|
||||
<div class="input-group-append">
|
||||
<button class="btn btn-outline-secondary" type="submit">신규 등록</button>
|
||||
</div>
|
||||
</div>
|
||||
<small class="text-muted">
|
||||
이 양식으로 새로운 양식을 생성할 수 있습니다.
|
||||
새로운 양식명 (영문소문자+숫자+_ 조합)을 입력하신 후 [신규등록] 버튼을 눌러주세요.
|
||||
</small>
|
||||
</div>
|
||||
</div><!-- /.card -->
|
||||
|
||||
<?php if ($doc=='email'): ?>
|
||||
<div class="card">
|
||||
<div class="card-header">
|
||||
이메일 헤더/풋터
|
||||
</div>
|
||||
<div class="card-body">
|
||||
<small class="text-muted">
|
||||
메일 헤더,풋터가 적용된 공통 메일 양식을 관리하려면 <a href="<?php echo $g['s']?>/?r=<?php echo $r ?>&m=admin&module=admin&front=main">시스템 모듈 > 환경설정 > 이메일 양식</a> 를 참고해 주세요.
|
||||
</small>
|
||||
</div>
|
||||
</div><!-- /.card -->
|
||||
<?php endif; ?>
|
||||
|
||||
|
||||
|
||||
</div><!-- /.card-footer -->
|
||||
|
||||
</form><!-- /.card -->
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<script type="text/javascript">
|
||||
|
||||
function showHTML() {
|
||||
$('#email-preview-content').html($('#email-code-textarea').val());
|
||||
}
|
||||
|
||||
function checkByte(frm) {
|
||||
var totalByte = 0;
|
||||
var message = frm.content.value;
|
||||
for(var i =0; i < message.length; i++) {
|
||||
var currentByte = message.charCodeAt(i);
|
||||
if(currentByte > 128) totalByte += 2;
|
||||
else totalByte++;
|
||||
}
|
||||
document.getElementById("HNSpnByte").innerText = totalByte + " 바이트 /";
|
||||
}
|
||||
|
||||
function ToolCheck(compo) {
|
||||
frames.editFrame.showCompo();
|
||||
frames.editFrame.EditBox(compo);
|
||||
}
|
||||
|
||||
function delCheck(d,t) {
|
||||
if (confirm('정말로 삭제하시겠습니까? '))
|
||||
{
|
||||
frames._action_frame_<?php echo $m?>.location.href = '<?php echo $g['s']?>/?r=<?php echo $r?>&m=<?php echo $module?>&a=msgdoc_delete&doc='+ d +'&type=' + t;
|
||||
}
|
||||
}
|
||||
|
||||
function saveCheck(f) {
|
||||
|
||||
if (f.content.value == '')
|
||||
{
|
||||
$('.note-editable').focus();
|
||||
alert('내용을 입력해 주세요. ');
|
||||
return false;
|
||||
}
|
||||
if (f.newdoc.value != '')
|
||||
{
|
||||
if (!chkIdValue(f.newdoc.value))
|
||||
{
|
||||
alert('양식명은 영문소문자/숫자/_ 만 사용가능합니다. ');
|
||||
f.newdoc.value = '';
|
||||
f.newdoc.focus();
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
$(document).ready(function() {
|
||||
|
||||
putCookieAlert('msgdoc_result') // 실행결과 알림 메시지 출력
|
||||
|
||||
$('[data-toggle=tooltip]').tooltip();
|
||||
|
||||
$('#email-preview-tab').on('shown.bs.tab', function (e) {
|
||||
showHTML()
|
||||
})
|
||||
|
||||
});
|
||||
|
||||
</script>
|
||||
84
modules/member/admin/mygroup.css
Normal file
84
modules/member/admin/mygroup.css
Normal file
@@ -0,0 +1,84 @@
|
||||
#group-list {
|
||||
padding-left: 0px;
|
||||
list-style: none;
|
||||
}
|
||||
#group-list .group-box {
|
||||
position: relative;
|
||||
float: left;
|
||||
margin-bottom: 15px;
|
||||
margin-left: 5px;
|
||||
cursor: move;
|
||||
background-color: transparent;
|
||||
border: 1px dashed #777;
|
||||
}
|
||||
|
||||
.card .card-body .group-box .badge {
|
||||
position: absolute;
|
||||
top: 21px;
|
||||
left: 24px;
|
||||
background-color: #F9F2F4;
|
||||
color: #D55E4E;
|
||||
border-radius: 7px
|
||||
}
|
||||
.card .card-body .group-box .delbtn {
|
||||
position: absolute;
|
||||
top: 24px;
|
||||
right: 28px;
|
||||
background-color: transparent;
|
||||
font-size: 11px
|
||||
}
|
||||
.card .card-body .group-box .name .form-control {
|
||||
width: 85px;
|
||||
font-size: 11px;
|
||||
margin-left: 0;
|
||||
margin-top: 20px;
|
||||
border-radius: 4px
|
||||
}
|
||||
.card .card-body .group-box .delbtn a {
|
||||
color: #999
|
||||
}
|
||||
.card .card-body .group-box .delbtn a:hover {
|
||||
color: #fff
|
||||
}
|
||||
.card .card-body .group-box .fa-square {
|
||||
font-size: 100px;
|
||||
}
|
||||
.card .card-body .group-box .fa-users {
|
||||
position: absolute;
|
||||
top: 12px;
|
||||
left: 3px;
|
||||
color: #fff
|
||||
}
|
||||
|
||||
.level {
|
||||
padding: 0 !important;
|
||||
font-family: 'Open Sans', sans-serif;
|
||||
}
|
||||
.level table {
|
||||
border-top: 0
|
||||
}
|
||||
.level .table > thead > tr > th {
|
||||
vertical-align: middle;
|
||||
font-weight: normal;
|
||||
border-bottom: 0;
|
||||
font-size: 13px;
|
||||
color: #777
|
||||
}
|
||||
.level table th ,
|
||||
.level table td {
|
||||
text-align: center
|
||||
}
|
||||
.level table td .form-control {
|
||||
font-size: 12px
|
||||
}
|
||||
.level .table > tbody > tr > td > .label {
|
||||
font-size: 120%;
|
||||
margin-top: 4px;
|
||||
display: inline-block;
|
||||
background-color: #444
|
||||
}
|
||||
.level .table > tbody > tr > td > .form-control-static {
|
||||
padding-top: 7px;
|
||||
}
|
||||
.kiere-ul {padding-left:10px;line-height: 160%;margin-bottom: 0}
|
||||
.tooltip { z-index: 20000;position: absolute;display:inline-block;min-width: 40px }
|
||||
299
modules/member/admin/mygroup.php
Normal file
299
modules/member/admin/mygroup.php
Normal file
@@ -0,0 +1,299 @@
|
||||
<div class="container-fluid">
|
||||
<div class="row mt-4">
|
||||
<div class="col-md-6">
|
||||
<div class="panel-group" id="accordion">
|
||||
<div class="card">
|
||||
<form name="sosokForm" action="<?php echo $g['s']?>/" method="post" target="_action_frame_<?php echo $m?>" onsubmit="return regisCheck(this);">
|
||||
<input type="hidden" name="r" value="<?php echo $r?>">
|
||||
<input type="hidden" name="m" value="<?php echo $module?>">
|
||||
<input type="hidden" name="a" value="sosok_regis">
|
||||
<div class="card-header">
|
||||
<i class="fa fa-arrows-h fa-lg fa-fw"></i> 회원그룹 <span class="badge badge-light">Group</span>
|
||||
</div>
|
||||
<div class="panel-collapse collapse show" id="collapseOne">
|
||||
<div class="py-2">
|
||||
<ul class="mb-0 small text-muted">
|
||||
<li>회원관리에 필요한 그룹을 신규등록 및 그룹명을 변경할 수 있습니다.</li>
|
||||
<li>순서를 변경하실 경우 드래그해서 위치를 변경하신 후 저장하시면 됩니다.</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="card-body pl-2">
|
||||
<ul id="group-list" class="clearfix mb-0">
|
||||
<?php $i=1?>
|
||||
<?php $RCD=getDbArray($table['s_mbrgroup'],'','*','gid','asc',0,1)?>
|
||||
<?php while($R=db_fetch_array($RCD)): $i++?>
|
||||
<li class="group-box p-3">
|
||||
<input type="checkbox" name="sosokmembers[]" value="<?php echo $R['uid']?>" checked="checked" class="d-none">
|
||||
<span class="fa-stack fa-3x">
|
||||
<i class="fa fa-square fa-stack-2x"></i>
|
||||
<i class="fa fa-users fa-stack-1x text-gray"></i>
|
||||
</span>
|
||||
<strong class="badge badge-danger"><?php echo $R['num']?number_format($R['num']):''?></strong>
|
||||
<div class="delbtn">
|
||||
<a href="#" id="<?php echo $R['uid'].'-'.$R['num']?>" class="del-a" title="삭제"><small><i class="fa fa-times"></i></small></a></div>
|
||||
<div class="name"><input type="text" name="name_<?php echo $R['uid']?>" value="<?php echo $R['name']?>" class="form-control text-center"></div>
|
||||
</li>
|
||||
<?php endwhile?>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="card-footer p-2">
|
||||
<div class="btn-group w-100">
|
||||
<button type="submit" class="btn btn-light w-50">그룹명/순서 변경</button>
|
||||
<a href="#" class="btn btn-light w-50" id="btn-new-group" data-toggle="modal" data-target="#modal-group-add"><i class="fa fa-plus"></i> 새 그룹 추가</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- Modal-그룹 추가 -->
|
||||
<div aria-hidden="true" aria-labelledby="myModalLabel" class="modal fade" id="modal-group-add" role="dialog" tabindex="-1">
|
||||
<div class="modal-dialog">
|
||||
<div class="modal-content kimsq">
|
||||
<form>
|
||||
<div class="modal-header">
|
||||
<button aria-hidden="true" class="close" data-dismiss="modal" type="button">×</button>
|
||||
<h4 class="modal-title" id="myModalLabel"><i class="fa fa-plus-circle fa-lg"></i> 새 그룹 추가</h4>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<div class="row">
|
||||
<div class="col-sm-5 text-center hidden-xs"><br><br>
|
||||
<i class="fa fa-users fa-3x" style="font-size:180px"></i>
|
||||
</div>
|
||||
<div class="col-sm-7">
|
||||
<div class="page-header">
|
||||
<h4>
|
||||
새 그룹을 추가 하시겠습니까?
|
||||
</h4>
|
||||
</div>
|
||||
<dl class="well well-sm">
|
||||
<div class="form-group">
|
||||
<label for="group-name"><i class="fa fa-file fa-lg"></i> 그룹명</label>
|
||||
<input type="text" class="form-control" name="name" id="group-name" placeholder="한글 및 영문 입력가능">
|
||||
</div>
|
||||
</dl>
|
||||
<ul style="margin-left:0;padding-left:15px">
|
||||
<li>그룹명 예시는 아래와 같습니다. </li>
|
||||
<li class="unstyled">(보기) 준회원,정회원,특별회원,관리자 등</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<button class="btn btn-default pull-left no-new-group" data-dismiss="modal" type="button">취소</button>
|
||||
<button class="btn btn-primary" type="submit">추가하기</button>
|
||||
</div>
|
||||
</form>
|
||||
</div><!-- /.modal-content -->
|
||||
</div><!-- /.modal-dialog -->
|
||||
</div><!-- /.modal -->
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- 회원등급 시작 -->
|
||||
<div class="col-md-6 col-lg-6 pl-0">
|
||||
<div class="card">
|
||||
<div class="card-header border-bottom-0">
|
||||
<i class="fa fa-arrows-v fa-lg fa-fw"></i> 회원등급 <span class="badge badge-light">Level</span>
|
||||
</div>
|
||||
<?php $levelnum = getDbData($table['s_mbrlevel'],'gid=1','*')?>
|
||||
<div class="level">
|
||||
<form name="levelForm" action="<?php echo $g['s']?>/" method="post" target="_action_frame_<?php echo $m?>" onsubmit="return levelCheck(this);">
|
||||
<input type="hidden" name="r" value="<?php echo $r?>" />
|
||||
<input type="hidden" name="m" value="<?php echo $module?>" />
|
||||
<input type="hidden" name="a" value="level_regis" />
|
||||
<table class="table table-sm table-hover mb-0">
|
||||
<colgroup>
|
||||
<col width="10%"></col>
|
||||
<col width="20%"></col>
|
||||
<col width="25%"></col>
|
||||
<col width="15%"></col>
|
||||
<col width="15%"></col>
|
||||
<col width="15%"></col>
|
||||
</colgroup>
|
||||
<thead>
|
||||
<tr>
|
||||
<th rowspan="2">등급</th>
|
||||
<th rowspan="2">회원수</th>
|
||||
<th rowspan="2">명칭</th>
|
||||
<th colspan="3">등급 자동갱신 기준</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<th><small>접속수</small></th>
|
||||
<th><small>게시물수</small></th>
|
||||
<th><small>댓글수</small></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<?php $i=0?>
|
||||
<?php $RCD=getDbArray($table['s_mbrlevel'],'','*','uid','asc',$levelnum['uid'],1)?>
|
||||
<?php while($R=db_fetch_array($RCD)):?>
|
||||
<tr>
|
||||
<td class="align-middle"><span class="badge badge-secondary"><?php echo $R['uid']?></span></td>
|
||||
<td class="align-middle"><code><?php echo $R['num']?number_format($R['num']):'0'?></code></td>
|
||||
<td><input type="text" name="name_<?php echo $R['uid']?>" value="<?php echo $R['name']?>" class="form-control"></td>
|
||||
<td><input type="text" name="login_<?php echo $R['uid']?>" value="<?php echo $R['login']?$R['login']:''?>" class="form-control" onkeyup="numFormat1(this);" onkeypress="numFormat1(this);"<?php if(!$i):?> onblur="autoNumber(this);" title="입력하시면 자동완성됩니다."<?php endif?>></td>
|
||||
<td><input type="text" name="post_<?php echo $R['uid']?>" value="<?php echo $R['post']?$R['post']:''?>" class="form-control" onkeyup="numFormat1(this);" onkeypress="numFormat1(this);"<?php if(!$i):?> onblur="autoNumber(this);" title="입력하시면 자동완성됩니다."<?php endif?>></td>
|
||||
<td><input type="text" name="comment_<?php echo $R['uid']?>" value="<?php echo $R['comment']?$R['comment']:''?>" class="form-control" onkeyup="numFormat1(this);" onkeypress="numFormat1(this);"<?php if(!$i):?> onblur="autoNumber(this);" title="입력하시면 자동완성됩니다."<?php endif?>></td>
|
||||
</tr>
|
||||
<?php $i++; endwhile?>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<div class="card-footer p-2">
|
||||
<div class="form-group mb-0">
|
||||
|
||||
<div class="input-group">
|
||||
<div class="input-group-prepend">
|
||||
<span class="input-group-text">사용할 등급수</span>
|
||||
</div>
|
||||
<select name="num" id="levelnum" class="form-control custom-select">
|
||||
<?php $levelnum = getDbData($table['s_mbrlevel'],'gid=1','*')?>
|
||||
<?php for($i=5; $i < 101; $i=$i+5):?>
|
||||
<option value="<?php echo $i?>"<?php if($i==$levelnum['uid']):?> selected="selected"<?php endif?>>사용등급 : <?php echo $i?></option>
|
||||
<?php endfor?>
|
||||
</select>
|
||||
<div class="input-group-append">
|
||||
<button type="input" class="btn btn-light">저장</button>
|
||||
</div>
|
||||
</div>
|
||||
</div> <!-- .form-group -->
|
||||
</div> <!-- .panel-footer -->
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<!--그룹 삭제 폼 -->
|
||||
<form name="delsosokForm" action="<?php echo $g['s']?>/" method="post" target="_action_frame_<?php echo $m?>" style="height:0">
|
||||
<input type="hidden" name="r" value="<?php echo $r?>" />
|
||||
<input type="hidden" name="m" value="<?php echo $module?>" />
|
||||
<input type="hidden" name="a" value="sosok_delete" />
|
||||
<input type="hidden" name="uid" value="" />
|
||||
</form>
|
||||
|
||||
<!-- 그룹 순서변경시 jquery-ui sortable 사용하기 위해 import 및 파폭버그 설정 -->
|
||||
<?php getImport('jquery-ui','jquery-ui.min','1.12.1','js')?>
|
||||
<style>
|
||||
/* 그룹 선택시 */
|
||||
.ui-state-highlight {
|
||||
background-color: transparent;
|
||||
border: 1px dashed #d5d5d5;
|
||||
border-radius: 4px;
|
||||
height:120px;
|
||||
width: 100px;
|
||||
box-sizing: border-box;
|
||||
background-image: -webkit-linear-gradient(top, #428bca 0%, #3278b3 100%);
|
||||
background-image: linear-gradient(to bottom, #428bca 0%, #3278b3 100%);
|
||||
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff428bca', endColorstr='#ff3278b3', GradientType=0);
|
||||
background-repeat: repeat-x;
|
||||
border-color: #3278b3;
|
||||
-webkit-box-shadow: inset 0 3px 5px rgba(0,0,0,.125);
|
||||
box-shadow: inset 0 3px 5px rgba(0,0,0,.125);
|
||||
}
|
||||
</style>
|
||||
<!-- 그룹 순서변경시 jquery-ui sortable 사용하기 위해 import 및 파폭버그 설정 -->
|
||||
|
||||
<script type="text/javascript">
|
||||
//<![CDATA[
|
||||
|
||||
putCookieAlert('member_group_result') // 실행결과 알림 메시지 출력
|
||||
|
||||
//그룹순서 변경 이벤트
|
||||
$(function() {
|
||||
$( "#group-list" ).sortable({
|
||||
revert:150, // 부드럽게 변경
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
// 새그룹 추가 버튼 클릭 이벤트
|
||||
$('#btn-new-group').on('click',function(){
|
||||
$('input[name="is_new_group"]').val(1);
|
||||
});
|
||||
|
||||
// 그룹 삭제 이벤트
|
||||
$('.del-a').on('click',function(e){
|
||||
e.preventDefault();
|
||||
var id=$(this).attr('id');
|
||||
var id_arr=id.split('-');
|
||||
var uid=id_arr[0];
|
||||
var num=id_arr[1];
|
||||
var f=document.delsosokForm;
|
||||
sosokDelCheck(f,uid,num); // 그룹삭제 폼 전송함수 호출
|
||||
|
||||
});
|
||||
var nvisible = false;
|
||||
function autoNumber(obj)
|
||||
{
|
||||
if (!obj.value) return false;
|
||||
|
||||
var znum = obj.name == 'login_1' ? 2 : 1;
|
||||
var f = obj.form;
|
||||
var levelnum = <?php echo $levelnum['uid']?>;
|
||||
var i;
|
||||
var exp;
|
||||
for (i = 1; i < levelnum; i++)
|
||||
{
|
||||
exp = obj.name.split('_');
|
||||
eval('f.'+exp[0]+'_'+(i+1)).value = (parseInt(obj.value) * znum * i) + parseInt(eval('f.'+exp[0]+'_'+i).value);
|
||||
}
|
||||
|
||||
}
|
||||
function sosokDelCheck(f,uid,n)
|
||||
{
|
||||
if (n > 0)
|
||||
{
|
||||
alert('소속회원이 존재하는 그룹은 삭제할 수 없습니다. ');
|
||||
return false;
|
||||
}
|
||||
if (confirm('정말로 삭제하시겠습니까? '))
|
||||
{
|
||||
f.uid.value=uid;
|
||||
f.submit();
|
||||
}
|
||||
return false;
|
||||
}
|
||||
function regisSosok()
|
||||
{
|
||||
if (nvisible == false)
|
||||
{
|
||||
getId('ninput').style.visibility = 'visible';
|
||||
document.sosokForm.name.focus();
|
||||
nvisible = true;
|
||||
}
|
||||
else {
|
||||
getId('ninput').style.visibility = 'hidden';
|
||||
nvisible = false;
|
||||
}
|
||||
}
|
||||
function levelCheck(f)
|
||||
{
|
||||
getIframeForAction(f);
|
||||
}
|
||||
function regisCheck(f)
|
||||
{
|
||||
var add_modal=$('#modal-group-add');
|
||||
|
||||
if ($(add_modal).css('display')=='block' && f.name.value == '')
|
||||
{
|
||||
alert('추가할 그룹명을 입력해 주세요. ');
|
||||
f.name.focus();
|
||||
return false;
|
||||
}
|
||||
|
||||
getIframeForAction(f);
|
||||
}
|
||||
function numFormat1(obj)
|
||||
{
|
||||
if (!getTypeCheck(obj.value,'0123456789'))
|
||||
{
|
||||
alert('숫자만 입력해 주세요.');
|
||||
obj.value = '';
|
||||
obj.focus();
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
</script>
|
||||
156
modules/member/admin/notidoc.php
Normal file
156
modules/member/admin/notidoc.php
Normal file
@@ -0,0 +1,156 @@
|
||||
<?php
|
||||
function getMDname($id)
|
||||
{
|
||||
global $typeset;
|
||||
if ($typeset[$id]) return $typeset[$id];
|
||||
else return $id;
|
||||
}
|
||||
$typeset = array
|
||||
(
|
||||
'_join'=>'회원가입',
|
||||
'_settings_account_pw'=>'비밀번호 변경',
|
||||
'_settings_account_id'=>'아이디 변경'
|
||||
);
|
||||
$type = $type ? $type : '_join';
|
||||
?>
|
||||
|
||||
<div class="row no-gutters">
|
||||
<div class="col-sm-4 col-md-3 col-xl-3 d-none d-sm-block sidebar" id="tab-content-list">
|
||||
|
||||
<div class="card border-0">
|
||||
<div class="card-header">
|
||||
양식목록
|
||||
</div>
|
||||
<div class="list-group list-group-flush">
|
||||
<?php $tdir = $g['path_module'].$module.'/var/noti/'?>
|
||||
<?php $dirs = opendir($tdir)?>
|
||||
<?php while(false !== ($skin = readdir($dirs))):?>
|
||||
<?php if($skin=='.' || $skin == '..')continue?>
|
||||
<?php $_type = str_replace('.php','',$skin)?>
|
||||
<a href="<?php echo $g['adm_href']?>&doc=noti&type=<?php echo $_type?>" class="list-group-item d-flex justify-content-between align-items-center list-group-item-action <?php if($_type==$type):?>active<?php endif?> doc-style pl-4">
|
||||
<?php echo getMDname($_type)?>
|
||||
<span class="badge badge-dark"><?php echo $_type?></span>
|
||||
</a>
|
||||
<?php endwhile?>
|
||||
<?php closedir($dirs)?>
|
||||
</div>
|
||||
</div><!-- /.card -->
|
||||
|
||||
</div>
|
||||
<div class="col-sm-8 col-md-9 ml-sm-auto col-xl-9" id="tab-content-view">
|
||||
|
||||
<form class="card border-0" name="procForm" action="<?php echo $g['s']?>/" method="post" target="_action_frame_<?php echo $m?>" onsubmit="return saveCheck(this);">
|
||||
<input type="hidden" name="r" value="<?php echo $r?>">
|
||||
<input type="hidden" name="m" value="<?php echo $module?>">
|
||||
<input type="hidden" name="a" value="msgdoc_regis">
|
||||
<input type="hidden" name="doc" value="<?php echo $doc?>">
|
||||
<input type="hidden" name="type" value="<?php echo $type?>">
|
||||
|
||||
<div class="card-header page-body-header">
|
||||
<?php if ($doc=='email'): ?><i class="fa fa-envelope-o fa-fw"></i><?php else: ?><i class="fa fa-bell-o fa-lg fa-fw"></i><?php endif; ?>
|
||||
<span><?php echo getMDname($type)?> <span class="badge badge-primary badge-pill">양식수정</span></span>
|
||||
</div>
|
||||
<div class="card-body">
|
||||
<div class="small text-muted">
|
||||
<ul class="pl-3">
|
||||
<li>내용에는 다음과 같은 치환문자를 사용할 수 있습니다.</li>
|
||||
<li>사이트명: <code>{SITE}</code> / 회원이름 : <code>{MEMBER}</code> / 닉네임 <code>{NICK}</code> / 게시판명 <code>{BBS}</code> / 게시물제목 <code>{SUBJECT}</code></li>
|
||||
</ul>
|
||||
</div>
|
||||
<?php include_once $g['path_module'].$module.'/var/noti/'.$type.'.php'; ?>
|
||||
<div class="card w-75">
|
||||
<div class="card-header">
|
||||
<i class="fa fa-bell-o mr-1" aria-hidden="true"></i> 알림 메시지 편집
|
||||
</div>
|
||||
<div class="card-body" id="noti-msg">
|
||||
|
||||
<div class="media">
|
||||
<img class="mr-3" src="<?php echo $g['s'].'/files/avatar/0.svg' ?>" alt="회원 아바타" style="width: 100px">
|
||||
<div class="media-body">
|
||||
|
||||
<div class="form-group">
|
||||
<label class="sr-only">타이틀</label>
|
||||
<input type="url" class="form-control" name="join_notice_title" value="<?php echo $d['member']['noti_title'] ?>" placeholder="알림 제목을 입력해 주세요.">
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="sr-only">메세지 입력</label>
|
||||
<textarea name="join_notice_msg" class="form-control" placeholder="알림내용을 입력해 주세요." rows="5"><?php echo $d['member']['noti_body'] ?></textarea>
|
||||
</div>
|
||||
<div class="form-group mb-0">
|
||||
<label>연결링크 버튼명</label>
|
||||
<input type="text" class="form-control" name="join_notice_button" value="<?php echo $d['member']['noti_button'] ?>" placeholder="버튼명을 입력해 주세요.">
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div><!-- /.card -->
|
||||
|
||||
</div><!-- /.card-body -->
|
||||
|
||||
<div class="card-footer">
|
||||
<div class="form-row">
|
||||
<div class="col">
|
||||
<button type="submit" class="btn btn-outline-primary btn-block">수정</button>
|
||||
</div>
|
||||
<?php if(!$typeset[$type]):?>
|
||||
<div class="col">
|
||||
<button class="btn btn-outline-danger btn-block" onclick="delCheck('<?php echo $doc?>','<?php echo $type?>');" type="button">삭제</button>
|
||||
</div>
|
||||
<?php endif?>
|
||||
</div>
|
||||
|
||||
</div><!-- /.card-footer -->
|
||||
|
||||
</form><!-- /.card -->
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<script type="text/javascript">
|
||||
|
||||
|
||||
function ToolCheck(compo) {
|
||||
frames.editFrame.showCompo();
|
||||
frames.editFrame.EditBox(compo);
|
||||
}
|
||||
|
||||
function delCheck(d,t) {
|
||||
if (confirm('정말로 삭제하시겠습니까? '))
|
||||
{
|
||||
frames._action_frame_<?php echo $m?>.location.href = '<?php echo $g['s']?>/?r=<?php echo $r?>&m=<?php echo $module?>&a=msgdoc_delete&doc='+ d +'&type=' + t;
|
||||
}
|
||||
}
|
||||
|
||||
function saveCheck(f) {
|
||||
|
||||
if (f.content.value == '')
|
||||
{
|
||||
$('.note-editable').focus();
|
||||
alert('내용을 입력해 주세요. ');
|
||||
return false;
|
||||
}
|
||||
if (f.newdoc.value != '')
|
||||
{
|
||||
if (!chkIdValue(f.newdoc.value))
|
||||
{
|
||||
alert('양식명은 영문소문자/숫자/_ 만 사용가능합니다. ');
|
||||
f.newdoc.value = '';
|
||||
f.newdoc.focus();
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
$(document).ready(function() {
|
||||
|
||||
putCookieAlert('msgdoc_result') // 실행결과 알림 메시지 출력
|
||||
|
||||
$('[data-toggle=tooltip]').tooltip();
|
||||
|
||||
|
||||
});
|
||||
|
||||
</script>
|
||||
366
modules/member/admin/point.php
Normal file
366
modules/member/admin/point.php
Normal file
@@ -0,0 +1,366 @@
|
||||
<?php
|
||||
$SITES = getDbArray($table['s_site'],'','*','gid','asc',0,1);
|
||||
$SITEN = db_num_rows($SITES);
|
||||
|
||||
$type = $type ? $type : 'point';
|
||||
$sort = $sort ? $sort : 'uid';
|
||||
$orderby= $orderby ? $orderby : 'desc';
|
||||
$recnum = $recnum && $recnum < 200 ? $recnum : 20;
|
||||
|
||||
//사이트선택적용
|
||||
//$accountQue = $account ? 'a.site='.$account.' and ':'';
|
||||
$_WHERE ='uid>0';
|
||||
if ($d_start) $_WHERE .= ' and d_regis > '.str_replace('/','',$d_start).'000000';
|
||||
if ($d_finish) $_WHERE .= ' and d_regis < '.str_replace('/','',$d_finish).'240000';
|
||||
if ($flag == '+') $_WHERE .= ' and price > 0';
|
||||
if ($flag == '-') $_WHERE .= ' and price < 0';
|
||||
|
||||
if ($where && $keyw)
|
||||
{
|
||||
if ($keyw=='my_mbruid') $_WHERE .= ' and my_mbruid='.$keyw;
|
||||
else $_WHERE .= getSearchSql($where,$keyw,$ikeyword,'or');
|
||||
}
|
||||
$RCD = getDbArray($table['s_'.$type],$_WHERE,'*',$sort,$orderby,$recnum,$p);
|
||||
$NUM = getDbRows($table['s_'.$type],$_WHERE);
|
||||
$TPG = getTotalPage($NUM,$recnum);
|
||||
?>
|
||||
|
||||
<div class="row no-gutters">
|
||||
|
||||
<div class="col-sm-4 col-md-4 col-xl-3 d-none d-sm-block sidebar sidebar-right">
|
||||
|
||||
<form name="procForm" action="<?php echo $g['s']?>/" method="get" class="card border-0">
|
||||
<input type="hidden" name="r" value="<?php echo $r?>">
|
||||
<input type="hidden" name="m" value="<?php echo $m?>">
|
||||
<input type="hidden" name="module" value="<?php echo $module?>">
|
||||
<input type="hidden" name="front" value="<?php echo $front?>">
|
||||
<input type="hidden" name="type" value="<?php echo $type?>">
|
||||
|
||||
<div class="card-body">
|
||||
<div class="form-group">
|
||||
<label>기간</label>
|
||||
<span class="input-daterange" id="datepicker">
|
||||
<div class="input-group input-group-sm mb-1">
|
||||
<div class="input-group-prepend">
|
||||
<span class="input-group-text">시작일</span>
|
||||
</div>
|
||||
<input type="text" class="form-control" name="d_start" placeholder="선택" value="<?php echo $d_start?>">
|
||||
</div>
|
||||
<div class="input-group input-group-sm mb-2">
|
||||
<div class="input-group-prepend">
|
||||
<span class="input-group-text">종료일</span>
|
||||
</div>
|
||||
<input type="text" class="form-control" name="d_finish" placeholder="선택" value="<?php echo $d_finish?>">
|
||||
</div>
|
||||
</span>
|
||||
|
||||
<button class="btn btn-light btn-block mb-2" type="submit">기간적용</button>
|
||||
<div class="btn-group">
|
||||
<button class="btn btn-light" onclick="dropDate('2017/12/27','2017/12/27');">어제</button>
|
||||
<button class="btn btn-light" onclick="dropDate('2017/12/28','2017/12/28');">오늘</button>
|
||||
<button class="btn btn-light" onclick="dropDate('2017/12/21','2017/12/28');">일주</button>
|
||||
</div>
|
||||
<div class="btn-group">
|
||||
<button class="btn btn-light" onclick="dropDate('2017/11/28','2017/12/28');">한달</button>
|
||||
<button class="btn btn-light" onclick="dropDate('2017/12/01','2017/12/28');">당월</button>
|
||||
<button class="btn btn-light" onclick="dropDate('2017/11/01','2017/11/31');">전월</button>
|
||||
<button class="btn btn-light" onclick="dropDate('','');">전체</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<hr>
|
||||
|
||||
<div class="form-group mb-3">
|
||||
<label>검색</label>
|
||||
|
||||
<select name="where" class="form-control custom-select mb-2">
|
||||
<option value="content"<?php if($where=='content'):?> selected="selected"<?php endif?>>내용</option>
|
||||
<option value="my_mbruid"<?php if($where=='my_mbruid'):?> selected="selected"<?php endif?>>회원코드</option>
|
||||
</select>
|
||||
|
||||
<input type="text" class="form-control mb-2" name="keyw" value="<?php echo stripslashes($keyw)?>" placeholder="검색어 입력">
|
||||
<button class="btn btn-light btn-block" type="submit">검색</button>
|
||||
</div>
|
||||
|
||||
<hr>
|
||||
|
||||
|
||||
<div class="form-group">
|
||||
<label>필터</label>
|
||||
<select name="flag" class="form-control custom-select" onchange="this.form.submit();">
|
||||
<option value=""> + 구분</option>
|
||||
<option value="+"<?php if($flag=='+'):?> selected="selected"<?php endif?>>획득</option>
|
||||
<option value="-"<?php if($flag=='-'):?> selected="selected"<?php endif?>>사용</option>
|
||||
</select>
|
||||
|
||||
<div class="btn-group btn-group-sm btn-group-toggle w-100 mt-2" data-toggle="buttons">
|
||||
<label class="btn btn-light w-50<?php if($sort=='uid'):?> active<?php endif?>" onclick="btnFormSubmit(this);">
|
||||
<input type="radio" value="uid" name="sort"<?php if($sort=='uid'):?> checked<?php endif?>> 등록일
|
||||
</label>
|
||||
<label class="btn btn-light w-50<?php if($sort=='price'):?> active<?php endif?>" onclick="btnFormSubmit(this);">
|
||||
<input type="radio" value="price" name="sort"<?php if($sort=='price'):?> checked<?php endif?>>금액
|
||||
</label>
|
||||
</div>
|
||||
|
||||
<div class="btn-group btn-group-sm btn-group-toggle w-100 mt-2" data-toggle="buttons">
|
||||
<label class="btn btn-light w-50<?php if($orderby=='desc'):?> active<?php endif?>" onclick="btnFormSubmit(this);">
|
||||
<input type="radio" value="desc" name="orderby"<?php if($orderby=='desc'):?> checked<?php endif?>> <i class="fa fa-sort-amount-desc"></i> 내림차순
|
||||
</label>
|
||||
<label class="btn btn-light w-50<?php if($orderby=='asc'):?> active<?php endif?>" onclick="btnFormSubmit(this);">
|
||||
<input type="radio" value="asc" name="orderby"<?php if($orderby=='asc'):?> checked<?php endif?>> <i class="fa fa-sort-amount-asc"></i> 오름차순
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
</div><!-- /.card-body -->
|
||||
|
||||
<div class="card-footer">
|
||||
<a href="<?php echo $g['adm_href']?>" class="btn btn-light btn-block">검색조건 초기화</a>
|
||||
</div>
|
||||
|
||||
</form>
|
||||
|
||||
|
||||
|
||||
|
||||
</div><!-- /.sidebar -->
|
||||
<div class="col-sm-8 col-md-8 mr-sm-auto col-xl-9">
|
||||
|
||||
<?php if($NUM):?>
|
||||
<form class="card rounded-0 border-0 page-body-header" name="listForm" action="<?php echo $g['s']?>/" method="post">
|
||||
<input type="hidden" name="r" value="<?php echo $r?>">
|
||||
<input type="hidden" name="m" value="<?php echo $module?>">
|
||||
<input type="hidden" name="a" value="">
|
||||
<input type="hidden" name="pointType" value="<?php echo $type?>">
|
||||
|
||||
<div class="card-header d-flex justify-content-between align-items-center border-0">
|
||||
<span class="pull-left">
|
||||
총 <?php echo number_format($NUM)?>개
|
||||
<span class="badge badge-pill badge-dark"><?php echo $p?>/<?php echo $TPG?> 페이지</span>
|
||||
</span>
|
||||
<div class="">
|
||||
<div class="btn-group">
|
||||
<a href="<?php echo '/?'.$_SERVER['QUERY_STRING']?>&p=<?php echo $p-1?>" class="btn btn-light btn-page" <?php echo $p>1?'':'disabled'?> data-toggle="tooltip" data-placement="bottom" title="" data-original-title="이전">
|
||||
<i class="fa fa-chevron-left fa-lg"></i>
|
||||
</a>
|
||||
<a href="<?php echo '/?'.$_SERVER['QUERY_STRING']?>&p=<?php echo $p+1?>" class="btn btn-light btn-page" <?php echo $NUM>($p*$recnum)?'':'disabled'?> data-toggle="tooltip" data-placement="bottom" title="" data-original-title="다음">
|
||||
<i class="fa fa-chevron-right fa-lg"></i>
|
||||
</a>
|
||||
</div>
|
||||
<div class="btn-group">
|
||||
<div class="btn-group dropup hidden-xs">
|
||||
<button type="button" class="btn btn-light dropdown-toggle" data-toggle="dropdown" >
|
||||
<i class="fa fa-list"></i> <?php echo $recnum?>개씩 <span class="caret"></span>
|
||||
</button>
|
||||
<div class="dropdown-menu dropdown-menu-right" role="menu">
|
||||
<a class="dropdown-item<?php $recnum=='20'?' active':''?>" href="<?php echo $g['adm_href']?>&recnum=20">20개 출력</a>
|
||||
<a class="dropdown-item<?php $recnum=='35'?' active':''?>" href="<?php echo $g['adm_href']?>&recnum=35">35개 출력</a>
|
||||
<a class="dropdown-item<?php $recnum=='50'?' active':''?>" href="<?php echo $g['adm_href']?>&recnum=50">50개 출력</a>
|
||||
<a class="dropdown-item<?php $recnum=='75'?' active':''?>" href="<?php echo $g['adm_href']?>&recnum=75">75개 출력</a>
|
||||
<a class="dropdown-item<?php $recnum=='90'?' active':''?>" href="<?php echo $g['adm_href']?>&recnum=90">90개 출력</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<!-- //.card-heade -->
|
||||
|
||||
<!-- 리스트 테이블 시작-->
|
||||
<table class="table table-hover text-center">
|
||||
<colgroup>
|
||||
<col width="50">
|
||||
<col width="50">
|
||||
<col width="50">
|
||||
<col width="50">
|
||||
<col width="80">
|
||||
<col>
|
||||
<col width="100">
|
||||
</colgroup>
|
||||
<thead class="small text-muted">
|
||||
<tr>
|
||||
<th class="py-0">
|
||||
|
||||
</th>
|
||||
<th>번호</th>
|
||||
<th>획득/사용자</th>
|
||||
<th>획득/사용액</th>
|
||||
<th>지급자</th>
|
||||
<th>내용</th>
|
||||
<th>날짜</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<?php while($R=db_fetch_array($RCD)):?>
|
||||
<?php $M1=getDbData($table['s_mbrdata'],'memberuid='.$R['my_mbruid'],'*')?>
|
||||
<?php if($R['by_mbruid']){$M2=getDbData($table['s_mbrdata'],'memberuid='.$R['by_mbruid'],'*');}else{$M2=array();}?>
|
||||
<tr> <!-- 라인이 체크된 경우 warning 처리됨 -->
|
||||
<td>
|
||||
<div class="custom-control custom-checkbox">
|
||||
<input type="checkbox" class="custom-control-input checkAll-member" id="mbrmembers_<?php echo $R['uid']?>" name="point_members[]" onclick="checkboxCheck();" value="<?php echo $R['uid']?>">
|
||||
<label class="custom-control-label" for="mbrmembers_<?php echo $R['uid']?>"></label>
|
||||
</div>
|
||||
</td>
|
||||
<td><?php echo ($NUM-((($p-1)*$recnum)+$_recnum++))?></td>
|
||||
<td><a href="#" data-toggle="modal" data-target="#modal_window" class="rb-modal-mbrinfo" onmousedown="mbrIdDrop('<?php echo $M1['memberuid']?>','point');" data-toggle="tooltip" title="획득/사용내역"><?php echo $M1['name']?></a></td><!-- main -->
|
||||
<td><span class="badge badge-pill badge-dark"><?php echo number_format($R['price'])?></span></td>
|
||||
<td>
|
||||
<span class="badge badge-pill badge-dark">
|
||||
<?php if($M2['memberuid']):?>
|
||||
<a href="#" data-toggle="modal" data-target="#modal_window" class="rb-modal-mbrinfo" onmousedown="mbrIdDrop('<?php echo $M2['memberuid']?>','point');" data-toggle="tooltip" title="획득/사용내역"><?php echo $M1[$_HS['nametype']]?></a></td><!-- post -->
|
||||
<?php else:?>
|
||||
시스템
|
||||
<?php endif?>
|
||||
</span>
|
||||
</td>
|
||||
<td class="text-left"><?php echo strip_tags($R['content'])?></td>
|
||||
<td> <small class="text-muted"><?php echo getDateFormat($R['d_regis'],'Y.m.d')?></small></td>
|
||||
</tr>
|
||||
<?php endwhile?>
|
||||
</tbody>
|
||||
</table>
|
||||
<!-- 리스트 테이블 끝 -->
|
||||
|
||||
|
||||
<!--목록에 체크된 항목이 없을 경우 fieldset이 disabled 됨-->
|
||||
<div class="card-footer btn-toolbar justify-content-between">
|
||||
<fieldset id="list-bottom-fset" disabled> <!--목록에 체크된 항목이 없을 경우 fieldset이 disabled 됨-->
|
||||
<button type="button" class="btn btn-light" onclick="actQue('point_multi_delete');">삭제</button>
|
||||
</fieldset>
|
||||
|
||||
<ul class="pagination pagination justify-content-center">
|
||||
<script>getPageLink(5,<?php echo $p?>,<?php echo $TPG?>,'');</script>
|
||||
</ul>
|
||||
|
||||
</div> <!-- // .card-footer-->
|
||||
</form><!-- // .card-->
|
||||
|
||||
|
||||
|
||||
|
||||
<?php else:?>
|
||||
<div class="text-center text-muted d-flex align-items-center justify-content-center" style="height: calc(100vh - 10rem);">
|
||||
<div><i class="fa fa-exclamation-circle fa-3x mb-3" aria-hidden="true"></i>
|
||||
<p>조건에 해당하는 자료가 없습니다.</p>
|
||||
<a href="<?php echo $g['adm_href']?>" class="btn btn-light btn-block mt-2">
|
||||
검색조건 초기화
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
<?php endif?>
|
||||
|
||||
</div>
|
||||
</div><!-- /.row -->
|
||||
|
||||
|
||||
|
||||
<!-- bootstrap-datepicker, http://eternicode.github.io/bootstrap-datepicker/ -->
|
||||
<?php getImport('bootstrap-datepicker','css/datepicker3',false,'css')?>
|
||||
<?php getImport('bootstrap-datepicker','js/bootstrap-datepicker',false,'js')?>
|
||||
<?php getImport('bootstrap-datepicker','js/locales/bootstrap-datepicker.kr',false,'js')?>
|
||||
<!-- basic -->
|
||||
<script>
|
||||
|
||||
putCookieAlert('result_member_point') // 실행결과 알림 메시지 출력
|
||||
|
||||
$('.input-daterange').datepicker({
|
||||
format: "yyyy/mm/dd",
|
||||
todayBtn: "linked",
|
||||
language: "kr",
|
||||
calendarWeeks: true,
|
||||
todayHighlight: true,
|
||||
autoclose: true
|
||||
});
|
||||
|
||||
// 툴팁 이벤트
|
||||
$('[data-toggle=tooltip]').tooltip();
|
||||
|
||||
//사이트 셀렉터 출력
|
||||
$('[data-role="siteSelector"]').removeClass('d-none')
|
||||
|
||||
// 선택박스 체크 이벤트 핸들러
|
||||
$("#checkAll-member").click(function(){
|
||||
$(".rb-member").prop("checked",$(".checkAll-member").prop("checked",true));
|
||||
checkboxCheck();
|
||||
});
|
||||
|
||||
// 회원 이름,닉네임 클릭시 uid & mod( 탭 정보 : info, main, post 등) 지정하는 함수
|
||||
var _mbrModalUid;
|
||||
var _mbrModalMod;
|
||||
function mbrIdDrop(uid,mod)
|
||||
{
|
||||
_mbrModalUid = uid;
|
||||
_mbrModalMod = mod;
|
||||
}
|
||||
|
||||
// 회원정보 modal 호출하는 함수 : 위에서 지정한 회원 uid & mod 로 호출한다 .
|
||||
$('.rb-modal-mbrinfo').on('click',function() {
|
||||
modalSetting('modal_window','<?php echo getModalLink('&m=admin&module=member&front=modal.mbrinfo&uid=')?>'+_mbrModalUid+'&tab='+_mbrModalMod);
|
||||
});
|
||||
|
||||
|
||||
// 선택박스 체크시 액션버튼 활성화 함수
|
||||
function checkboxCheck()
|
||||
{
|
||||
var f = document.listForm;
|
||||
var l = document.getElementsByName('point_members[]');
|
||||
var n = l.length;
|
||||
var i;
|
||||
var j=0;
|
||||
|
||||
for (i = 0; i < n; i++)
|
||||
{
|
||||
if (l[i].checked == true){
|
||||
$(l[i]).parent().parent().parent().addClass('table-active'); // 선택된 체크박스 tr 강조표시
|
||||
j++;
|
||||
}else{
|
||||
$(l[i]).parent().parent().parent().removeClass('table-active');
|
||||
}
|
||||
}
|
||||
// 하단 회원관리 액션 버튼 상태 변경
|
||||
if (j) $('#list-bottom-fset').prop("disabled",false);
|
||||
else $('#list-bottom-fset').prop("disabled",true);
|
||||
}
|
||||
|
||||
function actQue(flag)
|
||||
{
|
||||
var f = document.listForm;
|
||||
var l = document.getElementsByName('point_members[]');
|
||||
var n = l.length;
|
||||
var i;
|
||||
var j=0;
|
||||
|
||||
if (flag == 'point_multi_delete')
|
||||
{
|
||||
for (i = 0; i < n; i++)
|
||||
{
|
||||
if (l[i].checked == true)
|
||||
{
|
||||
j++;
|
||||
}
|
||||
}
|
||||
if (!j)
|
||||
{
|
||||
alert('항목을 선택해주세요. ');
|
||||
return false;
|
||||
}
|
||||
|
||||
if (confirm('정말로 실행하시겠습니까? '))
|
||||
{
|
||||
getIframeForAction(f);
|
||||
f.a.value = flag;
|
||||
f.submit();
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
// 기간 검색 적용 함수
|
||||
function dropDate(date1,date2)
|
||||
{
|
||||
var f = document.procForm;
|
||||
f.d_start.value = date1;
|
||||
f.d_finish.value = date2;
|
||||
f.submit();
|
||||
}
|
||||
|
||||
</script>
|
||||
229
modules/member/admin/theme.php
Normal file
229
modules/member/admin/theme.php
Normal file
@@ -0,0 +1,229 @@
|
||||
<link href="<?php echo $g['s']?>/_core/css/github-markdown.css" rel="stylesheet">
|
||||
<style>
|
||||
#__code__ {
|
||||
font-weight: normal;
|
||||
font-family: Menlo,Monaco,Consolas,"Courier New",monospace !important;
|
||||
}
|
||||
</style>
|
||||
<?php getImport('jquery-markdown','jquery.markdown','0.0.10','js')?>
|
||||
|
||||
<?php getImport('codemirror','lib/codemirror',false,'css')?>
|
||||
<?php getImport('codemirror','lib/codemirror',false,'js')?>
|
||||
<?php getImport('codemirror','theme/'.$d['admin']['codeeidt'],false,'css')?>
|
||||
<?php getImport('codemirror','addon/display/fullscreen',false,'css')?>
|
||||
<?php getImport('codemirror','addon/display/fullscreen',false,'js')?>
|
||||
<?php getImport('codemirror','mode/htmlmixed/htmlmixed',false,'js')?>
|
||||
<?php getImport('codemirror','mode/xml/xml',false,'js')?>
|
||||
<?php getImport('codemirror','mode/javascript/javascript',false,'js')?>
|
||||
<?php getImport('codemirror','mode/css/css',false,'js')?>
|
||||
<?php getImport('codemirror','mode/htmlmixed/htmlmixed',false,'js')?>
|
||||
<?php getImport('codemirror','mode/clike/clike',false,'js')?>
|
||||
<?php getImport('codemirror','mode/php/php',false,'js')?>
|
||||
|
||||
<div class="row no-gutters">
|
||||
<div class="col-sm-4 col-md-4 col-xl-3 d-none d-sm-block sidebar"><!-- 좌측영역 시작 -->
|
||||
<div class="card border-0">
|
||||
<div class="card-header f12">
|
||||
테마 리스트
|
||||
</div>
|
||||
|
||||
<div class="list-group list-group-flush">
|
||||
<?php $i=0?>
|
||||
<?php $xdir = $g['path_module'].$module.'/themes/'?>
|
||||
<?php $tdir = $xdir.'_desktop/'?>
|
||||
<?php $dirs = opendir($tdir)?>
|
||||
<?php while(false !== ($skin = readdir($dirs))):?>
|
||||
<?php if($skin=='.' || $skin == '..' || is_file($tdir.$skin))continue?>
|
||||
<?php $i++?>
|
||||
<a href="<?php echo $g['adm_href']?>&theme=_desktop/<?php echo $skin?>" class="list-group-item list-group-item-action d-flex justify-content-between align-items-center<?php if($theme=='_desktop/'.$skin):?> border border-primary<?php endif?>">
|
||||
<span><?php echo getFolderName($tdir.$skin)?></span>
|
||||
<span class="badge badge-<?php echo $theme=='_desktop/'.$skin?'primary':'dark' ?> badge-pill"><?php echo $skin?></span>
|
||||
</a>
|
||||
<?php endwhile?>
|
||||
<?php closedir($dirs)?>
|
||||
<?php $tdir = $xdir.'_mobile/'?>
|
||||
<?php $dirs = opendir($tdir)?>
|
||||
<?php while(false !== ($skin = readdir($dirs))):?>
|
||||
<?php if($skin=='.' || $skin == '..' || is_file($tdir.$skin))continue?>
|
||||
<?php $i++?>
|
||||
<a href="<?php echo $g['adm_href']?>&theme=_mobile/<?php echo $skin?>" class="list-group-item list-group-item-action d-flex justify-content-between align-items-center<?php if($theme=='_mobile/'.$skin):?> border border-primary<?php endif?>">
|
||||
<span><?php echo getFolderName($tdir.$skin)?></span>
|
||||
<span class="badge badge-<?php echo $theme=='_mobile/'.$skin?'primary':'dark' ?> badge-pill"><?php echo $skin?></span>
|
||||
</a>
|
||||
<?php endwhile?>
|
||||
<?php closedir($dirs)?>
|
||||
</div>
|
||||
|
||||
<?php if(!$i):?>
|
||||
<div class="none">등록된 테마가 없습니다.</div>
|
||||
<?php endif?>
|
||||
|
||||
|
||||
</div> <!-- 좌측 card 끝 -->
|
||||
</div> <!-- 좌측 영역 끝 -->
|
||||
<div class="col-sm-8 col-md-8 ml-sm-auto col-xl-9">
|
||||
|
||||
<?php if($theme):?>
|
||||
<form class="card rounded-0 border-0" name="procForm" action="<?php echo $g['s']?>/" method="post" target="_action_frame_<?php echo $m?>" onsubmit="return saveCheck(this);">
|
||||
<input type="hidden" name="r" value="<?php echo $r?>" />
|
||||
<input type="hidden" name="m" value="<?php echo $module?>" />
|
||||
<input type="hidden" name="a" value="theme_config" />
|
||||
<input type="hidden" name="theme" value="<?php echo $theme?>" />
|
||||
|
||||
<div class="card-header p-0 page-body-header">
|
||||
<ol class="breadcrumb rounded-0 mb-0 bg-transparent text-muted">
|
||||
<?php $_theme =explode('/' , $theme); ?>
|
||||
<li class="breadcrumb-item">root</li>
|
||||
<li class="breadcrumb-item">modules</li>
|
||||
<li class="breadcrumb-item"><?php echo $module?></li>
|
||||
<li class="breadcrumb-item">themes</li>
|
||||
<li class="breadcrumb-item"><?php echo $_theme[0]?></li>
|
||||
<li class="breadcrumb-item"><?php echo $_theme[1]?></li>
|
||||
</ol>
|
||||
</div>
|
||||
|
||||
<ul class="nav nav-tabs">
|
||||
<li class="nav-item">
|
||||
<a class="nav-link js-tooltip<?php if(!$_COOKIE['moduleBbsThemeTab']||$_COOKIE['moduleBbsThemeTab']=='readme'):?> active<?php endif?>" href="#readme" data-toggle="tab" onclick="setCookie('moduleBbsThemeTab','readme',1);" title="README.md" data-placement="bottom">
|
||||
<i class="fa fa-file-text-o fa-fw" aria-hidden="true"></i>
|
||||
안내문서
|
||||
</a>
|
||||
</li>
|
||||
<li class="nav-item editor">
|
||||
<a class="nav-link js-tooltip<?php if($_COOKIE['moduleBbsThemeTab']=='editor'):?> active<?php endif?>" href="#var" data-toggle="tab" onclick="setCookie('moduleBbsThemeTab','editor','1');" title="var.php" data-placement="bottom">
|
||||
<i class="fa fa-code fa-fw" aria-hidden="true"></i>
|
||||
설정 변수
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
<div class="tab-content">
|
||||
|
||||
<div class="tab-pane <?php if(!$_COOKIE['moduleBbsThemeTab']||$_COOKIE['moduleBbsThemeTab']=='readme'):?> show active<?php endif?>" id="readme" role="tabpanel" aria-labelledby="readme-tab">
|
||||
|
||||
<?php if (is_file($g['path_module'].$module.'/themes/'.$theme.'/README.md')): ?>
|
||||
<div class="markdown-body px-4 py-0 readme">
|
||||
<?php readfile($g['path_module'].$module.'/themes/'.$theme.'/README.md')?>
|
||||
</div>
|
||||
<?php else: ?>
|
||||
|
||||
<div class="text-center text-muted d-flex align-items-center justify-content-center" style="height: calc(100vh - 10rem);">
|
||||
<div><i class="fa fa-exclamation-circle fa-3x mb-3" aria-hidden="true"></i>
|
||||
<p>테마 안내문서가 없습니다.</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<?php endif; ?>
|
||||
|
||||
<?php if (is_file($g['path_module'].$module.'/themes/'.$theme.'/LICENSE')): ?>
|
||||
<div class="py-5 px-4">
|
||||
<h5>라이센스</h5>
|
||||
<textarea class="form-control" rows="10"><?php readfile($g['path_module'].$module.'/themes/'.$theme.'/LICENSE')?></textarea>
|
||||
</div>
|
||||
<?php endif; ?>
|
||||
|
||||
</div>
|
||||
|
||||
<div class="tab-pane pr-2<?php if($_COOKIE['moduleBbsThemeTab']=='editor'):?> show active<?php endif?>" id="var" role="tabpanel" aria-labelledby="var-tab">
|
||||
|
||||
<div class="">
|
||||
<div class="rb-codeview">
|
||||
<div class="rb-codeview-body">
|
||||
<textarea name="theme_var" id="__code__" class="form-control" rows="30"><?php echo implode('',file($g['path_module'].$module.'/themes/'.$theme.'/_var/var.php'))?></textarea>
|
||||
</div>
|
||||
|
||||
<div class="rb-codeview-footer p-2">
|
||||
<div class="form-row mb-2">
|
||||
<div class="col pt-2 text-muted">
|
||||
테마명 : <?php echo getFolderName($g['path_module'].$module.'/themes/'.$theme)?>
|
||||
</div>
|
||||
<div class="col">
|
||||
|
||||
</div>
|
||||
<div class="col text-right pt-2 text-muted">
|
||||
<small><?php echo count(file($g['path_module'].$module.'/themes/'.$theme.'/_var/var.php')).' lines'?></small></li>
|
||||
<small class="ml-3"><?php echo getSizeFormat(@filesize($g['path_module'].$module.'/themes/'.$theme.'/_var/var.php'),2)?></small>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div> <!--.rb-codeview -->
|
||||
</div> <!--.rb-files -->
|
||||
<div class="card-footer">
|
||||
|
||||
<button type="submit" class="btn btn-outline-primary">저장하기</button>
|
||||
<span class="ml-3 text-muted">이 테마를 사용하는 모든 게시판에 위의 설정값이 적용됩니다.</span>
|
||||
<?php if($theme):?>
|
||||
<div class="pull-right">
|
||||
<a class="btn btn-outline-danger" href="<?php echo $g['s']?>/?r=<?php echo $r?>&m=<?php echo $module?>&a=theme_delete&theme=<?php echo $theme?>" target="_action_frame_<?php echo $m?>" onclick="return confirm('정말로 이 테마를 삭제하시겠습니까? ');">테마삭제</a>
|
||||
</div>
|
||||
<?php endif?>
|
||||
|
||||
</div>
|
||||
</div><!-- /.tab-pane -->
|
||||
|
||||
</div><!-- /.tab-content -->
|
||||
|
||||
|
||||
|
||||
<?php else:?>
|
||||
|
||||
<div class="text-center text-muted d-flex align-items-center justify-content-center" style="height: calc(100vh - 10rem);">
|
||||
<div class="">
|
||||
<i class="fa fa fa-picture-o fa-3x mb-3" aria-hidden="true"></i>
|
||||
<p>테마를 선택해 주세요.</p>
|
||||
<p class="small">테마설정은 해당 테마를 사용하는 모든 프론트 페이지에 적용됩니다.</p>
|
||||
|
||||
<ul class="list list-unstyled small">
|
||||
<li>테마는 회원모듈의 프론트 페이지를 변경할 수 있는 요소입니다.</li>
|
||||
<li>테마설정은 회원모듈의 프론트 페이지의 외형만 제어하며 회원모듈의 내부시스템에는 영향을 주지 않습니다.</li>
|
||||
<li>테마의 속성을 변경하면 해당테마를 사용하는 모든 사이트의 회원관련된 페이지에 적용됩니다.</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<?php endif?>
|
||||
|
||||
</form>
|
||||
</div> <!-- 우측영역 끝 -->
|
||||
</div> <!--.row -->
|
||||
|
||||
|
||||
<?php if($d['admin']['codeeidt'] && $theme):?>
|
||||
<!-- codemirror -->
|
||||
|
||||
|
||||
<script>
|
||||
|
||||
(function() {
|
||||
|
||||
$(".markdown-body").markdown();
|
||||
|
||||
putCookieAlert('result_member_theme') // 실행결과 알림 메시지 출력
|
||||
|
||||
var editor = CodeMirror.fromTextArea(getId('__code__'), {
|
||||
mode: "<?php echo $codeset[$codeext]?$codeset[$codeext]:'application/x-httpd-php'?>",
|
||||
indentUnit: 2,
|
||||
lineNumbers: true,
|
||||
matchBrackets: true,
|
||||
indentWithTabs: true,
|
||||
theme: '<?php echo $d['admin']['codeeidt']?>'
|
||||
});
|
||||
editor.setSize('100%','500px');
|
||||
_isCodeEdit = true;
|
||||
})();
|
||||
|
||||
</script>
|
||||
<!-- @codemirror -->
|
||||
<?php endif?>
|
||||
|
||||
|
||||
<script type="text/javascript">
|
||||
//<![CDATA[
|
||||
function saveCheck(f)
|
||||
{
|
||||
return confirm('정말로 실행하시겠습니까? ');
|
||||
}
|
||||
//]]>
|
||||
</script>
|
||||
23
modules/member/admin/var/var.joint.php
Normal file
23
modules/member/admin/var/var.joint.php
Normal file
@@ -0,0 +1,23 @@
|
||||
<div class="card">
|
||||
|
||||
<div class="card-body">
|
||||
|
||||
<p>
|
||||
연결할 페이지를 선택해 주세요.
|
||||
</p>
|
||||
|
||||
<button type="button" class="btn btn-light" onclick="dropJoint('<?php echo $g['s']?>/?m=<?php echo $smodule?>&front=join');">
|
||||
회원가입
|
||||
</button>
|
||||
<button type="button" class="btn btn-light" onclick="dropJoint('<?php echo $g['s']?>/?m=<?php echo $smodule?>&front=login');">
|
||||
로그인
|
||||
</button>
|
||||
<button type="button" class="btn btn-light" onclick="dropJoint('<?php echo $g['s']?>/?m=<?php echo $smodule?>&front=profile');">
|
||||
프로필
|
||||
</button>
|
||||
<button type="button" class="btn btn-light" onclick="dropJoint('<?php echo $g['s']?>/?m=<?php echo $smodule?>&front=settings');">
|
||||
개인정보 관리
|
||||
</button>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
9
modules/member/admin/var/var.menu.php
Normal file
9
modules/member/admin/var/var.menu.php
Normal file
@@ -0,0 +1,9 @@
|
||||
<?php
|
||||
$d['amenu']['config'] = '환경설정';
|
||||
$d['amenu']['main'] = '회원목록';
|
||||
$d['amenu']['point'] = '포인트';
|
||||
$d['amenu']['msgdoc'] = '메시지 양식';
|
||||
$d['amenu']['notidoc'] = '알림 양식';
|
||||
$d['amenu']['mygroup'] = '그룹/등급';
|
||||
$d['amenu']['theme'] = '테마 관리';
|
||||
?>
|
||||
Reference in New Issue
Block a user