웹마스터 팁
까오천사님의 만기일 팁을 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
댓글 15
-
불바람
2009.08.27 18:53
-
도파
2009.08.27 19:21
까오천사님의 공이 더 크죠.. ㅎㅎ
-
도파
2009.08.30 18:42
이 기능을 모듈이나 애드온 형태로 만들 수 있으면 좋겠는데..
실력이 미천하지만 도전할 수 있도록 조언 좀 해주세요~~~
-
주용덕
2009.08.30 21:17
너무 기다리고 있었습니다.
말씀하신것처럼 모듈이나 애드온형태면 진짜 좋겠는데요
위 처럼 파일들을 수정해서 쓰다가 xe 새로론 버젼을 업그래이드하면 파일들을 다시 수정해서 써야 되는지요?
미안 합니다 제로보드는 수년째 쓰고 있지만 늦깍이 초보라서....
-
도파
2009.08.30 21:31
현 상황에서는 업그레이드 시에 해당 코드 중에 변경된 것이 있다면 수정을 해 주어야 합니다.
-
신기루418
2010.01.29 18:55
이거..준회원,정회원,특별회원 그룹에 모두 가입되 있을경우 그룹별 만기일 지정이 가능한가요?
-
도파
2010.03.13 00:29
가능합니다. 하지만 코드를 추가해야 할 것 같네요.
-
promise262
2010.03.10 00:49
우선먼저 노고에 감사드리면서....
각각의 게시판에 각각의 회원 그룹을 지정하고
게시판별로 만기일을 지정하고 싶습니다.
각 그룹별로 만기일을 지정할 수 있는지요?
-
도파
2010.03.13 00:30
가능합니다. 하지만 코드를 추가해야 할 것 같네요.
-
도파
2010.03.13 00:31
현재 1.4.0.9에서도 잘 쓰고 있습니다. 참고하세요.
-
띵띵콩
2010.03.19 19:47
안녕하세요. 님께서 올려주신 파일받아 설치했는데요.
만기일을 적용하려고 하려니깐 위 이미지처럼 이상한 메시지가 뜹니다.
-
도파
2010.04.15 00:23
먼저 체크 파랍니다.
1. db에 필드가 생성되어 있지지 확인바랍니다.(1번 항목 관련)
2. group srl 값이 적용웹에서 사용하고 있는 것으로 변경을 하셨는지 확인바랍니다.(14번 항목 관련)
추가 질문은 제 개인 블로그(http://mwave.textcube.com)에 남겨주세요.
-
으니V
2010.06.18 14:38
안녕하세요~ 제가 지금 수정하는 것과 님이 수정하신 것이 비슷해서 조언을 받을까하고 질문 올립니다.
현재 전 member테이블에 컬럼(emp_no)을 하나 추가해서 회원정보를 좀 더 받으려고 하는데요
관리자 페이지> 회원정보에서 제가 추가한 컬럼에 값을 넣고 등록을 하면 DB의 emp_no 컬럼에 값이 들어가질 않고
extra_vars에 아래와 같이 값이 저장됩니다.
O:8:"stdClass":3:{s:4:"body";s:0:"";s:7:"_filter";s:6:"insert";s:6:"emp_no";s:7:"1760501";
member/tpl/filter/insert.xml
update_member.xml
member/queries/insertMember.xml
updateMember.xml
member/schemas/member.xml
에 모두 제가 추가한 컬럼을 추가했습니다.
도대체 왜 그런 것일까요?? 조언을 부탁드리겠습니다.^^;;
-
^ ^)//
2010.11.03 14:28
우와..이런 팁이 있었군요..감사합니다.
지금 막 적용했는데...회원별로 expiredate주어지는 건 따로 각자 짜야 되느거죠?
아니면 툴이 있나요?
-
^ ^)//
2010.11.03 14:30
앗..그런데 이거 수정하고선..아래 오류가 뜨네요..
-dispMemberInfo-
Parse error: syntax error, unexpected ',' in /home/hosting_users/lanaschool/www/xe/classes/template/TemplateHandler.class.php(515) : eval()'d code on line 73
버젼이 1.4.1.1인데 그래서 나는 걸까요?
제목 | 글쓴이 | 날짜 |
---|---|---|
카운터를 만들어봅시다~ (수정본) [181] | zero | 2000.03.08 |
MYSQL Query의 간단한 사용법 [82] | zero | 2000.03.06 |
새로운 뉴스티커 [1] | 아렌티 | 2006.04.25 |
문자열 길이(byte)에 따라 자르기... | 행복한고니 | 2002.10.11 |
textarea 입력받는 글자수 제한하는 스크립트 [5] | 오기 | 2002.01.17 |
자동 스크롤 메뉴 (끄기 기능, 무한 스크롤 X) [6] | ☺심심 | 2004.05.02 |
레이아웃 편집, 게시판 상/하단 내용에 위젯 스타일 적용하기 [2] | LutZ | 2010.09.12 |
큐브리드(CUBRID) 초보자 학습 자료 및 유용한 링크 정리 | 면스판 | 2010.11.09 |
큰 파일의 썸네일이 안생기는 경우 해결방법(수정) [12] | 얼터 | 2008.03.15 |
까오천사님의 만기일 팁을 1.2.4에 맞게 수정했어요. [15] | 도파 | 2009.08.27 |
파일 첨부 에러로 고생하시는 분 [2] | celli29 | 2010.05.11 |
회원약관 추가 [7] | 애치티 | 2009.01.15 |
레이아웃 삽입 후 최근 설문조사 가져오기 | ilovesyr | 2010.05.18 |
확장변수 다중선택에서 체크박스의 선택개수를 제한하기 [5] | 우야꼬 | 2008.05.30 |
회원에게 만기일 주기(1원짜리 팁) [17] | 까오천사 | 2007.11.12 |
APM_Setup 7 사용자중에서 첨부 파일 업로드시 100%에서 사라지는 문제 [2] | 레드파카 | 2010.01.04 |
Apache,PHP,MySQL,Zend,OpenSSL,PEAR 설치 메모 [1] | 엘카 | 2009.12.03 |
첨부파일이 용량에 따라 등록되기도 하고 안되기도 할 때 해결방법 (웹호스팅) [1] | 꽃들 | 2010.01.02 |
최신 댓글 보여주는 기능에 관련해 | 손정호547 | 2009.12.11 |
제로보드XE 외부출석부 [1] | noirzo | 2009.01.18 |
와~우!!!
정말 감사합니다.
저 한테는 정말 최고의 팁입니다.