웹마스터 팁
글읽기 권한 없을때 회원가입창으로 유도하는 방법 (XE1.5수정)
2011.08.23 20:18
XE 1.5 로 넘어오면서 문법 부분이 강화되었는데
아래 공개한 팁에 " 가 하나 빠져있더군요 ^^; 그래서 최신 XE 에서 오류가 났을겁니다.
아래 팁을 수정해두었으니, 이제 최신 XE 에서도 정상 작동할겁니다.
=================================================
팁의 출처는... http://sejin7940.co.kr/?mid=xe_tips&document_srl=19398&page=1&rnd=19513#comment_19513
XE 로의 사이트제작을 고민중이시면 http://sejin7940.co.kr 에 문의주세요 ^^
--------------------------------------------------------
회원제 사이트를 운영하기 위해
읽기권한 등을 회원 으로 막아둔 경우.... (등급 상관없이 '로그인'한 회원인 경우)
권한없다는 메세지만 뿌려질게 아니라
거기서 바로 회원가입창으로 넘어가게 유도할 수 있는 방법이 없을까? 라고 고민 안 해본 사람이 없을듯
별거 아니지만, 의외로 가입을 꽤 유도할 수 있는 팁인듯..
의외로 수정방법이 어렵지는 않다.
게다가 XE Core 가 아니라, Board 모듈 쪽을 고치면 되는거여서, 한번고치면 상당히 오랫동안 신경 안 써도 된다는..
modules/board/board_view.php 파일에서
function alertMessage($message)
함수를 아래걸로 통째로 변경 하면 된다.
function alertMessage($message) {
// sejin7940 수정 (시작) - 회원가입창으로 유도
if($message=="msg_not_permitted") {
$message = '회원가입 후 이용해 주세요! 회원가입하시겠습니까? '; // 경고 메세지 설정
$script = sprintf('<script type="text/javascript"> xAddEventListener(window,"load", function() { var answer = confirm("%s"); if(answer) { location.href="'.$domain.'/?mid='.Context::get("mid").'&act=dispMemberSignUpForm"}} );</script>', Context::getLang($message));
Context::addHtmlHeader( $script );
}
else {
// sejin7940 수정 (끝) - 회원가입창으로 유도
$script = sprintf('<script type="text/javascript"> xAddEventListener(window,"load", function() { alert("%s"); } );</script>', Context::getLang($message));
Context::addHtmlHeader( $script );
}
}
ps. 사실 여기에서 한발 더 나아가서...
여기저기를 조금 더 고치면.. 로그인 안 한 회원에 대한 경고문과, 그룹제한에 따른 경고문을 다르게 할 수도 있다는...
단지, 그건 고쳐야하는 곳이 많아서.. 생략~~ ㅡㅡ;
댓글 10
-
yank
2011.08.24 10:51
좋은 정보 감사합니다^^ -
엄마네과일가게
2011.08.24 14:09
오 좋습니다!! -
쭌별★
2011.08.24 18:40
너무 좋은 팁인데 제 홈페이지는 에러가 생겨서 적용을 못하는군요..ㅠ
Parse error: syntax error, unexpected ';', expecting T_FUNCTION in /home/name/public_html/modules/board/board.view.php on line 628 -
캘거리언
2012.07.07 07:25
i got the same issue with jun star
-
섬휘
2012.07.09 04:56
그대로 복사해서 엎었는데 아쉽게도 해당 구문부터 에러라고 뜨는군요.
xe코어는 최신버전입니다.
-
sejin7940
2012.07.10 12:50
" 가 하나 빠져있네요. 최신 XE에서 문법 검사가 강화되어서 에러가 발생했을겁니다. 수정해두었으니, 다시 코드를 복사해서 사용하시면 됩니다.
-
imvv99z
2012.08.14 05:24
sejin7940 감사합니다만. 1.5x 적용이안되는것같습니다. 에러가 나오는데요. 확인함더 부탁드립니당~
-
상해파
2014.03.08 18:01
$this->alertMessage('msg_not_permitted');
이것을
return $this->setRedirectUrl('?act=dispMemberLoginForm');이렇게 하면 되는군요
-
제이슨5525
2014.07.14 15:28
1.7에서 이동, 팝업 까지는 가능합니다만 안내멘트가 깨져서 나옵니다 (한글만 그런듯!)
해결 방법 없을까요?
-
최윤한
2014.08.08 15:10
좋은팁 감샇바니다.권한이 없다는건 미로그인회원일수도 있고 로그인한 회원이지만 등급이 낮아서 못볼수도 있는데 두가지 경우 다 설정할수는 없는건가요?