새글 페이지 new.php를 활용하는 방법 - 기타스킨강좌, 그누보드5강좌

본문 바로가기
전체검색

기타스킨강좌

그누보드, 영카트 초보 제작자분들을 위한 다양한 스킨 제작 활용 팁을 공유합니다.

새글 페이지 new.php를 활용하는 방법

관리자 19-02-14 15:30

전체 최신글이 출력되는 new.php 페이지를 활용해서 다양한 방법으로 게시물을 출력하는 방법입니다.


원본 상태


게시판 설정에서 전체 검색 사용 체크박스가 체크된 게시판의 글과 댓글이 출력됩니다.

출력하고 싶지 않은 게시판은 체크 해제.


77477f1837130a3b8c4c81da40a05be9_1550125099_7765.png


그리고 new.php 페이지에 출력되는 게시물은 일정 시간이 지나면 자동으로 삭제됩니다.

new.php 페이지에 등록된 게시물도 일반 게시판처럼 장기간 노출해야 하는 상황이라면 

관리자 페이지 > 환경설정 > 기본환경설정 > 최근게시물 삭제 기간을 0으로 하거나 원하는 기간으로 늘려야 합니다.


93167d323b0a187292d82681f2118ef8_1550128661_5074.gif 


이미 기간이 지나서 삭제된 글을 다시 출력하고 싶다면 아래 플러그인을 활용해서 재생성하세요.

https://sir.kr/g5_plugin/4564 




활용 방법


수정 파일 /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. 상단 검색 창 삭제하기


77477f1837130a3b8c4c81da40a05be9_1550126067_2202.png


수정 파일 : skin/new/basic/new.php


아래 코드 전체 삭제


<!-- 전체게시물 검색 시작 { -->
<fieldset id="new_sch">
    <legend>상세검색</legend>
    <form name="fnew" method="get">
     .................
     ..................
</fieldset>
<!-- } 전체게시물 검색 끝 -->

로그인 후 댓글 작성 가능합니다.

로그인

로그인 후 글 작성 가능합니다.
그누스킨닷컴

그누스터디는 그누보드, 영카트를 이용하시는 초보 사용자를 위한 정보를 공유합니다.

E-MAIL : gnustudy@naver.com / 카카오톡 : gnustudy / 텔레그램 : gnustudy
제작 문의를 제외한 일반 문의는 QA 게시판을 이용해주세요.

Copyright gnustudy.com All rights reserved.