스크랩에서 일정이 지나면 자동 삭제
본문
안녕하세요.
여분필드 wr2를 시간으로 사용하고 있습니다.
스크랩한 글에서 wr2의 시간이 지나면 스크랩에서 자동으로 삭제되게 할 수 있을까요?
최신게시물스킨에서 일정날짜가 지나면 삭제되는 원리랑 비슷할거 같은데 소스를 잘 모르겠네요..ㅠㅠ
bbs/scrap.php 파일입니다.
<?php
include_once('./_common.php');
if (!$is_member)
alert_close('회원만 조회하실 수 있습니다.');
$sql_common = " from {$g5['scrap_table']} where mb_id = '{$member['mb_id']}' ";
$sql_order = " order by wr_id asc ";
$sql = " select count(*) as cnt $sql_common ";
$row = sql_fetch($sql);
$total_count = $row['cnt'];
$rows = $config['cf_page_rows'];
$total_page = ceil($total_count / $rows); // 전체 페이지 계산
if ($page < 1) $page = 1; // 페이지가 없으면 첫 페이지 (1 페이지)
$from_record = ($page - 1) * $rows; // 시작 열을 구함
$list = array();
$sql = " select *
$sql_common
$sql_order
limit $from_record, $rows ";
$result = sql_query($sql);
for ($i=0; $row=sql_fetch_array($result); $i++) {
$list[$i] = $row;
// 순차적인 번호 (순번)
$num = $total_count - ($page - 1) * $rows - $i;
// 게시판 제목
$sql2 = " select bo_subject from {$g5['board_table']} where bo_table = '{$row['bo_table']}' ";
$row2 = sql_fetch($sql2);
if (!$row2['bo_subject']) $row2['bo_subject'] = '[게시판 없음]';
// 게시물 제목
$tmp_write_table = $g5['write_prefix'] . $row['bo_table'];
$sql3 = " select wr_subject, wr_2 from $tmp_write_table where wr_id = '{$row['wr_id']}' ";
$row3 = sql_fetch($sql3, FALSE);
$subject = ($row3['wr_subject']) ? get_text(cut_str($row3['wr_subject'], 100)) : '글이 없습니다.';
$list[$i]['num'] = $num;
$list[$i]['opener_href'] = './board.php?bo_table='.$row['bo_table'];
$list[$i]['opener_href_wr_id'] = './board.php?bo_table='.$row['bo_table'].'&wr_id='.$row['wr_id'];
$list[$i]['bo_subject'] = $row2['bo_subject'];
$list[$i]['subject'] = $subject;
$list[$i]['wr_2'] = $row3['wr_2'];
$list[$i]['del_href'] = './scrap_delete.php?ms_id='.$row['ms_id'].'&page='.$page;
}
$write_page_rows = (G5_IS_MOBILE) ? $config['cf_mobile_pages'] : $config['cf_write_pages'];
$list_page = $_SERVER['PHP_SELF'].'?'.$qstr.'&page=';
// Page ID
$pid = ($pid) ? $pid : '';
$at = apms_page_thema($pid);
include_once(G5_LIB_PATH.'/apms.thema.lib.php');
// 스킨 체크
list($member_skin_path, $member_skin_url) = apms_skin_thema('member', $member_skin_path, $member_skin_url);
// 설정값 불러오기
$is_scrap_sub = true;
@include_once($member_skin_path.'/config.skin.php');
$g5['title'] = get_text($member['mb_nick']).'님의 관심목록';
if($is_scrap_sub) {
include_once(G5_PATH.'/head.php');
if(!USE_G5_THEME) @include_once(THEMA_PATH.'/head.sub.php');
} else {
include_once('./_head.php');
}
$skin_path = $member_skin_path;
$skin_url = $member_skin_url;
// 스킨설정
$wset = (G5_IS_MOBILE) ? apms_skin_set('member_mobile') : apms_skin_set('member');
$setup_href = '';
if(is_file($skin_path.'/setup.skin.php') && ($is_demo || $is_designer)) {
$setup_href = './skin.setup.php?skin=member&ts='.urlencode(THEMA);
}
include_once($skin_path.'/scrap.skin.php');
if($is_scrap_sub) {
if(!USE_G5_THEME) @include_once(THEMA_PATH.'/tail.sub.php');
include_once(G5_PATH.'/tail.php');
} else {
include_once('./_tail.php');
}
?>
답변 2
sql_query(" delete from `{$g5['scrap_table']}` where wr_2 < date_add(now(), interval -30 day) ");
위의 내용을 원하는 위치에 포함 시키면 언제나 오늘기준 (now()) 30일 이전의 스크랩은 모두 삭제가 될 것입니다.
index.php 파일에 포함시키거나
extend 폴더의 파일에 넣거나 헤드 파일에 넣을 수도 있을 것이니다.
// 게시물 제목
$list[$i]['num'] = $num;
$tmp_write_table = $g5['write_prefix'] . $row['bo_table'];
$sql3 = " select wr_subject, wr_2 from $tmp_write_table where wr_id = '{$row['wr_id']}' ";
$row3 = sql_fetch($sql3, FALSE);
if ($row3['wr_2'] > G5_TIME_YMDHIS) {
sql_query("delete from {$g5['scrap_table']} where mb_id = '{$member['mb_id']}' and bo_table= '{$row['bo_table']}' and wr_id = '{$row['wr_id']}'");
sql_query("update `{$g5['member_table']}` set mb_scrap_cnt = '".get_scrap_totals($member['mb_id'])."' where mb_id = '{$member['mb_id']}'");
$subject = "삭제된 스크랩";
$list[$i]['opener_href'] = './board.php?bo_table='.$row['bo_table'];
$list[$i]['opener_href_wr_id'] = '';
} else {
$subject = ($row3['wr_subject']) ? get_text(cut_str($row3['wr_subject'], 100)) : '글이 없습니다.';
$list[$i]['opener_href'] = './board.php?bo_table='.$row['bo_table'];
$list[$i]['opener_href_wr_id'] = './board.php?bo_table='.$row['bo_table'].'&wr_id='.$row['wr_id'];
}
스크랩창 열었을때 한번은 보이니 대신에 링크를 죽이고 삭제 되었다는 subejct를 띄우고
그 다음부터는 삭제되고 스크랩 리스트에서 안보일겁니다.
아예 안보이게 하면 갯수가 페이징해서 불러오다보니 한페이지가 텅 비어보일수도 있을것 같아서
소스가 그누원본이 아니라 member 테이블에 mb_scrap_cnt를 어떻게 하는지 몰라서
그누 원본소스 기준 scrap_delete.php 기준으로 넣기는 했습니다. g5_scrap primary가 ms_id 일텐데
올려주신 소스만으로는 그게 있는지 판단하기 어려워서 delete where 조건을 bo_table 이랑 wr_id로 일단적었습니다. 참고해서 수정해서 적용하세요
!-->