게시판 특정 컬럼조건 만족시 노출 (관리자 수락 후 노출) 정보
게시판 특정 컬럼조건 만족시 노출 (관리자 수락 후 노출)본문
게시물 작성 후 바로 노출되지 않고 관리자가 수락 후 노출되어야 하는 경우가 있습니다.
아래 코드와 같이 처리하시면 됩니다.
(관리자가 수락하는 코드는 포함되어있지 않습니다. 게시판 노출시 특정 컬럼조건을 만족하는 게시물만 쿼리하는 코드립니다.)
(아래 코드는 기존 컬럼(ex.wr_10)이 아닌 새로 생성한 컬럼(row_show)으로 조회합니다.
DB 해당 게시판 table에 노출여부 컬럼을 아래와 같이 생성하시거나
alter table g5_write_chk_and_show add row_show tinyint(1)
혹은 기존 컬럼으로 조회 (where wr_10 = 1) 등으로 변경하시면 됩니다.)
/bbs/list.php
if ($sca || $stx || $stx === '0') { //검색이면
$is_search_bbs = true; //검색구분변수 true 지정
$sql_search = get_sql_search($sca, $sfl, $stx, $sop);
// 가장 작은 번호를 얻어서 변수에 저장 (하단의 페이징에서 사용)
$sql = " select MIN(wr_num) as min_wr_num from {$write_table} ";
$row = sql_fetch($sql);
$min_spt = (int)$row['min_wr_num'];
if (!$spt) $spt = $min_spt;
$sql_search .= " and (wr_num between {$spt} and ({$spt} + {$config['cf_search_part']})) ";
//#조건노출
if ($bo_table=="테이블명" && !$is_admin) {
$sql_search .= " and row_show = 1 ";
}
// 원글만 얻는다. (코멘트의 내용도 검색하기 위함)
// 라엘님 제안 코드로 대체 http://sir.kr/g5_bug/2922
$sql = " SELECT COUNT(DISTINCT `wr_parent`) AS `cnt` FROM {$write_table} WHERE {$sql_search} ";
$row = sql_fetch($sql);
$total_count = $row['cnt'];
/*
$sql = " select distinct wr_parent from {$write_table} where {$sql_search} ";
$result = sql_query($sql);
$total_count = sql_num_rows($result);
*/
} else {
//#조건노출
if ($bo_table=="테이블명" && !$is_admin) {
$sql_search = " row_show = 1 ";
$sql = " SELECT COUNT(DISTINCT `wr_parent`) AS `cnt` FROM {$write_table} WHERE {$sql_search} ";
$row = sql_fetch($sql);
$total_count = $row['cnt'];
}else{
$sql_search = "";
$total_count = $board['bo_count_write'];
}
}
===============================
// 공지 처리
if (!$is_search_bbs) {
$arr_notice = explode(',', trim($board['bo_notice']));
$from_notice_idx = ($page - 1) * $page_rows;
if($from_notice_idx < 0)
$from_notice_idx = 0;
$board_notice_count = count($arr_notice);
for ($k=0; $k<$board_notice_count; $k++) {
if (trim($arr_notice[$k]) == '') continue;
//#조건노출
if ($bo_table=="테이블명" && !$is_admin) {
$sql_search = " and row_show = 1 ";
$row = sql_fetch(" select * from {$write_table} where wr_id = '{$arr_notice[$k]}' {$sql_search}");
}else{
$row = sql_fetch(" select * from {$write_table} where wr_id = '{$arr_notice[$k]}' ");
}
================================
if ($is_search_bbs) {
$sql = " select distinct wr_parent from {$write_table} where {$sql_search} {$sql_order} limit {$from_record}, $page_rows ";
} else {
$sql = " select * from {$write_table} where wr_is_comment = 0 ";
//#조건노출
if ($bo_table=="테이블명" && !$is_admin) {
$sql_search = " and row_show = 1 ";
$sql .= $sql_search;
}
if(!empty($notice_array))
$sql .= " and wr_id not in (".implode(', ', $notice_array).") ";
echo $sql .= " {$sql_order} limit {$from_record}, $page_rows ";
}
============================
/bbs/search.php
$sql_search = $str;
//#조건노출
if ($bo_table=="테이블명" && !$is_admin) {
$sql_search .= " and row_show = 1 ";
}
$str_board_list = "";
$board_count = 0;
버그가있는 경우 댓글로 정정 부탁드립니다.
5