비밀글은 게시판 리스트에 출력안되게 하는 방법은? > 그누4 질문답변

그누4 질문답변

그누보드4 관련 질문은 QA 로 이전됩니다. QA 그누보드4 바로가기
기존 게시물은 열람만 가능합니다.

비밀글은 게시판 리스트에 출력안되게 하는 방법은? 정보

비밀글은 게시판 리스트에 출력안되게 하는 방법은?

본문

비밀글은 게시판 리스트에 출력안되게 할려고 합니다.
 
list.skin.php 파일에 어떤걸 추가 시켜야 하는지요..

댓글 전체

스킨에서 나오지 않게 된다면 문제가 있습니다.

한페이지당 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 = "";



==> 관리자 다보기 사용자 비밀글 설정된것은 정렬의 제외처리
/bbs/list.php 에상단에

########################################################
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 태그로 넘겨받음
}

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

.. 이하 생략
전체 66,554 |RSS
그누4 질문답변 내용 검색

회원로그인

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