📖
그누보드5 게시판 리스트(목록)에서 게시글 순서 변경
페이지 정보
본문
1. [스킨 디렉토리]/list.skin.php 파일에 다음 코드 추가
1) 제목 출력 부분에 다음코드 추가[code]<?php if ($is_admin && !$list[$i]['is_notice'] && !$list[$i]['wr_reply']) { ?>
<input type="text" name="wr_num" size="6" maxlength="10" value="<?php echo $list[$i]['wr_num'] * -1 ?>" data-org="<?php echo $list[$i]['wr_num'] * -1 ?>">
<button type="button" class="btn_go">Go</button>
<?php } ?>[/code]
2) 자바 스크립트 부분 하단에 다음 코드 추가[code]$('input[name="wr_num"]').on('focus', function() {
$(this).select();
});
$('.btn_go').on('click', function() {
let p_bo_table = '<?php echo $bo_table ?>';
let p_wr_num_org = Number($(this).prev().data('org'));
let p_wr_num = Number($(this).prev().val());
if (isNaN(p_wr_num)) {
alert('숫자만 입력해 주세요.');
return false;
}
if (p_wr_num_org == p_wr_num) {
return false;
}
if (p_wr_num < 1) {
alert('0 보다 큰 숫자를 입력해 주세요.');
return false;
}
if (!confirm(p_wr_num + '번 게시글 다음 순서로 이동시키겠습니까?'))
return false;
$.ajax({
url: '<?php echo $board_skin_url ?>/ajax.num_change.php',
type: 'POST',
context: this,
data: {bo_table : p_bo_table, wr_num_org : p_wr_num_org, wr_num : p_wr_num},
success: function(data) {
if (data == 'OK') {
location.reload();
} else if (data == 'Error3') {
alert('없는 게시글 번호 입니다.');
$(this).prev().val(p_wr_num_org);
} else {
alert(data);
}
}
});
});[/code]
2. [스킨 디렉토리]/ajax.num_change.php 파일 생성[code]<?php
$path = '';
for ($i = 0; $i < 7; $i++) {
if (file_exists($path . 'common.php'))
break;
if (realpath($path) == '/')
break;
$path .= '../';
}
include_once($path . 'common.php');
if (!$bo_table || !$wr_num_org || !$wr_num)
die('Error1');
if ($wr_num_org == $wr_num)
die('Error2');
$write_table = $g5['write_prefix'] . $bo_table;
$wr_num = $wr_num * -1;
$wr_num_org = $wr_num_org * -1;
// 1) 이동 '고유번호(wr_num)' 존재 여부 체크
$sql = "select count(*) as cnt from {$write_table} where wr_num = '{$wr_num}' and wr_is_comment = 0";
$row = sql_fetch($sql);
if ($row['cnt'] == 0)
die('Error3');
// 2) 원 게시글의 고유번호를 (임시) '0' 으로 업데이트
$sql = "update {$write_table} set wr_num = '0' where wr_num = '{$wr_num_org}'";
$result_1 = sql_query($sql);
// 3) 관련 이동 대상 게시글들 고유번호 업데이트
if ($wr_num > $wr_num_org) {
$sql = "update {$write_table} set wr_num = wr_num - 1 where wr_num <= '{$wr_num}' and wr_num > '{$wr_num_org}'";
} else if ($wr_num < $wr_num_org) {
$sql = "update {$write_table} set wr_num = wr_num + 1 where wr_num > '{$wr_num}' and wr_num < '{$wr_num_org}'";
}
$result_2 = sql_query($sql);
// 4) (임시) '0' 게시글 고유번호를 새 위치 고유번호로 업데이트
if ($wr_num < $wr_num_org)
$wr_num = $wr_num + 1;
$sql = "update {$write_table} set wr_num = '{$wr_num}' where wr_num = '0'";
$result_3 = sql_query($sql);
$r = $result_1 * $result_2 * $result_3;
if ($r)
echo 'OK';
else
echo 'Error';[/code]
1) 제목 출력 부분에 다음코드 추가[code]<?php if ($is_admin && !$list[$i]['is_notice'] && !$list[$i]['wr_reply']) { ?>
<input type="text" name="wr_num" size="6" maxlength="10" value="<?php echo $list[$i]['wr_num'] * -1 ?>" data-org="<?php echo $list[$i]['wr_num'] * -1 ?>">
<button type="button" class="btn_go">Go</button>
<?php } ?>[/code]
2) 자바 스크립트 부분 하단에 다음 코드 추가[code]$('input[name="wr_num"]').on('focus', function() {
$(this).select();
});
$('.btn_go').on('click', function() {
let p_bo_table = '<?php echo $bo_table ?>';
let p_wr_num_org = Number($(this).prev().data('org'));
let p_wr_num = Number($(this).prev().val());
if (isNaN(p_wr_num)) {
alert('숫자만 입력해 주세요.');
return false;
}
if (p_wr_num_org == p_wr_num) {
return false;
}
if (p_wr_num < 1) {
alert('0 보다 큰 숫자를 입력해 주세요.');
return false;
}
if (!confirm(p_wr_num + '번 게시글 다음 순서로 이동시키겠습니까?'))
return false;
$.ajax({
url: '<?php echo $board_skin_url ?>/ajax.num_change.php',
type: 'POST',
context: this,
data: {bo_table : p_bo_table, wr_num_org : p_wr_num_org, wr_num : p_wr_num},
success: function(data) {
if (data == 'OK') {
location.reload();
} else if (data == 'Error3') {
alert('없는 게시글 번호 입니다.');
$(this).prev().val(p_wr_num_org);
} else {
alert(data);
}
}
});
});[/code]
2. [스킨 디렉토리]/ajax.num_change.php 파일 생성[code]<?php
$path = '';
for ($i = 0; $i < 7; $i++) {
if (file_exists($path . 'common.php'))
break;
if (realpath($path) == '/')
break;
$path .= '../';
}
include_once($path . 'common.php');
if (!$bo_table || !$wr_num_org || !$wr_num)
die('Error1');
if ($wr_num_org == $wr_num)
die('Error2');
$write_table = $g5['write_prefix'] . $bo_table;
$wr_num = $wr_num * -1;
$wr_num_org = $wr_num_org * -1;
// 1) 이동 '고유번호(wr_num)' 존재 여부 체크
$sql = "select count(*) as cnt from {$write_table} where wr_num = '{$wr_num}' and wr_is_comment = 0";
$row = sql_fetch($sql);
if ($row['cnt'] == 0)
die('Error3');
// 2) 원 게시글의 고유번호를 (임시) '0' 으로 업데이트
$sql = "update {$write_table} set wr_num = '0' where wr_num = '{$wr_num_org}'";
$result_1 = sql_query($sql);
// 3) 관련 이동 대상 게시글들 고유번호 업데이트
if ($wr_num > $wr_num_org) {
$sql = "update {$write_table} set wr_num = wr_num - 1 where wr_num <= '{$wr_num}' and wr_num > '{$wr_num_org}'";
} else if ($wr_num < $wr_num_org) {
$sql = "update {$write_table} set wr_num = wr_num + 1 where wr_num > '{$wr_num}' and wr_num < '{$wr_num_org}'";
}
$result_2 = sql_query($sql);
// 4) (임시) '0' 게시글 고유번호를 새 위치 고유번호로 업데이트
if ($wr_num < $wr_num_org)
$wr_num = $wr_num + 1;
$sql = "update {$write_table} set wr_num = '{$wr_num}' where wr_num = '0'";
$result_3 = sql_query($sql);
$r = $result_1 * $result_2 * $result_3;
if ($r)
echo 'OK';
else
echo 'Error';[/code]
댓글목록
등록된 댓글이 없습니다.
![]() ![]() |