웹마스터 팁
까오천사님의 만기일 팁을 1.2.4에 맞게 수정했어요.
2009.08.27 12:57
빨간색 글씨가 추가 혹은 수정된 부분입니다.
1. XE의 DB에 member 테이블에 expiredate 필드 추가
mysql query : ALTER TABLE `xe_member` ADD `expiredate` VARCHAR( 8 ) NULL ;
2. common/lang/ko.lang.php
155 $lang->last_login = '최근로그인'; 다음 라인에
156 $lang->expiredate = '만기일'+
'+
'; 추가
3. modules/member/lang/ko.lang.php
187 $lang->about_limit_date = '지정된 일자까지 해당 사용자는 로그인을 할 수 없습니다'; 다음 라인에
188 $lang->about_expiredate = '지정된 일자가 지나면 사용자는 특정회원 그룹에서 삭제됩니다'; 추가
4. modules/member/queries/insertMember.xml
25 <column name="extra_vars" var="extra_vars" /> 다음 라인에
26 <column name="expiredate" var="expiredate" /> 추가
5. modules/member/queries/updateMember.xml
21 <column name="extra_vars" var="extra_vars" /> 다음 라인에
22 <column name="expiredate" var="expiredate" /> 추가
6. modules/member/schemas/member.xml
16 <column name="limit_date" type="date" /> 다음 라인에
17 <column name="expiredate" var="expiredate" /> 추가
7. modules/member/skins/default/member_info.html
60 <!--@if($member_info->member_srl == $logged_info->member_srl || $logged_info->is_admin == 'Y' )-->
61 <tr>
62 <th><div>{$lang->last_login}</div></th>
63 <td>{zdate($member_info->last_login,"Y-m-d H:i")}</td>
64 </tr> 다음라인에
65 <!-- 만기일 수정 -->
66 <tr>
67 <th scope="row">{$lang->expiredate}</th>
68 <td>{zdate($member_info->expiredate,"Y-m-d")}</td>
69 </tr> 추가
70 <!--@end-->
8. modules/member/tpl/filter/insert.xml
26 <param name="limit_date" target="limit_date" /> 다음 라인에
27 <param name="expiredate" target="expiredate" /> 추가
9. modules/member/tpl/filter/update_member.xml
24 <param name="limit_date" target="limit_date" /> 다음 라인에
25 <param name="expiredate" target="expiredate" /> 추가
10. modules/member/tpl/insert_member.html
113 <tr>
114 <th scope="row"><div>{$lang->limit_date}</div></th>
115 <td>
116 <input type="hidden" name="limit_date" id="date_limit_date" value="{$member_info->limit_date}" />
117 <input type="text" class="inputDate" value="{zdate($member_info->limit_date,'Y-m-d')}" readonly="readonly" />
118 <p class="clear">{$lang->about_limit_date}</p>
119 </td>
120 </tr> 다음 라인에
121 <tr>
122 <th scope="row"><div>{$lang->expiredate}</div></th>
123 <td>
124 <input type="hidden" name="expiredate" id="date_expiredate" value="{$member_info->expiredate}" />
125 <input type="text" class="inputDate" value="{zdate($member_info->expiredate,'Y-m-d')}" readonly="readonly" />
126 <p class="clear">{$lang->about_expiredate}</p>
127 </td>
128 </tr>
11. modules/member/tpl/member_info.html
125<tr>
126 <th scope="row"><div>{$lang->limit_date}</div></th>
127 <td>
128 <!--@if($member_info->limit_date)-->
129 {zdate($member_info->limit_date,"Y-m-d H:i")}
130 <!--@end-->
131
132 </td>
133</tr> 다음 라인에
134<tr>
135 <th scope="row">{$lang->expiredate}</th>
136 <td>
137 <!--@if($member_info->expiredate)-->
138 {zdate($member_info->expiredate,"Y-m-d")}
139 <!--@end-->
140 </td>
141</tr>
12. modules/member/tpl/member_list.html
48 <th scope="col" class="quarter_wide"><div>{$lang->signup_date}</div></th> 다음 라인에
49 <th scope="col" class="quarter_wide"><div>{$lang->expiredate}</div></th> 추가
63 <td>{zdate($val->regdate,"Y-m-d H:i:s")}</td> 다음 라인에
64 <td>{zdate($val->expiredate,"Y-m-d")}</td> 추가
13. 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');
14. modules/member/member.controller.php
517 // 필수 정보들을 미리 추출
518 $args = Context::gets('user_id','user_name','nick_name','homepage','blog','birthday','email_address','password',
'allow_mailing','expiredate');
1355 // denied_date가 현 시간보다 적으면 알림
1356 if($member_info->limit_date && substr($member_info->limit_date,0,8) >= date("Ymd")) return new
Object(-1,sprintf(Context::getLang('msg_user_limited'),zdate($member_info->limit_date,"Y-m-d"))); 다음 라인에
1357
1358 // expiredate 가 현 시간보다 적으면 특정회원 그룹 삭제 By RoK.KIM
1359 if($member_info->expiredate && $member_info->expiredate < date("Ymd")) {
1360 $rok_args->member_srl = $member_info->member_srl;
1361
1362 //TEST 1.관리회원,2.준회원,3.정회원,3620(회원A)~3629(회원J).
1363 for($ii=3620;$ii<=3629;$ii++)
1364 {
1365 $rok_args->group_srl = $ii;
1366 $output = executeQuery('member.deleteMemberGroupMember',$rok_args);
1367 }
1368
1369 if(!$output->toBool()) return $output;
1370 } 추가
참고 자료 : 까오천사, XE 팁,http://www.xpressengine.com/15991602