필드의 특정값을 가지고있는 게시물만 리스트에 노출하기
여분필드의 특정값을 가지고있는 게시물만 리스트에 노출하기
( 검색시 특정값을 가진 필드만 검색)
사용할일이 있어 팁자료를 확인했는데
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개
게시판 목록
그누보드5 팁자료실
| 번호 | 제목 | 글쓴이 | 날짜 | 조회 |
|---|---|---|---|---|
| 공지 | 3년 전 | 4435 | ||
| 2574 | 10개월 전 | 562 | ||
| 2573 | 10개월 전 | 938 | ||
| 2572 |
두리삼촌v
|
10개월 전 | 610 | |
| 2571 | 10개월 전 | 557 | ||
| 2570 | 10개월 전 | 601 | ||
| 2569 |
두리삼촌v
|
10개월 전 | 640 | |
| 2568 |
두리삼촌v
|
10개월 전 | 669 | |
| 2567 |
두리삼촌v
|
10개월 전 | 465 | |
| 2566 |
두리삼촌v
|
10개월 전 | 446 | |
| 2565 | 10개월 전 | 742 | ||
| 2564 | 11개월 전 | 671 | ||
| 2563 | 11개월 전 | 476 | ||
| 2562 | 11개월 전 | 1032 | ||
| 2561 |
|
11개월 전 | 678 | |
| 2560 | 11개월 전 | 920 | ||
| 2559 | 11개월 전 | 659 | ||
| 2558 |
|
11개월 전 | 506 | |
| 2557 | 11개월 전 | 658 | ||
| 2556 | 11개월 전 | 959 | ||
| 2555 | 11개월 전 | 1341 | ||
| 2554 | 11개월 전 | 757 | ||
| 2553 |
|
11개월 전 | 750 | |
| 2552 | 11개월 전 | 678 | ||
| 2551 | 11개월 전 | 867 | ||
| 2550 | 11개월 전 | 768 | ||
| 2549 |
|
11개월 전 | 720 | |
| 2548 | 11개월 전 | 1033 | ||
| 2547 | 11개월 전 | 676 | ||
| 2546 | 11개월 전 | 1208 | ||
| 2545 | 11개월 전 | 665 |
댓글 작성
댓글을 작성하시려면 로그인이 필요합니다.
로그인하기