XpressEngine - 팁 공유 게시판
XpressEngine과 관련된 팁이나 강좌를 소개하는 게시판입니다.
자신이 생각하기에는 아주 사소한 내용이라도 누군가에게는 큰 도움이 될 수 있습니다.
제로보드4 버전의 팁을 공유하고 싶으시다면 여기로~
자신이 생각하기에는 아주 사소한 내용이라도 누군가에게는 큰 도움이 될 수 있습니다.
제로보드4 버전의 팁을 공유하고 싶으시다면 여기로~
글수 611
일반 사용자에게는 쓰기 폼만 보여주고 목록은 관리자만 보게 한다면
무언가를 센청 혹은 제출하는 메뉴를 매우 쉽게 만들 수 있습니다.
게시판 입장에서 보자면
일반 회원 - 쓰기만
관리자 - 모든 기능
이렇게 정리가 되는 것이죠.
제로보드 기본 스킨을 가지고 구현해 보겠습니다.
1. 쓰기 페이지의 주소
신청 게시판의 mid가 qna라면, 신청 메뉴에
/zbxe/?mid=qna&act=dispBoardWrite
이렇게 링크를 걸면 됩니다.
2. 권한 설정
게시판 권한 설정에서 쓰기를 제외한 모든 권한을 관리자에게만 줍니다.
이렇게 하지 않으면 위의 게시판의 경우 일반 사용자가
/zbxe/qna 이렇게 접속해서 다 볼 수도 있겠죠.
3. 스킨 수정 1 - 글 작성 후 안내 메시지
이제 일반 사용자가 글을 작성하면
쓰기 버튼을 누른 직후 어떠한 메시지도 없이
'권한이 없습니다'라는 메시지를 접하게 될 것입니다.
오류가 있거나 매우 불친절한 홈페이지라고 생각하게 되겠죠.
수정해봅시다.
기본 스킨의 board.js 파일을 열면 맨 먼저 나오는 함수가 completeDocumentInserted()입니다.
이 함수 마지막 줄에 location.href = url; 이라고 나오는 부분을 주석 처리합니다.
그리고 이렇게 써넣습니다.
//location.href = url;
alert('신청이 완료되었습니다.');
completeReload(ret_obj);
이제 사용자가 쓰기 버튼을 누르면 위에 적은 안내 문구가 뜬 후 다시 쓰기 페이지로 돌아오게 될 것입니다.
4. 스킨 수정 2 - 비밀번호 제거
이런 일회성 폼에는 비밀번호가 필요 없습니다.
제거하는 방법은 두가지가 있는데,
하나는 그냥 write_form.html에서 비밀번호 필드를 삭제하고
filter/insert.xml에서 패스워드 항목을 찾아 required="true"라는 부분을 제거하는 것입니다.
하지만 이렇게 해서 비밀번호 없는 게시물을 만든다는 게 별로 좋은 발상이 아닌 것 같습니다.
만에 하나 실수로 스킨을 변경한다거나 할 경우 무슨 일이 일어날지 모르기 때문입니다.
그래서 여기서는 다른 방법을 쓰겠습니다.
write_form.html을 열고
<input type="password" name="password" value="" id="userPw" class="userPw inputTypeText" />
이것을
<input type="hidden" name="password" value="{@$time = time()}{$time}" />
이렇게 바꿉니다.
또 is_secret 옵션을 입력받는 부분을 찾아
<input type="hidden" name="is_secret" value="Y" />
이렇게 바꿉니다.
이렇게 해 두면 올라오는 모든 게시물이 비밀글 & 다른 비밀번호를 가지게 되어
혹시라도 있을지 지 모르는 상황에서도 어느정도 게시물 내용을 보호할 수 있게 됩니다.
무언가를 센청 혹은 제출하는 메뉴를 매우 쉽게 만들 수 있습니다.
게시판 입장에서 보자면
일반 회원 - 쓰기만
관리자 - 모든 기능
이렇게 정리가 되는 것이죠.
제로보드 기본 스킨을 가지고 구현해 보겠습니다.
1. 쓰기 페이지의 주소
신청 게시판의 mid가 qna라면, 신청 메뉴에
/zbxe/?mid=qna&act=dispBoardWrite
이렇게 링크를 걸면 됩니다.
2. 권한 설정
게시판 권한 설정에서 쓰기를 제외한 모든 권한을 관리자에게만 줍니다.
이렇게 하지 않으면 위의 게시판의 경우 일반 사용자가
/zbxe/qna 이렇게 접속해서 다 볼 수도 있겠죠.
3. 스킨 수정 1 - 글 작성 후 안내 메시지
이제 일반 사용자가 글을 작성하면
쓰기 버튼을 누른 직후 어떠한 메시지도 없이
'권한이 없습니다'라는 메시지를 접하게 될 것입니다.
오류가 있거나 매우 불친절한 홈페이지라고 생각하게 되겠죠.
수정해봅시다.
기본 스킨의 board.js 파일을 열면 맨 먼저 나오는 함수가 completeDocumentInserted()입니다.
이 함수 마지막 줄에 location.href = url; 이라고 나오는 부분을 주석 처리합니다.
그리고 이렇게 써넣습니다.
//location.href = url;
alert('신청이 완료되었습니다.');
completeReload(ret_obj);
이제 사용자가 쓰기 버튼을 누르면 위에 적은 안내 문구가 뜬 후 다시 쓰기 페이지로 돌아오게 될 것입니다.
4. 스킨 수정 2 - 비밀번호 제거
이런 일회성 폼에는 비밀번호가 필요 없습니다.
제거하는 방법은 두가지가 있는데,
하나는 그냥 write_form.html에서 비밀번호 필드를 삭제하고
filter/insert.xml에서 패스워드 항목을 찾아 required="true"라는 부분을 제거하는 것입니다.
하지만 이렇게 해서 비밀번호 없는 게시물을 만든다는 게 별로 좋은 발상이 아닌 것 같습니다.
만에 하나 실수로 스킨을 변경한다거나 할 경우 무슨 일이 일어날지 모르기 때문입니다.
그래서 여기서는 다른 방법을 쓰겠습니다.
write_form.html을 열고
<input type="password" name="password" value="" id="userPw" class="userPw inputTypeText" />
이것을
<input type="hidden" name="password" value="{@$time = time()}{$time}" />
이렇게 바꿉니다.
또 is_secret 옵션을 입력받는 부분을 찾아
<input type="hidden" name="is_secret" value="Y" />
이렇게 바꿉니다.
이렇게 해 두면 올라오는 모든 게시물이 비밀글 & 다른 비밀번호를 가지게 되어
혹시라도 있을지 지 모르는 상황에서도 어느정도 게시물 내용을 보호할 수 있게 됩니다.
Setzer Gabbiani
2008.03.20 14:35:41 (*.169.4.113)
안녕하세요~
와~ 정말 유용한 내용입니다.그런데요 3번항목 스킨수정에서요 신청이 '완료되었습니다' 하고 다시 신청서 항목이
있는곳으로 가게되면 좀 부자연스러운거같은데요...
필요에 따라서 다른 페이지로 가는 방법은 없을까요 url을 넣어서 그 곳으로 가게요~
그리고 잘 몰라서 그러는데요 주석처리 하는부분 코드를 좀더 상세히 가르쳐 주시면 고맙겠네요...
좋은 정보 감사합니다~ ^^
2008.03.26 15:08:55 (*.55.81.95)
감사합니다 !!!좋은 팁인듯합니다...폼작성하는 모듈이 나오길 기다렸지만 ....이것으로 만족합니다...~~~멋져부려~~멋져부러
2008.03.31 00:19:56 (*.86.51.9)
그런데 적용해보니..../zbxe/?mid=qna&act=dispBoardWrite
로 연결하면 2차메뉴가 나오지 않는데 어떻게 해야하나요 저만 그런가..ㅡㅡ;;
로 연결하면 2차메뉴가 나오지 않는데 어떻게 해야하나요 저만 그런가..ㅡㅡ;;
2008.05.26 20:28:06 (*.64.43.202)
너무나도 감사히 잘 사용하고 있습니다..
위의 착한악마님이 말씀하신것처럼, 적용을 하면, 2차메뉴가 나오지 않는데....어떻게 해야하나요..????
2008.05.26 20:53:53 (*.64.43.202)
방법을 찾았습니다.....
http://www.zeroboard.com/16707719 이글을 참고하시구여....여기에 댓글로 방법을 간략하게 적었습니다..
저같이 이것때문에 많이 고생하셨던분들.........바로 적용해서 사용해 보세요.....
방법을 알려주신 분들께 감사드립니다...
http://www.zeroboard.com/16707719 이글을 참고하시구여....여기에 댓글로 방법을 간략하게 적었습니다..
저같이 이것때문에 많이 고생하셨던분들.........바로 적용해서 사용해 보세요.....
방법을 알려주신 분들께 감사드립니다...


