설정 시간이 지나면 자동으로 분류가 변경되게 할수있을까요?

설정 시간이 지나면 자동으로 분류가 변경되게 할수있을까요?

QA

설정 시간이 지나면 자동으로 분류가 변경되게 할수있을까요?

답변 5

본문

이벤트 게시판 스킨을 만들고 있습니다.

진행중 | 종료

두개의 분류로 되어있구요.

마감시간을 wr_1에 저장해놓고 현재시간이 마감시간을 지나면 자동으로 글의 분류가 종료로 넘어가게 하고 싶습니다.

예를 들어 wr_1 의 값이 10:00 이라면 정확히 10:00 이 되면 분류가 종료로 넘어가게 할수있을까요?

 

이 질문에 댓글 쓰기 :

답변 5

원리는 간단합니다.

1분마다 서버에서 할 필요도없고,

사용자가 누구던 접속을 할때에,

그 내용이 갱신되면 되는겁니다.

꼭 10시에 분류가 바껴야한다고 고정관념으로 생각하지마시고,

10시 40분에 누가 접속하고, 그 타이밍에 분류를 교체하더라도

그때 접속한 유저는 10시에 마감이되었다고 보이지, 10시 40분에 마감이되었다 보이지않을겁니다.

extend/user.config.php 파일을 만들어서

해당 게시물을 select 하고, 마감시간이 현재보다 과거라면

분류를 교체하는 쿼리를 실행하시면 간단합니다.

잘 이해가 안되서요. 10시 마감일 경우 첫 유저가 10시 40분에 접속을 하면 db에서 분류를 업데이트 한다는 말씀이신가요? 그러면 다음 유저가 10시 50분에 접속하면 분류는 이미 업데이트 되어있는 상태일까요?
그런데 중요한건 제가 extend/user.config.php 어떻게 만들지 감도 안오네요 ㅠㅠ
extend 는 개념도 없어서...

맞습니다.
10시 마감일 경우, 다음 접속 유저가 10시 40분에 접속했다면,
그 타이밍에 db에서 분류를 업데이트 해주면되고,
그 유저도 해당 이벤트는 마감으로 보일테고,
그 이후에 접속한 유저도 당연히 마감으로 보일겁니다.
해당 코드는 별도로 만들어 드리기 어려운점 양해부탁드립니다.

wr_1 의 값이 10:00 이라면 정확히 10:00 이 되면 <===굳이 이렇게 할 필요가 없습니다
위와 같이 지정된 시간을 찾아내서 변경하려면 크론으로 일정 시간마다 체크를 해야 하겠으나
웹호스팅에서는 크론을 사용할 수도 없거니와 그렇게 할 이유가 없겠습니다
실시간으로 다른 곳에서 API같은 것으로 내용을 추출해가는 것이 아니라면 굳이 시각에 
딱 맞추어 변경해야할 이유가 없습니다

 

누군가(봇포함해서) 홈페이지에 접속하면 그 시점에 wr_1 값을 체크해서 변경해주면 됩니다
10:00로 지정 되어 있어도 11시에 누군가 접속해서 wr_1 시각 체크 후 변경을 하면
설정시각 10시에 변경되었는지 방금 변경 되었는지 누가 알겠어요?

 

wr_1에 등록 되는 시각이 어떤 값들인지 정확한 예시가 필요 합니다
10:00. 10:01, 10:02, 10:20, 10:50~~~~이런식으로 일정한 규칙이 없다면
매분마다 체크해서 변경해야 하니 디비 부하문제가 생기겠습니다

등록 되는 시각을 10분, 20분,30분 단위 등으로 설정해서
조건에 맞게 입력하도록 하면 체크 간격을 늘려서 부하를 줄일 수 있겟습니다


그리고 시각을 시:분 형식으로 등록하면 23:00 등록에 대해서 다음날 01:30에 체크 하려면 
복잡해지니 년월일시분(2014-04-12 13:30)형식으로 등록하는 것이 좋겠습니다

30분 단위로 조건을 만든다면 다음처럼 합니다

extend 폴더에 화일을 하나 만듭니다( event_change.php)


<?php
$ctime = G5_SERVER_TIME;
$currd = substr(G5_TIME_YMDHIS, 0,16);
if( G5_SERVER_TIME - $config['cf_1'] > 1800){
 sql_query("update $g5['config_table'] set cf_1='$ctime' ");
 $event_table= $g5['write_prefix'].'event';
 sql_query("update $event_table set ca_name='종료' where wr_1 < '$currd' ");
}

 

우선 시간때를 wr_1 여분필드 가 시작 시작으로 지정하고 wr_2를 종료시간으로 지정해보세요

그러고 나머지는 sql 조건문 으로 주면되거든요

답변감사드립니다.

시작시간은 글쓴 시간으로 정해놔서 wr_datetime 으로 들어가는데

종료 시간에 정확하게 분류를 업데이트 할려면 어떤 로직이 필요할까요?

서버상에서 실시간(1분간격?)으로 해당 조건문을 실행시키는것도 무리가 있을듯 싶어서요.

실시간으로 하신다면 크론탭 쓰셔야되요
이거 참고해서 https://sir.kr/g5_plugin/9904?sfl=wr_subject%7C%7Cwr_content&stx=%ED%81%AC%EB%A1%A0 쓰시면되구요

로직은 아래 코드 참고해보세요

https://sir.kr/qa/529505?stx=%EB%A7%88%EA%B0%90%EC%8B%9C%EA%B0%84&sst=wr_num&sop=and&unanswered=0&unadopted=0&adopted=0&s_tag=

답변을 작성하시기 전에 로그인 해주세요.
QA 내용 검색
질문등록
전체 358
© SIRSOFT
현재 페이지 제일 처음으로