관리자페이지에서 최근 삭제게시물 목록 확인하기
본문
관리자페이지 초기화면에 보면
최근 등록게시물과 최근가입회원 목록을 볼 수 있는데요.
관리자가 일반 회원들의 게시물 삭제내역을 볼 수 있게 하고 싶습니다.
관리자초기화면에서 전체게시판 대상으로 최근 삭제된게시물 목록을 볼 수 있을까요?
혹시 특정게시판의 최근 삭제목록을 볼 수 있다면 더 유용할 것 같습니다.
위와 관련한 소스나 팁 등을 도움 부탁 드립니다.
답변 2
기본기능에는 없습니다. 삭제될때 별도의 테이블에 저장해야할텐데 제작의뢰로 가셔야할듯합니다.
그누보드에 해당 기능이 없습니다.
그래서 별도로 구현해야 됩니다.
1. 먼저 삭제 로그 테이블을 생성합니다:
CREATE TABLE g5_board_delete_log (
dl_id int(11) NOT NULL AUTO_INCREMENT,
bo_table varchar(20) NOT NULL,
wr_id int(11) NOT NULL,
wr_subject varchar(255) NOT NULL,
mb_id varchar(20) NOT NULL,
delete_mb_id varchar(20) NOT NULL,
dl_datetime datetime NOT NULL,
dl_ip varchar(255) NOT NULL,
PRIMARY KEY (dl_id),
KEY idx_bo_table (bo_table),
KEY idx_datetime (dl_datetime)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
2. /bbs/delete.php 파일을 수정하여 게시물 삭제 시 로그를 기록하도록 합니다.
delete.php 파일에서 게시물 삭제 직전에 아래 코드를 추가합니다:
// 게시물 삭제 로그 저장
$sql = " insert into g5_board_delete_log
set bo_table = '{$bo_table}',
wr_id = '{$wr_id}',
wr_subject = '".addslashes($write['wr_subject'])."',
mb_id = '{$write['mb_id']}',
delete_mb_id = '{$member['mb_id']}',
dl_datetime = '".G5_TIME_YMDHIS."',
dl_ip = '{$_SERVER['REMOTE_ADDR']}' ";
sql_query($sql);
3. 관리자 초기화면(adm/index.php)에 삭제 로그 출력 코드를 추가합니다:
<?php
// 최근 삭제된 게시물
$sql_common = " from g5_board_delete_log a
left join {$g5['board_table']} b on (a.bo_table = b.bo_table) ";
$sql_search = " where (1) ";
// 특정 게시판만 보기
if (isset($_GET['del_bo_table']) && $_GET['del_bo_table']) {
$sql_search .= " and a.bo_table = '".sql_real_escape_string($_GET['del_bo_table'])."' ";
}
$sql = " select a.*, b.bo_subject
$sql_common
$sql_search
order by dl_datetime desc
limit 0, 15 ";
$result = sql_query($sql);
?>
<section>
<h2>최근 삭제된 게시물</h2>
<form>
<select name="del_bo_table" onchange="this.form.submit();">
<option value="">전체게시판</option>
<?php
$sql2 = " select bo_table, bo_subject from {$g5['board_table']} order by bo_table ";
$result2 = sql_query($sql2);
for ($i=0; $row2=sql_fetch_array($result2); $i++) {
$selected = $_GET['del_bo_table'] == $row2['bo_table'] ? 'selected' : '';
echo '<option value="'.$row2['bo_table'].'" '.$selected.'>'.$row2['bo_subject'].'</option>';
}
?>
</select>
</form>
<div class="tbl_head01 tbl_wrap">
<table>
<thead>
<tr>
<th scope="col">게시판</th>
<th scope="col">제목</th>
<th scope="col">작성자</th>
<th scope="col">삭제자</th>
<th scope="col">삭제일시</th>
<th scope="col">IP</th>
</tr>
</thead>
<tbody>
<?php
for ($i=0; $row=sql_fetch_array($result); $i++) {
$bo_subject = cut_str($row['bo_subject'], 20);
$wr_subject = get_text($row['wr_subject']);
?>
<tr>
<td><?php echo $bo_subject ?></td>
<td><?php echo $wr_subject ?></td>
<td><?php echo $row['mb_id'] ?></td>
<td><?php echo $row['delete_mb_id'] ?></td>
<td><?php echo $row['dl_datetime'] ?></td>
<td><?php echo $row['dl_ip'] ?></td>
</tr>
<?php } ?>
<?php if ($i == 0) echo '<tr><td colspan="6" class="empty_table">자료가 없습니다.</td></tr>'; ?>
</tbody>
</table>
</div>
</section>
답변을 작성하시기 전에 로그인 해주세요.