본 홈페이지는 무료회원가입 후 이용하실 수 있습니다.

prev 2025. 06 next
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
글 수 314
2008.10.17 23:11:18 (*.74.106.137)
314


http://www.zeroboard.com/?mid=zbxe_user_tip&search_target=title&search_keyword=%EB%A7%8C%EA%B8%B0%EC%9D%BC&document_srl=15991602


[레벨:0][레벨:1]까오천사
2007.11.12 18:44:54 (*.194.55.245)
2096
7 / 0

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

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

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

댓글
2008.10.17 23:11:36 (*.74.106.137)
[레벨:30]운영자
7번하구 8번 라인이 잘안보이는데요..7번,8번의 젤 뒤에 'expiredate' 있어요.. 라인잘보시고 젤 뒤에 추가해주셔야 합니다.
왜 게시판에서 그부분이 잘렸는지 모르겠네요
댓글
2008.10.17 23:13:05 (*.74.106.137)
[레벨:30]운영자
위 내용에 수정해야할 파일 중에 zbxe/modules/member/queries/updateMember.xml 가 빠져있습니다.

정말 어렵게 알아내신 정보를 이렇게 알려주셔서 정말 고맙습니다.

저처럼 고생하실뻔한 많은 분들께서 님의 도움으로 한결 수월하게 이 팁을 활용하시게 될 거라 믿습니다.

저도 앞으로 많이 배울수록 많이 공유할 수 있는 사람이 되도록 노력하겠습니다. ^^


(참고로 저같은 완전 초보님들을 위해 위 파일 수정 사항을 적어드립니다. 아래 빨간 부분을 추가하시면 됩니다. ^^)

 18       <column name="limit_date" var="limit_date" />
 19       <column name="expiredate" var="expiredate" />
댓글
2009.03.15 23:53:56 (*.35.19.8)
[레벨:30]운영자
http://www.xpressengine.com/zbxe_qna/16667518

[레벨:0][레벨:6]id: RainSky
2008.03.30 17:12:38 (*.53.207.231)
892
1 / 0

까오천사님께서 팁란에 적어주신 내용입니다.

http://www.zeroboard.com/15991602

정회원에게 만기일을 주어서 그 날짜가 되면 자동으로 정회원 권한이 없어지는 팁이지요.

이 팁을 적용해보려고 몇 번을 시도하다가 번번이 실패를 했답니다.

그래서 그냥 일일이 수동작업을 하다가 오늘 다시 한 번 도전해 보았는데요.

여전히 안 되네요. 분명 모든 파일 다 제대로 수정했고, 필드 추가도 했는데 왜 만기일을 등록해도 저장이 안 되는지 모르겠습니다.

혹시 이 팁을 성공적으로 적용하신 분 계시다면 그 방법 좀 알려줄 수 있으신지요? 부탁드립니다.




zbXE로 인해 나의 꿈에 한 걸음 더 가까워질 수 있게 되었습니다. 정말 고맙습니다.
답글
2008.03.31 12:21:01 (*.246.251.109)
[레벨:0][레벨:6]必得力
(추천수: 1 / 0)

update 하는 xml 파일이 하나 빠져있어서 안되는 거예요. ^^
확인해 보세요.

답글
2008.03.31 12:24:16 (*.246.251.109)
[레벨:0][레벨:6]必得力
(추천수: 1 / 0)

zbxe/modules/member/queries/updateMember.xml

전 밤 꼬박 새우고 알아냈습니다. 밥 사세요. ㅋㅋ

아마 이거 성공하고 나면 session 바로 갱신되게 하는게 문제일겁니다.

답글
2008.03.31 12:50:41 (*.53.219.108)
[레벨:0][레벨:6]id: RainSky
必得力님, 답변 주셔서 너무 고맙습니다. 안 그래도 머리가 터지는 줄 알았습니다.

워낙에 초보라 말씀해주신 파일을 제대로 수정할 수 있을지 잘 모르겠지만, 일단 숨통이 트이네요. ^^

저는 밤 새우면서도 답을 못 찾았네요.  정말 고생해서 얻게된 정보를 이렇듯 공유해주셔서 너무 감사드리구요.

session 갱신 문제는 일단 이 문제부터 해결한 후 고민해봐야겠군요.

정말로 밥을 사드리고 싶은데... 어떻게 사드려야할지...? ^0^;;;

답글
2008.03.31 12:52:58 (*.246.251.109)
[레벨:0][레벨:6]必得力
전 중국 상해에 있습니다. 나중에 상해 오시면 밥 사주세요. ^^

궁금한거 있으면 쪽지 주세요.
답글
2008.03.31 12:59:02 (*.53.219.108)
[레벨:0][레벨:6]id: RainSky
방금 성공했습니다. ^0^ 너무너무 기뻐요!

emoticon

정말 정말 감사드립니다.

며칠을 고생했는데요. 님 덕분에 한 방에 해결이 되었네요. ^^

이제 만기일을 내일로 잡아서 한 번 테스트해봐야겠네요. session 이란 게 뭐가 문제인지도 그럼 알 수 있겠죠.


상해까지 갈 일이 있을지 모르겠지만, 먼 곳에서 이렇게 도움 주셔서 정말 고맙습니다. ^0^

찾다찾다 답 못찾겠으면 그 때 쪽지 띄우도록 하겠습니다.

좋은 하루 보내세요! ^0^


emoticon
답글
2008.03.31 12:58:53 (*.246.251.109)
[레벨:0][레벨:6]必得力
(추천수: 1 / 0)
참! 하나 주의하실 점이 있습니다.

까오천사님 팁을 그대로 적용하면 만기일이 지날 경우 로그인 할 때 마다 준회원 그룹에 추가되는 문제점이 있습니다.
반드시 만기일이 지나고 현재 정회원일 경우 준회원 그룹에 추가하도록 고쳐야합니다.
답글
2008.03.31 13:03:58 (*.53.219.108)
[레벨:0][레벨:6]id: RainSky
앗! 답글 적는 사이에 또 이런 팁을 주셨군요. (감사! ^0^)

그런데 한 회원이 준회원과 정회원 두 가지 그룹에 동시에 속할 수 있지 않나요?

어차피 정회원은 준회원의 권한을 그대로 가진 상태에서 그 상위 권한을 지니는 것이니까

굳이 준회원 그룹에서 벗어났다가, 나중에 정회원이 삭제될 때 새롭게 준회원에 속하도록 하는 것이 더 번거로울 수도 있다는

생각이 드는데요.그냥 준회원 권한은 그대로 주~욱 두고, 정회원 기능만 주었다가 삭제하는 편이 낫지 않을까요?


emoticon  (사실은 제가 워낙에 초보라 말씀하신 추가 설정을 할 자신이 없어서리... ^^;;;)


PS : 아! 그리고 전해주신 팁 말입니다. 까오천사님의 원본 글에 댓글로 적어주시면 안 될까요?

저처럼 고생하게될 다른 분들을 위해서 말입니다. 그럼 아마 많은 분들께서도 저처럼 님에게 고마워할 거라 생각합니다. ^^

기쁜 마음에 제가 가서 님께서 알려주셨다는 댓글을 적을까 하다가, 아무래도 저보다는 님께서 직접 적어주시는 것이 좋을 것 같아

이렇게 부탁을 드려봅니다. ^^
답글
2008.03.31 13:10:38 (*.246.251.109)
[레벨:0][레벨:6]必得力
정회원 그룹에서 삭제만 하고 준회원 그룹에 추가하지 않을 경우는 관계없습니다.

session 문제는
만기일이 지나고 첫 로그인 할 때 만기일이 지났기 때문에 정회원 권한이 없어져야 하는데 까오천사님의 팁만으로는 그렇게 되지 않습니다.
로그아웃 했다가 다시 로그인 해야지 적용됩니다.

이 문제 때문에 이 곳에 질문도 했지만 답변해 주시는 분이 없더군요. ㅠㅠ
답글
2008.03.31 13:09:06 (*.53.219.108)
[레벨:0][레벨:6]id: RainSky
ㅎㅎㅎ 위 댓글 적고 나서 확인해보니 벌써 까오천사님의 원본 글에 댓글 남겨주셨더군요. 역시... ^^
번호
제목
글쓴이
14 동별대표의해임_임원해임관련_규약발췌 file
[레벨:30]운영자
2009-03-19 1561
13 헤더드크립_상단 안내
[레벨:30]운영자
2009-02-15 255
12 아이프렘
[레벨:30]운영자
2009-02-15 268
11 업무관련 홈피링크 자바스크립트_html편집기
[레벨:30]운영자
2009-02-15 276
10 업무관련 홈피링크 자바스크립트
[레벨:30]운영자
2009-02-15 261
9 주택관리사협회 링크 자바스크립트
[레벨:30]운영자
2009-02-15 334
8 상품소개스킨 설명
[레벨:30]운영자
2009-02-08 319
7 다기능 텍스트 편집기_에크로에디트(acroedit)_공개무료
[레벨:30]운영자
2009-02-01 998
6 회원에게 만기일 주기(1원짜리 팁)까오천사
[레벨:30]운영자
2009-02-01 429
5 왼쪽메뉴줄이고 오른쪽에 박스만들어 내용쉽게넣기_레이아웃
[레벨:30]운영자
2009-01-31 464
4 플래닛주소
[레벨:30]운영자
2008-12-25 245
회원에게 만기일 주기 3
[레벨:30]운영자
2008-10-17 314
2 메뉴에 플래시 적용하기
[레벨:30]운영자
2008-08-16 343
1 레이아웃수정시 참고할 zbXe레이아웃스킨의 css와 layout 상관관계(1.0.0 기본스킨)
[레벨:30]운영자
2008-08-16 1172