날짜종료후 이동 문의 드립니다.

날짜종료후 이동 문의 드립니다.

QA

날짜종료후 이동 문의 드립니다.

본문

A게시판에서요 이벤트 시작때 날짜설정 -> 날짜 종료되면-> B게시판 이동

 

이런형태로 소스를 구해서 편집하고  공부하고 있습니다.

 

날짜 종료 까지는 되어서 이동하려고 하는데 어떤 방법이 좋을까 합니다.

 

여분필드로 업데이트파일에 wr_1 이용해서 보내는 방법이 낳을 듯한데요. 

 

    $start_datetime  = substr($po['po_datetime'],0,10);
    $end_datetime  = substr($po['po_endtime'],0,10);
    $today_datetime = date('Y-m-d');

 

이렇게 해서

                <?php
                    $dateDiff = intval((strtotime($end_datetime)-strtotime($today_datetime)) / 86400);
                    if($dateDiff > 0){
                        $bcolor = "color";
                ?>
                    <div class="date-item bg-<?php echo $bcolor; ?>">
                    <span class="date" style="font-size:20px;">이벤트중</span>
                <?php }else{
                        $bcolor = "gray";
                ?>
                    <div class="date-item bg-<?php echo $bcolor; ?>">
                    <span class="date" style="font-size:20px;">이벤트끝</span>
                <?php } ?>
이벤트 기간 : <?php echo $start_datetime.' - '.$end_datetime; ?>

 

여기에 이벤트 끝값에 여분필드를 사용해야될듯한데요.

아니면 ->  $end_datetime  = substr($po['po_endtime'],0,10); 이걸 이용해서 할수가 있는지요??

날짜설정후 이벤트시작후 설정된 날짜가 종료가 되면 B게시판 으로 이동.

여기에 작성후 write.skin.php / write_update.head.skin.php 여기에 여분필드값과 B게시판명 넣고

하면 될듯한데요.. 코드과 영 발코딩이라 어떻게 해야될지 시작부터 걱정이네요.

소스 방법을 알려주시면 감사하겠습니다.

 

 

 

 

 

이 질문에 댓글 쓰기 :

답변 5

예를 들어서 아래와 같이 해 볼 수 있을것 같습니다.

 


<?php
// 이벤트 시작일과 종료일을 설정합니다.
$start_datetime = "2023-07-01";
$end_datetime = "2023-07-15";
$today_datetime = date("Y-m-d"); // 현재 날짜를 가져옴.
$dateDiff = intval((strtotime($end_datetime) - strtotime($today_datetime)) / 86400);
if ($dateDiff > 0) {
    $bcolor = "color";
    $boardID = 1; // 이동할 게시판의 ID를 지정함.
    $eventStatus = "이벤트중";
} else {
    $bcolor = "gray";
    $boardID = 2; // 이벤트 종료 후 이동할 게시판의 ID를 지정함.
    $eventStatus = "이벤트끝";
    
    // 이동할 게시판으로 이동시키는 코드를 추가합니다.
    $moveURL = "/bbs/board.php?bo_table=" . $boardID; // 이동할 게시판의 URL을 생성.
    echo "<script>window.location.href = '{$moveURL}';</script>"; // JavaScript를 사용하여 이동.
}
?>
<div class="date-item bg-<?php echo $bcolor; ?>">
    <span class="date" style="font-size:20px;"><?php echo $eventStatus; ?></span>
</div>
이벤트 기간: <?php echo $start_datetime . ' - ' . $end_datetime; ?>

 

$start_datetime과 $end_datetime 변수를 이벤트의 실제 시작일과 종료일로 설정하고, $boardID 변수를 이동할 게시판의 ID로 수정후 적용하면 이벤트 종료 후 $boardID에 지정된 게시판으로 자동으로 이동하게 할 수 있을 것 같습니다.

 

참고하셔서 원하시는 로직으로 구현 하시면 될 것 같습니다.

네. 자세한 설명 감사합니다. 이글을 지금확인했습니다. 어제 남겨주신 방법으로 안되서 다시 글을 남겨두고 지금 여기글 확인했습니다. 알려주신데로 적용을 해보겠습니다.


<?php
$end_datetime  = '2023-07-16 09:00:00';
$today_datetime = date('Y-m-d H:i:s');
 
if (strtotime($end_datetime) < strtotime($today_datetime)) {
    header('Location: /bbs/board.php?bo_table=B');
} else {
    echo 'ongoing event A-board';
}
?>

배르만 님께서 여기도 글을 남기셨네요.. 저도 좀 필요해서 보고 있는데요..
echo 'ongoing event A-board'; 이부분에서 게시판명이 "free" 라면

1.echo 'ongoing free'; 가 되는 것인가요?
2.코드를 어디 파일에다 업로드 해야 하나요?

정말 여러가지로 감사드립니다.

알려주신 방법으로 write_update.head.skin.php 여기 파일에 넣어서 테스트 해보니 반응이 없습니다.그래서 해당 write.skin.php파일에서 적용해보니 링크만 /bbs/board.php?bo_table=B 이쪽으로 가버리고 기존 A-board는 사라저 버리구요.  위에 알려주신 소스가 보드 자체로 이동시켜주는듯한데요. 해당 이벤트 종료된 게시물만 이동하게는 안되나요??  혹시나해서.. --> echo 'ongoing event A-board';  부분과 <--> header('Location: /bbs/board.php?bo_table=B'); 이부분 2가지에서
--------------------------------------
if (strtotime($end_datetime) < strtotime($today_datetime)) {
    header('Location: /bbs/board.php?bo_table=이동될게시판B');
} else {
    echo '($bo_table == "이벤트게시판A" && $wr_id)';
}

---------------------------------------

이렇게 해도 안되네요.

도와주셔서 일단 채택드렸습니다.

제가 지금 테스트하는게 아미나보드라서요 알려주신 코드와는 잘 안되서요. 방법을 바꾸려고 찾아본 소스입니다.

분류항목을 진행중|종료 이렇게 정해두고..

이벤트 진행중 -> 이벤트 종료 / 이같은게시판에서 "게시글중 마감날짜에 종료"가 되면 해당 "종료" 분류로 이동시키려고 합니다.

아래 코드 한번 봐주시겠어요?
---------------------------------------------------
<?php
//하루에 한번 날짜로 카테고리 업데이트
if(G5_TIME_YMD != $board['bo_1']){
 
    // 이미 진행완료 처리된 것과 날짜 정보가 없는 것은 필요 없으니 빼고 가져온다.
    $sql = " select wr_id, ca_name, wr_1, wr_2 from {$write_table} where wr_is_comment = 0 and wr_1 <> '' and wr_2 <>'' 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_1'], 0, 10);
        $end_date = substr($row['wr_2'], 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 = '종료';
        }
             
 
        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' ");
}
?>
-----------------------------------------------------------
위의 코드중
'wr_1' 이것과 'wr_2' 요걸 --> 'wr_1' 를  '$start_datetime'로  'wr_2'를 '$end_datetime'로 바꾸면 될듯한데요. 이게 맞는지요?? 분류항목을 진행중|종료 이렇게 해뒀습니다. 날짜가 하루업데이트라 아직 확인테스트는 못하고 있지만요. 코드가 맞을것 같기는 한데요.

올려주신 코드로 구현해봤습니다.  아직 해결이 되지 않으셨다면 참고하셔서 적용해 보세요


<?php
// 하루에 한 번 날짜로 카테고리 업데이트
if (G5_TIME_YMD != $board['bo_1']) {

    // 이미 종료 처리된 것은 필요 없으니 가져오지 않음
    $sql = "SELECT wr_id, ca_name, wr_1, wr_2 FROM {$write_table} WHERE wr_is_comment = 0 AND wr_1 <> '' AND wr_2 <> '' 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_1'], 0, 10); // 시작일자
        $end_date = substr($row['wr_2'], 0, 10); // 종료일자

        $new_ca_name = '';
        if ($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'");
}
?>



이렇게 하시면 이벤트 종료시 종료 카테고리로 이동되게 할 수 있을 것 같습니다.
종료일자가 현재 날짜보다 이전인 게시글들을 '종료' 카테고리로 업데이트합니다. $start_date은 시작일자를, $end_date는 종료일자를 나타내는 변수입니다

시간 또는 분으로 테스트를 해보실 수 있습니다.

테스트 할때는 이런식으로 해보시고 원하시는 구현방식이 잘 적용이 되면 날짜 형식으로 수정하신후 적용하시면 될것 같습니다


<?php
// 하루에 한 번 날짜와 시간으로 카테고리 업데이트
if (G5_SERVER_TIME != $board['bo_1']) {
    // 이미 종료 처리된 것은 필요 없으니 가져오지 않음
    $sql = "SELECT wr_id, ca_name, wr_1, wr_2 FROM {$write_table} WHERE wr_is_comment = 0 AND wr_1 <> '' AND wr_2 <> '' AND ca_name <> '종료' ORDER BY wr_id";
    $result = sql_query($sql);
    for ($i = 0; $row = sql_fetch_array($result); $i++) {
        $start_datetime = $row['wr_1']; // 시작일자 및 시간
        $end_datetime = $row['wr_2']; // 종료일자 및 시간
        $current_datetime = date('Y-m-d H:i:s'); // 현재 날짜 및 시간
        $new_ca_name = '';
        if ($end_datetime < $current_datetime) {
            $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_SERVER_TIME . "' WHERE bo_table = '$bo_table'");
}
?>

 

G5_SERVER_TIME은 그누보드에서 사용하는 현재 서버 시간을 나타내는 상수입니다. 

테스트를 진행할 때, 현재 시간과 분이 시작일자 및 시간과 종료일자 및 시간 사이에 위치해야 정상적으로 테스트할 수 있습니다

여분필드는 사용 안하고 있습니다. 글쓰기 할때 폼입력값이 달력으로 날짜만 체크하게 되어 있어서요. 그래서 구한 소스코드 원본의 날짜 체크하는 부분이

        $start_date = substr($row['start_datetime'], 0, 10); // 시작일자
        $end_date = substr($row['end_datetime'], 0, 10); // 종료일자

이렇게 되어 있어서요.  그래서 다른 코드소스를 구해서 구한 코드중의  'wr_1' 이것과 'wr_2'  위에 start_datetime, end_datetime로 대채했는데 안되더라구요. 원본코드에 있는 것은 'start_datetime이고 다른 소스는 wr_1로..

전체소스 올려드렸습니다. 내용이 많이 복잡하구요. 한가지 이해가 안가는 부분이 있습니다. 추천 버튼도 문제가 좀 있습니다.  다른 css 버튼 소스를 가져와서 적용해도 추천과 폼에 작동하는 부분이 안되는듯해요. 클래스명을 바꿔서 해도.. ㅠ

<?php
if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가

if (!function_exists('conv_rich_content')) {
    function conv_rich_content($matches){
        global $view;
        return view_image($view, $matches[1], $matches[2]);
    }
}

if($board['as_code']) {
    apms_script('code');
}

$is_notice_list = false; //공지제외☆★

// add_stylesheet('css 구문', 출력순서); 숫자가 작을 수록 먼저 출력됨
add_stylesheet('<link rel="stylesheet" href="'.$list_skin_url.'/list.css" media="screen">', 0);
add_javascript('<script src="https://cdnjs.cloudflare.com/ajax/libs/modernizr/2.8.1/modernizr.min.js"></script>', 0);
add_stylesheet('<link rel="stylesheet" href="'.$list_skin_url.'/bootstrap-progressbar-3.2.0.css" media="screen">', 0);

// 이미지 비율
$thumb_w = $board['bo_'.MOBILE_.'gallery_width'];
$thumb_h = $board['bo_'.MOBILE_.'gallery_height'];
$img_h = apms_img_height($thumb_w, $thumb_h); // 이미지 높이

// 너비
$item_w = apms_img_width($board['bo_gallery_cols']);

// 간격
$gap_right = ($boset['gap_r'] == "") ? 15 : $boset['gap_r'];
$gap_bottom = ($boset['gap_b'] == "") ? 30 : $boset['gap_b'];

$ellipsis = (G5_IS_MOBILE) ? '' : ' class="ellipsis"';
$ellipsis = ($thumb_h > 0) ? $ellipsis : '';
$list_cnt = count($list);

if (G5_TIME_YMD != $board['bo_1']) {

    // 이미 종료 처리된 것은 필요 없으니 가져오지 않음
    $sql = "SELECT wr_id, ca_name, start_datetime, end_datetime FROM {$write_table} WHERE wr_is_comment = 0 AND start_datetime <> '' AND end_datetime <> '' AND ca_name <> '종료' ORDER BY wr_id";
    $result = sql_query($sql);
    for ($i = 0; $row = sql_fetch_array($result); $i++) {

        $start_date = substr($row['start_datetime'], 0, 10); // 시작일자
        $end_date = substr($row['end_datetime'], 0, 10); // 종료일자

        $new_ca_name = '';
        if ($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'");
}
?>


<script type="text/javascript" src="<?php echo $list_skin_url;?>/bootstrap-progressbar.js"></script>

<?php
$color = ($boset['color']) ? $boset['color'] : 'green';

// 신고
$is_shingo = ($board['as_shingo'] > 0) ? true : false;

$item_font = (G5_IS_MOBILE) ? '' : ' font-12';
?>
<?php
// 리스트
for ($i=0; $i < $list_cnt; $i++) {
                    // 썸네일
                    $list[$i]['no_img'] = $board_skin_url.'/img/no-img.jpg'; // No-Image
                    $img = apms_wr_thumbnail($bo_table, $list[$i], $thumb_w, $thumb_h, false, true);
    
    $star = apms_post_star($list[$i], 'fa-lg red');

    if($list[$i]['is_notice']) continue;

    // 글내용 변수로 치환
    $view = $list[$i];

    // list 지우기
    unset($list[$i]);

    $is_lock = false;
    $is_closed = false;
    if ($view['icon_secret'] || $view['is_lock']) {
        if($is_admin || ($view['mb_id'] && $view['mb_id'] == $member['mb_id'])) {
            ;
        } else {
            $is_closed = true;
            $view['wr_content'] = ($view['is_lock']) ? '잠긴글입니다' : '비밀글입니다.';
        }
        $is_lock = true;
    }

    // 세션
    
    $ss_name = 'ss_view_'.$bo_table.'_'.$view['wr_id'];
    if (!get_session($ss_name)) {
        sql_query(" update {$write_table} set wr_hit = wr_hit + 1 where wr_id = '{$view['wr_id']}' ");
        sql_query(" update {$g5['board_new_table']} set as_hit = as_hit + 1 where bo_table = '{$bo_table}' and wr_id = '{$view['wr_id']}' ", false);
        set_session($ss_name, TRUE);
    }

    // 링크정리
    $scrap_href = ($is_member) ? './scrap_popin.php?bo_table='.$bo_table.'&wr_id='.$view['wr_id'] : '';
    $good_href = ($is_good) ? './good.php?bo_table='.$bo_table.'&wr_id='.$view['wr_id'].'&good=good' : '';
    $nogood_href = ($is_nogood) ? './good.php?bo_table='.$bo_table.'&wr_id='.$view['wr_id'].'&good=nogood' : '';

    $html = 0;
    if (strstr($view['wr_option'], 'html1'))
        $html = 1;
    else if (strstr($view['wr_option'], 'html2'))
        $html = 2;

    $is_torrent = false;

    if($is_closed) {
        $view['content'] = $view['wr_content'];
    } else {

        //첨부파일
        $view['file'] = get_file($bo_table, $view['wr_id']);

        $view['content'] = conv_content($view['wr_content'], $html);

    }

    // Tag
    $is_tag = false;
    if($view['as_tag']) {
        $tag_list = apms_get_tag($view['as_tag']);
        if($tag_list) $is_tag = true;
    }

    $attach_list = '';
    if(!$is_closed) {
        if (implode('', $view['link'])) {
            // 링크
            for ($k=1; $k<=count($view['link']); $k++) {
                if ($view['link'][$k]) {
                    $attach_list .= '<a class="list-group-item break-word" href="'.$view['link_href'][$k].'" target="_blank">';
                    $attach_list .= '<i class="fa fa-link"></i> '.cut_str($view['link'][$k], 70).'  <span class="blue">+ '.$view['link_hit'][$k].'</span></a>'.PHP_EOL;
                }
            }
        }

        // 가변 파일
        $j = 0;
        for ($k=0; $k<count($view['file']); $k++) {
            if (isset($view['file'][$k]['source']) && $view['file'][$k]['source'] && !$view['file'][$k]['view']) {
                if (isset($view['file'][$k]['source']) && $view['file'][$k]['source'] && !$view['file'][$k]['view']) {
                    if ($board['bo_download_point'] < 0 && $j == 0) {
                        $attach_list .= '<a class="list-group-item"><i class="fa fa-bell red"></i> 다운로드시 <b>'.number_format(abs($board['bo_download_point'])).'</b>'.AS_MP.' 차감 (최초 1회 / 재다운로드시 차감없음)</a>'.PHP_EOL;
                    }
                    $file_tooltip = '';
                    if($view['file'][$i]['content']) {
                        $file_tooltip = ' data-original-title="'.strip_tags($view['file'][$k]['content']).'" data-toggle="tooltip"';
                    }
                    $attach_list .= '<a class="list-group-item break-word view_file_download at-tip" href="'.$view['file'][$k]['href'].'"'.$file_tooltip.'>';
                    $attach_list .= '<i class="fa fa-download"></i> '.$view['file'][$k]['source'].' ('.$view['file'][$k]['size'].')  <span class="orangered">+ '.$view['file'][$k]['download'].'</span></a>'.PHP_EOL;
                    $j++;
                }
            }
        }
    }

    // FA아이콘
    $fa_icon = 'comment';
    if($is_lock) {
        $fa_icon = 'lock';
    } else if ($view['icon_hot']) {
        $fa_icon = 'thumbs-up';
    } else if ($view['icon_new']) {
        $fa_icon = 'bar-chart';
    } else if ($view['icon_link']) {
        $fa_icon = 'link';
    } else if ($view['icon_file']) {
        $fa_icon = 'download';
    }

    // 댓글
    $cmt_id = 'list_comment_'.$view['wr_id'];
    $cmt_url = $list_skin_url.'/list.comment.php?bo_table='.$bo_table.'&wr_id='.$view['wr_id'];

?>
<?php if($view['as_extra']) { //별점 또는 설문
    $po = apms_get_extra($view['as_extra'], $bo_table, $view['wr_id']);
    $po['po_content'] = trim($po['po_content']);
    //print_r($po);

    $po_arr = array();
    //참여등급
    if($po['po_level'] > 0) {
        $pmg = 'xp_grade'.$po['po_level'];
        $po_arr[] = $xp[$pmg].' 이상';
    }

    //참여점수
    if($po['po_point'] > 0) {
        $po_arr[] = number_format($po['po_point']).AS_MP.' 적립';
    }

    //종료일
    if($po['po_end']) {
        $po_arr[] = str_replace("-", ".", substr($po['po_endtime'],0,10)).' 까지';
    }

    //참여수
    if($po['po_cnt']) {
        $po_arr[] = '총 '.number_format($po['po_cnt']).'명 참여';
    }

    //메시지
    $po_msg = (!empty($po_arr)) ? implode(' / ', $po_arr) : '';

    $start_datetime  = substr($po['po_datetime'],0,10);
    $end_datetime  = substr($po['po_endtime'],0,10);
    $today_datetime = date('Y-m-d');
        
        
}
?>

    <style>
        .list-wrap .list-container { overflow:hidden; margin-right:<?php echo ($gap_right > 0) ? '-'.$gap_right : 0;?>px; margin-bottom:<?php echo ($gap_bottom > 15) ? 0 : 15;?>px; }
        .list-wrap .list-row { float:left; width:<?php echo $item_w;?>%; }
        .list-wrap .list-item { margin-right:<?php echo $gap_right;?>px; margin-bottom:<?php echo $gap_bottom;?>px; }
    </style>
                <?php if($k > 0 && $k%$board['bo_gallery_cols'] == 0) { ?>
                    <div class="clearfix"></div>
                <?php } ?>

    <div class="media list-media">
        <div class="list-item">
            <div class="date-box en pull-left hidden-xs">
                <?php
                    $dateDiff = intval((strtotime($end_datetime)-strtotime($today_datetime)) / 86400);
                    if($dateDiff > 0){
                        $bcolor = "color";
                ?>
                    <div class="date-item bg-<?php echo $bcolor; ?>">
                    <span class="date" style="font-size:20px;">이벤트중</span>
                <?php }else{
                        $bcolor = "gray";
                ?>
                    <div class="date-item bg-<?php echo $bcolor; ?>">
                    <span class="date" style="font-size:20px;">이벤트끝</span>
                <?php } ?>
                    <?php echo '총 '.number_format($po['po_cnt']).'명 참여'; ?>
                </div>
                <?php //echo date("m, Y", $view['date']);?>
                <span class="date"><?php //echo date("d", $view['date']);?></span>


                <div class="date-icon <?php echo $bcolor;?>">
                    <i class="fa fa-<?php echo $fa_icon;?>"></i>
                </div>
                <?php if ($is_checkbox) { ?>
                    <p class="text-center">
                        <input type="checkbox" name="chk_wr_id[]" value="<?php echo $view['wr_id']; ?>" id="chk_wr_id_<?php echo $i ?>">
                    </p>
                <?php } ?>
            </div>


            <div class="panel panel-default  media-body ">
                <h2 class="media-heading" style="background-color:#f5f5f5;">
                    <div class="pull-left" style="vertical-align: middle;">
                        <!--<i class="fa fa-bar-chart fa-2x <?php echo $bcolor; ?>"></i>-->
                    </div>
                    <?php
                        if($dateDiff > 0){
                            echo "<span class=\"btn bg-".$bcolor." visible-xs\" style=\"float:right;margin: 5px 0 0 5px; font-size: 12px;padding: 3px 8px;\">이벤트중</span>";
                        }else{
                            echo "<span class=\"btn bg-".$bcolor." visible-xs\" style=\"float:right;margin: 5px 0 0 5px; font-size: 12px;padding: 3px 8px;\">이벤트끝</span>";
                        }
                    ?>
                    <a href="<?php echo $view['href'];?>">
                        <!--<?php echo cut_str(get_text($view['wr_subject']), 70); ?>-->
                        <span style="margin-left: 3px;"><?php echo get_text($po['po_subject']); ?></span>
                    </a>
                </h2>

                <div class="clearfix h10"></div>
    

                <div class="item-head<?php echo ($attach_list) ? '' : ' no-attach';?>">
                    <div style="padding:0 15px;">
                        <div class="text-muted<?php echo $item_font;?>">
                            <i class="fa fa-calendar"></i>
                            이벤트기간 : <?php echo $start_datetime.' - '.$end_datetime; ?>
                            <span class="sp"></span>
                            <p><?php echo $view['name']; //등록자 ?> 

                            <?php if($view['ca_name']) { ?>
                                <span class="hidden-xs">
                                    <span class="sp"></span>
                                    <i class="fa fa-tag"></i>
                                    <?php echo $view['ca_name']; //분류 ?>
                                </span>
                            <?php } ?>

                            <span class="sp"></span>
                            <i class="fa fa-comment"></i>
                            <?php echo ($view['wr_comment']) ? '<b class="red">'.number_format($view['wr_comment']).'</b>' : 0; //댓글수 ?>

                            <?php if($is_good) { ?>
                                <span class="sp"></span>
                                <i class="fa fa-heart"></i>
                                <?php echo number_format($view['wr_good']); //추천수 ?>
                            <?php } ?>

                            <span class="sp"></span>
                            <i class="fa fa-eye"></i>
                            <?php echo number_format($view['wr_hit']); //조회수 ?>

                            <span class="hidden-xs pull-right">
                                <i class="fa fa-clock-o"></i>
                                <?php echo date('Y.m.d H:i', $view['date']); //날짜 ?>
                            </span>
                            </p>
                        </div>
                    </div>
                </div>


                <?php
                    // 이미지 상단 출력
                    $v_img_count = count($view['file']);
                    if(!$is_closed && $v_img_count && $is_img_head) {
                        echo '<div class="item-img">'.PHP_EOL;
                        for ($k=0; $k<=count($view['file']); $k++) {
                            if ($view['file'][$k]['view']) {
                                echo get_view_thumbnail($view['file'][$k]['view']);
                            }
                        }
                        echo '</div>'.PHP_EOL;
                    }
                ?>
                

                <div class="item-content-<?php echo $po['po_id']; ?>" style="margin:15px; ">
                        <?php if($thumb_h > 0) { ?>
                            <div class="imgframe">
                                <div class="img-wrap" style="padding-bottom:<?php echo $img_h;?>%;">
                                    <div class="img-item">
                                        <?php echo $wr_label;?>
                                        <?php if ($is_checkbox) { ?>
                                            <div class="label-tack">
                                                <input type="checkbox" name="chk_wr_id[]" value="<?php echo $list[$i]['wr_id'] ?>" id="chk_wr_id_<?php echo $i ?>">
                                            </div>    
                                        <?php } ?>
                                        <a href="<?php echo $view['href'];?>">
                                            <img src="<?php echo $img['src'];?>" alt="<?php echo $img['alt'];?>">
                                        </a>
                                    </div>
                                </div>
                            </div>
                        <?php } else { ?>
                            <div class="list-img">
                                <?php echo $wr_label;?>
                                <?php if ($is_checkbox) { ?>
                                    <div class="label-tack">
                                        <input type="checkbox" name="chk_wr_id[]" value="<?php echo $list[$i]['wr_id'] ?>" id="chk_wr_id_<?php echo $i ?>">
                                    </div>    
                                <?php } ?>
                                <a href="<?php echo $view['href'];?>">
                                    <img src="<?php echo $img['src'];?>" alt="<?php echo $img['alt'];?>">
                                </a>
                            </div>
                        <?php } ?>
                        <?php if($boset['shadow']) echo apms_shadow($boset['shadow']); //그림자 ?>

                </div>

                <?php
                    // 이미지 하단 출력
                    if(!$is_closed && $v_img_count && $is_img_tail) {
                        echo '<div class="item-img">'.PHP_EOL;
                        for ($k=0; $k<=count($view['file']); $k++) {
                            if ($view['file'][$k]['view']) {
                                echo get_view_thumbnail($view['file'][$k]['view']);
                            }
                        }
                        echo '</div>'.PHP_EOL;
                    }
                ?>
                <?php

                $po_stx1 = get_text($po['po_poll1']);
                $po_stx2 = get_text($po['po_poll2']);

                $po_cnt1 = $po['po_cnt1'];
                $po_cnt2 = $po['po_cnt2'];

                $po_per1 = ($po['po_cnt1'] > 0) ? round(($po_cnt1 / $po['po_cnt']) * 1000) / 10 : 0;
                $po_per2 = ($po['po_cnt2'] > 0) ? round(($po_cnt2 / $po['po_cnt']) * 1000) / 10 : 0;

                $wr_id2 = $view['wr_id'];
                $po_id2 = $po['po_id'];

                if($po_per1 == "0" ){
                    $po_per3 = "0";
                }else if($po_per1 == "100"){
                    $po_per3 = "100";
                }else{
                    $po_per3 = $po_per1 + 5;
                }

                if($po_per2 == "0" ){
                    $po_per4 = "0";
                }else if($po_per2 == "100"){
                    $po_per4 = "100";
                }else{
                    $po_per4 = $po_per2 + 5;
                }
                ?>
                <!--이벤트시작-->
                <!--<form name="fpollview" id="fpollview" action="./poll.php" method="post" role="form" class="form-inline" onsubmit="return vfpoll_submit(this);">-->
                <input type="hidden" name="po_id" value="<?php echo $po['po_id'] ?>">
                <input type="hidden" name="bo_table" value="<?php echo $bo_table ?>">
                <input type="hidden" name="wr_id" value="<?php echo $view['wr_id']; ?>">
                <input type="hidden" name="sfl" value="<?php echo $sfl ?>">
                <input type="hidden" name="stx" value="<?php echo $stx ?>">
                <input type="hidden" name="spt" value="<?php echo $spt ?>">
                <input type="hidden" name="sca" value="<?php echo $sca ?>">
                <input type="hidden" name="sst" value="<?php echo $sst ?>">
                <input type="hidden" name="sod" value="<?php echo $sod ?>">
                <input type="hidden" name="page" value="<?php echo $page ?>">
                <input type="hidden" name="sw" value="">

                <div class="visible-xs-block" style="width:100%;margin-top:20px;height:30px;">
                    <div class="pull-left" style="margin-left:20px;">
                        <?php echo number_format($po_cnt1);?>명(<?php echo $po_per1;?>%)
                    </div>
                    <div class="pull-right" style="margin-right:20px;">
                        <?php echo number_format($po_cnt2);?>명(<?php echo $po_per2;?>%)
                    </div>
                </div>
                <div class="col-sm-12">
                    <ul class="list-group" >
                        <?php if($po['po_content']) { ?>
                            <li class="list-group-item" style="border: 0px !important;">
                                <?php echo conv_content($po['po_content'], 0); ?>
                            </li>
                        <?php } ?>

                        <div id="poll-vote">
                            <div class="progress progress-striped active right poll_1 at-tip"   data-original-title="<?php echo $po_cnt1;?>표 / <?php echo $po_per1; ?> %" >
                                <div class="progress-bar progress-bar-info" role="progressbar" data-transitiongoal="<?php echo $po_per3; ?>" >
                                    <span class="sr-only1"><?php echo $po_cnt1;?>표 <span class="hidden-xs">/ <?php echo round($po_per1); ?> %</span></span>
                                </div>
                            </div>
                            <div class="vsChart"><a href="<?php echo $view['href'];?>"><i class="demo-icon icon-vs1  <?php echo $bcolor;?>-circle large" style="width: -5em; font-size:25px;"></i>
                                <!--<i class="fa fa-comments  <?php// echo $bcolor;?>-circle large"></i>--></a></div>
                            <div class="progress progress-striped active poll_2 at-tip" data-original-title="<?php echo $po_cnt2;?>표 / <?php echo $po_per2; ?> %" >
                                <div class="progress-bar progress-bar-danger" role="progressbar" data-transitiongoal="<?php echo $po_per4; ?>" >
                                    <span class="sr-only2"><?php echo $po_cnt2;?>표 <span class="hidden-xs">/ <?php echo round($po_per2); ?> %</span></span>
                                </div>
                            </div>
                        </div>
                            <li class="list-group-item" style="border: 0px !important;">
                                <label class="radio-inline cursor" >
                                    <a href="#" onClick="javascript:update_poll('1','<?php echo $po_id2; ?>','<?php echo $wr_id2; ?>');">
                                        <button  type='button'  style="border-radius: 10px; border:1px solid #15A7D3;  padding:  10px; margin-left: -10px; background: #15A7D3; color: #fff;" ><?php echo $po_stx1;?>
                                        </button>
                                    </a>
                                </label>
                                <span class="pull-right" style="padding-right: 10px;">
                                    <label class="radio-inline cursor" >
                                    <a href="#" onClick="javascript:update_poll('2','<?php echo $po_id2; ?>','<?php echo $wr_id2; ?>');">
                                    <button type='button'   style="border-radius: 10px; padding:  10px;  border:1px solid #F96762;  margin-right: 1px; background: #F96762; color: #fff;" ><?php echo $po_stx2;?>
                                            </button>
                                    </a>
                                    <!--<input type="button" class="btn btn-green" style="padding: 5px 30px;" OnClick="vfpoll_submit(2)" value="<?php// echo $po_stx2;?>">name="fpollview"-->
                                        <!--<input type="checkbox" style="border:2px dotted #00f;display:block;background:#ff0000;" value="123" />-->
                                    </label>
                                </span>
                                <?php echo ($star['cnt']) ? $star['star'] : '';?>
                            </li>
                    </ul>
                </div>
<div class="sbtn-contain">
    <button class="sbtn">Click Me!</button>
    <div class="sbtn-particles">
    </div>
</div>

                
                
<style>
.shape {
    position: absolute;
    width: 50px;
    height: 50px;
    transform: scale(0.8);
}
.cir {
    position: absolute;
    border-radius: 50%;
    z-index: 5;
}
.sbtn-contain {
    width: 200px;
    height: 100px;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
}

.sbtn {
    position: absolute;
    top: 50%;
    left: 50%;
    padding: 10PX;
    transform: translate(-50%, -50%);
    border-radius: 4px;
    background: #febf00;
    text-align: center;
    z-index: 10;
    transition: 0.2s;
    cursor: pointer;
    color: #000;
    box-shadow: 0px 1px 5px 2px #bfceef;
}
.sbtn:active,
.sbtn:hover,
.sbtn:focus {
    outline: none !important;
    color: #000;
}
.sbtn-particles {
    width: 100px;
    height: 100px;
    position: absolute;
    border-radius: 50%;
    color: #eee;
    font-family: monospace;
    z-index: 5;
    /*     filter: url(#gooeyness); */
}
.sbtn:active {
    transform: scale(0.9) translate(-55%, -55%);
}
</style>                
                
<!--이벤트 끝 -->
<div class="col-xs-12 col-sm-12 col-md-12 col-lg-12">
<div class="col-xs-6 col-sm-6 col-md-6 col-lg-6">    
<div class="sbtn-contain">
<div class="sbtn-particles">
<button class="sbtn"   a href="apms_good('<?php echo $bo_table;?>', '<?php echo $view['wr_id'];?>', 'good', 'wr_good'); return false;" style="color:#FFF !important; font-size:18px; font-weight:bold;">
    <i class="fa fa-thumbs-up" aria-hidden="true"></i>  
</button><?php echo number_format($view['wr_good']) ?>

</div>                
</div>    
</div>
<div class="col-xs-6 col-sm-6 col-md-6 col-lg-6">    
<div class="sbtn-contain">
    <div class="sbtn-particles">
<button class="sbtn"  a href="apms_good('<?php echo $bo_table;?>', '<?php echo $view['wr_id'];?>', 'nogood', 'wr_nogood'); return false;" style="color:#FFF !important; font-size:18px; font-weight:bold;">
    <i class="fa fa-thumbs-down" aria-hidden="true"></i>
</button>  <?php echo number_format($view['wr_nogood']) ?>
</div>                
</div>    
</div>
</div>
        
<div style="line-height:20px;"> </div>

                <?php if (!$is_closed && $is_tag) { // 태그 ?>
                    <p class="item-tag<?php echo $item_font;?>"><i class="fa fa-tags"></i> <?php echo $tag_list;?></p>
                <?php } ?>

                <div class="item-icon" style="padding: 10px 15px;">
                    <?php if ($board['bo_use_sns']) { ?>
                        <div class="pull-right item-sns-icon">
                            <?php
                                $img = ($is_lock) ? array('src'=>'', 'alt'=>'') : apms_wr_thumbnail($bo_table, $view, 0, 0, false, true); // 썸네일
                                $sns_url  = G5_BBS_URL.'/board.php?bo_table='.$bo_table.'&wr_id='.$view['wr_id'];
                                $sns_title = get_text($view['wr_subject'].' | '.$config['cf_title']);
                                $sns_img = $list_skin_url.'/img';
                                echo  get_sns_share_link('facebook', $sns_url, $sns_title, $sns_img.'/sns_fb.png').' ';
                                echo  get_sns_share_link('twitter', $sns_url, $sns_title, $sns_img.'/sns_twt.png').' ';
                                echo  get_sns_share_link('googleplus', $sns_url, $sns_title, $sns_img.'/sns_goo.png').' ';
                                echo  get_sns_share_link('kakaostory', $sns_ur

다음과 같이 수정해 보세요


if (G5_TIME_YMD != $board['bo_1']) {
    // 이미 종료 처리된 것은 필요 없으니 가져오지 않음
    $sql = "SELECT wr_id, ca_name, start_datetime, end_datetime FROM {$write_table} WHERE wr_is_comment = 0 AND start_datetime <> '' AND end_datetime <> '' AND ca_name <> '종료' ORDER BY wr_id";
    $result = sql_query($sql);
    for ($i = 0; $row = sql_fetch_array($result); $i++) {
        $start_date = substr($row['start_datetime'], 0, 10); // 시작일자
        $end_date = substr($row['end_datetime'], 0, 10); // 종료일자
        $new_ca_name = '';
        if ($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']}'");
            // 종료 카테고리로 이동하는 코드 추가
            $move_category = '종료카테고리아이디'; // 이동할 카테고리 아이디로 변경해야 함
            sql_query("UPDATE {$write_table} SET ca_name = '{$move_category}' 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'");
}
?>

 

출력 부분에서 이벤트기간 : <?php echo $start_datetime.' - '.$end_datetime; ?> 이렇게 작성하시면 될것 같습니다.

네 신경써주셔서 감샇합니다. 뭔가 잘 안되네요.  글쓰기 페이지에 -> <?php echo $start_datetime.' - '.$end_datetime; ?> 이걸로 적용하고 위에 코드는 원본 코드위치에 해도 잘안됩니다. ㅎ
게시판에 게시글 날짜를 어제 날짜로 수정해서 테스트 해봤는데요. 날짜 값이 지난글이기에 종료로 이동되는게 맞는듯한데요. 꼼짝도 안합니다...

이렇게 하시면 기간이 지난 이벤트들은 종료 카테고리로 이동하게 할 수 있을것 같습니다


// 이벤트 기간이 지난 이벤트를 가져와서 처리
$sql = "SELECT wr_id, ca_name, start_datetime, end_datetime FROM {$write_table} WHERE wr_is_comment = 0 AND start_datetime <> '' AND end_datetime <> '' AND ca_name <> '종료' AND end_datetime < NOW() ORDER BY wr_id";
$result = sql_query($sql);
while ($row = sql_fetch_array($result)) {
    $wr_id = $row['wr_id'];
    $move_category = '종료카테고리아이디'; // 이동할 카테고리 아이디로 변경해야 함

    // 종료 카테고리로 이동하는 코드 추가
    sql_query("UPDATE {$write_table} SET ca_name = '{$move_category}' WHERE wr_id = '{$wr_id}'");
}
?>


직접 테스트를 할 수 있는 자료가 없으니 쿼리문으로만 추정해서 작성해 볼 수 밖에 없네요

답변을 작성하시기 전에 로그인 해주세요.
전체 81
QA 내용 검색

회원로그인

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