o

필드의 특정값을 가지고있는 게시물만 리스트에 노출하기

· 2019-01-22 (화) 00:25:55 · 6887 · 6

여분필드의 특정값을 가지고있는 게시물만 리스트에 노출하기

( 검색시 특정값을 가진 필드만 검색)

 

사용할일이 있어 팁자료를 확인했는데  
https://sir.kr/g5_tip/2147 에 일단 내용이 있는데 
제가 만드려는 거랑 좀 안맞아서 수정해 보았습니다.

list.php 파일에 

[code]
<?php
if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가
[/code]

1. 하단에 해당 게시판과 원하는 query 값을 넣어 주시고요  

[code]
//========================================
$bbs_filter=0;
if($bo_table=="해당게시판"){
    if(!$is_admin){
        $bbs_filter=1;
        $search_str = " 해당컬럼='해당값' "; 
    }
}
//========================================
[/code]

2. 검색부분에  부분에 || $bbs_fileter 추가
내용안에 if($sca || $stx || $stx) { 검색 부분과 
if($bbs_filter){ 부분을 변경 

30라인쯤 
--> 변경전
[code]
if ($sca || $stx || $stx === '0') {     //검색이면
    $is_search_bbs = true;      //검색구분변수 true 지정
    $sql_search = get_sql_search($sca, $sfl, $stx, $sop);
[/code]

--> 변경후
[code]
if ($sca || $stx || $stx === '0' ||$bbs_filter) {     //검색이면
    if($sca || $stx || $stx){
        $is_search_bbs = true;      //검색구분변수 true 지정
        $sql_search = get_sql_search($sca, $sfl, $stx, $sop);
    }
    //====================================
    if($bbs_filter){     $sql_search .= (($sql_search)?" AND ":"")." {$search_str} ";   }
    //====================================
[/code]


3. 이후 하단에 if( $is_search_bbs ) 있는 부분에 ' || $bbs_filter ' 를 적용합니다 

181라인쯤 

---> 변경전
[code]
if ($sst) {
    $sql_order = " order by {$sst} {$sod} ";
}

if ($is_search_bbs ) {
    $sql = " select distinct wr_parent from {$write_table} where {$sql_search} {$sql_order} limit {$from_record}, $page_rows ";
} else {
[/code]

---> 변경후
[code]
if ($sst) {
    $sql_order = " order by {$sst} {$sod} ";
}

if ($is_search_bbs  || $bbs_filter) {
    $sql = " select distinct wr_parent from {$write_table} where {$sql_search} {$sql_order} limit {$from_record}, $page_rows ";
} else {
[/code]


202라인쯤 
---> 변경전
[code]
while ($row = sql_fetch_array($result))
    {
        // 검색일 경우 wr_id만 얻었으므로 다시 한행을 얻는다
        if ($is_search_bbs)
            $row = sql_fetch(" select * from {$write_table} where wr_id = '{$row['wr_parent']}' ");

[/code]
---> 변경후
[code]
while ($row = sql_fetch_array($result))
    {
        // 검색일 경우 wr_id만 얻었으므로 다시 한행을 얻는다
        if ($is_search_bbs || $bbs_filter)
            $row = sql_fetch(" select * from {$write_table} where wr_id = '{$row['wr_parent']}' ");
[/code]


221라인쯤 

---> 변경전
[code]
$list_href = '';
$prev_part_href = '';
$next_part_href = '';
if ($is_search_bbs) {
    $list_href = './board.php?bo_table='.$bo_table;

    $patterns = array('#&page=[0-9]*#', '#&spt=[0-9\-]*#');
[/code]


---> 변경후
[code]
$list_href = '';
$prev_part_href = '';
$next_part_href = '';
if ($is_search_bbs|| $bbs_filter) {
    $list_href = './board.php?bo_table='.$bo_table;

    $patterns = array('#&page=[0-9]*#', '#&spt=[0-9\-]*#');
[/code]

하면 해당 내용을 검색으로 인식하기에
리스트에 글이 많은 사이트에서는 이전 다음 검색을 사용할수 있습니다. 

완료 하시고 view.php 에도

<?php

if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가

하단에 아래를 넣어 주시고요 
[code]
//========================================
$bbs_filter=0;
if($bo_table=="해당게시판"){
    if(!$is_admin){
        $bbs_filter=1;
        $search_str = " 필드값='해당값' "; 
    }
}
//========================================
[/code]


이전글 다음글 링크에 


15라인쯤 
---> 변경전
[code]
if ($sca || $stx || $stx === '0') {
    // where 문을 얻음
    $sql_search = get_sql_search($sca, $sfl, $stx, $sop);
    $search_href = './board.php?bo_table='.$bo_table.'&page='.$page.$qstr;
    $list_href = './board.php?bo_table='.$bo_table;
} else {
    $search_href = '';
    $list_href = './board.php?bo_table='.$bo_table.'&page='.$page;
}
[/code]

---> 변경후
[code]
if ($sca || $stx || $stx === '0' ||$bbs_filter) {     //검색이면
    if ($sca || $stx || $stx === '0') {
        $sql_search = get_sql_search($sca, $sfl, $stx, $sop);
    }

    //====================================
    if($bbs_filter){  $sql_search .= (($sql_search)?" AND ":"")." {$search_str} ";   }
    //====================================

    $search_href = './board.php?bo_table='.$bo_table.'&page='.$page.$qstr;
    $list_href = './board.php?bo_table='.$bo_table;
} else {
    $search_href = '';
    $list_href = './board.php?bo_table='.$bo_table.'&page='.$page;
}
[/code]

|

댓글 6개

2019-01-22 (화) 11:29:11
아주 유용한 팁입니다~ 감사합니다.
2019-01-22 (화) 12:00:51
좋은정보 감사드립니다.
활용도가 높은 자료 감사합니다.
2019-01-30 (수) 08:34:18
자료 감사합니다.
유용한 것 같아요.감사합니다.
감사합니다
댓글을 작성하시려면 로그인이 필요합니다.

그누보드5 팁자료실

2,788건
+
제목 글쓴이 날짜 조회
19-02-07 조회 7,788
19-02-06 조회 7,411
19-02-02 조회 5,695
19-02-01 조회 5,528
19-01-31 조회 4,945
19-01-28 조회 9,545
19-01-28 조회 5,976
19-01-27 조회 6,675
19-01-24 조회 6,127
19-01-22 조회 7,676
19-01-22 조회 6,888
19-01-21 조회 5,749
19-01-20 조회 7,213
19-01-18 조회 5,571
19-01-15 조회 1.1만
19-01-15 조회 1.4만
19-01-14 조회 9,135
19-01-14 조회 5,738
19-01-13 조회 7,030
19-01-10 조회 8,458
19-01-10 조회 6,820
19-01-08 조회 6,045
19-01-06 조회 6,507
19-01-06 조회 9,851
18-12-31 조회 9,203
18-12-31 조회 7,375
18-12-28 조회 6,480
18-12-28 조회 9,485
18-12-26 조회 8,062
18-12-26 조회 5,193