57 lines
2.5 KiB
PHP
57 lines
2.5 KiB
PHP
<?php
|
|
if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가
|
|
|
|
// 예약 노출 설정 처리
|
|
$wr_is_reserved = isset($_POST['wr_is_reserved']) ? (int)$_POST['wr_is_reserved'] : 0;
|
|
$wr_reserved_start = isset($_POST['wr_reserved_start']) ? trim($_POST['wr_reserved_start']) : '';
|
|
$wr_reserved_end = isset($_POST['wr_reserved_end']) ? trim($_POST['wr_reserved_end']) : '';
|
|
|
|
if ($wr_is_reserved == 1) {
|
|
if (!$wr_reserved_start || !$wr_reserved_end) {
|
|
alert('예약 노출 시작일시와 종료일시를 모두 입력해주세요.');
|
|
}
|
|
if ($wr_reserved_start > $wr_reserved_end) {
|
|
alert('예약 종료일시는 시작일시보다 이후여야 합니다.');
|
|
}
|
|
|
|
// 💡 [핵심 수정] 게시판 설정에 따른 중복 검사
|
|
if (isset($board['bo_use_reservation_overlap']) && $board['bo_use_reservation_overlap']) {
|
|
$overlap_limit = isset($board['bo_reservation_overlap_count']) ? (int)$board['bo_reservation_overlap_count'] : 0;
|
|
|
|
// 💡 [변경] 0보다 클 때만 개수 제한 체크 (0이면 무제한 허용)
|
|
if ($overlap_limit > 0) {
|
|
// 겹치는 게시물 수 조회
|
|
$sql = " SELECT count(*) as cnt FROM {$write_table}
|
|
WHERE wr_is_comment = 0
|
|
AND wr_is_reserved = 1
|
|
AND wr_id != '{$wr_id}'
|
|
AND (
|
|
'{$wr_reserved_start}' <= wr_reserved_end AND '{$wr_reserved_end}' >= wr_reserved_start
|
|
) ";
|
|
$row = sql_fetch($sql);
|
|
|
|
// 허용 개수보다 많으면 차단 (현재 등록하려는 글 포함이므로 >= 사용하거나, 이미 등록된 글 수와 비교)
|
|
// 이미 등록된 글 수($row['cnt'])가 제한 개수($overlap_limit) 이상이면, 더 이상 등록 불가
|
|
if ($row['cnt'] >= $overlap_limit) {
|
|
$msg = "선택하신 기간에 예약 가능한 게시물 수({$overlap_limit}개)를 초과했습니다.";
|
|
$msg .= "\\n(현재 {$row['cnt']}개 예약됨)";
|
|
alert($msg);
|
|
}
|
|
}
|
|
}
|
|
|
|
} else {
|
|
// 예약 미사용 시 날짜 초기화
|
|
$wr_reserved_start = '0000-00-00 00:00:00';
|
|
$wr_reserved_end = '0000-00-00 00:00:00';
|
|
}
|
|
|
|
// DB 업데이트
|
|
$sql = " UPDATE {$write_table}
|
|
SET wr_is_reserved = '{$wr_is_reserved}',
|
|
wr_reserved_start = '{$wr_reserved_start}',
|
|
wr_reserved_end = '{$wr_reserved_end}'
|
|
WHERE wr_id = '{$wr_id}' ";
|
|
sql_query($sql);
|
|
?>
|