홈페이지 쇼핑몰 제작/Tip & Tech

[그누보드] 게시판 기본분류외 2차 특정분류 추가 (리스트 검색)

리스페 2021. 2. 10. 08:21

[그누보드] 게시판 기본분류외 2차 특정분류 추가 (리스트 검색)

그누보드 게시판 설정에는
게시판 내부 분류기능이 있습니다.
'|'를 구분자로 해주면 됩니다.

ex) 조작탐구|역할놀이|블록·퍼즐·게임|언어·숫자학습

변수명 $sca



그러면 글쓰기시 '분류 선택'을 하여 입력할 수 있고,
게시판 리스트에는 '카테고리 분류'가 자동생성됩니다.


여기까지는 그누보드 게시판 시스템의 기본 기능입니다.


그런데 때에 따라 이런 분류를 쓰는 게시판에.. 
또 다른 분류를 추가할 필요가 있습니다.



그누보드 게시판 2차 분류 추가
여분 필드 활용


특정 변수를 생성하고 그에 따른 쿼리스트링 및 SQL문 수정작업이 필요합니다.



1. 변수명 만들기

여분필드 $wr_10 으로 분류값을 저장합니다. (인후, 송천)

글쓰기 스킨 작업은 이미 되어있어야 합니다.

쿼리에 사용할 변수 : $vtoy





2. 쿼리스트링 추가 

아래 파일에는 $stx, $sca 등 게시판 기본 쿼리스트링 변수를 설정하고 있습니다.

/common.php



if (isset($_REQUEST['vtoy'])) { // 추가분류
$vtoy = (int)$_REQUEST['vtoy'];
if ($vtoy)
$qstr .= '&vtoy=' . urlencode($vtoy);
} else {
$vtoy = '';
}



$qstr 은 그누보드 게시판 변수를 모두 모아놓은 쿼리스트링 문자열입니다.

이렇게 해두면 게시판 list, view, paging 등에 추가변수가 따라다니게 됩니다.





2. Sql문 추가

아래 파일에는 $stx, $sca 등 게시판 기본 쿼리스트링 변수를 설정하고 있습니다.

/bbs/list.php



174 line 정도에 SQL문 소스가 있습니다.

파란글씨가 추가/수정한 부분입니다.

추가 SQL조건문을 위쪽에 정의하고, 기존의 소스에 새로 만든 $vsql 을 검색과 검색이 아닌 경우 모두 넣어줍니다.



//인후 송천점 리스트

if($vtoy == "1") { 
$vsql = " and (wr_10 = '' || wr_10 = '인후')";
} else if($vtoy == "2") { 
$vsql = " and (wr_10 = '' || wr_10 = '송천')";




if ($is_search_bbs) {
$sql = " select distinct wr_parent from {$write_table} where {$sql_search} {$vsql} {$sql_order} limit {$from_record}, $page_rows ";
} else {
$sql = " select * from {$write_table} where wr_is_comment = 0 {$vsql} ";
if(!empty($notice_array))
$sql .= " and wr_id not in (".implode(', ', $notice_array).") ";
$sql .= " {$sql_order} limit {$from_record}, $page_rows ";
}







3. 카테고리 옵션 부분 수정

아래 파일상단에는 게시판 기본 분류 $category_option 에 대한 소스가 있습니다.

/bbs/list.php



9 line 의 소스를 수정합니다.

$category_href = G5_BBS_URL.'/board.php?bo_table='.$bo_table.'&vtoy='.$vtoy;



게시판 기본 분류설정을 한 경우에 필요한 작업입니다.







4. 게시판 리스트 스킨 수정



/skin/board/스킨명/list.skin.php

해당 게시판의 리스트 스킨도 수정이 필요합니다.



게시물 검색 부분의 소스를 수정합니다.
그래야 검색을 할 때도 변수가 전달됩니다.



<form name="fsearch" method="get">
<input type="hidden" name="bo_table" value="<?php echo $bo_table ?>">
<input type="hidden" name="sca" value="<?php echo $sca ?>">
<input type="hidden" name="vtoy" value="<?php echo $vtoy ?>">
<input type="hidden" name="sop" value="and">
<fieldset class="scboard">
<legend>게시물 검색</legend>





5. 테스트

다 되었네요~



장난감 게시판인데.. 기본 장난감 분류 (조작탐구, 역할놀이 등)가 존재했고
여기에 wr_10 여분필드를 활용해서
지역분류(인후점, 송천점)을 추가한 예시입니다.


처음 작업해 본 것이라 차후 보완사항이 필요할지 모르겠습니다.
이러한 방식으로 더 많은 분류도 추가할 수 있겠습니다.



장난감게시판 역할놀이 분류의 인후점 리스트
http://jbyuseong.ivyro.net/2019/bbs/board.php?bo_table=toy_3&sca=%EC%97%AD%ED%95%A0%EB%86%80%EC%9D%B4&vtoy=1


장난감게시판 역할놀이 분류의 송천점 리스트
http://jbyuseong.ivyro.net/2019/bbs/board.php?bo_table=toy_3&sca=%EC%97%AD%ED%95%A0%EB%86%80%EC%9D%B4&vtoy=2





#그누보드
#그누보드게시판수정
#그누보드분류추가
#그누보드게시판분류