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

** 주의사항

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

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

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

 

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

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

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

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

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

 

[code]

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'];
}

[/code]

 

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

 

[code]

// ------------------------------------------------------------------------
// 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'];
}
*/
// ------------------------------------------------------------------------


[/code]

 

 

그리고

 

[code]

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 ";
}

[/code]

 

이 부분을 찾으셔서

 

[code]

// ---------------------------------------------------------------
// 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 ";
}
*/
// ---------------------------------------------------------------

[/code]

 

이렇게 바꿔주세요.

 

이렇게 하면 

 

1982076563_1767336556.9544.png

 

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

 

 

1982076563_1767336589.2089.png

 

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

 

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

 

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

 

[code]

<?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));
    }
}

 

?>

[/code]

 

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

 

 

 

|

댓글 6개

수고하셨습니다!!

@아이스웨덴™ 반드시 목록 접근권한 등급을 2등급 이상으로 해주셔야 합니다.

고생하셨습니다.

@엘뤼아르 반드시 목록 접근권한 등급을 2등급 이상으로 해주셔야 합니다.

감사합니다 ^^

@민트다이어리 반드시 목록 접근권한 등급을 2등급 이상으로 해주셔야 합니다.

댓글을 작성하시려면 로그인이 필요합니다.

그누보드5 팁자료실

+
제목 글쓴이 날짜 조회
3년 전 조회 4,754
2일 전 조회 69
4일 전 조회 88
1주 전 조회 186
1주 전 조회 225
2주 전 조회 284
2주 전 조회 297
2주 전 조회 266
3주 전 조회 423
3주 전 조회 275
3주 전 조회 369
4주 전 조회 321
1개월 전 조회 433
1개월 전 조회 444
1개월 전 조회 338
1개월 전 조회 522
1개월 전 조회 497
1개월 전 조회 458
1개월 전 조회 444
1개월 전 조회 510
1개월 전 조회 435
1개월 전 조회 425
2개월 전 조회 586
2개월 전 조회 436
2개월 전 조회 632
2개월 전 조회 500
2개월 전 조회 562
2개월 전 조회 557
2개월 전 조회 469
2개월 전 조회 511
2개월 전 조회 397