개인용 게시판(1:1게시판/내글만보기) 개별 설정하기 > 그누보드5 팁자료실

그누보드5 팁자료실

개인용 게시판(1:1게시판/내글만보기) 개별 설정하기 정보

개인용 게시판(1:1게시판/내글만보기) 개별 설정하기

본문

@소울e 님께서 공유해주신 자신의 글만보기 팁에서

게시판 설정의 여분필드(bo_10)를 활용하여 관리자모드 > 게시판설정 에서

체크박스를 통해 각 게시판별로 적용시킬 수 있도록 다듬어보았습니다.

테스트 : http://false9.inour.net/work/ (tester / tester)
좌측메뉴 > 개인전용 게시판 


게시판설정에 추가한 체크박스를 통해 여분필드(bo_10) 에 "mybbs" 를 입력시키고

bo_10에 "mybbs" 값이 들어가 있는 경우에만

내글만 볼 수 있는 게시판으로 적용 합니다. 관리자는 모든글을 볼 수 있습니다.

 

3109820472_1573625518.7372.png

 


bbs/list.php
--------------------------------

80라인 쯤
$sql_search .= " and (wr_num between {$spt} and ({$spt} + {$config['cf_search_part']})) ";
바로 아래에 추가해주세요.


//개인화 처리
if($board['bo_10'] == "mybbs" && !$is_admin) {
    $sql_search .= " and mb_id = '{$member[mb_id]}' "; // 본인 글만 카운트
}

 


96라인 쯤

$sql_search = "";
$total_count = $board['bo_count_write'];

을 아래와같이 수정해주세요.

 


//개인화 처리
if($board['bo_10'] == "mybbs" && !$is_admin) {
    $sql_search = " mb_id = '{$member[mb_id]}' ";
    $sql = " SELECT COUNT * 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'];
}

 

213라인 쯤

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

을 아래와같이 수정해주세요.

 


//개인화 처리
if($board['bo_10'] == "mybbs" && !$is_admin) {
    $sql_search= " and mb_id = '{$member[mb_id]}' ";
    $sql = " select * from {$write_table} where wr_is_comment = 0 {$sql_search} ";
    if(!empty($notice_array))
    $sql .= " and wr_id not in (".implode(', ', $notice_array).") ";
    $sql .= " {$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 ";
}

 

 

adm/board_form.php
--------------------------------

 

255라인 쯤(적당한위치)추가해주세요.

 


<tr>
    <th scope="row"><label for="bo_10">개인화 게시판 설정</label></th>
    <td colspan="2">
        <?php echo help('개인화 게시판(로그인된 자신의 글만 볼 수 있음) 으로 설정하는 경우 체크해 주세요.') ?>
        <input type="checkbox" name="bo_10" value="mybbs" id="bo_10" <?php echo $board['bo_10']?'checked':''; ?>>
        <label for="bo_10">사용</label>
    </td>
</tr>

 

1248라인 쯤

<?php for ($i=1; $i<=10; $i++) { ?>

을 아래와같이 수정해주세요.

 


<?php for ($i=1; $i<=9; $i++) { ?>

 

 

이상입니다~

@소울e 님께 감사의 말씀 올립니다!

추천
7

댓글 31개

작성하신거에 많은 도움이 되었습니다.

검색 기능은 쓸수 없는것 같은데 검색까지 가능하게 하려면 sql_search 부분을 보완해야 할것 같습니다.
의견 드려요^^
음 검색도 잘되는것으로 확인이 됩니다 ^^;
자신이 쓴 글에서만 검색결과를 보여주고 있습니다 ~

관리자모드 > 생성된 게시판의 개별설정을 통해서 체크만 해주면 되니 무제한이겠죠?
생성되어 있는 게시판 개별로 필요에따라 개인용으로 설정할 수 있어요~
제가 방금 소울e님 게시물(https://sir.kr/g5_tip/11861)을 테스트 해봤는데

관리자는 글 번호가 1, 2, 3, 4, 제대로 나타나는데
관리자가 아닌 글쓴이는 글 번호가 0, -1, 2, -3, 이런식으로 나타나고

글이 많아질 경우 관리자는 페이징 기능이 정상적으로 작동하는데
이 역시 관리자가 아닌 글쓴이는 페이징이 나타나지 않는 문제가 있는것 같습니다.

혹시 이 부분 확인해보셨나요? 해당 글에는 아무도 해당 문제의 내용을 말씀하는분이 없더라구요..
아마 펄스나인님이 작성하신 이 글도 똑같은 문제가 있을것 같은데 확인 한번 부탁드립니다.
위 코드는 페이징에 문제가 있어서 사용하지 않으시는것이 좋을것 같습니다.
말씀주신 부분은 조건문을 추가해주시면 되겠습니다.



if ($member['mb_level'] == 3) {
// 로그인 된 회원의 레벨이 3인 경우 출력
} else { 
// 그렇지 않은 경우 출력
}

/개인화 처리 밑으로 그냥 넣으면 되나요?
추가해봤는데 처리가 안되서요.
어느곳에 삽입해야 되는지 알려주시면 감사하겠습니다.
&& !$is_admin && !$member['mb_level'] == 3
//관리자와 3레벨이 아닌경우만

와 같은 식으로 모든 if문에 조건을 추가해보세요~
//개인화 처리
if($board['bo_10'] == "mybbs" && !$is_admin && !$member['mb_level'] == 3) {
    $sql_search .= " and mb_id = '{$member[mb_id]}' "; // 본인 글만 카운트
}


이렇게 했는데 게시판이 사라지는 마술이 일어나네요...
어찌하면 될까요.
펄스나인님 귀찮게 해드려 죄송합니다.
도와주세요~
페이징 코드 문제

//개인화 처리
if($board['bo_10'] == "mybbs" && !$is_admin) {
    $sql_search = " mb_id = '{$member[mb_id]}' ";
    $sql = " SELECT COUNT * 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'];
}
이 부분을 밑에 처럼 수정하면

//개인화 처리
if($board['bo_10'] == "mybbs" && !$is_admin) {
$sql_search = " mb_id = '{$member[mb_id]}' ";
$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'];
}

페이지 넘버는 정상적으로 나옵니다.
전체 2,411 |RSS
그누보드5 팁자료실 내용 검색

회원로그인

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