게시물 등록 후 특정시간에 노출
본문
검색을 좀 해봤는데
관련 검색어를 못찾는 것인지 원하는 내용을 찾을 수 없어 질문 남깁니다.
그누보드 게시판에 게시물을 작성하면 그 시간에 바로 등록이 되는데
원하는 기능은
등록시 출력할 시간을 설정하고 등록 후 시간이 지나 출력한 시간이 되면
자동으로 노출하는 기능입니다.
그누보드의 팝업설정과 비슷한 기능인데
이것을 게시판 글쓰기에 적용할 수 있는 방법이 있는지요?
ex) 10일 오후 6시 글작성 -> 관리자 외 목록에서 노출 안됨 -> 11일 오전 9시 등록(또는 노출)
ex) 위 기능이 안되면,
10일 6시 글작성 -> 리스트에 출력되나 뷰페이지 링크 없음 -> 11일 오전 9시 뷰 페이지 링크 활성화
방법을 아시는 분이 계시면 방법좀 알려주세요.
답변 3
일단 여분필드 사용할줄 아신다고 보고 그누보드4 기준으로 말씀 드립니다.(그누5도 비슷할겁니다.)
글쓰기에서
wr_1 : 글노출될 일자 (20150824 : 8자리 숫자 형식)
wr_2 : 글노출될 시간 (1~24 : 24시 숫자형식)
wr_3 : 글노출 종료할 일자 (20150827 : 8자리 숫자 형식)
wr_4 : 글노출 종료할 시간 (1~24 : 24시 숫자형식)
이런식으로 DB에 입력을 받습니다.
그리고 lisk.skin.php 에서
<? for ($i=0; $i<count($list); $i++) { ?>
<?
$c_time = time(); // 현재시간
$s_date = strtotime($list[$i][wr_1]) + ($list[$i][wr_2] * 3600); // 노출 시작일 추출
$e_date = strtotime($list[$i][wr_3]) + ($list[$i][wr_4] * 3600); // 노출 종료일 추출
?>
<? if($s_date < $c_time && $e_date > $c_time) { ?> <!-- 시간체크 시작 -->
여기서 게시판 리스트 시작 <for 문 바로다음부분 입니다. 보통
<? } ?> <!-- 조건문 종료 -->
뷰페이지로 가는 링크를 막으실려면 <a href='{$list[$i][href]>이부분을 위 조건문으로 감싸주시면 될듯 하고, 저렇게 하면 리스트에는 노출 안되지만 그누보드 구조 아는사람이면 직접 wr_id 뷰 아이디 쳐서 볼수도 있으니 view.skin.php에도 $view[wr_1]; 로 수정하셔서 조건문으로 막으시는게 좋으실듯 합니다.
참고로 분단위까지 사용하실려면 wr_5에 시작분 wr_6에 종료분 받으시고 + ($list[$i][wr_5] * 60)와 + ($list[$i][wr_6] * 60)을 각각 노출 시작일과 종료일 추출 변수 뒤쪽에 추가하시면 됩니다.
!-->
완성소스를 드리긴 어렵고 해보시다 안되면 의뢰를 하시는게 좋겠네요.
목록에 나오지않게 하기위해서는 bbs/list.php를 수정해야 하므로 제외하고 두번째 방법
글쓰기 폼 : 2015-08-30 10:00:00 형식으로 입력
출력일시 : <input type='text' name='wr_1' value='<?=$write[wr_1]?>'>
리스트 for문 다음줄 추가
제목 자체를 바꾸어서 보이게 해도 됩니다
if($list[$i][wr_1]> G5_TIME_YMDHIS){
$list[$i]['href']="javascript:alert('{$list[$i][wr_1]} 부터 열람 가능합니다')";
$list[$i]['subject'] = $list[$i][wr_1].' 부터 열람 가능'; //<---제목 바꾸어서 출력
}
뷰페이지 상단 php부분 추가
if($view[wr_1]> G5_TIME_YMDHIS) alert("$view[wr_1] 부터 열람 가능합니다");