새글 페이지 new.php를 활용하는 방법
전체 최신글이 출력되는 new.php 페이지를 활용해서 다양한 방법으로 게시물을 출력하는 방법입니다.
원본 상태
게시판 설정에서 전체 검색 사용 체크박스가 체크된 게시판의 글과 댓글이 출력됩니다.
출력하고 싶지 않은 게시판은 체크 해제.
그리고 new.php 페이지에 출력되는 게시물은 일정 시간이 지나면 자동으로 삭제됩니다.
new.php 페이지에 등록된 게시물도 일반 게시판처럼 장기간 노출해야 하는 상황이라면
관리자 페이지 > 환경설정 > 기본환경설정 > 최근게시물 삭제 기간을 0으로 하거나 원하는 기간으로 늘려야 합니다.
이미 기간이 지나서 삭제된 글을 다시 출력하고 싶다면 아래 플러그인을 활용해서 재생성하세요.
활용 방법
수정 파일 /bbs/new.php
1. 댓글은 목록에서 전부 제외하고 원글만 출력하기
아래 코드에서 빨간색 줄만 남기고 나머지는 전부 주석 처리하거나 삭제.
(반대로 댓글만 출력은 $sql_common .= " and a.wr_id <> a.wr_parent "; 여기만 남기고 나머지는 삭제)
// if ($view == "w")
$sql_common .= " and a.wr_id = a.wr_parent ";
// else if ($view == "c")
// $sql_common .= " and a.wr_id <> a.wr_parent ";
// else
// $view = '';
2. 회원이 로그인했을 때 본인이 작성한 게시물만 출력하기
$mb_id = isset($_GET['mb_id']) ? ($_GET['mb_id']) : '';
$mb_id = substr(preg_replace('#[^a-z0-9_]#i', '', $mb_id), 0, 20);
위 코드 밑에 이렇게 추가.
$mb_id = $is_member ? $member['mb_id'] : '';
관리자는 전체를 출력하고 일반 회원만 적용하고 싶으면 이렇게 수정.
if (!$is_admin) {
$mb_id = $is_member ? $member['mb_id'] : '';
}
위 방법은 비로그인 상태일 때는 전체를 출력하고 로그인했을 때만 본인 글이 출력됩니다.
비로그인 상태일 때 전체 출력을 하고 싶지 않으면 아래 코드에서 위아래를 주석 처리하고 중간 줄 수정
// if ($mb_id) {
$sql_common .= " and a.mb_id = '{$member['mb_id']}' ";
// }
3. 특정 그룹만 선택해서 출력하기
// if ($gr_id) {
$sql_common .= " and b.gr_id = '$gr_id' ";
// }
위 코드에서 위아래는 주석 처리하고 가운데는 이렇게 수정
$sql_common .= " and b.gr_id = '특정그룹id' ";
4. 특정 게시판을 제외하고 출력하기
기본적으로 게시판 설정에서 전체 검색 사용 체크박스를 해제하면 출력되지 않는다고 말씀드렸었는데요.
체크를 해제하면 new.php 페이지에서 출력되지 않지만 전체 검색 결과 페이지에서도 출력되지 않습니다.
전체 검색을 사용해야 하는 상황일 때 참고하세요.
$sql_common = " from {$g5['board_new_table']} a, {$g5['board_table']} b,...............................
위 코드 밑에 추가 (제외하고 싶은 게시판id 를 괄호 안에 콤마로 구분해서 계속 추가)
$sql_common .= " and a.bo_table not in ('aaaa', 'bbbb') ";
특정 그룹으로 제외하려면 이렇게.. (제외하고 싶은 그룹 id 입력)
$sql_common .= " and b.gr_id not in ('aaaa', 'bbbb') ";
5. 전체 검색 사용을 체크하지 않은 게시판도 포함하기
아래 코드에서 마지막 부분 삭제 and b.bo_use_search = 1
$sql_common = " from {$g5['board_new_table']} a, {$g5['board_table']} b, {$g5['group_table']} c where a.bo_table = b.bo_table and b.gr_id = c.gr_id and b.bo_use_search = 1 ";
6. 상단 검색 창 삭제하기
수정 파일 : skin/new/basic/new.php
아래 코드 전체 삭제
<!-- 전체게시물 검색 시작 { -->
<fieldset id="new_sch">
<legend>상세검색</legend>
<form name="fnew" method="get">
.................
..................
</fieldset>
<!-- } 전체게시물 검색 끝 -->