행사종료 후 종료 카테고리로 이동시키기

행사종료 후 종료 카테고리로 이동시키기

QA

행사종료 후 종료 카테고리로 이동시키기

본문

안녕하세요.

 

이벤트 게시물 같은 것입니다.

시작일: 여분필드 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분에 돌아가는 크론이 설정되야할거같네요! ㅎㅎ

 

아 그냥 페이지 로드됬을때 처리한다고 치면,
(위에 텍스트로 행사종료 라고 나타내게 했습니다 <- 이 조건에 맞춘다치면)
저기 update 부분에서 $row 가 아닌 $list[$i] 가 되면 될거같은데,
그러면 로드될때마다 update 될수있으니,
if ($ca_name != '종료') 조건을 추가해주시면 더  좋을거같기도 하네요

안녕하세요.

 

소스를 구글링해서 아마니에 올라온 것을 활용했습니다.

저 같은 경우는

아래와 같이 살짝 변경해서 사용했는데 잘 됩니다.

하루가 지난 후 누군가 방문자가 있으면 그때 디비를 업데이트 해 종료 카테고리로 옮기는 것 같습니다.

* 크론을 사용하지 않는 방법이라고 하네요.

* 저도 이곳 저곳에서 구글링해서 소스 적용만 해봐서 질문을 하셔도 답을 드릴 수준이 안됩니다. 죄송합니다.

 

현재 작업 중인 곳

https://klick.co.kr

 

 


//하루에 한번 날짜로 카테고리 업데이트 
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' "); 
}
?>
답변을 작성하시기 전에 로그인 해주세요.
전체 134
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT