이벤트 게시판에서 예약일을 설정하고, 예약일이 설정된 경우 예약일이 현재일보다 이후라면 최근게시물에서 출력하지 않도록 처리

This commit is contained in:
2025-12-11 10:38:10 +09:00
parent bc6fdf2a00
commit 8ea1ab51fc
2 changed files with 60 additions and 35 deletions

View File

@ -67,41 +67,52 @@ add_stylesheet('<link rel="stylesheet" href="'.$board_skin_url.'/style.css">', 0
<input type="text" name="wr_3" value="<?php echo isset($write['wr_3']) ? $write['wr_3'] : ''; ?>" id="wr_3" class="input w70" placeholder="서브워딩을 입력하세요.">
</div>
<div class="rb_inp_wrap new_bbs_border_wrap">
<ul>
<h6 class="bbs_sub_titles font-B">날짜(기간) 등록</h6>
<label class="helps">기간을 설정할 수 있습니다. 기간이 설정된 경우 종료일이 지나면 블라인드 됩니다.<br>시작일과 종료일이 모두 입력되어 있을때만 날짜를 표기 합니다.</label>
<div class="rb_inp_wrap new_bbs_border_wrap" style="display:flex; justify-content:space-between;">
<div style="width: 49%">
<ul>
<h6 class="bbs_sub_titles font-B">날짜(기간) 등록</h6>
<label class="helps">기간을 설정할 수 있습니다. 기간이 설정된 경우 종료일이 지나면 블라인드 됩니다.<br>시작일과 종료일이 모두 입력되어 있을때만 날짜를 표기 합니다.</label>
<input type="text" name="wr_1" class="datepicker_inp datepicker_start datepicker" value="<?php echo isset($write['wr_1']) ? $write['wr_1'] : ''; ?>" id="wr_1" placeholder="시작일" autocomplete="off" readonly>
<input type="text" name="wr_2" class="datepicker_inp datepicker_end datepicker" value="<?php echo isset($write['wr_2']) ? $write['wr_2'] : ''; ?>" id="wr_2" placeholder="종료일" autocomplete="off" readonly> 
<input type="text" name="wr_1" class="datepicker_inp datepicker_start datepicker" value="<?php echo isset($write['wr_1']) ? $write['wr_1'] : ''; ?>" id="wr_1" placeholder="시작일" autocomplete="off" readonly>
<input type="text" name="wr_2" class="datepicker_inp datepicker_end datepicker" value="<?php echo isset($write['wr_2']) ? $write['wr_2'] : ''; ?>" id="wr_2" placeholder="종료일" autocomplete="off" readonly> 
<script>
//@미니님a 님 개선 코드적용
$(function() {
$('.datepicker_start').datepicker({
minDate: 0
});
$('.datepicker_end').datepicker({
minDate: 0,
beforeShow: function(input, inst) {
var startDate = $('.datepicker_start').datepicker('getDate');
if (startDate) {
$(this).datepicker('option', 'minDate', startDate);
<script>
//@미니님a 님 개선 코드적용
$(function() {
$('.datepicker_start').datepicker({
minDate: 0
});
$('.datepicker_end').datepicker({
minDate: 0,
beforeShow: function(input, inst) {
var startDate = $('.datepicker_start').datepicker('getDate');
if (startDate) {
$(this).datepicker('option', 'minDate', startDate);
}
}
}
});
});
// 시작일이 변경되면 종료일의 최소 날짜를 업데이트
$('.datepicker_start').on('change', function() {
var startDate = $(this).datepicker('getDate');
if (startDate) {
$('.datepicker_end').datepicker('option', 'minDate', startDate);
}
// 시작일이 변경되면 종료일의 최소 날짜를 업데이트
$('.datepicker_start').on('change', function() {
var startDate = $(this).datepicker('getDate');
if (startDate) {
$('.datepicker_end').datepicker('option', 'minDate', startDate);
}
});
});
});
</script>
</script>
</ul>
</div>
<div style="width: 49%">
<ul>
<h6 class="bbs_sub_titles font-B">게시일 등록</h6>
<label class="helps">출력을 원하는 날짜를 지정할 수 있습니다. <br> 미입력한 경우 바로 노출됩니다.</label>
<input type="text" name="wr_4" class="datepicker_inp datepicker" value="<?php echo isset($write['wr_4']) ? $write['wr_4'] : ''; ?>" id="wr_4" placeholder="예약일" autocomplete="off" readonly>
</ul>
</div>
</ul>
</div>
<!-- } -->

View File

@ -153,9 +153,23 @@ $rb_skin['md_auto_is'] 자동롤링 여부(1,0)
return $a['_sort'] <=> $b['_sort'];
});
// 종료 상태인 항목 제외
$list = array_filter($list, function ($item) {
return $item['_status'] !== '종료';
// 종료 상태인 항목 제외 및 예약일(wr_4)이 오늘보다 이후인 항목 제외
$today_ts = strtotime($todays);
$list = array_filter($list, function ($item) use ($today_ts) {
// _status가 '종료'이면 제외
if (isset($item['_status']) && $item['_status'] === '종료') {
return false;
}
// wr_4(예약일)이 설정되어 있고, 예약일이 오늘보다 이후이면 제외
if (!empty($item['wr_4'])) {
$wr4_ts = strtotime($item['wr_4']);
if ($wr4_ts !== false && $wr4_ts > $today_ts) {
return false;
}
}
return true;
});
// array_filter 후 인덱스 재정렬 (중요!)