행사종료 후 종료 카테고리로 이동시키기
본문
안녕하세요.
이벤트 게시물 같은 것입니다.
시작일: 여분필드 8 사용
종료일: 여분필드 9 사용
그래서 시간이 종료일이 지나면
- 텍스트로 행사종료 라고 나타내게 했습니다.
- 종료 전이면 행사 마감 **일 전 입니다 라고 나타내게 했습니다.
하고 싶은 것
- 종료 후 게시물을 "종료" 카테고리로 자동으로 옮기고 싶습니다.
* 스킨 게시판에 비슷한 기능이 있어서 참고 후 제 소스에 적용시켰는데 원하는대로 안되네요.
코드 어디를 수정해야 할까요?
감사합니다.
<?php
$start_day = $list[$i]['wr_8']." 00:00:00"; // 시작일
$end_day = $list[$i]['wr_9']." 23:59:59"; // 종료일
$rest_day = strtotime($list[$i]['wr_9']) - time();//남은 기간을 초단위로 출력
$rest_day = round($rest_day/86400);//남은 기간을 일단위로 출력되도록 변환
$sql = "select wr_id, ca_name, wr_8 wr_9 from {$write_table} where wr_is_comment = 0 order by wr_id desc limit 0, 50 ";
$result = sql_query($sql);
for ($i=0; $row = sql_fetch_array($result); $i++) {
}if ($rest_day < 0) {
sql_query(" update {$write_table} set ca_name='종료' where wr_id = {$row['wr_id']} ");
}
if ($rest_day < 0) {
echo '<font color=#FF0000>행사종료</font>';
} else{
echo '마감 '.$rest_day.'일전';
}
?>
답변 2
저런식이면 페이지가 로딩 되야 적용이 될테니,
정확하게 구현하려면
0시 0분에 돌아가는 크론이 설정되야할거같네요! ㅎㅎ
안녕하세요.
소스를 구글링해서 아마니에 올라온 것을 활용했습니다.
저 같은 경우는
아래와 같이 살짝 변경해서 사용했는데 잘 됩니다.
하루가 지난 후 누군가 방문자가 있으면 그때 디비를 업데이트 해 종료 카테고리로 옮기는 것 같습니다.
* 크론을 사용하지 않는 방법이라고 하네요.
* 저도 이곳 저곳에서 구글링해서 소스 적용만 해봐서 질문을 하셔도 답을 드릴 수준이 안됩니다. 죄송합니다.
현재 작업 중인 곳
//하루에 한번 날짜로 카테고리 업데이트
if(G5_TIME_YMD != $board['bo_1']){
// 이미 진행완료 처리된 것과 날짜 정보가 없는 것은 필요 없으니 빼고 가져온다.
$sql = " select wr_id, ca_name, wr_8, wr_9 from {$write_table} where wr_is_comment = 0 and wr_8 <> '' and wr_9 <>'' and ca_name <> '종료' order by wr_id ";
$result = sql_query($sql);
for ($i=0; $row = sql_fetch_array($result); $i++) {
// 이렇게 해도 됩니다.
$start_date = substr($row['wr_8'], 0, 10);
$end_date = substr($row['wr_9'], 0, 10);
// 아래처럼 해도 됩니다.
// $start_date = date('Y-m-d', $row['wr_1']);
// $end_date = date('Y-m-d', $row['wr_2']);
$new_ca_name = '';
if($start_date < G5_TIME_YMD && $end_date < G5_TIME_YMD){
$new_ca_name = '종료';
//} else if($start_date > G5_TIME_YMD && $end_date > G5_TIME_YMD){
// $new_ca_name = '시작전';
//} else if($start_date < G5_TIME_YMD && $end_date < G5_TIME_YMD){
// $new_ca_name = '종료';
}
if($new_ca_name) {
if($new_ca_name == $row['ca_name']) continue; // 그냥 통과
sql_query(" update {$write_table} set ca_name='{$new_ca_name}' where wr_id = '{$row['wr_id']}' ");
}
}
sql_query(" update {$g5['board_table']} set bo_1_subj='카테고리업데이트', bo_1='".G5_TIME_YMD."' where bo_table ='$bo_table' ");
}
?>
답변을 작성하시기 전에 로그인 해주세요.