게시판 순서 변경===================================================
1. list.skin.php 에서 관리자 전용 버튼 에 다음 버튼을 넣는다.
<a href="javascript:select_move('prev');" class="btn_b02">앞으로 이동</a>
<a href="javascript:select_move('change');" class="btn_b02">교차 변경</a>
<a href="javascript:select_move('next');" class="btn_b02">뒤로 이동</a>
2. list.skin.php 파일 하단에 스크립트 추가
// 선택한 순서변경
function select_move(sw)
{
/*
var chk_count = 0;
for (var i=0; i<f.length; i++) {
if (f.elements[i].name == "chk_wr_id[]" && f.elements[i].checked)
chk_count++;
}
if (!chk_count) {
alert(document.pressed + "할 게시물을 하나 이상 선택하세요.");
return false;
}
*/
var f = document.fboardlist;
var sub_win = window.open("", "move", "width=0, height=0, scrollbars=1");
f.sw.value = sw;
f.target = "move";
f.action = "./move_update2.php";
f.submit();
}
</script>
3.게시물 순서 변경 파일 생성 (/bbs/move_update2.php)
<?php
include_once('./_common.php');
// 게시판 관리자 이상 복사, 이동 가능
if ($is_admin != "board" && $is_admin != "group" && $is_admin != "super")
alert_close("게시판 관리자 이상 접근이 가능합니다.");
$wr_id=$_POST[chk_wr_id][0];
if($_POST[chk_wr_id][1]) $wr_id2=$_POST[chk_wr_id][1];
if($sw=="change"){
if(count($_POST[chk_wr_id])==2){
$act = "순서변경";
$sql = " select wr_num from g5_write_{$bo_table} where wr_id='$wr_id'"; //절대값이 높은(위쪽) wr_num값을 구한다.
$result = sql_query($sql);
$forth_wr_num_array=sql_fetch_array($result);
$wr_id;
$forth_wr_num = $forth_wr_num_array['wr_num']; //절대값이 높은 wr_num값
$sql = " select wr_num from g5_write_{$bo_table} where wr_id='$wr_id2'"; //절대값이 낮은(아래쪽) wr_num값을 구한다.
$result = sql_query($sql);
$back_wr_num_array=sql_fetch_array($result);
$wr_id2;
$back_wr_num = $back_wr_num_array['wr_num']; //절대값이 낮은 wr_num값
sql_query(" update g5_write_{$bo_table} set wr_num = '$back_wr_num' where wr_id = '$wr_id'"); //위쪽 게시물 wr_num을 아래쪽 wr_num으로 수정
sql_query(" update g5_write_{$bo_table} set wr_num = '$forth_wr_num' where wr_id = '$wr_id2'"); //아래쪽 게시물 wr_num을 위쪽 wr_num으로 수정
}else{
alert_close("2개의 게시물을 선택해주세요.");
}
}else if($sw == "prev"){
if(count($_POST[chk_wr_id])>=2){alert_close("1개의 게시물만 선택해주세요."); }
$act = "앞으로 이동";
$sql = " select wr_num from g5_write_{$bo_table} where wr_id='$wr_id'"; //선택된 wr_num값을 구한다.
$result = sql_query($sql);
$selected_wr_num_array=sql_fetch_array($result);
$selected_wr_num = $selected_wr_num_array['wr_num']; //선택된 wr_num값
if($selected_wr_num=='-1') alert_close("가장 앞선 게시물입니다.");
$prev_wr_num = $selected_wr_num+1; //앞의 wr_num 값
$sql = " select wr_id from g5_write_{$bo_table} where wr_num='{$prev_wr_num}'"; //앞의 wr_num값을 갖는 wr_id를 구한다.
$result = sql_query($sql);
$prev_wr_id_array=sql_fetch_array($result);
$prev_wr_id = $prev_wr_id_array['wr_id']; //앞의 wr_id 값
sql_query(" update g5_write_{$bo_table} set wr_num = '$prev_wr_num' where wr_id = '$wr_id'"); //선택된 게시물을 앞번으로 수정
sql_query(" update g5_write_{$bo_table} set wr_num = '$selected_wr_num' where wr_id = '$prev_wr_id'"); //앞번 게시물을 선택된번으로 수정
}else if ($sw == "next") {
if(count($_POST[chk_wr_id])>=2){alert_close("1개의 게시물만 선택해주세요."); }
$act = "뒤로 이동";
$sql = " select wr_num from g5_write_{$bo_table} where wr_id='$wr_id'"; //선택된 wr_num값을 구한다.
$result = sql_query($sql);
$selected_wr_num_array=sql_fetch_array($result);
$selected_wr_num = $selected_wr_num_array['wr_num']; //선택된 wr_num값
$latest_wr_num_array = sql_fetch(" select min(wr_num) as latest from g5_write_{$bo_table} where 1");
if($selected_wr_num == $latest_wr_num_array['latest']) alert_close("가장 뒤선 게시물입니다.");
$next_wr_num = $selected_wr_num-1; //뒤의 wr_num 값
$sql = " select wr_id from g5_write_{$bo_table} where wr_num='{$next_wr_num}'"; //뒤의 wr_num값을 갖는 wr_id를 구한다.
$result = sql_query($sql);
$next_wr_id_array=sql_fetch_array($result);
$next_wr_id = $next_wr_id_array['wr_id']; //뒤의 wr_id 값
sql_query(" update g5_write_{$bo_table} set wr_num = '$next_wr_num' where wr_id = '$wr_id'"); //선택된 게시물을 뒷번으로 수정
sql_query(" update g5_write_{$bo_table} set wr_num = '$selected_wr_num' where wr_id = '$next_wr_id'"); //뒷번 게시물을 선택된번으로 수정
}else {
alert("수행 값이 제대로 넘어오지 않았습니다.");
}
$msg = "순서변경완료!";
$opener_href = "./board.php?bo_table=$bo_table&page=$page&$qstr";
?>
<script language="javascript">
//alert("<?php echo $msg?>");
opener.document.location.href = "<?php echo $opener_href?>";
window.close();
</script>
※참고사항 : 게시물 앞으로,뒤로 이동시 이동이 안되는 경우가 발생 할 수 있습니다. 이는 선택한 게시물의wr_num가 1씩 증가하거나 감소하는 방식인데 선택한 게시물 바로 앞 게시물의 wr_num혹 은 바로 뒤 게시물의 wr_num이 선택한 wr_num보다 1초과의 숫자가 차이나기 때문입니다.
숫자가 계속해서 변하게 되면 추후에 정상적으로 이동됩니다.
댓글 21개
게시글 목록
| 번호 | 제목 |
|---|---|
| 23966 | |
| 23963 | |
| 23953 | |
| 23949 | |
| 23938 | |
| 23935 | |
| 23933 | |
| 23928 | |
| 23919 | |
| 23918 | |
| 23917 | |
| 23910 | |
| 23902 | |
| 23901 | |
| 23897 | |
| 23894 | |
| 23893 | |
| 23891 | |
| 23885 | |
| 23872 | |
| 23870 | |
| 23862 | |
| 23859 | |
| 23853 | |
| 23845 | |
| 23838 | |
| 23827 | |
| 23819 | |
| 23805 | |
| 23801 |
댓글 작성
댓글을 작성하시려면 로그인이 필요합니다.
로그인하기