처리 순서도
/bbs/list.php => /skin/board/test/list.php => /skin/board/test/list.skin.php
이런식으로 생각해보십시오.
# list.php에서의 처리 방식 추가(제일 상단에 추가 하세요
if (!defined("_GNUBOARD_")) exit; // 개별 페이지 접근 불가
$all_view_sql = " and (wr_option<>'secret') ";
if ($is_admin) $all_view_sql = "";
########################################################
if (!defined("_GNUBOARD_")) exit; // 개별 페이지 접근 불가
$all_view_sql = " and (wr_option<>'secret') ";
if ($is_admin) $all_view_sql = "";
########################################################
이렇게 추가하셔요.
관리자는 다볼수 있습니다. 일반사용자 측면에서 바라보세요.
더자세히는 힘들거 같습니다. 이외 문제에 대해서는 스스로 해결 부탁드리구요. 아니면 의뢰 주시면 대신 해드리겠습니다.
감사합니다.
gallery 게시판에 wr_memview 필드 생성 special 값이 있는 게시물 레벨 5 이상만 보도록 해봤습니다. 참고만 하세요.
if (!defined("_GNUBOARD_")) exit; // 개별 페이지 접근 불가
// 회원만 보는 게시물 카운트
if($bo_table=="gallery") {
$wr_memview_result = mysql_fetch_array(mysql_query("select count(wr_memview) from $write_table where wr_memview <> 'special' "));
// 회원설정 글 수
if ($member[mb_level]>4) $wr_memview_result[0] = 0;
}
// 분류 사용 여부
$is_category = false;
if ($board[bo_use_category])
{
$is_category = true;
$category_location = "./board.php?bo_table=$bo_table&sca=";
$category_option = get_category_option($bo_table); // SELECT OPTION 태그로 넘겨받음
}
// 분류 선택 또는 검색어가 있다면
if ($sca || $stx)
{
$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 = $row[min_wr_num];
if (!$spt) $spt = $min_spt;
// 회원설정 글 보기
if($bo_table=="gallery") {
$sql_search .= " and (wr_memview <> 'special') ";
if ($member[mb_level]>4) $sql_search .= "";
}
$sql_search .= " and (wr_num between '".$spt."' and '".($spt + $config[cf_search_part])."') ";
// 원글만 얻는다. (코멘트의 내용도 검색하기 위함)
$sql = " select distinct wr_parent from $write_table where $sql_search ";
$result = sql_query($sql);
$total_count = mysql_num_rows($result);
}
else
{
$sql_search = "";
$total_page = ceil($total_count / $board[bo_page_rows]); // 전체 페이지 계산
if (!$page) { $page = 1; } // 페이지가 없으면 첫 페이지 (1 페이지)
$from_record = ($page - 1) * $board[bo_page_rows]; // 시작 열을 구함
댓글 4개
한페이지당 15개라면 그중 비밀글이 5개가 포함되었다면
첫페이지 10개 두번째 페이지는 15개 표시가 되겠죠 그렇기 때문에
list.php에서 처리 해주시는것이 좋을듯합니다.
물론 스킨안에서 모두 처리가능합니다. 속도가 약간 떨어지더라도
처리 순서도
/bbs/list.php => /skin/board/test/list.php => /skin/board/test/list.skin.php
이런식으로 생각해보십시오.
# list.php에서의 처리 방식 추가(제일 상단에 추가 하세요
if (!defined("_GNUBOARD_")) exit; // 개별 페이지 접근 불가
$all_view_sql = " and (wr_option<>'secret') ";
if ($is_admin) $all_view_sql = "";
==> 관리자 다보기 사용자 비밀글 설정된것은 정렬의 제외처리
그런데요.. 제가 무슨말씀을 하시는지 잘 모르겠습니다.^^;
자세히 풀어서 답변 부탁드릴께요^^
########################################################
if (!defined("_GNUBOARD_")) exit; // 개별 페이지 접근 불가
$all_view_sql = " and (wr_option<>'secret') ";
if ($is_admin) $all_view_sql = "";
########################################################
이렇게 추가하셔요.
관리자는 다볼수 있습니다. 일반사용자 측면에서 바라보세요.
더자세히는 힘들거 같습니다. 이외 문제에 대해서는 스스로 해결 부탁드리구요. 아니면 의뢰 주시면 대신 해드리겠습니다.
감사합니다.
if (!defined("_GNUBOARD_")) exit; // 개별 페이지 접근 불가
// 회원만 보는 게시물 카운트
if($bo_table=="gallery") {
$wr_memview_result = mysql_fetch_array(mysql_query("select count(wr_memview) from $write_table where wr_memview <> 'special' "));
// 회원설정 글 수
if ($member[mb_level]>4) $wr_memview_result[0] = 0;
}
// 분류 사용 여부
$is_category = false;
if ($board[bo_use_category])
{
$is_category = true;
$category_location = "./board.php?bo_table=$bo_table&sca=";
$category_option = get_category_option($bo_table); // SELECT OPTION 태그로 넘겨받음
}
$sop = strtolower($sop);
if ($sop != "and" && $sop != "or")
$sop = "and";
// 분류 선택 또는 검색어가 있다면
if ($sca || $stx)
{
$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 = $row[min_wr_num];
if (!$spt) $spt = $min_spt;
// 회원설정 글 보기
if($bo_table=="gallery") {
$sql_search .= " and (wr_memview <> 'special') ";
if ($member[mb_level]>4) $sql_search .= "";
}
$sql_search .= " and (wr_num between '".$spt."' and '".($spt + $config[cf_search_part])."') ";
// 원글만 얻는다. (코멘트의 내용도 검색하기 위함)
$sql = " select distinct wr_parent from $write_table where $sql_search ";
$result = sql_query($sql);
$total_count = mysql_num_rows($result);
}
else
{
$sql_search = "";
$total_count = $board[bo_count_write] - $wr_memview_result[0];
}
$total_page = ceil($total_count / $board[bo_page_rows]); // 전체 페이지 계산
if (!$page) { $page = 1; } // 페이지가 없으면 첫 페이지 (1 페이지)
$from_record = ($page - 1) * $board[bo_page_rows]; // 시작 열을 구함
// 관리자라면 CheckBox 보임
$is_checkbox = false;
if ($member[mb_id] && ($is_admin == "super" || $group[gr_admin] == $member[mb_id] || $board[bo_admin] == $member[mb_id]))
$is_checkbox = true;
// 정렬에 사용하는 QUERY_STRING
$qstr2 = "bo_table=$bo_table&sop=$sop";
if ($board[bo_gallery_cols])
$td_width = (int)(100 / $board[bo_gallery_cols]);
// 정렬
// 인덱스 필드가 아니면 정렬에 사용하지 않음
//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 = "";
}
// 회원설정 글 보기
if($bo_table=="gallery") {
$sql_order = " and (wr_memview <> 'special') ";
if ($member[mb_level]>4) $sql_order = "";
}
$sql_order .= " order by $sst $sod ";
.. 이하 생략