테스트 사이트 - 개발 중인 베타 버전입니다

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

· 6년 전 · 4790 · 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('#&amp;page=[0-9]*#', '#&amp;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('#&amp;page=[0-9]*#', '#&amp;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.'&amp;page='.$page.$qstr;
    $list_href = './board.php?bo_table='.$bo_table;
} else {
    $search_href = '';
    $list_href = './board.php?bo_table='.$bo_table.'&amp;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.'&amp;page='.$page.$qstr;
    $list_href = './board.php?bo_table='.$bo_table;
} else {
    $search_href = '';
    $list_href = './board.php?bo_table='.$bo_table.'&amp;page='.$page;
}
[/code]

댓글 작성

댓글을 작성하시려면 로그인이 필요합니다.

로그인하기

댓글 6개

6년 전
아주 유용한 팁입니다~ 감사합니다.
6년 전
좋은정보 감사드립니다.
활용도가 높은 자료 감사합니다.
6년 전
자료 감사합니다.
유용한 것 같아요.감사합니다.
감사합니다

게시글 목록

번호 제목
24318
24317
24315
24309
24294
24293
24277
24262
24260
24253
24251
24236
24233
24228
24226
24221
24214
24203
24201
24199
24196
24195
24194
24192
24191
24187
24185
24183
24172
24168