[etc] 공지사항과 게시글 이중으로 올라가는 문제 해결
페이지 정보
본문
대부분의 게시판에는 공지사항을 올리면 공지사항이 올라가면서 게시글에도 이중으로 올라갑니다.
그런 부분으로 씨름하다가 곰순이푸님의 의견을 따라 그누에 검색결과 그런 부분에 대한 해결책이 있었습니다.
같은 생각을 가진 분들이 계시지 않을까 싶어서 옮겨놓습니다.
그런데 팁 올린분 보다 심만짱님이 댓글 다신 내용이 쉬웠고 또 적용하였으나 문제가 없었습니다.
그러므로 심만짱님의 내용을 옮겨 놓으면서 게시글 역시 링크하겠습니다.
그 내용은 아래와 같습니다.
list.php 화일을 비교하시면서 세 군데 수정하시면 되겠습니다.
--->심만짱님의 글 인용부분.
*설명
노란색으로 공지사항으로 되어 있는 부분을 올리시고.
제일 아래 줄 공지사항 부분은 공통부분은 그냥 두시고 붉은 색으로 되어 있는 부분만 추가하시면 될 것 같습니다.
그런 부분으로 씨름하다가 곰순이푸님의 의견을 따라 그누에 검색결과 그런 부분에 대한 해결책이 있었습니다.
같은 생각을 가진 분들이 계시지 않을까 싶어서 옮겨놓습니다.
그런데 팁 올린분 보다 심만짱님이 댓글 다신 내용이 쉬웠고 또 적용하였으나 문제가 없었습니다.
그러므로 심만짱님의 내용을 옮겨 놓으면서 게시글 역시 링크하겠습니다.
그 내용은 아래와 같습니다.
list.php 화일을 비교하시면서 세 군데 수정하시면 되겠습니다.
--->심만짱님의 글 인용부분.
저도 이번에 적용을 해봤는데..소스를 어디에 적용하느냐에 따라 맨위공지부분이 안보일수도 있고 리스트출력이 안될수도 있고 해서...그냥 쉽게 추가만 하려고 하다가 한참 헤맸습니다.
좋은 팁을 공개해주셔서 감사합니다.
전 아래처럼 넣었어요..
--------------------------------------------------------------------------
if (!$sca && !$stx)
{
$arr_notice = split("\n", trim($board[bo_notice]));
for ($k=0; $k<count($arr_notice); $k++)
{
$notice_su=$i; //공지사항리스트에서 빼기위해 추가함 2007-06-15(공지사항갯수)
if (trim($arr_notice[$k])=='') continue;
$row = sql_fetch(" select * from $write_table where wr_id = '$arr_notice[$k]' ");
//if (!$sca && !$stx){ if(in_array($row[wr_id],$arr_notice)) continue; }//공지 게시판리스트에서 빼기 위해 추가함 2007-06-15 (여기에 위치할 경우 상단의 공지만제거됨)
if (!$row[wr_id]) continue;
$list[$i] = get_list($row, $board, $board_skin_path, $board[bo_subject_len]);
$list[$i][is_notice] = true;
$i++;
}
}
$k = 0;
while ($row = sql_fetch_array($result))
{
if (!$sca && !$stx){ if(in_array($row[wr_id],$arr_notice)) continue;}//공지사항리스트에서 빼기위해 추가함 2007-06-15
// 검색일 경우 wr_id만 얻었으므로 다시 한행을 얻는다
if ($sca || $stx)
$row = sql_fetch(" select * from $write_table where wr_id = '$row[wr_parent]' ");
$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 - $notice_su; //공지사항리스트에서 빼기위해 추가함(맨끝- $notice_su;만추가함) 2007-06-15
$i++;
$k++;
}
$write_pages = get_paging($config[cf_write_pages], $page, $total_page, "./board.php?bo_table=$bo_table".$qstr."&page=");
<-- 이상입니다.좋은 팁을 공개해주셔서 감사합니다.
전 아래처럼 넣었어요..
--------------------------------------------------------------------------
if (!$sca && !$stx)
{
$arr_notice = split("\n", trim($board[bo_notice]));
for ($k=0; $k<count($arr_notice); $k++)
{
$notice_su=$i; //공지사항리스트에서 빼기위해 추가함 2007-06-15(공지사항갯수)
if (trim($arr_notice[$k])=='') continue;
$row = sql_fetch(" select * from $write_table where wr_id = '$arr_notice[$k]' ");
//if (!$sca && !$stx){ if(in_array($row[wr_id],$arr_notice)) continue; }//공지 게시판리스트에서 빼기 위해 추가함 2007-06-15 (여기에 위치할 경우 상단의 공지만제거됨)
if (!$row[wr_id]) continue;
$list[$i] = get_list($row, $board, $board_skin_path, $board[bo_subject_len]);
$list[$i][is_notice] = true;
$i++;
}
}
$k = 0;
while ($row = sql_fetch_array($result))
{
if (!$sca && !$stx){ if(in_array($row[wr_id],$arr_notice)) continue;}//공지사항리스트에서 빼기위해 추가함 2007-06-15
// 검색일 경우 wr_id만 얻었으므로 다시 한행을 얻는다
if ($sca || $stx)
$row = sql_fetch(" select * from $write_table where wr_id = '$row[wr_parent]' ");
$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 - $notice_su; //공지사항리스트에서 빼기위해 추가함(맨끝- $notice_su;만추가함) 2007-06-15
$i++;
$k++;
}
$write_pages = get_paging($config[cf_write_pages], $page, $total_page, "./board.php?bo_table=$bo_table".$qstr."&page=");
*설명
노란색으로 공지사항으로 되어 있는 부분을 올리시고.
제일 아래 줄 공지사항 부분은 공통부분은 그냥 두시고 붉은 색으로 되어 있는 부분만 추가하시면 될 것 같습니다.
추천0