A게시판의 게시물 a을 B게시판으로 이동했을 때에 정렬문제 정보
A게시판의 게시물 a을 B게시판으로 이동했을 때에 정렬문제본문
A게시판의 게시물 a을 B게시판으로 이동했을 때에
게시물a이 B게시판 게시물의 날짜에 맞추어서 정렬되는 것이 아니라
B게시판의 가장 위로 올라옵니다.
게시물a이 B게시판에서도 날자순으로 정렬되게 하려면 어디를 어떻게 손보아야 하는가요?
게시물a이 B게시판 게시물의 날짜에 맞추어서 정렬되는 것이 아니라
B게시판의 가장 위로 올라옵니다.
게시물a이 B게시판에서도 날자순으로 정렬되게 하려면 어디를 어떻게 손보아야 하는가요?
댓글 전체

bbs/list.php 파일을 보면 알듯이 wr_num 순서대로 리스트가 정렬됩니다.
A게시팡에서 B게시판으로 게시물을 이동하면, 자동으로 wr_id, wr_num 순번이 생성됩니다.
이동 된 B게시판 순번에 맞춰서 생성되기 때문에, 이동한 게시물은 제일 위로 올라오게 됩니다.
bbs/list.php 파일에 보면 59번째 라인부터
<!---------- 여기 부터 ---------------------->
// 정렬
// 인덱스 필드가 아니면 정렬에 사용하지 않음
//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 : "";
}
<!---------- 여기 까지 ---------------------->
여기의 $sst = "wr_num, wr_reply"; 가 기본정렬 부분입니다.
원본의 이 부분을 wr_datetime 순으로 (전체 게시판에 영향이 가니, 조건을 줘서 해당 게시판만 적용)
바꾸시거나, 원본을 놔두고 게시판 관리에서 날짜 순 (wr_datetime) 으로 바꾸면 됩니다.
참고로 이동한 게시물이 날짜에 맞추어서 wr_num가 중간에 생성된다면, 그 뒷 번호 게시물들은
모두 한단계씩 뒤의 순번으로 다시 wr_id와 wr_num를 다시 생성 되야하는 문제가 생기니깐
중간에 끼어서 순번이 생성될 수는 없는 부분이네요.
A게시팡에서 B게시판으로 게시물을 이동하면, 자동으로 wr_id, wr_num 순번이 생성됩니다.
이동 된 B게시판 순번에 맞춰서 생성되기 때문에, 이동한 게시물은 제일 위로 올라오게 됩니다.
bbs/list.php 파일에 보면 59번째 라인부터
<!---------- 여기 부터 ---------------------->
// 정렬
// 인덱스 필드가 아니면 정렬에 사용하지 않음
//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 : "";
}
<!---------- 여기 까지 ---------------------->
여기의 $sst = "wr_num, wr_reply"; 가 기본정렬 부분입니다.
원본의 이 부분을 wr_datetime 순으로 (전체 게시판에 영향이 가니, 조건을 줘서 해당 게시판만 적용)
바꾸시거나, 원본을 놔두고 게시판 관리에서 날짜 순 (wr_datetime) 으로 바꾸면 됩니다.
참고로 이동한 게시물이 날짜에 맞추어서 wr_num가 중간에 생성된다면, 그 뒷 번호 게시물들은
모두 한단계씩 뒤의 순번으로 다시 wr_id와 wr_num를 다시 생성 되야하는 문제가 생기니깐
중간에 끼어서 순번이 생성될 수는 없는 부분이네요.
답변 정말 감사드립니다.
적용후 필요하면 다시 질문드리겠습니다.
무더운 여름 건강하십시요.
적용후 필요하면 다시 질문드리겠습니다.
무더운 여름 건강하십시요.

네~ 모닝님도 더운 날씨에 건강하시길 바래요~^^
말씀대로
---------------------
if ($board[bo_sort_field])
$sst = $board[bo_sort_field];
$sst = "wr_num, wr_reply";
$sod = "";
------------------------
을
------------------------
if ($board[bo_sort_field])
$sst = $board[bo_sort_field];
else if ($bo_table == "게시판_1" || $bo_table == "게시판_2")
$sst = "wr_datetime, wr_reply";
else
$sst = "wr_num, wr_reply";
$sod = "";
--------------------------
적용하면 날자중심으로 asc로 정렬됩니다. dsc로 정렬되게 할 수는 없는가요?
---------------------
if ($board[bo_sort_field])
$sst = $board[bo_sort_field];
$sst = "wr_num, wr_reply";
$sod = "";
------------------------
을
------------------------
if ($board[bo_sort_field])
$sst = $board[bo_sort_field];
else if ($bo_table == "게시판_1" || $bo_table == "게시판_2")
$sst = "wr_datetime, wr_reply";
else
$sst = "wr_num, wr_reply";
$sod = "";
--------------------------
적용하면 날자중심으로 asc로 정렬됩니다. dsc로 정렬되게 할 수는 없는가요?

$sod = ""; <= 이 부분을
$sod = "desc"; <= 이렇게 바꿔보세요~
$sod = "desc"; <= 이렇게 바꿔보세요~
웹스타일님!!!
관리자설정을 제가 몰랐는데...
관리자가 정렬기준을 설정할 수 있다면 그것이 더 좋은 방법인 것 같아요.
관리자관리설정에서 할게요.
귀한 답변 감사합니다.
관리자설정을 제가 몰랐는데...
관리자가 정렬기준을 설정할 수 있다면 그것이 더 좋은 방법인 것 같아요.
관리자관리설정에서 할게요.
귀한 답변 감사합니다.

네, 게시판 관리에서 날짜 순 (wr_datetime) 이 원하는 방식인지 한번 해 보시면 좋을 듯
하네요. ^^
잘 적용 되길 바랍니다~!
하네요. ^^
잘 적용 되길 바랍니다~!