답변 5개 / 댓글 3개
1:1 문의 게시판 스킨을 참고하시면 됩니다.
nine님의 1:1 문의 게시판 소스를 참고했습니다.
참고
list.skin.php 상단에 아래 코드를 추가하시고
// 공지가져오기$noticeNumS = str_replace("\n",",",$board[bo_notice]);$bb_query2 = "select * from `{$write_table}` where 1 and find_in_set(wr_id,'{$noticeNumS}') and wr_is_comment != 1 order by wr_num, wr_reply;";$result2 = sql_query($bb_query2);$list2A = array();while ($row = sql_fetch_array($result2)){ $row = get_list($row, $board, $g4[path].'/skin/board/'.$board[bo_skin], $board[bo_subject_len]); array_push($list2A, $row);} // 해당 사용자가 쓴 글의 번호를 얻어 옴.$bb_query1 = "select * from `{$write_table}` where 1 and mb_id like '{$member[mb_id]}'"; $result1 = sql_query($bb_query1);$list1A = array();while ($row = sql_fetch_array($result1)){ $list1S = $row[wr_num].",".$list1S; //array_push($list1A, $row[wr_num]);} // 페이징 처리$bb_query_total = "select * from `{$write_table}` where 1 and find_in_set(wr_num,'{$list1S}') and wr_is_comment != 1 order by wr_num, wr_reply;";$bb_result_total = sql_query($bb_query_total);$bb_total_count = mysql_num_rows($bb_result_total); $bb_total_page = ceil($bb_total_count / $board[bo_page_rows]); // 전체 페이지 계산if (!$page) { $page = 1; } // 페이지가 없으면 첫 페이지 (1 페이지)$bb_from_record = ($page - 1) * $board[bo_page_rows]; // 시작 열을 구함 $bb_url = "./board.php?bo_table={$board[bo_table]}&page=";$bb_write_pages = get_paging( $board[bo_page_rows], $page, $bb_total_page, $bb_url, $add=""); // 공지글, 해당사용자가 쓴 글과 관련된 게시물 가져오기$bb_query3 = "select * from `{$write_table}` where 1 and find_in_set(wr_num,'{$list1S}') and wr_is_comment != 1 order by wr_num, wr_reply limit $bb_from_record, $board[bo_page_rows];";$result3 = sql_query($bb_query3);$list3A = array();while ($row = sql_fetch_array($result3)){ $row = get_list($row, $board, $g4[path].'/skin/board/'.$board[bo_skin], $board[bo_subject_len]); array_push($list2A, $row);} if ( !$is_admin) { $total_count = $bb_total_count; $list = $list2A; $write_pages = $bb_write_pages;}
그누보드 구조를 아는 회원은 wr_id의 값을 바꿔서 뷰페이지를 열람할수 있으므로 뷰도 바꿔줘야합니다.
view.skin.php
if (!(($member[mb_id] && ($member[mb_id] == $write[mb_id])) || $member[mb_level] >= 9 || $is_admin)) // 글쓴회원, 레벨9이상, 관리자가 아니라면 alert("신청자 본인만 글 열람이 가능합니다."); ?>
그럼 그냥 스킨에서 이렇게하세요
view.skin.php 파일에서 빨간색 부분 추가
<section id="bo_v_atc">
<h2 id="bo_v_atc_title">본문</h2>
<?php if (($view['mb_id'] == $member['mb_id']) || $is_admin) { ?>
<?php
// 파일 출력
$v_img_count = count($view['file']);
if($v_img_count) {
echo "<div id=\"bo_v_img\">\n";
for ($i=0; $i<=count($view['file']); $i++) {
if ($view['file'][$i]['view']) {
//echo $view['file'][$i]['view'];
echo get_view_thumbnail($view['file'][$i]['view']);
}
}
echo "</div>\n";
}
?>
<!-- 본문 내용 시작 { -->
<div id="bo_v_con"><?php echo get_view_thumbnail($view['content']); ?></div>
<?php//echo $view['rich_content']; // {이미지:0} 과 같은 코드를 사용할 경우 ?>
<!-- } 본문 내용 끝 -->
<?php } else { ?>
본인이 작성한 글만 열람 가능합니다.
<?php } ?>
그누보드4 기준 /bbs/list.php 파일에서 // wr_id 값이 있으면 글읽기 위치를 찾은 후
빨간색 부분 추가..
// wr_id 값이 있으면 글읽기
if ($wr_id)
{
// 자신의 글이거나 관리자라면 통과
if (($write['mb_id'] && $write['mb_id'] == $member['mb_id']) || $is_admin) {
;
} else {
alert('본인이 작성한 글만 열람 가능합니다.', "./board.php?bo_table=$bo_table");
}
...
...
...
답변에 대한 댓글 3개
글을 모두 읽을 수 있는데 내용은 1:1로 하는 건 모순이 되는데요
단지 클릭은 되고 안에 내용만 감추는 건가요?
1:1문의처럼 페이지는 들어가지되 안에 내용을 관리자와 회원만 보도록하고싶은데
작은별님이 위에남겨주신 코드를 한번 적용시켜봤는데 alert 구문이 무한반복되고...
페이지 자체가 글쓴이와 회원이아니면 들어갈수 없도록 되어있습니다 !!
bbs/list.php 파일에서 수정하시면 되는데
설명하기는 조금 힘드네요..
곧 답변을 드리겠습니다..
게시판 설정에 무조건 비밀글 하시면 되는거 아닌가요? 다른 기능이 더 필요하신건가요?
답변을 작성하려면 로그인이 필요합니다.
alert값이 계속나오고있는데
게시글을 모든사람이 읽는데 글쓴내용만 따로 1:1문의처럼 하고싶은데 어떻게해야되나요?