답변 2개
채택된 답변
+20 포인트
답변에 대한 댓글 5개
�
팡팡
6년 전
답변 감사합니다. 하지만 이렇게 할 경우 모든게시판이 적용이 되는거 아닌가요? 2개에 게시판만 본인글 외에 다른글을 안나오게 할려고 하는거라서요.
�
유진201907
6년 전
링크드린 글 본문을 보시면 "if($bo_table == "게시판이름" && !$is_admin) { // 관리자를 제외하고 특정게시판에 본인글만 보이기" 라는 대목이 있습니다. $bo_table을 통해 적용을 원하는 2개 게시판만 적용하고, 나머지 일반게시판은 순정 설정 그대로 두는 방법이 있습니다.
�
팡팡
6년 전
if($bo_table == "게시판이름" && !$is_admin) { // 관리자를 제외하고 특정게시판에 본인글만 보이기
이걸 어디에다가 넣어야되나요? 이부분은 어디에다가 적어야되는지 안적혀있어서요.
이걸 어디에다가 넣어야되나요? 이부분은 어디에다가 적어야되는지 안적혀있어서요.
�
유진201907
6년 전
"169라인 부근에"~ 라는 문구를 보면,
소스를 수정하는 부분이 있습니다. 이를
if($bo_table == "게시판이름" && !$is_admin) {
소스
}
로 하면 될 것 같습니다.
소스를 수정하는 부분이 있습니다. 이를
if($bo_table == "게시판이름" && !$is_admin) {
소스
}
로 하면 될 것 같습니다.
�
팡팡
6년 전
무슨말씀이신지 잘 모르겠어요. 아무리 bbs/list.php 에 들어와서 보고 있는데 ~ 라는 문구를 찾아볼 수가 없어요
169라인에요.
169라인에요.
댓글을 작성하려면 로그인이 필요합니다.
6년 전
그누보드 순정 기준이고, 아래 '$array_bo_table' 에 설정을 원하는 게시판에 bo_table를 입력하여 보세요. 외부라서 정확한 테스트는 못했지만, 이런식으로 하시면 될 듯 합니다.
</p>
<p><?php
if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가</p>
<p>$array_bo_table = ""; // 적용 게시판 bo_table</p>
<p>// 분류 사용 여부
$is_category = false;
$category_option = '';
if ($board['bo_use_category']) {
$is_category = true;
$category_href = G5_BBS_URL.'/board.php?bo_table='.$bo_table;</p>
<p> $category_option .= '<li><a href="'.$category_href.'"';
if ($sca=='')
$category_option .= ' id="bo_cate_on"';
$category_option .= '>전체</a></li>';</p>
<p> $categories = explode('|', $board['bo_category_list']); // 구분자가 , 로 되어 있음
for ($i=0; $i<count($categories); $i++) {
$category = trim($categories[$i]);
if ($category=='') continue;
$category_option .= '<li><a href="'.($category_href."&sca=".urlencode($category)).'"';
$category_msg = '';
if ($category==$sca) { // 현재 선택된 카테고리라면
$category_option .= ' id="bo_cate_on"';
$category_msg = '<span class="sound_only">열린 분류 </span>';
}
$category_option .= '>'.$category_msg.$category.'</a></li>';
}
}</p>
<p>$sop = strtolower($sop);
if ($sop != 'and' && $sop != 'or')
$sop = 'and';</p>
<p>// 분류 선택 또는 검색어가 있다면
$stx = trim($stx);
//검색인지 아닌지 구분하는 변수 초기화
$is_search_bbs = false;</p>
<p>if ($sca || $stx || $stx === '0') { //검색이면
$is_search_bbs = true; //검색구분변수 true 지정
$sql_search = get_sql_search($sca, $sfl, $stx, $sop);</p>
<p> // 가장 작은 번호를 얻어서 변수에 저장 (하단의 페이징에서 사용)
$sql = " select MIN(wr_num) as min_wr_num from {$write_table} ";
$row = sql_fetch($sql);
$min_spt = (int)$row['min_wr_num'];</p>
<p> if (!$spt) $spt = $min_spt;</p>
<p> $sql_search .= " and (wr_num between {$spt} and ({$spt} + {$config['cf_search_part']})) ";</p>
<p> if($bo_table == $array_bo_table && !$is_admin) {
$sql_search .= " and mb_id = '{$member[mb_id]}' "; // 본인 글만 카운트
}</p>
<p> // 원글만 얻는다. (코멘트의 내용도 검색하기 위함)
// 라엘님 제안 코드로 대체 <a href="http://sir.kr/g5_bug/2922" target="_blank" rel="noopener noreferrer">http://sir.kr/g5_bug/2922</a>
$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 {
if($bo_table == $array_bo_table && !$is_admin) {
// 본인 글만 카운트</p>
<p> $sql_search = " mb_id = '{$member[mb_id]}' ";</p>
<p> $sql = " SELECT COUNT * AS `cnt` FROM {$write_table} WHERE {$sql_search} ";</p>
<p> $row = sql_fetch($sql);</p>
<p> $total_count = $row['cnt'];</p>
<p> }else{</p>
<p> $sql_search = "";
$total_count = $board['bo_count_write'];</p>
<p> }
}</p>
<p>if(G5_IS_MOBILE) {
$page_rows = $board['bo_mobile_page_rows'];
$list_page_rows = $board['bo_mobile_page_rows'];
} else {
$page_rows = $board['bo_page_rows'];
$list_page_rows = $board['bo_page_rows'];
}</p>
<p>if ($page < 1) { $page = 1; } // 페이지가 없으면 첫 페이지 (1 페이지)</p>
<p>// 년도 2자리
$today2 = G5_TIME_YMD;</p>
<p>$list = array();
$i = 0;
$notice_count = 0;
$notice_array = array();</p>
<p>// 공지 처리
if (!$is_search_bbs) {
$arr_notice = explode(',', trim($board['bo_notice']));
$from_notice_idx = ($page - 1) * $page_rows;
if($from_notice_idx < 0)
$from_notice_idx = 0;
$board_notice_count = count($arr_notice);</p>
<p> for ($k=0; $k<$board_notice_count; $k++) {
if (trim($arr_notice[$k]) == '') continue;</p>
<p> $row = sql_fetch(" select * from {$write_table} where wr_id = '{$arr_notice[$k]}' ");</p>
<p> if (!$row['wr_id']) continue;</p>
<p> $notice_array[] = $row['wr_id'];</p>
<p> if($k < $from_notice_idx) continue;</p>
<p> $list[$i] = get_list($row, $board, $board_skin_url, G5_IS_MOBILE ? $board['bo_mobile_subject_len'] : $board['bo_subject_len']);
$list[$i]['is_notice'] = true;</p>
<p> $i++;
$notice_count++;</p>
<p> if($notice_count >= $list_page_rows)
break;
}
}</p>
<p>$total_page = ceil($total_count / $page_rows); // 전체 페이지 계산
$from_record = ($page - 1) * $page_rows; // 시작 열을 구함</p>
<p>// 공지글이 있으면 변수에 반영
if(!empty($notice_array)) {
$from_record -= count($notice_array);</p>
<p> if($from_record < 0)
$from_record = 0;</p>
<p> if($notice_count > 0)
$page_rows -= $notice_count;</p>
<p> if($page_rows < 0)
$page_rows = $list_page_rows;
}</p>
<p>// 관리자라면 CheckBox 보임
$is_checkbox = false;
if ($is_member && ($is_admin == 'super' || $group['gr_admin'] == $member['mb_id'] || $board['bo_admin'] == $member['mb_id']))
$is_checkbox = true;</p>
<p>// 정렬에 사용하는 QUERY_STRING
$qstr2 = 'bo_table='.$bo_table.'&sop='.$sop;</p>
<p>// 0 으로 나눌시 오류를 방지하기 위하여 값이 없으면 1 로 설정
$bo_gallery_cols = $board['bo_gallery_cols'] ? $board['bo_gallery_cols'] : 1;
$td_width = (int)(100 / $bo_gallery_cols);</p>
<p>// 정렬
// 인덱스 필드가 아니면 정렬에 사용하지 않음
//if (!$sst || ($sst && !(strstr($sst, 'wr_id') || strstr($sst, "wr_datetime")))) {
if (!$sst) {
if ($board['bo_sort_field']) {
$sst = $board['bo_sort_field'];
} else {
$sst = "wr_num, wr_reply";
$sod = "";
}
} else {
// 게시물 리스트의 정렬 대상 필드가 아니라면 공백으로 (nasca 님 09.06.16)
// 리스트에서 다른 필드로 정렬을 하려면 아래의 코드에 해당 필드를 추가하세요.
// $sst = preg_match("/^(wr_subject|wr_datetime|wr_hit|wr_good|wr_nogood)$/i", $sst) ? $sst : "";
$sst = preg_match("/^(wr_datetime|wr_hit|wr_good|wr_nogood)$/i", $sst) ? $sst : "";
}</p>
<p>if(!$sst)
$sst = "wr_num, wr_reply";</p>
<p>if ($sst) {
$sql_order = " order by {$sst} {$sod} ";
}</p>
<p>
if($bo_table == $array_bo_table && !$is_admin) {</p>
<p> // 본인 글만 보이기 수정
$sql_search= " and mb_id = '{$member[mb_id]}' ";
$sql = " select * from {$write_table} where wr_is_comment = 0 {$sql_search} ";</p>
<p> if(!empty($notice_array))
$sql .= " and wr_id not in (".implode(', ', $notice_array).") ";
$sql .= " {$sql_order} limit {$from_record}, $page_rows ";
}
}else{</p>
<p> 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 ";
}</p>
<p>
} // end</p>
<p>
// 페이지의 공지개수가 목록수 보다 작을 때만 실행
if($page_rows > 0) {
$result = sql_query($sql);</p>
<p> $k = 0;</p>
<p> while ($row = sql_fetch_array($result))
{
// 검색일 경우 wr_id만 얻었으므로 다시 한행을 얻는다
if ($is_search_bbs)
$row = sql_fetch(" select * from {$write_table} where wr_id = '{$row['wr_parent']}' ");</p>
<p> $list[$i] = get_list($row, $board, $board_skin_url, G5_IS_MOBILE ? $board['bo_mobile_subject_len'] : $board['bo_subject_len']);
if (strstr($sfl, 'subject')) {
$list[$i]['subject'] = search_font($stx, $list[$i]['subject']);
}
$list[$i]['is_notice'] = false;
$list_num = $total_count - ($page - 1) * $list_page_rows - $notice_count;
$list[$i]['num'] = $list_num - $k;</p>
<p> $i++;
$k++;
}
}</p>
<p>$write_pages = get_paging(G5_IS_MOBILE ? $config['cf_mobile_pages'] : $config['cf_write_pages'], $page, $total_page, './board.php?bo_table='.$bo_table.$qstr.'&page=');</p>
<p>$list_href = '';
$prev_part_href = '';
$next_part_href = '';
if ($is_search_bbs) {
$list_href = './board.php?bo_table='.$bo_table;</p>
<p> $patterns = array('#&page=[0-9]*#', '#&spt=[0-9\-]*#');</p>
<p> //if ($prev_spt >= $min_spt)
$prev_spt = $spt - $config['cf_search_part'];
if (isset($min_spt) && $prev_spt >= $min_spt) {
$qstr1 = preg_replace($patterns, '', $qstr);
$prev_part_href = './board.php?bo_table='.$bo_table.$qstr1.'&spt='.$prev_spt.'&page=1';
$write_pages = page_insertbefore($write_pages, '<a href="'.$prev_part_href.'" class="pg_page pg_prev">이전검색</a>');
}</p>
<p> $next_spt = $spt + $config['cf_search_part'];
if ($next_spt < 0) {
$qstr1 = preg_replace($patterns, '', $qstr);
$next_part_href = './board.php?bo_table='.$bo_table.$qstr1.'&spt='.$next_spt.'&page=1';
$write_pages = page_insertafter($write_pages, '<a href="'.$next_part_href.'" class="pg_page pg_end">다음검색</a>');
}
}</p>
<p>
$write_href = '';
if ($member['mb_level'] >= $board['bo_write_level']) {
$write_href = './write.php?bo_table='.$bo_table;
}</p>
<p>$nobr_begin = $nobr_end = "";
if (preg_match("/gecko|firefox/i", $_SERVER['HTTP_USER_AGENT'])) {
$nobr_begin = '<nobr>';
$nobr_end = '</nobr>';
}</p>
<p>// RSS 보기 사용에 체크가 되어 있어야 RSS 보기 가능 061106
$rss_href = '';
if ($board['bo_use_rss_view']) {
$rss_href = './rss.php?bo_table='.$bo_table;
}</p>
<p>$stx = get_text(stripslashes($stx));
include_once($board_skin_path.'/list.skin.php');
?></p>
<p>
로그인 후 평가할 수 있습니다
답변에 대한 댓글 3개
�
팡팡
6년 전
힘들게 계속 도와주셨는데... 안되네요. 이거 카피해서 해봐도 안되고 제가 따로만들어서도 해보고 해도 본인이 작성글 외에 다른글이 나오지가 않아요.
제가 정한 게시판만 적용이 되야되는데 모든게시판이 적용이 되요. 계속 ㅜㅜ
제가 정한 게시판만 적용이 되야되는데 모든게시판이 적용이 되요. 계속 ㅜㅜ
�
유진201907
6년 전
혹시 관리자로 접속하셨는지요?
�
팡팡
6년 전
아니요. 테스트계정으로 했어요. 너무 감사합니다. 이제괜찮아요. 너무 많이 도와주셔서 대단히 감사합니다.
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인