Warning: Undefined array key "mobile_dir" in /home/kagla/new-sir/old/common.php on line 315
공지를 체크한 게시물을 페이지당 목록수에서 빼려면 어떻게하면 될까요?

공지를 체크한 게시물을 페이지당 목록수에서 빼려면 어떻게하면 될까요?

공지를 체크한 게시물을 페이지당 목록수에서 빼려면 어떻게하면 될까요?

QA

공지를 체크한 게시물을 페이지당 목록수에서 빼려면 어떻게하면 될까요?

답변 1

본문

안녕하세요. :)
아래는 list.skin.php에서 게시물에 공지를 체크하였을때, 목록에서 안보이게 하는 소스인데요~.
공지를 체크하면 게시물이 보이지는 않는데요.
페이지당 목록수를 10개로 해 놓았는데,
목록에서 이상하게 9개가 출력됩니다.
공지 체크한 게시물이 수량에 포함 되는 것 같아요.
공지를 체크한 게시물을 페이지당 목록수에서 빼려면 어떻게하면 될까요?
도움 부탁 드려요.~
 
<?
$notice_array = explode("\n", trim($board[bo_notice]));
for ($i=0; $i<count($list); $i++) {
$bg = $i%2 ? 0 : 1;
if(in_array($list[$i][wr_id] , $notice_array))
{
continue; //글로서 공지이면 노출안시킴
}
?>

이 질문에 댓글 쓰기 :

답변 1

list.php에서 10개씩 불러온 뒤에 list.skin.php에서 공지인 경우 출력을 안 하는 방식인 것 같군요.
애초에 10개를 불러온 뒤에 공지인 경우 출력만 안 하는 방식이기 때문에 스킨에서 조정해서는 방법이 없을 것 같군요.
list.php에서 10개를 불러올 때 공지가 아닌 것들 중에서 10개씩 불러오도록 쿼리를 수정해야 할 것 같습니다.

말러83님 답변 감사드립니다.:)
list.php 에서 아래 처럼 수정하였는데, 수량이 빠지질 않아요.
어디가 잘못 되었나요?
도움 부탁 드려요.
 
$list = array();
$i = 0;
$j = 0;  // 공지사항 갯수
if (!$sca && !$stx)
{
    $arr_notice = explode("\n", trim($board[bo_notice]));
    for ($k=0; $k<count($arr_notice); $k++)
    {
        if (trim($arr_notice[$k])=='') continue;
        $row = sql_fetch(" select * from $write_table where wr_id = '$arr_notice[$k]' ");
        if (!$row[wr_id]) continue;
        $list[$i] = get_list($row, $board, $board_skin_path, $board[bo_subject_len]);
        $list[$i][is_notice] = true;
        $i++;
  $j++;  // 공지사항 갯수 추가
    }
}
$k = 0;
while ($row = sql_fetch_array($result))
{
    // 검색일 경우 wr_id만 얻었으므로 다시 한행을 얻는다
    if ($sca || $stx)
        $row = sql_fetch(" select * from $write_table where wr_id = '$row[wr_parent]' ");
 $arr_notice = explode("\n", trim($board[bo_notice]));
 if(@in_array($row[wr_id], $arr_notice)) continue;  // 공지사항 일 때 리스트 포함 X
    $list[$i] = get_list($row, $board, $board_skin_path, $board[bo_subject_len]);
    if (strstr($sfl, "subject"))
        $list[$i][subject] = search_font($stx, $list[$i][subject]);
    $list[$i][is_notice] = false;
    //$list[$i][num] = number_format($total_count - ($page - 1) * $board[bo_page_rows] - $k);
    $list[$i][num] = $total_count - ($page - 1) * $board[bo_page_rows] - $k -$j;  //공지갯수만큼 빼고num계산
    $i++;
    $k++;
}

답변을 작성하시기 전에 로그인 해주세요.
QA 내용 검색
질문등록
전체 129,406
© SIRSOFT
현재 페이지 제일 처음으로