<?php
if (!defined('_GNUBOARD_')) exit;
include_once("{$board_skin_path}/db_update.php");
add_stylesheet('<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css">', 0);
add_stylesheet('<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Noto+Sans+KR:wght@300;400;500;700&display=swap">', 0);
add_stylesheet('<link rel="stylesheet" href="'.$board_skin_url.'/style.write.css">', 0);
// 중분류/소분류 배열 생성 (bo_1, bo_2 활용)
$mid_category_list = explode('|', $board['bo_1']);
$sub_category_list = explode('|', $board['bo_2']);
?>
<section id="bo_w">
<div class="write-container">
<form name="fwrite" id="fwrite" action="<?php echo $action_url ?>" onsubmit="return fwrite_submit(this);" method="post" enctype="multipart/form-data" autocomplete="off">
<input type="hidden" name="w" value="<?php echo $w ?>">
<input type="hidden" name="bo_table" value="<?php echo $bo_table ?>">
<input type="hidden" name="wr_id" value="<?php echo $wr_id ?>">
<!-- 분류 섹션 -->
<div class="frm_row">
<div class="frm_label">분류 설정</div>
<div class="frm_content cat-group">
<?php if ($is_category) { ?>
<select name="ca_name" id="ca_name" required class="frm_select">
<option value="">대분류 선택</option>
<?php echo $category_option ?>
</select>
<?php } ?>
<select name="as_mid_cat" class="frm_select">
<option value="">중분류 선택</option>
<?php foreach($mid_category_list as $m) { if(!trim($m)) continue; ?>
<option value="<?php echo $m; ?>" <?php echo ($write['as_mid_cat'] == $m) ? "selected" : ""; ?>><?php echo $m; ?></option>
<?php } ?>
</select>
<select name="as_sub_cat" class="frm_select">
<option value="">소분류 선택</option>
<?php foreach($sub_category_list as $s) { if(!trim($s)) continue; ?>
<option value="<?php echo $s; ?>" <?php echo ($write['as_sub_cat'] == $s) ? "selected" : ""; ?>><?php echo $s; ?></option>
<?php } ?>
</select>
<div class="memo-toggle-wrap">
<span>메모</span>
<label class="switch">
<input type="checkbox" id="memo_toggle" <?php echo $write['as_memo'] ? 'checked' : ''; ?>>
<span class="slider"></span>
</label>
</div>
</div>
</div>
<!-- 메모 입력창 (슬라이딩) -->
<div id="memo_section">
<div class="frm_row">
<div class="frm_label">메모 삭제</div>
<div class="frm_content">
<label class="switch">
<input type="checkbox" name="memo_del" value="1">
<span class="slider slider-delete"></span>
</label>
</div>
</div>
<div class="frm_row">
<div class="frm_label">메모 내용</div>
<div class="frm_content">
<textarea name="as_memo" id="as_memo" class="frm_textarea" rows="3"><?php echo $write['as_memo']; ?></textarea>
</div>
</div>
</div>
<!-- 제목 -->
<div class="frm_row">
<div class="frm_label">제목</div>
<div class="frm_content">
<input type="text" name="wr_subject" value="<?php echo $subject ?>" id="wr_subject" required class="frm_input" placeholder="제목을 입력하십시오.">
</div>
</div>
<!-- 상세 설정 토글 버튼 -->
<button type="button" class="btn-toggle-main" id="btn_extra_toggle">
<i class="fa-solid fa-plus"></i> 상세 내용 및 첨부파일 설정 (클릭하여 열기)
</button>
<!-- 슬라이딩 상세 섹션 -->
<div id="extra_section">
<!-- 글내용 -->
<div class="frm_row">
<div class="frm_label">글내용</div>
<div class="frm_content">
<?php echo $editor_html; ?>
</div>
</div>
<!-- 추가내용 -->
<div class="frm_row">
<div class="frm_label">추가내용</div>
<div class="frm_content">
<textarea name="as_extra_content" class="frm_textarea" rows="5" placeholder="추가 상세 데이터를 입력하세요."><?php echo $write['as_extra_content']; ?></textarea>
</div>
</div>
<!-- 첨부파일 -->
<div class="frm_row">
<div class="frm_label">첨부파일</div>
<div class="frm_content" id="file_container">
<?php for ($i=0; $is_file && $i<$file_count; $i++) {
$active_class = ($i == 0 || (isset($file[$i]['file']) && $file[$i]['file'])) ? "active" : "";
?>
<div class="file-slot <?php echo $active_class; ?>" id="f_slot_<?php echo $i; ?>">
<div class="file-custom-wrapper">
<label for="bf_file_<?php echo $i; ?>" class="file-btn-label">파일 선택</label>
<input type="file" name="bf_file[]" id="bf_file_<?php echo $i; ?>" class="file-hidden" onchange="updateFileName(this)">
<span class="file-name-display">선택된 파일 없음</span>
<?php if($w == 'u' && $file[$i]['file']) { ?>
<span style="color:var(--accent-color); font-size:0.8rem;">[기존: <?php echo $file[$i]['source']; ?>]</span>
<?php } ?>
</div>
<input type="text" name="bf_content[]" value="<?php echo ($w == 'u') ? $file[$i]['bf_content'] : ''; ?>" class="frm_input" placeholder="파일 설명을 입력하세요.">
</div>
<?php } ?>
<button type="button" class="file-btn-label btn-file-add" onclick="add_file_slot();">+ 파일 슬롯 추가</button>
</div>
</div>
<!-- 링크 -->
<div class="frm_row">
<div class="frm_label">링크</div>
<div class="frm_content">
<input type="text" name="wr_link1" value="<?php echo $write['wr_link1']; ?>" class="frm_input link-input-item" placeholder="링크 #1">
<input type="text" name="wr_link2" value="<?php echo $write['wr_link2']; ?>" class="frm_input" placeholder="링크 #2">
</div>
</div>
</div>
<div class="write-foot">
<a href="<?php echo get_pretty_url($bo_table); ?>" class="btn-back">취소</a>
<button type="submit" id="btn_submit" class="btn-submit">데이터 저장</button>
</div>
</form>
</div>
</section>
<script>
$(function() {
// 메모 토글
const $memoToggle = $('#memo_toggle');
const $memoSection = $('#memo_section');
if($memoToggle.is(':checked')) $memoSection.show();
$memoToggle.on('change', function() {
if($(this).is(':checked')) $memoSection.slideDown(200);
else $memoSection.slideUp(200);
});
// 상세 섹션 토글 (데이터 존재 시 자동 열림)
const hasData = <?php echo ($write['wr_content'] || $write['as_extra_content'] || $write['wr_link1'] || (isset($file) && $file[0]['file'])) ? 'true' : 'false'; ?>;
if(hasData) $('#extra_section').show();
$('#btn_extra_toggle').on('click', function() {
$('#extra_section').slideToggle(300);
});
});
// 파일명 표시 업데이트
function updateFileName(obj) {
const fileName = obj.files[0] ? obj.files[0].name : "선택된 파일 없음";
$(obj).parent().find('.file-name-display').text(fileName);
}
// 파일 슬롯 추가
function add_file_slot() {
const $hiddenSlot = $('.file-slot:hidden').first();
if ($hiddenSlot.length > 0) {
$hiddenSlot.slideDown(200).addClass('active');
} else {
alert('더 이상 추가할 수 없습니다.');
}
}
function fwrite_submit(f) {
<?php echo $editor_js; ?>
if(f.memo_del && f.memo_del.checked) f.as_memo.value = '';
document.getElementById("btn_submit").disabled = "disabled";
return true;
}
</script>