first commit 2
This commit is contained in:
@@ -0,0 +1,162 @@
|
||||
<?php
|
||||
$sub_menu = "200950";
|
||||
include_once('./_common.php');
|
||||
|
||||
check_demo();
|
||||
|
||||
auth_check_menu($auth, $sub_menu, 'w');
|
||||
|
||||
// 💡 [핵심 추가] 파일 삭제 함수 (bbs/delete.php 로직 재사용)
|
||||
function delete_board_files($bo_table, $wr_id) {
|
||||
global $g5, $config;
|
||||
|
||||
$sql2 = " select * from {$g5['board_file_table']} where bo_table = '$bo_table' and wr_id = '$wr_id' ";
|
||||
$result2 = sql_query($sql2);
|
||||
while ($row2 = sql_fetch_array($result2)) {
|
||||
$delete_file = run_replace('delete_file_path', G5_DATA_PATH.'/file/'.$bo_table.'/'.str_replace('../', '', $row2['bf_file']), $row2);
|
||||
if( file_exists($delete_file) ){
|
||||
@unlink($delete_file);
|
||||
}
|
||||
// 썸네일삭제
|
||||
if(preg_match("/\.({$config['cf_image_extension']})$/i", $row2['bf_file'])) {
|
||||
delete_board_thumbnail($bo_table, $row2['bf_file']);
|
||||
}
|
||||
}
|
||||
|
||||
// 에디터 썸네일 삭제 (본문 내용을 가져와야 함 - 휴지통 테이블에서)
|
||||
$row = sql_fetch(" select wr_content from g5_board_trash where bo_table = '$bo_table' and wr_id = '$wr_id' ");
|
||||
if ($row['wr_content']) {
|
||||
delete_editor_thumbnail($row['wr_content']);
|
||||
}
|
||||
|
||||
// 파일테이블 행 삭제
|
||||
sql_query(" delete from {$g5['board_file_table']} where bo_table = '$bo_table' and wr_id = '$wr_id' ");
|
||||
}
|
||||
|
||||
|
||||
if ($w == 'r') { // 개별 복구
|
||||
$sql = " select * from g5_board_trash where tr_id = '{$tr_id}' ";
|
||||
$row = sql_fetch($sql);
|
||||
if (!$row['tr_id']) alert('존재하지 않는 자료입니다.');
|
||||
|
||||
$write_table = $g5['write_prefix'] . $row['bo_table'];
|
||||
|
||||
// 원본 테이블에 데이터 복구
|
||||
$sql_restore = " INSERT INTO {$write_table}
|
||||
SET wr_id = '{$row['wr_id']}',
|
||||
wr_num = '{$row['wr_id']}' * -1,
|
||||
wr_reply = '',
|
||||
wr_parent = '{$row['wr_id']}',
|
||||
wr_is_comment = 0,
|
||||
wr_comment = 0,
|
||||
wr_comment_reply = '',
|
||||
ca_name = '',
|
||||
wr_option = '',
|
||||
wr_subject = '".addslashes($row['wr_subject'])."',
|
||||
wr_content = '".addslashes($row['wr_content'])."',
|
||||
wr_link1 = '',
|
||||
wr_link2 = '',
|
||||
wr_link1_hit = 0,
|
||||
wr_link2_hit = 0,
|
||||
wr_hit = 0,
|
||||
wr_good = 0,
|
||||
wr_nogood = 0,
|
||||
mb_id = '{$row['mb_id']}',
|
||||
wr_password = '',
|
||||
wr_name = '".addslashes($row['wr_name'])."',
|
||||
wr_email = '',
|
||||
wr_homepage = '',
|
||||
wr_datetime = '{$row['wr_datetime']}',
|
||||
wr_file = 0,
|
||||
wr_last = '{$row['wr_datetime']}',
|
||||
wr_ip = '',
|
||||
wr_facebook_user = '',
|
||||
wr_twitter_user = '',
|
||||
wr_1 = '',
|
||||
wr_2 = '',
|
||||
wr_3 = '',
|
||||
wr_4 = '',
|
||||
wr_5 = '',
|
||||
wr_6 = '',
|
||||
wr_7 = '',
|
||||
wr_8 = '',
|
||||
wr_9 = '',
|
||||
wr_10 = '' ";
|
||||
sql_query($sql_restore);
|
||||
|
||||
// 💡 [핵심 추가] 파일 테이블 복구 (파일 개수 업데이트)
|
||||
// 실제 파일은 삭제되지 않았으므로, g5_board_file 테이블의 데이터는 그대로 유지되어 있음.
|
||||
// 다만, wr_file 개수를 업데이트해줘야 함.
|
||||
$cnt = sql_fetch(" select count(*) as cnt from {$g5['board_file_table']} where bo_table = '{$row['bo_table']}' and wr_id = '{$row['wr_id']}' ");
|
||||
if ($cnt['cnt'] > 0) {
|
||||
sql_query(" update {$write_table} set wr_file = '{$cnt['cnt']}' where wr_id = '{$row['wr_id']}' ");
|
||||
}
|
||||
|
||||
// 휴지통에서 삭제
|
||||
sql_query(" delete from g5_board_trash where tr_id = '{$tr_id}' ");
|
||||
|
||||
// 게시판 글 수 증가
|
||||
sql_query(" update {$g5['board_table']} set bo_count_write = bo_count_write + 1 where bo_table = '{$row['bo_table']}' ");
|
||||
|
||||
goto_url('./trash_list.php');
|
||||
|
||||
} else if ($_POST['act_button'] == "선택복구") { // 선택 복구
|
||||
|
||||
for ($i=0; $i<count($_POST['chk']); $i++) {
|
||||
$k = $_POST['chk'][$i];
|
||||
$tr_id = $_POST['tr_id'][$k];
|
||||
|
||||
$sql = " select * from g5_board_trash where tr_id = '{$tr_id}' ";
|
||||
$row = sql_fetch($sql);
|
||||
if (!$row['tr_id']) continue;
|
||||
|
||||
$write_table = $g5['write_prefix'] . $row['bo_table'];
|
||||
|
||||
// 원본 테이블에 데이터 복구
|
||||
$sql_restore = " INSERT INTO {$write_table}
|
||||
SET wr_id = '{$row['wr_id']}',
|
||||
wr_num = '{$row['wr_id']}' * -1,
|
||||
wr_parent = '{$row['wr_id']}',
|
||||
wr_subject = '".addslashes($row['wr_subject'])."',
|
||||
wr_content = '".addslashes($row['wr_content'])."',
|
||||
mb_id = '{$row['mb_id']}',
|
||||
wr_name = '".addslashes($row['wr_name'])."',
|
||||
wr_datetime = '{$row['wr_datetime']}',
|
||||
wr_last = '{$row['wr_datetime']}' ";
|
||||
sql_query($sql_restore);
|
||||
|
||||
// 파일 개수 업데이트
|
||||
$cnt = sql_fetch(" select count(*) as cnt from {$g5['board_file_table']} where bo_table = '{$row['bo_table']}' and wr_id = '{$row['wr_id']}' ");
|
||||
if ($cnt['cnt'] > 0) {
|
||||
sql_query(" update {$write_table} set wr_file = '{$cnt['cnt']}' where wr_id = '{$row['wr_id']}' ");
|
||||
}
|
||||
|
||||
// 휴지통에서 삭제
|
||||
sql_query(" delete from g5_board_trash where tr_id = '{$tr_id}' ");
|
||||
|
||||
// 게시판 글 수 증가
|
||||
sql_query(" update {$g5['board_table']} set bo_count_write = bo_count_write + 1 where bo_table = '{$row['bo_table']}' ");
|
||||
}
|
||||
|
||||
goto_url('./trash_list.php');
|
||||
|
||||
} else if ($_POST['act_button'] == "선택삭제") { // 선택 영구 삭제
|
||||
|
||||
for ($i=0; $i<count($_POST['chk']); $i++) {
|
||||
$k = $_POST['chk'][$i];
|
||||
$tr_id = $_POST['tr_id'][$k];
|
||||
|
||||
// 💡 [핵심 추가] 실제 파일 삭제 로직 호출
|
||||
$row = sql_fetch(" select bo_table, wr_id from g5_board_trash where tr_id = '{$tr_id}' ");
|
||||
if ($row['bo_table'] && $row['wr_id']) {
|
||||
delete_board_files($row['bo_table'], $row['wr_id']);
|
||||
}
|
||||
|
||||
sql_query(" delete from g5_board_trash where tr_id = '{$tr_id}' ");
|
||||
}
|
||||
|
||||
goto_url('./trash_list.php');
|
||||
}
|
||||
|
||||
alert('제대로 된 값이 넘어오지 않았습니다.');
|
||||
?>
|
||||
Reference in New Issue
Block a user