1. main 검색창에 form 삽입
- input value에 변수 ca_name 추가 (카테고리명)
<input type="hidden" name="sfl" value="ca_name||wr_subject||wr_content">
- fieldset : form 내부 요소들을 묶어줄 때 사용
legend : fieldset 의 제목
developer.mozilla.org/ko/docs/Web/HTML/Element/fieldset

<fieldset id="hd_sch">
<legend>사이트 내 전체검색</legend>
<form name="fsearchbox" method="get" action="<?php echo G5_BBS_URL ?>/search.php" onsubmit="return fsearchbox_submit(this);">
<input type="hidden" name="sfl" value="ca_name||wr_subject||wr_content">
<input type="hidden" name="sop" value="and">
<label for="sch_stx" class="sound_only">검색어 필수</label>
<input type="text" name="stx" id="sch_stx" maxlength="20" placeholder="검색어를 입력해주세요">
<button type="submit" id="sch_submit" value="검색"><i class="fa fa-search" aria-hidden="true"></i><span class="sound_only">검색</span></button>
</form>
<script>
function fsearchbox_submit(f)
{
if (f.stx.value.length < 2) {
alert("검색어는 두글자 이상 입력하십시오.");
f.stx.select();
f.stx.focus();
return false;
}
// 검색에 많은 부하가 걸리는 경우 이 주석을 제거하세요.
var cnt = 0;
for (var i=0; i<f.stx.value.length; i++) {
if (f.stx.value.charAt(i) == ' ')
cnt++;
}
if (cnt > 1) {
alert("빠른 검색을 위하여 검색어에 공백은 한개만 입력할 수 있습니다.");
f.stx.select();
f.stx.focus();
return false;
}
return true;
}
</script>
</fieldset>
2. bbs/search.php 파일 수정 : 아래 내용에서 빨간색 부분 추가
// 필드의 수만큼 다중 필드 검색 가능 (필드1+필드2...)
for ($k=0; $k<count($field); $k++) {
$str .= $op2;
switch ($field[$k]) {
case 'mb_id' :
case 'wr_name' :
$str .= "$field[$k] = '$s[$i]'";
break;
case 'wr_subject' :
case 'wr_content' :
if (preg_match("/[a-zA-Z]/", $search_str))
$str .= "INSTR(LOWER({$field[$k]}), LOWER('{$search_str}'))";
else
$str .= "INSTR({$field[$k]}, '{$search_str}')";
break;
case 'ca_name' :
$str .= "$field[$k] = '$s[$i]'";
$str .= "and wr_is_comment = 0";
break;
default :
$str .= "1=0"; // 항상 거짓
break;
}
3. skin/search/basic/search.skin.php 파일 수정 : 검색조건에 ca_name 추가
- 이 때, ca_name이 제일 앞에 나와야 정상 출력됨 (순서 이슈 있음!)
<label for="sfl" class="sound_only">검색조건</label>
<select name="sfl" id="sfl">
<option value="ca_name||wr_subject||wr_content"<?php echo get_selected($_GET['sfl'], "ca_name||wr_subject||wr_content") ?>>제목+내용+카테고리</option>
<!-- <option value="wr_subject||wr_content"<?php echo get_selected($_GET['sfl'], "wr_subject||wr_content") ?>>제목+내용</option>
<option value="wr_subject"<?php echo get_selected($_GET['sfl'], "wr_subject") ?>>제목</option>
<option value="wr_content"<?php echo get_selected($_GET['sfl'], "wr_content") ?>>내용</option>
<option value="mb_id"<?php echo get_selected($_GET['sfl'], "mb_id") ?>>회원아이디</option>
<option value="wr_name"<?php echo get_selected($_GET['sfl'], "wr_name") ?>>이름</option> -->
</select>
*출처
gnustudy.com/bbs/board.php?bo_table=skin_etc&wr_id=15
전체 검색에서 카테고리도 검색에 포함하기 - 기타스킨강좌, 그누보드5강좌
분류명도 전체 검색에 반영하는 방법입니다.1. head.php 파일 수정검색 폼 수정 ca_name 추가됨
2. bbs/search.php 파일 수정아래 내용에서 빨간색 부
gnustudy.com
'CMS > 그누보드' 카테고리의 다른 글
개발 관련 기능들 (0) | 2021.01.20 |
---|---|
게시판 카테고리 추출, 뿌리기 (0) | 2020.11.25 |
그누보드 최신글 스킨 (latest) 변수 모음 (2) | 2020.09.09 |
그누보드 썸네일 슬라이드 소스 (0) | 2020.09.09 |
그누보드 게시판 분류 (catogory) (0) | 2020.09.09 |