내가 쓴 글 만 보여지기. (내글,내가작성한글) > 그누보드5 팁자료실

그누보드5 팁자료실

내가 쓴 글 만 보여지기. (내글,내가작성한글) 정보

내가 쓴 글 만 보여지기. (내글,내가작성한글)

본문

** 주의사항

** 본 게시판은 회원전용 게시판입니다. (비회원 금지)

** 반드시 게시판 설정에서 목록,보기,쓰기 페이지 등급을 2등급 이상으로 해주세요.

** 1등급(기본값) 으로 하시면 비회원일 경우 모든 글이 보여집니다.

 

/bbs/list.php 에서 총 2군데를 수정해야 합니다.

** 아래 코드중 $bo_table == 'free' 이 부분을 원하는 게시판 아이디로 바꿔주세요.

** 만약 여러개의 게시판일경우

** if (($bo_table == 'free' || $bo_table == 'gallery' || $bo_table == 'notice') && $is_member && !$is_admin) {

** 이런식으로 늘려줄 수 있습니다.

 


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']})) ";
    // 원글만 얻는다. (코멘트의 내용도 검색하기 위함)
    // 라엘님 제안 코드로 대체 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'];
}

 

이 부분을 검색하셔서 아래 처럼 바꿔주세요.

 


// ------------------------------------------------------------------------
// 2601021533 adpro - 페이징 카운트 처리
// 수정본
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']})) ";
    // free 게시판일 경우 내 글만 검색 (관리자예외)
    if ($bo_table == 'free' && $is_member && !$is_admin) {
        $sql_search .= " and mb_id = '{$member['mb_id']}' ";
    }
    // 원글만 얻는다. (코멘트의 내용도 검색하기 위함)
    // 라엘님 제안 코드로 대체 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 = "";
    // free 게시판일 경우 내 글 개수만 카운트 (관리자예외)
    if ($bo_table == 'free' && $is_member && !$is_admin) {
        $sql = " SELECT COUNT(*) AS cnt FROM {$write_table} WHERE wr_is_comment = 0 AND mb_id = '{$member['mb_id']}' ";
        $row = sql_fetch($sql);
        $total_count = $row['cnt'];
    } else {
        $total_count = $board['bo_count_write'];
    }
}
/*
// 2601021530 adpro - 리스트에서 내글 만 가져오기 - 페이징, 카운트
// 원본
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']})) ";
    // 원글만 얻는다. (코멘트의 내용도 검색하기 위함)
    // 라엘님 제안 코드로 대체 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'];
}
*/
// ------------------------------------------------------------------------

 

 

그리고

 


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(!empty($notice_array))
        $sql .= " and wr_id not in (".implode(', ', $notice_array).") ";
    $sql .= " {$sql_order} limit {$from_record}, $page_rows ";
}

 

이 부분을 찾으셔서

 


// ---------------------------------------------------------------
// 2601021530 adpro - 리스트에서 내글 만 가져오기 - 목록 쿼리
// 수정본
if ($is_search_bbs) {
    // free 게시판일 경우 내 글만 검색 (관리자 예외)
    $adp_2601021521_my_filter = '';
    if ($bo_table == 'free' && $is_member && !$is_admin) {
        $adp_2601021521_my_filter = " and mb_id = '{$member['mb_id']}' ";
    }
    
    $sql = " select distinct wr_parent from {$write_table} where {$sql_search} {$adp_2601021521_my_filter} {$sql_order} limit {$from_record}, $page_rows ";
} else {
    $sql = " select * from {$write_table} where wr_is_comment = 0 ";
    if(!empty($notice_array))
        $sql .= " and wr_id not in (".implode(', ', $notice_array).") ";
    
    // free 게시판일 경우 내 글만 가져오기 (관리자 예외)
    if ($bo_table == 'free' && $is_member && !$is_admin) {
        $sql .= " and mb_id = '{$member['mb_id']}' ";
    }
    
    $sql .= " {$sql_order} limit {$from_record}, $page_rows ";
}
/*
// 2601021530 adpro - 리스트에서 내글 만 가져오기
// 원본
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(!empty($notice_array))
        $sql .= " and wr_id not in (".implode(', ', $notice_array).") ";
    $sql .= " {$sql_order} limit {$from_record}, $page_rows ";
}
*/
// ---------------------------------------------------------------

 

이렇게 바꿔주세요.

 

이렇게 하면 

 

1982076563_1767336556.9544.png

 

일반 회원은 본인의 글만 보여지고 (공지 제외)

 

 

1982076563_1767336589.2089.png

 

관리자는 모든 글이 보입니다.

 

그리고 추가로 뷰페이지에서도 본인글만 가져오려면

 

사용하시는 스킨의 view.skin.php 에서

 


<?php
if (!defined("_GNUBOARD_")) exit; // 개별 페이지 접근 불가
include_once(G5_LIB_PATH.'/thumbnail.lib.php');
// add_stylesheet('css 구문', 출력순서); 숫자가 작을 수록 먼저 출력됨
add_stylesheet('<link rel="stylesheet" href="'.$board_skin_url.'/style.css">', 0);
 
// 여기를 추가해주세요.
if (in_array($bo_table, array('free', 'gallery')) && $is_member && !$is_admin) {
    $adp_2601021521_is_notice = in_array($write['wr_id'], explode(',', trim($board['bo_notice'])));
    if (!$adp_2601021521_is_notice && $write['mb_id'] != $member['mb_id']) {
        alert('본인이 작성한 글만 열람 가능합니다.', get_pretty_url($bo_table));
    }
}
 
?>

 

이렇게 코드를 수정해주시면됩니다.

 

 

 

추천
3

댓글 6개

전체 2,742 |RSS
그누보드5 팁자료실 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1402호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT