글
일반 사용자에게는 쓰기 폼만 보여주고 목록은 관리자만 보게 한다면
무언가를 센청 혹은 제출하는 메뉴를 매우 쉽게 만들 수 있습니다.
게시판 입장에서 보자면
일반 회원 - 쓰기만
관리자 - 모든 기능
이렇게 정리가 되는 것이죠.
제로보드 기본 스킨을 가지고 구현해 보겠습니다.
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" />
이렇게 바꿉니다.
이렇게 해 두면 올라오는 모든 게시물이 비밀글 & 다른 비밀번호를 가지게 되어
혹시라도 있을지 지 모르는 상황에서도 어느정도 게시물 내용을 보호할 수 있게 됩니다.
'tiptech' 카테고리의 다른 글
플래시로 페이지에 랜덤 이미지 돌리기 (2) | 2008.04.05 |
---|---|
메뉴에 마우스 갖다대면 뜨는 메뉴 만드는 방법 (1) | 2008.04.05 |
Zbxe 서버 이전하기 (2) | 2008.04.05 |
게시판 모듈 - 글 목록을 조회수 별로 색상 지정하기 (1) | 2008.04.05 |
PNG 를 Background 로 쓰자 (1) | 2008.04.05 |
특정 게시판, 업로드된 그림 자동으로 본문에 출력하기 (1) | 2008.04.05 |
업로드된 그림 자동출력 (1) | 2008.04.05 |
게시판 목록에 확장 변수를 출력하기 (1) | 2008.04.05 |
좌측 메뉴 이미지로 예쁘게 꾸미기 (1) | 2008.04.05 |
여러 개의 메뉴 달기 (0) | 2008.04.05 |
RECENT COMMENT