웹마스터 팁
page_full_width" class="col-xs-12" |cond="$__Context->page_full_width">
상담/신청 (쓰기만 가능한 게시판) 만들기
2008.03.20 12:33
일반 사용자에게는 쓰기 폼만 보여주고 목록은 관리자만 보게 한다면
무언가를 센청 혹은 제출하는 메뉴를 매우 쉽게 만들 수 있습니다.
게시판 입장에서 보자면
일반 회원 - 쓰기만
관리자 - 모든 기능
이렇게 정리가 되는 것이죠.
제로보드 기본 스킨을 가지고 구현해 보겠습니다.
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" />
이렇게 바꿉니다.
이렇게 해 두면 올라오는 모든 게시물이 비밀글 & 다른 비밀번호를 가지게 되어
혹시라도 있을지 지 모르는 상황에서도 어느정도 게시물 내용을 보호할 수 있게 됩니다.
댓글 10
-
dooboo
2008.03.20 14:35
안녕하세요~와~ 정말 유용한 내용입니다.그런데요 3번항목 스킨수정에서요 신청이 '완료되었습니다'+ '+ ' 하고 다시 신청서 항목이있는곳으로 가게되면 좀 부자연스러운거같은데요...필요에 따라서 다른 페이지로 가는 방법은 없을까요 url을 넣어서 그 곳으로 가게요~그리고 잘 몰라서 그러는데요 주석처리 하는부분 코드를 좀더 상세히 가르쳐 주시면 고맙겠네요...좋은 정보 감사합니다~ ^^ -
mmx900
2008.03.21 08:55
board.js에서 location.href = url 부분의 주석을 지우지 말고
url 변수만 다른 것으로 바꿔주면 될 것 같습니다. -
미누7
2008.12.06 00:50
정말 유용한 팁이네요!! ^^ 감사합니다^^ 그런데..
주석을 지우지말고.. url 변수를 어디에 어떻게 넣어야 할런지요..
가령.. 글작성후 "신청이 완료되었습니다"라는 멘트가 나온후, 이동하고자 하는 url이.. "zbxe/elc/sample.html " 요기로 이동한다고 가정한다면..
어떻게 수정을 해줘야 하는지..
가르쳐주시면 정말 감사하겠습니다..^^ -
느까끼
2008.03.21 09:34
유용하게 사용할 수 있겠네요.^6 -
착한악마
2008.03.26 15:08
감사합니다 !!!좋은 팁인듯합니다...폼작성하는 모듈이 나오길 기다렸지만 ....이것으로 만족합니다...~~~멋져부려~~멋져부러
-
착한악마
2008.03.31 00:19
그런데 적용해보니..../zbxe/?mid=qna&act=dispBoardWrite
로 연결하면 2차메뉴가 나오지 않는데 어떻게 해야하나요 저만 그런가..ㅡㅡ;; -
정다운804
2008.05.26 20:28
너무나도 감사히 잘 사용하고 있습니다..
위의 착한악마님이 말씀하신것처럼, 적용을 하면, 2차메뉴가 나오지 않는데....어떻게 해야하나요..???? -
정다운804
2008.05.26 20:53
방법을 찾았습니다.....
http://www.zeroboard.com/16707719 이글을 참고하시구여....여기에 댓글로 방법을 간략하게 적었습니다..
저같이 이것때문에 많이 고생하셨던분들.........바로 적용해서 사용해 보세요.....
방법을 알려주신 분들께 감사드립니다... -
정자영945
2011.01.14 20:35
다잘됐는데요 이렇게 되네요. 한글이 깨져서 영문을 넣어봤는데 영어만 나오네요
xe기본게시판을 사용중입니다 board.js 내부에 일부 글씨가 깨져있던데 이파일이 잘못됐나요
해결방법좀알려주세요
-
어쿠스틱
2011.02.26 11:04
오~~너무 좋은 팁입니다. 큰 감사 드립니다.
제목 | 글쓴이 | 날짜 |
---|---|---|
이미지 삽입후 이미지 위에 노란색 박스 사라지게하는 법 [5] | dhseo | 2008.05.28 |
웹페이지에 마우스 따라다니는 예쁜 시계를 넣자 [5] | gosoo99 | 2008.04.08 |
메뉴에서 채팅방 띄우기 용도로 쓰는 스크립트 | 코아 코스튬 | 2011.01.30 |
XE 검색 속도 향상 팁(확장 변수 검색시) [5] | 명드래곤 | 2011.02.26 |
[권한이 없습니다] 권한에 따른 다른 메시지 출력하기 [10] [1] | 반도체맨 | 2008.10.03 |
상담/신청 (쓰기만 가능한 게시판) 만들기 [10] | mmx900 | 2008.03.20 |
디자인 하시는 분에게 ~ 신기한 팁 (from IE) [2] | 999 | 2011.02.23 |
관리자 아이디로 작성한 비밀글을 특정인이 볼수있도록 해주는 팁 [13] | Dreami | 2009.04.03 |
[중복일수도...] Srl 생성의 비밀???;;? [1] | RainDrop+ | 2011.02.22 |
관리권한 가져도 댓글이 수정/삭제 안 되는 경우.. [4] | sejin7940 | 2011.02.14 |
게시판모듈 글목록에서 분류명(카테고리)를 이미지로 표현하기 [4] | nalireco | 2011.01.06 |
해시로부터 주민등록번호 복호화 [2] | fallstoofast | 2008.03.12 |
IIS 7용 Rewrite | fsfsdas | 2011.02.20 |
nginx에서 대역폭 제한하기 | fsfsdas | 2011.02.20 |
MySQL db를 InnoDB로 바꾸기 (MyISAM to InnoDB) | fsfsdas | 2011.02.20 |
리눅스에서 디렉토리, 파일 용량 확인하기 | fsfsdas | 2011.02.20 |
우분투 charset을 euc-kr로 변경하기 | fsfsdas | 2011.02.20 |
우분투 10.04 LTS, 시스템 정보 보기 | fsfsdas | 2011.02.20 |
우분투 10.04 LTS, sendmail 설치 및 설정 | fsfsdas | 2011.02.20 |
우분투 10.04 LTS, SSH 사용자 접속 제한 | fsfsdas | 2011.02.20 |