2SIS님 글에 따르면 '권한이 없습니다'라는 메세지가 출력되는 페이지가 대충
1. message>skin>dafault(기본)>system_message.html
2. member>skin>dafault(기본)>login_form.html
3. board>skin>설정한 게시판스킨>message.html
이 있고
추가로, 다운로드 등의 액션에서도 'alert'창이 나타나는 등(XETOWN의 경우)
발생하는 상황에 따라 표시되는 형식(?)이 제각각이고,
1,2번의 경우 로그인폼은 표시되지만, 소셜로그인을 이용한다해도 소셜로그인폼으로 표시되지는 않는듯해서..
해당 상황들에서 동일하게..
[상황에 맞는 메세지 출력]
[(레이아웃등에서 실제로 쓰고 있는) 로그인 폼 출력]
(만약 로그인한 상태라면 로그인폼은 출력하지 않음)
식으로 변경하려면
많이 어려울까요...?
제가... 3번의 보드스킨도 수정해보려다 이렇게
실패한지라... 어려울꺼라는건 알지만서도...ㅠㅠ
댓글 7
저는 socialskyo님의 팁으로 해결했습니다.
return $this->dispBoardMessage('msg_not_permitted'); 이것들 전부
return $this->setRedirectUrl('?act=dispMemberLoginForm') 으로 변경시켜보시면 될거에요.
라이믹스는 오류메세지 + 오류항목 노출이라..괜찮긴한데... 이건 어떤지 모르겟네요.
어찌됬던 사용자에게 메세지는 전달해줘야할텐데 말이에요.
해결방법 나왔습니다
이게 XE 구조상 참 어려운 일이죠. 각 모듈마다 독자적인 오류 메시지를 출력하다보니, message 모듈에서 이를 유연하게 다루지 못합니다. 예를 들어, 글쓰기 권한을 특정그룹에 둔 경우 "권한이 없습니다." 라고 나오지만, 로그아웃 버튼이 노출된다던지...
그렇다고, 기본 스킨이나 서드파티 스킨에서 일일이 모든 경우의 수를 계산해서 디자인을 변경하는 것은 불가능합니다.
중간에 애드온이나 모듈이 끼어들어서 다른 동작을 할 수 있기 때문이죠.
그래서 member 모듈이나 board 모듈에서는 오류 메시지 출력 부분이 따로 분리되어 있는 것이죠.
근본적인 해결책은 오류 메시지 출력을 무조건 한 곳을 통해서만 하는 것인데, 현재 XE 구조상... 싹 갈아엎어야 하는 부분이라 현실적으로는 어렵죠.
자세한 설명 감사합니다 (__)