메뉴 건너뛰기

XE : Xpress Engine


XE에 대한 생각! XE에 대한 공감! - XE를 사용하는 다른 사람들과 의견을 나눌 수 있는 곳입니다. 많은 의견 공유로 더 좋은 XE를 만들어 주세요.


XE 사용팁

회원 가입 임시 제한 일자 버그 수정 방법

2008.04.13 13:02

[레벨:11]껄껄껄 조회 수:6942 추천:1

제로보드 XE에는 회원 가입을 할때 임시로 제한 일자를 두는 옵션이 있습니다.

사용자 지정 1.png

바로 요거지요.

현재 제로보드 4를 사용중인데, 회원 가입을 하면 이것과 비슷하게 6시간동안 제한을 걸어두도록 하였습니다. 이렇게 하니까 지금 제로보드 닷컴에서 보이는 수많은 광고 스팸글들을 막는 효과가 있더군요. 뭐 그래도 광고글 올릴 놈들은 근성으로 기다려서 올리지만.

그런데 문제는 제로보드 XE에서 이 옵션이 제대로 작동하지 않는다는 것이었습니다. 저렇게 임시 제한 일자를 설정한 다음, 그 시간이 지난 다음에 로그인을 하려고 해도 여전히 제한 일자가 안됐다면서 로그인이 안 되더군요.

버그 신고도 몇번 하고 했는데 제로님이 다른 작업 하시느라 바쁘신지 반응도 없고, 이 기능을 쓰시는 분도 안계셔서 그런가 다른 회원분들의 반응도 없던 차에, '숙지황'님이 저와 똑같은 버그를 발견하셔서, 이 현상이 저 뿐만이 아니라 제로보드 XE의 버그라는걸 확신하게 됐습니다. (관련 링크: http://www.zeroboard.com/16714033)

서론이 길었는데, 이것을 수정하여 이 기능을 제대로 써보자는게 목적입니다. 수정해야 할 파일은 zbxe\modules\member 디렉토리에 저장되어 있는 member.controller.php 입니다.

1.0.2 버전 기준으로 1279번째 줄을 보면 'denied_date가 현 시간보다 적으면 알림'이라는 주석이 있습니다. 그 바로 아래줄을 수정해야 합니다. denied_date라던가 그 아래줄의 limit_date 같은 이름을 보면 대충 감이 오시겠지요.

원래는 이렇게 되어 있습니다.

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")));

저는 이렇게 고쳤습니다.

if($member_info->limit_date && $member_info->limit_date >= date("YmdHis")) return new Object(-1,sprintf(Context::getLang('msg_user_limited'),zdate($member_info->limit_date,"Y년 m월 d일 H시 i분 s초")));

2군데를 고쳤는데, data("Ymd")를 data("YmdHis")로 고친 것과, limit_date,"Y-m-d"를 imit_date,"Y년 m월 d일 H시 i분 s초"로 고친 것입니다.

제가 추측한 이 버그의 원인은 이렇습니다. 위에서 수정한 것은 doLogin 함수입니다. 말 그대로 로그인을 하는 함수일 것으로 보여지는데, 여기서는 제한 일자(Limit_date)의 값을 Ymd 형식(20080413 같은)으로 검사합니다.

문제는 insertMember 함수, 즉 회원 가입을 하는 함수에서는 제한 일자를 YmdHis 형식(20080413130001 같은)으로 저장한다는 것이지요. 1375번째 줄을 보면 '임시 제한 일자가 있을 경우 제한 일자에 내용 추가'라는 주석 밑에 해당 코드가 있습니다.

그래서 둘 다 똑같이 YmdHis로 바꾼 것입니다. 물론 insertMember쪽을 Ymd로 바꿔도잘 작동할 것이라고 생각하지만,시-분-초까지 따지는게더 정확할것 같아서 이렇게 했습니다.

그리고 기존에 제한 일자를 그냥'2008-04-13'이런 식으로 표시하길래, Y년 m월 d일 H시 i분 s초를 넣어서 '2008년 4월 13일 1시 00분 00초'라는 식으로 나오도록 바꿨습니다. 기능과 관련은 없겠지만 이게더 보기 좋을것 같아서 말입니다.

테스트를 해보고 잘 작동하는것 같아서 올립니다. 다만 테스트를 하는데 걸리는 시간이 무조건 최소 하루이다 보니 보다 안정적인 테스트는해볼 여유가 없군요.
번호 제목 글쓴이 날짜 조회 수
공지 질문은 묻고 답하기로~ TSCMD 2012.02.03 10320
274 게시판을 외부레이아웃에 넣기 [4] file [레벨:2]박봉수610 2008.04.03 8481
273 환율 계산 팝업창 띄우기 [9] file [레벨:7]RainSky 2008.04.03 9016
272 플래시로 페이지에 랜덤 이미지 돌리기 [3] [레벨:8]☜ TeRy ☞ 2008.04.04 8222
271 최근 이미지 목록 + 라이트박스 [6] file [레벨:7]베니 2008.04.04 7291
270 사각박스 코너를 이미지없이 둥글게 만드는법 [5] [레벨:22]느까끼 2008.04.07 8404
269 외부페이지에서 매개변수 사용하기 [1] [레벨:1]JnCsoft 2008.04.07 6458
268 플래시 컨트럴 활성화하라는 메시지 없애기 [4] file [레벨:3]달구벌 2008.04.08 5688
267 에디터 사용 옵션으로 처리하기[BOARD MODULE][ver 1.0.1][Page4-4] [레벨:12]대암지기 2008.04.08 5498
266 에디터 사용 옵션으로 처리하기[EDITOR MODULE][ver 1.0.1][Page4-3] [레벨:12]대암지기 2008.04.08 4969
265 에디터 사용 옵션으로 처리하기[기타 MODULE][ver 1.0.1][Page4-2] [레벨:12]대암지기 2008.04.08 4840
264 에디터 사용 옵션으로 처리하기[안내][ver 1.0.1][Page4-1] [2] file [레벨:12]대암지기 2008.04.08 5932
263 DIV라운드 박스를 제로보드 스킨에 적용하는 방법 [4] file [레벨:10]팔공산 2008.04.09 6009
262 제로보드 설치 후 뭘 어떻해야 할지 깜깜할때 [레벨:1]dharma0999 2008.04.09 5378
261 [3-1차 수정]확장변수 자유롭게 내 마음대로 게시글 리스트에 표현 합시다!![ver1.0.1] [16] file [레벨:12]대암지기 2008.04.09 9231
260 신청서 양식의 게시판에서 관리자가 아니면 게시판 리스트 안보이게 하기. [1] [레벨:4]burster 2008.04.10 1492
259 404 에러 페이지를 만들어 보자 [2] [레벨:3]hangoon 2008.04.11 82927
258 큰이미지 자동 리사이즈 안되게 하기 + 다른 갤러리 달아보기 [3] file [레벨:3]Clanss 2008.04.12 8870
257 글을 읽을때 마다 조회수가 증가 하는 팁 (1.0.0↑) [5] [레벨:3]SKYMARU 2008.04.12 7090
256 블로그 카테고리 클릭시 카테고리별 리스트 형태 바꾸는 팁 [1] [레벨:2]조성우371 2008.04.13 8841
» 회원 가입 임시 제한 일자 버그 수정 방법 [2] file [레벨:11]껄껄껄 2008.04.13 6942