웹마스터 팁

회원에게 만기일을주어서 만기일이 지나면 권한을 회수(그룹에서 제외)하는 소스입니다.
워낙 허접한 실력으로 만든거기 때문에 오류가 발생할 수 있습니다.
꼭 필요하신분만 해주시기 바랍니다.

수정된 파일명
1.modules/member/tpl/filter/insert.xml
2.modules/member/tpl/member_info.html
3.modules/member/tpl/member_list.html
4.modules/member/tpl/insert_member.html
5.modules/member/skins/default/member_info.html
6.modules/member/queries/insertMember.xml
7.modules/member/member.admin.controller.php
8.modules/member/member.controller.php
9.common/lang/ko.lang.php
10.modules/member/lang/ko.lang.php
이상 10개의 파일입니다.

우선 제로보드XE의 member 테이블에 expiredate 필드를 추가 합니다.
ALTER TABLE `xe_member` ADD `expiredate` VARCHAR( 8 ) NULL ;


1.modules/member/tpl/filter/insert.xml 수정하기
26 <param name="limit_date" target="limit_date" /> 다음 라인에
27 <param name="expiredate" target="expiredate" /> 추가

2.modules/member/tpl/member_info.html
124 <tr>
125     <th scope="row">{$lang->limit_date}</th>
126     <td>
127         <!--@if($member_info->limit_date)-->
128             {zdate($member_info->limit_date,"Y-m-d H:i")}
129         <!--@end-->
130     </td>
131 </tr> 다음 라인에
132 <tr>
133     <th scope="row">{$lang->expiredate}</th>
134     <td>
135         <
!--@if($member_info->expiredate)-->
136             {zdate($member_info->expiredate,"Y-m-d")}
137         <
!--@end-->
138     </td>
139 </tr> 132~139라인 추가


3.modules/member/tpl/member_list.html
22         <th scope="col">{$lang->signup_date}</th> 다음 라인에
23         <th scope="col">{$lang->expiredate}</th> 추가
36         <td class="tahoma">{zdate($val->regdate,"Y-m-d")}</td> 다음 라인에
37         <td class="tahoma">{zdate($val->expiredate,"Y-m-d")}</td> 추가

4.modules/member/tpl/insert_member.html
109         <th scope="row">{$lang->limit_date}</th>
110         <td>
111             <input type="hidden" name="limit_date" id="date_limit_date" value="{$member_info->limit_date}" />
112             <div id="str_limit_date" class="inputTypeDate fl" >{zdate($member_info->limit_date,"Y-m-d")}</div>
113             <a  href="#" onclick="open_calendar('+ '+ 'limit_date','{$member_info->limit_date}');return false;" class="button"><span>{
    $lang->cmd_open_calendar}<img src="../../admin/tpl/images/blank.gif" alt="" class="rightCap" /></span></a>
114             <p class="clear">{$lang->about_limit_date}</p>
115         </td>
116     </tr> 다음 라인에
117     <tr>
118         <th scope="row">{$lang->expiredate}</th>
119         <td>
120             <input type="hidden" name="expiredate" id="date_expiredate" value="{$member_info->expiredate}" />
121             <div id="str_expiredate" class="inputTypeDate fl" >{zdate($member_info->expiredate,"Y-m-d")}</div>
122             <a  href="#" onclick="open_calendar('expiredate','{$member_info->expiredate}');return false;" class="button"><span>{
    $lang->cmd_open_calendar}<img src="../../admin/tpl/images/blank.gif" alt="" class="rightCap" /></span></a>
123             <p class="clear">{$lang->about_expiredate}</p>
124         </td>
125     </tr> 추가


5.modules/member/skins/default/member_info.html
65     <tr>
66         <th scope="row">{$lang->last_login}</th>
67         <td>{zdate($member_info->last_login,"Y-m-d H:i")}</td>
68     </tr> 다음 라인에
69     <tr>
70         <th scope="row">{$lang->expiredate}</th>
71         <td>{zdate($member_info->expiredate,"Y-m-d")}</td>
72     </tr> 추가

6.modules/member/queries/insertMember.xml
25         <column name="extra_vars" var="extra_vars" /> 다음라인에
26         <column name="expiredate" var="expiredate" /> 추가

7.modules/member/member.admin.controller.php
21             $args = Context::gets('member_srl','user_id','user_name','nick_name','homepage','blog','birthday','email_address','password','allow_mailing','allow_message'+ ','denied','is_admin','description','group_srl_list','limit_date' ,'expiredate'); 변경

8.modules/member/member.controller.php
683             $args = Context::gets('user_id','user_name','nick_name','homepage','blog','birthday','email_address','password','allow_mailing','allow_message','expiredate')변경

1245             if($member_info->limit_date && $member_info->limit_date >= date("Ymd")) return new Object(-1,sprintf(Context::getLang('msg_user_limited'),zdate($member_info->limit_date,"Y-m-d"))); 다음 라인에
1246
1247             // expiredate 가 현 시간보다 적으면 정회원 그룹 삭제 By RoK.KIM
1248             if($member_info->expiredate && $member_info->expiredate < date("Ymd")) {
1249                 $rok_args->member_srl = $member_info->member_srl;
1250                 $rok_args->group_srl = 3; // 1.관리회원,2.준회원,3.정회원
1251                 $output = executeQuery('member.deleteMemberGroupMember',$rok_args);
1252                 if(!$output->toBool()) return $output;
1253             } 추가

9.common/lang/ko.lang.php
134     $lang->last_login = '최근로그인'; 다음 라인에
135     $lang->expiredate = '만기일'; 추가

10.modules/member/lang/ko.lang.php
182     $lang->about_limit_date = '지정된 일자까지 해당 사용자는 로그인을 할 수 없습니다'; 다음 라인에
183     $lang->about_expiredate = '+ '지정된 일자가 지나면 사용자는 정회원 그룹에서 삭제됩니다'; 추가


다 하시고 관리자 페이지에서 캐쉬 재생성해주셔야 정상적으로 작동됩니다. ^^


제가 2틀동안 고민해서 만들었습니다. 제로보드에 관한 이해가 없어서 많이 수정하기는 힘드네요.
혹시 안되는 부분이 있으시면 리플달아주세요..제가 아는범위에서 답변해 드리겠습니다.

제가 운영하는 사이트는 회원들이 포인트로 정회원 신청을 하면 포인트를 차감하고 정회원 권한을 일자로 줍니다.
제가 정회원을 일일이 체크할수없기 때문에 이렇게 소스를 수정하게 되었습니다.

제목 글쓴이 날짜
자신이 쓴 글에 특정유저 댓글을 차단 Ikoo 2015.06.20
다음 위젯 뱅크를 대신할 위젯 베스트! codlllle 2015.06.20
실시간 rss 피드글 출력 위젯 file codlllle 2015.06.20
추천검색어,실시간인기순위 소스 file codlllle 2015.06.21
cloudflare api 용 curl 기본값 마루디자인 2015.06.24
홈페이지 속도가 느린 이유.(팁같지도 않은 팁) [11] 가브리엘조 2015.06.27
사이트 서버 운영체제와 사용하는 웹서버 소프트웨어 알아보는 사이트 file 후하니 2015.06.28
홈페이지 제작 시 점검사항 15가지 [1] 유래유거 2015.06.29
위젯 가운데 정렬 하는법 [3] 불금 2015.07.05
문서페이지가 수정이 되지 않는 문제 [2] file monet 2015.07.07
config 파일을 일반 유저가 쓸 수 없는 문제 해결법 [15] wkp 2015.07.09
모바일에 최적화된 화면으로 보기 문구가 레이아웃을 가리는 문제 creative8 2015.07.11
IIS서버 자동 설치 프로그램(PHP, MySQL, phpMyAdmin) [1] 공처아찌 2015.07.12
CloudFlare 사용시 방문자 IP와 SSL 접속여부가 정확하게 파악되지 않는 문제 해결법 [4] 기진곰 2015.07.12
DB에서 직접 시퀀스 생성하기 [3] 기진곰 2015.07.18
레이아웃 메뉴에서 메뉴옆에 글수 표시하기 반걸 2015.07.20
[실험팁] XE 고용량/큰사진 썸네일 깨지는 것 해결 socialskyo 2015.07.20
새로고침 없는 실시간 웹서비스를 위한 기술과 간략한 역사(?) [1] onTrust 2015.07.27
member 모듈 메일인증을 사용할때 모바일 기본스킨에서 회원가입 후 이메일 발송 안내 띄우기 [2] file 후하니 2015.08.01
CentOS 7 : Apache2.4 + PHP5.6 + MariaDB + VSFTP 설치하기 [6] 우리아기 2015.08.06