BOARD

팁·활용

그누보드 게시판 및 전체 검색 결과에 여분 필드 포함하는 방법

페이지 정보

profile_image
작성자 최고관리자
댓글 0건 조회 0회 작성일 26-09-15 00:08

본문

그누보드 검색 범위 확장이 필요한 이유

그누보드 기본 검색 기능은 제목과 내용 위주로 구성되어 있어, 여분 필드(wr_1, wr_2 등)에 입력된 데이터를 검색 결과에 반영하려면 검색 폼과 백엔드 쿼리 로직을 함께 수정해야 합니다. 상단 통합 검색과 개별 게시판 검색에서 여분 필드를 활용하려면 관련 파일을 단계별로 수정하고 정상 동작을 확인해야 합니다.

전체 검색 및 게시판 검색 수정 방법

여분 필드를 검색 대상에 포함시키기 위해서는 상단 검색 폼의 sfl 파라미터 값과 서버 측 처리 파일인 bbs/search.php, 그리고 검색 스킨 파일을 각각 편집해야 합니다. 작업 전 반드시 원본 파일을 백업하세요.

1. 상단 검색 폼(head.php) 수정

사이트 상단의 통합 검색 폼에서 여분 필드를 함께 전달하도록 hidden 필드의 sfl 값을 확장합니다.

<input type="hidden" name="sfl" value="wr_subject||wr_content||wr_1||wr_2">

특정 게시판을 지정해서 검색하도록 유도하려면 아래와 같이 bo_table 값을 히든 필드로 추가할 수 있습니다.

<input type="hidden" name="bo_table" value="free">

2. 서버 검색 로직(bbs/search.php) 수정

전달된 여분 필드 파라미터를 쿼리 생성 루틴에서 처리할 수 있도록 switch 문에 case 조건을 추가합니다.

switch ($field[$k]) {
    case 'mb_id' :
    case 'wr_name' :
        $str .= "$field[$k] = '$s[$i]'";
        break;
    case 'wr_subject' :
    case 'wr_content' :
    case 'wr_1' :
    case 'wr_2' :
        if (preg_match("/[a-zA-Z]/", $search_str)) 
            $str .= "INSTR(LOWER({$field[$k]}), LOWER('{$search_str}'))";
        else 
            $str .= "INSTR({$field[$k]}, '{$search_str}')";
        break;
}

3. 게시판 및 전체 검색 스킨 수정

게시판 목록 하단의 list.skin.php 또는 전체 검색 스킨인 skin/search/basic/search.skin.php 파일의 select 박스에 여분 필드 옵션을 추가하여 사용자가 직접 선택할 수 있게 구성합니다.

<select name="sfl" id="sfl">
    <option value="wr_1"<?php echo get_selected($sfl, 'wr_1'); ?>>여분필드1</option>
    <option value="wr_2"<?php echo get_selected($sfl, 'wr_2'); ?>>여분필드2</option>
    <option value="wr_subject||wr_content||wr_1"<?php echo get_selected($_GET['sfl'], "wr_subject||wr_content||wr_1") ?>>제목+내용+여분필드1</option>
</select>

적용 후 확인 및 주의사항

수정 완료 후 전체 검색 페이지 또는 게시판 검색창에서 여분 필드 값(예: wr_1)을 입력하여 정상적으로 결과가 출력되는지 테스트합니다. 본 방법은 단일 게시판 또는 전체 통합 검색 환경을 기준으로 하며, 다중 게시판을 동시에 복수 지정하여 검색하는 기능은 기본 팁 내용으로 구현되지 않으므로 별도의 커스텀 개발이 필요합니다.

함께 보면 좋은 글

댓글목록

등록된 댓글이 없습니다.