163 lines
6.6 KiB
PHP
163 lines
6.6 KiB
PHP
<?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('제대로 된 값이 넘어오지 않았습니다.');
|
|
?>
|