게시판 리스트에서 비밀글 노출하지 않기
관리자가 게시글 작성시, 비밀글에 체크하면 일반회원에게 비밀글이 리스트에서 노출되지 않습니다.
단, 관리자에게는 보입니다.
일반회원 접속시

관리자접속시

bbs/list.php파일을 수정해 줍니다.
1.상단
비밀글을 설정하면 wr_option에 secret이 저장되더라고요. 그래서 관리자와 그 외 멤버를 구분하여 하단에 추가될 구문을 만들고, 목록생성시 목록넘버 때문에 숨겨진 목록 갯수를 구해줘서 빼줍니다.
if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가
$secret = 'secret';
$secretSQL = " and wr_option NOT LIKE '%$secret%'";
$getSecretCount = "select COUNT(*) from {$write_table} WHERE wr_option LIKE '%$secret%'";
$secretRow = sql_fetch($getSecretCount);
$secretNumber = $secretRow['COUNT(*)'];
if ($is_admin) {
$secretSQL = "";
$secretNumber = 0;
}
2.mysql구문 추가 및 카운트조절
검색시 비밀글 제외를 시키기위하여 수정해줍니다
if ($sca || $stx || $stx === '0') { //검색이면
$is_search_bbs = true;
$secretNumber = 0;
$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']}){$secretSQL}";
// 원글만 얻는다. (코멘트의 내용도 검색하기 위함)
// 라엘님 제안 코드로 대체 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'];
}else {
$sql_search = "";
$total_count = $board['bo_count_write']-$secretNumber;
}
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 {$secretSQL}";
if(!empty($notice_array))
$sql .= " and wr_id not in (".implode(', ', $notice_array).") ";
$sql .= " {$sql_order} limit {$from_record}, $page_rows ";
}
관리자에게만 노출되는 기능이지만, 특정권한이상 회원에게만 노출되는 기능으로 발전 시킬 수 있을 것 같습니다. 저처럼 초보분들께 조금이나마 도움이 되면 좋겠습니다.
댓글 14개
혹시 이렇게 처리하면 혹시 게시글이 많으면 뻗어버리진 않겟죠
일단 이걸로 테스트사이트에 적용하면서 지켜보겟읍니다
감사합니다.
덕분에 어려운 것 해결했습니다 ^^
이거 검색이나 분류하면 안돌아가는데 방법이 있을까요..ㅠ
분류 나오는 법!!
2.mysql구문 추가 및 카운트조절
검색시 비밀글 제외를 시키기위하여 수정해줍니다
if ($sca || $stx || $stx === '0') { //검색이면
$is_search_bbs = true;
$secretNumber = 0;
$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']}){$secretSQL}";
// 원글만 얻는다. (코멘트의 내용도 검색하기 위함)
// 라엘님 제안 코드로 대체 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'];
}else {
$sql_search = "";
$total_count = $board['bo_count_write']-$secretNumber;
}
이 부분 때문에 오류가 생깁니다.
if ($sca || $stx || $stx === '0') { //검색이면
$is_search_bbs = true;
$secretNumber = 0;
$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']})){$secretSQL}";
// 원글만 얻는다. (코멘트의 내용도 검색하기 위함)
// 라엘님 제안 코드로 대체 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 {
$sql_search = "";
$total_count = $board['bo_count_write']-$secretNumber;
}
이거 넣으세요.
$sql_search .= " and (wr_num between {$spt} and ({$spt} + {$config['cf_search_part']})){$secretSQL}";
이부분에 ")" 소괄호가 빠져있었어요!!
감사합니다
게시판 목록
그누보드5 팁자료실
| 번호 | 제목 | 글쓴이 | 날짜 | 조회 |
|---|---|---|---|---|
| 공지 | 3년 전 | 4405 | ||
| 2664 |
선택과집중
|
4개월 전 | 573 | |
| 2663 |
|
4개월 전 | 622 | |
| 2662 |
|
4개월 전 | 575 | |
| 2661 |
선택과집중
|
4개월 전 | 508 | |
| 2660 | 4개월 전 | 588 | ||
| 2659 |
Modify
|
4개월 전 | 654 | |
| 2658 |
선택과집중
|
4개월 전 | 415 | |
| 2657 | 4개월 전 | 452 | ||
| 2656 |
|
4개월 전 | 964 | |
| 2655 |
선택과집중
|
4개월 전 | 549 | |
| 2654 | 5개월 전 | 404 | ||
| 2653 |
선택과집중
|
5개월 전 | 585 | |
| 2652 | 5개월 전 | 394 | ||
| 2651 | 5개월 전 | 446 | ||
| 2650 |
선택과집중
|
5개월 전 | 327 | |
| 2649 |
선택과집중
|
5개월 전 | 423 | |
| 2648 | 5개월 전 | 441 | ||
| 2647 |
welcome
|
5개월 전 | 545 | |
| 2646 |
디지털홍익인간
|
5개월 전 | 453 | |
| 2645 | 5개월 전 | 467 | ||
| 2644 |
선택과집중
|
5개월 전 | 514 | |
| 2643 | 5개월 전 | 457 | ||
| 2642 | 5개월 전 | 372 | ||
| 2641 | 5개월 전 | 359 | ||
| 2640 | 5개월 전 | 394 | ||
| 2639 | 5개월 전 | 1359 | ||
| 2638 |
|
5개월 전 | 513 | |
| 2637 |
세르반데스
|
5개월 전 | 400 | |
| 2636 |
선택과집중
|
6개월 전 | 569 | |
| 2635 |
선택과집중
|
6개월 전 | 683 |
댓글 작성
댓글을 작성하시려면 로그인이 필요합니다.
로그인하기