개인용 게시판(1:1게시판/내글만보기) 개별 설정하기 정보
개인용 게시판(1:1게시판/내글만보기) 개별 설정하기관련링크
본문
@소울e 님께서 공유해주신 자신의 글만보기 팁에서
게시판 설정의 여분필드(bo_10)를 활용하여 관리자모드 > 게시판설정 에서
체크박스를 통해 각 게시판별로 적용시킬 수 있도록 다듬어보았습니다.
테스트 : http://false9.inour.net/work/ (tester / tester)
좌측메뉴 > 개인전용 게시판
게시판설정에 추가한 체크박스를 통해 여분필드(bo_10) 에 "mybbs" 를 입력시키고
bo_10에 "mybbs" 값이 들어가 있는 경우에만
내글만 볼 수 있는 게시판으로 적용 합니다. 관리자는 모든글을 볼 수 있습니다.
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 부분을 보완해야 할것 같습니다.
의견 드려요^^
자신이 쓴 글에서만 검색결과를 보여주고 있습니다 ~
생성되어 있는 게시판 개별로 필요에따라 개인용으로 설정할 수 있어요~
관리자는 글 번호가 1, 2, 3, 4, 제대로 나타나는데
관리자가 아닌 글쓴이는 글 번호가 0, -1, 2, -3, 이런식으로 나타나고
글이 많아질 경우 관리자는 페이징 기능이 정상적으로 작동하는데
이 역시 관리자가 아닌 글쓴이는 페이징이 나타나지 않는 문제가 있는것 같습니다.
혹시 이 부분 확인해보셨나요? 해당 글에는 아무도 해당 문제의 내용을 말씀하는분이 없더라구요..
아마 펄스나인님이 작성하신 이 글도 똑같은 문제가 있을것 같은데 확인 한번 부탁드립니다.
수정을 해봐야겠습니다 !
진심으로 감사드립니다~!!
글번호나 페이징에 문제가 있는것 같습니다 ㅠ
말씀주신 부분은 조건문을 추가해주시면 되겠습니다.
if ($member['mb_level'] == 3) {
// 로그인 된 회원의 레벨이 3인 경우 출력
} else {
// 그렇지 않은 경우 출력
}
추가해봤는데 처리가 안되서요.
어느곳에 삽입해야 되는지 알려주시면 감사하겠습니다.
//관리자와 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'];
}
페이지 넘버는 정상적으로 나옵니다.