본문 바로가기
Program/GNUBOARD

[홈페이지만들기/쇼핑몰만들기] 그누보드5(gnuboard5) - 검색기능에 기간옵션, 정렬기능 추가하기

by 너부리공작소 2017. 1. 11.
반응형

[홈페이지만들기/쇼핑몰만들기] 그누보드5(gnuboard5) - 검색기능에 기간옵션, 정렬기능 추가하기 

[홈페이지만들기/쇼핑몰만들기] 그누보드5(gnuboard5) - 검색기능에 기간옵션, 정렬기능 추가하기

 

* bbs/search.php 파일 수정

* 검색옵션에 기간별변수 - termby, 정렬변수 - sortby 를 추가하고, 해당 값이 넘어오면 쿼리문에 변수를 추가한다.

 

//=> 프로그램 상단에 변수선언 아래부분에 작성한다.

$sortby = $_GET['sortby']; //=> 정렬변수 선언, get으로 넘어온 값으로 선언

$termby = $_GET['termby']; //=> 기간변수 선언, get으로 넘어온 값으로 선언

 

//=> 기간옵션은 주, 월, 6개월, 1년으로 지정

if($termby=='week') {

$bdate = date("Y-m-d H:i:s",strtotime("-1 week"));

$termsql = " and wr_datetime > '$bdate'";

} else if($termby=='month') {

$bdate = date("Y-m-d H:i:s",strtotime("-1 month"));

$termsql = " and wr_datetime > '$bdate'";

} else if($termby=='smonth') {

$bdate = date("Y-m-d H:i:s",strtotime("-6 month"));

$termsql = " and wr_datetime > '$bdate'";

} else if($termby=='year') {

$bdate = date("Y-m-d H:i:s",strtotime("-1 year"));

$termsql = " and wr_datetime > '$bdate'";

} else {

$termsql = "";

}

 

//=> 정렬옵션은 인기, 추천, 최근날짜 순으로 지정

if($sortby=='wr_hit') {

$sortsql = " order by wr_hit desc";

} else if($sortby=='wr_good') {

$sortsql = " order by wr_good desc";

} else if($sortby=='wr_date') {

$sortsql = " order by wr_datetime desc";

} else {

$sortsql = " order by wr_id desc ";

}

 
//=> 페이징 부분에 변수가 따라가도록 기존에 선언된 변수 수정
 
    $search_query = 'sfl='.urlencode($sfl).'&stx='.urlencode($stx).'&sop='.$sop;
 
** 이부분을 아래와 같이 변경한다.
 
    $search_query = 'sfl='.urlencode($sfl).'&stx='.urlencode($stx).'&sop='.$sop.'&sortby='.$sortby.'&termby='.$termby;
 
 
 
 
** 게시판내 검색이 되는 부분에 위에서 선언한 변수부분을 추가한다.
 
        $sql = " select wr_id from {$tmp_write_table} where {$sql_search}";
 
        $sql = " select * from {$tmp_write_table} where {$sql_search} order by wr_id limit {$from_record}, {$rows} ";
 
 
** 이부분을 아래와 같이 변경한다.
 
        $sql = " select wr_id from {$tmp_write_table} where {$sql_search} {$termsql} {$sortsql}";
 
        $sql = " select * from {$tmp_write_table} where {$sql_search} {$sortsql} limit {$from_record}, {$rows} ";
 
 
 
 
**** 검색옵션이 나오도록 아래 코드를 $group_select 가 있는 아래에 넣어준다.
 
$term_arr = array("week,최근일주일","month,최근한달","smonth,최근6개월","year,최근1년"); //=> 기간검색의 select 부분을 처리하기 위해 배열로 변수 선언
 
$group_select .=" <select name=termby  onchange=\"this.form.submit();\">
<option value=\"\">기간  </option>
";
for($ii=0; $ii<count($term_arr); $ii++) {
$termexp = explode(",",$term_arr[$ii]);
$group_select .="<option value=\"".$termexp[0]."\" ".get_selected($_GET['termby'],$termexp[0]).">".$termexp[1]."</option>";
}
$group_select .="</select>";
 
$sortby_arr = array("wr_hit,인기순","wr_good,추천순","wr_date,최신순"); //=> 게시물 정렬의 select 부분을 처리하기 위해 배열로 변수 선언
 
$group_select .=" <select name=sortby  onchange=\"this.form.submit();\">
<option value=\"\">정렬  </option>
";
for($ii=0; $ii<count($sortby_arr); $ii++) {
$sortexp = explode(",",$sortby_arr[$ii]);
$group_select .="<option value=\"".$sortexp[0]."\" ".get_selected($_GET['sortby'],$sortexp[0]).">".$sortexp[1]."</option>";
}
$group_select .="</select>";
 
 
이렇게 적용하면 [홈페이지만들기/쇼핑몰만들기] 그누보드의 검색기능에 기간검색, 정렬기능을 추가할 수 있다.
 
 
 
 
 
 
 
 
 
 
 
 
 

 

 

반응형

댓글