그누보드 특정 게시글 레벨별 열람 제한 체크박스 구현 방법
페이지 정보

본문
그누보드 게시판에서 체크박스를 통해 특정 게시글의 열람 레벨을 제한하는 설정 방법을 알아봅니다. 스킨 파일 수정 위치와 권한 체크 로직을 적용하여 원하는 기능을 구현할 수 있습니다.
그누보드 글쓰기 화면 레벨 제한용 체크박스 추가 방법
그누보드에서 관리자가 글을 작성할 때 특정 레벨(예: 3레벨 이상)만 볼 수 있도록 여분필드(wr_1)를 활용한 체크박스를 추가하려면, 사용 중인 게시판 스킨 폴더 내의 write.skin.php 파일을 수정해야 합니다.
1. 적용 위치 확인
사용 중인 테마 구조에 따라 스킨 파일의 경로가 다를 수 있으므로, PC와 모바일 환경에 맞는 경로를 각각 확인해야 합니다.
- 예시 경로:
/html/theme/사용중인테마/skin/board/basic및/html/theme/사용중인테마/mobile/skin/board/basic
2. write.skin.php 코드 추가
write.skin.php 파일 내부에서 작성완료 버튼 영역(btn_confirm write_div) 부근이나 원하는 위치에 관리자만 볼 수 있는 체크박스 코드를 삽입합니다.
<?php if($is_admin) {?>
<div class="write_div">
<input type="checkbox" name="wr_1" value="3"<?php echo ($write['wr_1'] == "3")? " checked": "";?>> 3레벨만보기
</div>
<?php endif;?>
3. 주의 사항
- 본 코드는 관리자(
$is_admin) 권한일 때만 체크박스가 노출되도록 설정되어 있습니다. - 테마를 커스텀하여 사용하는 경우, 수정 중인 스킨 파일이 실제 적용되는 게시판에서 사용하는 경로와 일치하는지 반드시 확인해야 합니다.
view.skin.php 레벨 미달자 접근 차단 방법
그누보드에서 여분필드(wr_1)를 활용해 체크박스로 설정된 레벨 제한 조건을 확인하고, 로그인한 회원의 레벨과 비교하여 접근을 차단하려면 view.skin.php 상단 또는 내용 출력 전에 권한 체크 코드를 추가해야 합니다.
적용 코드 스니펫
if (!$is_admin && $view['wr_1'] && $member['mb_level'] < $view['wr_1']) {
alert('권한이 없습니다.');
}
조건 및 동작 설명
!$is_admin: 최고관리자는 레벨 조건과 관계없이 글을 열람할 수 있도록 예외 처리를 적용합니다.$view['wr_1']: 글 작성 시 여분필드wr_1에 저장된 제한 레벨 값이 존재하는지 확인합니다.$member['mb_level'] < $view['wr_1']: 현재 로그인한 회원의 레벨(mb_level)이 설정된 제한 레벨보다 낮을 경우에만 차단 대상이 됩니다.alert('권한이 없습니다.');: 조건에 미달할 경우 경고 창을 띄우고 접근을 제한합니다.
그누보드 테마 스킨 경로 및 작동 확인 방법
코드를 수정했음에도 체크박스가 화면에 나타나지 않거나 작동하지 않을 때는 사용 중인 테마 구조와 스킨 경로를 확인해야 합니다.
1. 스킨 파일 경로 확인
사용 중인 테마를 이용하는 경우, PC와 모바일 환경에 따라 스킨 파일 경로가 다를 수 있습니다. 예를 들어 /html/theme/사용중인테마/skin/board/basic 경로뿐만 아니라 모바일용 경로인 /html/theme/사용중인테마/mobile/skin/board/basic 등 올바른 스킨 폴더의 파일을 수정했는지 점검해야 합니다.
2. 코드 삽입 위치 확인
write.skin.php 파일 내에서 폼(<form> 태그 등) 내부의 올바른 위치에 체크박스 소스 코드가 포함되어 있는지 확인해야 합니다. 작성완료 버튼 주변이나 캡차 영역 근처 등 출력 위치가 잘못되면 화면에 노출되지 않을 수 있습니다.
그누보드 레벨별 열람 제한 구현 절차
- 내 상황: 특정 게시판 글 작성 시 체크박스로 레벨별(예: 3레벨 이상) 열람 제한을 설정하려 함
- 선택 기준: 여분필드(
wr_1)와 관리자 조건문($is_admin)을 활용해 글쓰기 스킨(write.skin.php)과 보기 스킨(view.skin.php) 수정 - 다음 행동:
/theme/사용중인테마/skin/board/basic/write.skin.php파일에 관리자용 체크박스 코드 추가/theme/사용중인테마/skin/board/basic/view.skin.php상단에 레벨 비교 및 접근 차단 조건문 추가
실전 FAQ
- Q. 코드를 수정했는데 글쓰기 화면에 체크박스가 나타나지 않습니다.
- A. 사용 중인 테마 구조에 따라 스킨 파일 경로가 다를 수 있습니다. PC 및 모바일 테마 스킨 경로(
/theme/테마명/skin/board/등)가 올바른지 다시 확인하고, 폼(<form>) 내부의 올바른 위치에 코드가 삽입되었는지 점검하세요.
- A. 사용 중인 테마 구조에 따라 스킨 파일 경로가 다를 수 있습니다. PC 및 모바일 테마 스킨 경로(
- Q. 최고관리자가 아닌 일반 회원이 글을 읽으려고 할 때 어떤 기준으로 차단되나요?
- A. 로그인한 회원의 레벨(
$member['mb_level'])이 여분필드($view['wr_1'])에 설정된 제한 레벨보다 낮고 최고관리자가 아닐 경우,alert('권한이 없습니다.');경고창과 함께 열람이 차단됩니다.
- A. 로그인한 회원의 레벨(
함께 보면 좋은 글
참고자료
기타 참고자료
- 이전글그누보드 게시글 읽기 포인트 지급 기간 제한하기 26.10.28
- 다음글배추빌더 신고 기능 문구 수정 및 관련 파일 경로 안내 26.10.26
댓글목록
등록된 댓글이 없습니다.