2026, 새로운 도약을 시작합니다.

날짜지난 게시물 처리 채택완료

관리자가 wr_10 = '마감' 이라고 변경하면

리스트페이지에서 해당 게시물의 목록대신 "마감된 이벤트 입니다." 라고 표시되게 적용중입니다.

이벤트 건수가 많아지면서 날짜를 일일히 확인하기도 어렵고,

종종 실수도 있고 해서요.

wr_2 에 달력입력 형태로 마감일을 받고 있는데요.

wr_2 의 날짜와 현재 날짜를 비교해서, 마감일이 지나면

wr_10 = '마감' 으로 변하면서, 목록에는 "마감된 이벤트"로 보이게 하고 싶습니다.

이렇게 구현하려면 어떻게 수정해야 할까요?

답변 4개

채택된 답변
+20 포인트

1. extend/default.config.php에 넣으세요

if($config['cf_1'] < G5_TIME_YMD){

 $today = G5_TIME_YMD;

 sql_query("update {$g5['config_table']} set cf_1='$today' "); //하루에 한번만 처리되게 함

 $ev_table= $g5['write_prefix'].'해당게시판';

 sql_query("update $ev_table set wr_10='마감' where wr_10='' and wr_2<'$today' ");

}

2. list스킨 for문 디음에 추가

   if($list[$i]['wr_10'] =='마감'){

     $list[$i]['subject'] ='마감된 이벤트'; 

     $list[$i]['href'] ="javascript:alert('마감된 이벤트')";

   }

3.view스킨에도 마감 내용을 넣으려면

   if($view['wr_10'] =='마감') alert('마감');

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

네~ 감사합니다. 하루에 한번 적용되는 코드로 처리하면 깔끔하게 처리할 수 있겠네요.
도움주셔서 진심 감사드립니다.

댓글을 작성하려면 로그인이 필요합니다.

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

감사합니다.

댓글을 작성하려면 로그인이 필요합니다.

몇가지 방법이 있을텐데요.. 아래의 코드도 참고를 해보세요.

list.skin.php

<?php
// 게시물 목록을 출력하는 부분에서
for ($i=0; $i<count($list); $i++) {
    // 마감일 체크
    $deadline = strtotime($list[$i]['wr_2']); // wr_2의 날짜를 타임스탬프로 변환
    $today = strtotime(date('Y-m-d')); // 오늘 날짜
    
    // 마감일이 지났다면 wr_10을 '마감'으로 업데이트
    if ($deadline < $today && $list[$i]['wr_10'] != '마감') {
        sql_query(" UPDATE {$write_table} SET wr_10 = '마감' WHERE wr_id = '{$list[$i]['wr_id']}' ");
        $list[$i]['wr_10'] = '마감';
    }
    
    // 마감된 경우 표시
    if ($list[$i]['wr_10'] == '마감') {
        echo '<tr><td colspan="6">마감된 이벤트입니다.</td></tr>';
        continue;
    }
    
    
}
?>

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

 write_update.php 수정: 마감일 처리 추가

Copy

list.skin.php 수정: "마감된 이벤트 입니다." 메시지 표시

Copy

-프로젝트/특정폴더/update_expired_events.php 파일 생성 > 크론

Copy

- cron 설정으로 ~

Copy


0 0 * * * /usr/bin/php /프로젝트/특정폴더/update_expired_events.php

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

답변 감사 드립니다. 이 소스도 한번 적용해 보겠습니다.

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인
🐛 버그신고