그누보드 검색 결과 특정 그룹(grid)으로 제한하기
페이지 정보

본문
전체 검색 시 원하지 않는 다른 그룹의 게시판까지 노출되는 문제를 해결하기 위해, 그누보드 4와 그누보드 5의 bbs/search.php 파일 내 SQL 쿼리문에 gr_id 조건을 추가하여 특정 그룹만 필터링하는 방법을 알아봅니다.
그누보드 전체 검색 시 특정 그룹 제한하기
그누보드 전체 검색 시 원하지 않는 다른 그룹의 게시판까지 검색 결과에 노출되는 문제를 해결하려면, bbs/search.php 파일 내부의 SQL 쿼리문에 gr_id 조건을 추가하여 특정 그룹의 게시판만 필터링하도록 수정해야 합니다. 작업을 진행하기 전 대상 파일을 반드시 백업해야 합니다.
그누보드 5
그누보드 5 환경에서는 bbs/search.php 파일의 25~27줄 부근에 있는 $sql 쿼리 영역을 찾습니다.
기본 쿼리:
$sql = " select gr_id, bo_table, bo_read_level from {$g5['board_table']} where bo_use_search = 1 and bo_list_level <= '{$member['mb_level']}' ";
if ($gr_id) $sql.= " and gr_id = '{$gr_id}' ";
위 코드를 아래와 같이 수정하여 필요에 따라 그룹을 제한합니다.
- 그룹 하나만 고정 검색할 때
$sql = " select gr_id, bo_table, bo_read_level from {$g5['board_table']} where bo_use_search = 1 and bo_list_level <= '{$member['mb_level']}' ";
if ($gr_id) $sql.= " and gr_id = '{$gr_id}' ";
else {
$sql.= " and gr_id = '그룹ID' ";
}
- 그룹 2개 이상을 동시에 검색할 때
$sql = " select gr_id, bo_table, bo_read_level from {$g5['board_table']} where bo_use_search = 1 and bo_list_level <= '{$member['mb_level']}' ";
if ($gr_id) $sql.= " and gr_id = '{$gr_id}' ";
else {
$sql.= " and (gr_id = '그룹ID1' || gr_id = '그룹ID2') ";
}
그누보드 4
그누보드 4 환경에서는 bbs/search.php 파일의 19줄 부근에 있는 $sql 쿼리 문장을 찾습니다.
기본 쿼리:
$sql = " select gr_id, bo_table, bo_read_level from $g4[board_table] where bo_use_search = '1' and bo_list_level <= '$member['mb_level']' ";
- 그룹 하나만 검색하도록 제한할 때
$sql = " select gr_id, bo_table, bo_read_level from `{$g4['board_table']}` where bo_use_search = '1' and bo_list_level <= '{$member['mb_level']}' and gr_id = '그룹ID' ";
- 그룹 2개 이상에서 검색하도록 제한할 때
$sql = " select gr_id, bo_table, bo_read_level from `{$g4['board_table']}` where bo_use_search = '1' and bo_list_level <= '{$member['mb_level']}' and (gr_id = '그룹ID1' || gr_id = '그룹ID2') ";
확인 방법
수정 완료 후 사이트의 전체 검색 기능을 통해 지정한 그룹에 속한 게시판의 글들만 검색 결과에 정상적으로 출력되는지 확인합니다.
그누보드 4와 그누보드 5 버전별 search.php SQL 쿼리 수정 위치와 코드
그누보드 전체 검색 시 특정 그룹의 게시판들만 결과에 나오도록 제한하려면, 사용 중인 버전에 따라 bbs/search.php 파일 내부의 SQL 쿼리문 수정 위치와 방식에 차이가 있습니다.
1. 그누보드 5
- 수정 파일 위치:
bbs/search.php파일의 25~27줄 부근 - 기존 코드 구조:
$sql = " select gr_id, bo_table, bo_read_level from {$g5['board_table']} where bo_use_search = 1 and bo_list_level <= '{$member['mb_level']}' "; if ($gr_id) $sql.= " and gr_id = '{$gr_id}' "; - 그룹 제한 수정 방법:조건문 아래에
else구문을 추가하여 고정할 그룹 ID를 지정합니다.- 그룹 하나만 검색할 때:
else { $sql.= " and gr_id = '그룹ID' "; }- 그룹 2개 이상 검색할 때:
else { $sql.= " and (gr_id = '그룹ID1' || gr_id = '그룹ID2') "; }
2. 그누보드 4
- 수정 파일 위치:
bbs/search.php파일의 19줄 부근 - 기존 코드 구조:
$sql = " select gr_id, bo_table, bo_read_level from $g4[board_table] where bo_use_search = '1' and bo_list_level <= '$member['mb_level']' "; - 그룹 제한 수정 방법:기본 SQL 쿼리문 뒤에
and gr_id조건을 직접 추가합니다.- 그룹 하나에서만 검색할 때:
$sql = " select gr_id, bo_table, bo_read_level from `{$g4['board_table']}` where bo_use_search = '1' and bo_list_level <= '{$member['mb_level']}' and gr_id = '그룹ID' ";- 그룹 2개 이상에서 검색할 때:
$sql = " select gr_id, bo_table, bo_read_level from `{$g4['board_table']}` where bo_use_search = '1' and bo_list_level <= '{$member['mb_level']}' and (gr_id = '그룹ID1' || gr_id = '그룹ID2') ";
다중 그룹 검색 쿼리 조건 작성 방법
그누보드에서 2개 이상의 여러 그룹을 동시에 검색 결과에 포함시키려면 bbs/search.php 파일 내 SQL 쿼리문의 gr_id 조건에 OR 연산자(||)를 활용하여 다중 그룹 지정 방식을 적용할 수 있습니다.
그누보드 5 버전
bbs/search.php 파일 내의 $sql 쿼리문에서 else 구간 내 그룹 2개 이상 검색할 때 주석 처리된 구문을 활용하여 아래와 같이 작성합니다.
else {
// 그룹 2개 이상 검색할때
$sql.= " and (gr_id = '그룹ID1' || gr_id = '그룹ID2') ";
}
그누보드 4 버전
bbs/search.php 파일 내의 $sql 쿼리문에 and 연산자와 함께 괄호 및 || 연산자를 포함하여 아래와 같이 작성합니다.
$sql = " select gr_id, bo_table, bo_read_level from `{$g4['board_table']}` where bo_use_search = '1' and bo_list_level <= '{$member['mb_level']}' and (gr_id = '그룹ID1' || gr_id = '그룹ID2') ";
그누보드 전체 검색 시 특정 그룹으로 결과 제한하기
그누보드 전체 검색 기능 이용 시, 전체 게시판이 아니라 특정 그룹에 속한 게시판들만 검색 결과에 나오도록 제한하려면 각 버전별 bbs/search.php 파일 내부의 SQL 쿼리문을 수정해야 합니다.
1. 수정 전 주의사항
파일을 수정하기 전, 원본 파일의 백업을 반드시 진행해야 하며 최신 버전의 경우 파일 경로 및 코드 라인 위치가 다를 수 있습니다.
2. 그누보드 5 버전 수정 방법
bbs/search.php 파일 내의 아래 쿼리문을 찾습니다.
$sql = " select gr_id, bo_table, bo_read_level from {$g5['board_table']} where bo_use_search = 1 and bo_list_level <= '{$member['mb_level']}' ";
if ($gr_id) $sql.= " and gr_id = '{$gr_id}' ";
조건을 고정하여 특정 그룹만 검색되게 하려면 아래와 같이 else 구문 내부를 변경합니다.
- 그룹 하나만 검색할 때
$sql = " select gr_id, bo_table, bo_read_level from {$g5['board_table']} where bo_use_search = 1 and bo_list_level <= '{$member['mb_level']}' ";
if ($gr_id) $sql.= " and gr_id = '{$gr_id}' ";
else {
$sql.= " and gr_id = '그룹ID' ";
}
- 그룹 2개 이상을 검색할 때
$sql = " select gr_id, bo_table, bo_read_level from {$g5['board_table']} where bo_use_search = 1 and bo_list_level <= '{$member['mb_level']}' ";
if ($gr_id) $sql.= " and gr_id = '{$gr_id}' ";
else {
$sql.= " and (gr_id = '그룹ID1' || gr_id = '그룹ID2') ";
}
3. 그누보드 4 버전 수정 방법
bbs/search.php 파일 내의 아래 쿼리문을 찾습니다.
$sql = " select gr_id, bo_table, bo_read_level from $g4[board_table] where bo_use_search = '1' and bo_list_level <= '$member['mb_level']' ";
- 그룹 하나에서만 검색할 때
$sql = " select gr_id, bo_table, bo_read_level from `{$g4['board_table']}` where bo_use_search = '1' and bo_list_level <= '{$member['mb_level']}' and gr_id = '그룹ID' ";
- 그룹 2개 이상에서 검색할 때
$sql = " select gr_id, bo_table, bo_read_level from `{$g4['board_table']}` where bo_use_search = '1' and bo_list_level <= '{$member['mb_level']}' and (gr_id = '그룹ID1' || gr_id = '그룹ID2') ";
상황별 판단 및 행동 가이드
| 내 상황 | 우선할 판단 | 다음 행동 |
|---|---|---|
| 그누보드 4에서 전체 검색 시 특정 그룹 게시판만 조회되도록 제한하고 싶음 | bbs/search.php 파일 19줄 부근의 $sql 쿼리문 확인 | 원본 파일 백업 후 board_table 쿼리문에 and gr_id = '그룹ID' 조건 직접 추가 |
| 그누보드 5에서 전체 검색 시 단일 또는 다중 그룹으로 결과 범위를 좁히고 싶음 | bbs/search.php 파일 25~27줄 부근의 if ($gr_id) 조건문 확인 | 원본 파일 백업 후 else 블록 내부에 and gr_id = '그룹ID' 또는 and (gr_id = '그룹ID1' || gr_id = '그룹ID2') 조건 추가 |
실전 FAQ
Q. 쿼리를 수정한 뒤 검색 결과가 아예 나오지 않거나 에러가 발생합니다.
- 예외 및 대안:
bbs/search.php파일 수정 과정에서 따옴표(')나 괄호(()), 세미콜론(;) 문법이 누락되었을 가능성이 높습니다. 작업 전 백업해 둔 원본 파일을 복원하거나, 추가한gr_id조건문 구문과 변수명을 다시 점검하여 문법 오류를 수정하십시오.
Q. 단일 그룹이 아니라 2개 이상의 여러 그룹을 동시에 검색 결과에 포함시키려면 어떻게 해야 하나요?
- 실행 방법: SQL 쿼리 조건 내에서
||연산자와 괄호를 사용하여 다중 그룹을 지정할 수 있습니다. 그누보드 4는and (gr_id = '그룹ID1' || gr_id = '그룹ID2')형태로 작성하고, 그누보드 5는else구문 내부의 주석 처리된 다중 그룹 예시 코드를 활성화하여 적용합니다.
함께 보면 좋은 글
참고자료
기타 참고자료
- 이전글그누보드 게시판 첨부파일 확장자 검증 스크립트 적용 방법 26.10.06
- 다음글그누보드 관리자 페이지 좌측 메뉴 레이아웃 및 스타일 커스터마이징 26.10.06
댓글목록
등록된 댓글이 없습니다.