Files
kngil_home/kngil/skin/qa_write.skin.php

218 lines
7.6 KiB
PHP

<!-- <?php if (!empty($errors)): ?>
<div style="margin:20px; padding:15px; border:1px solid #e00; color:#e00;">
<strong>오류 발생</strong>
<ul>
<?php foreach ($errors as $err): ?>
<li><?= htmlspecialchars($err) ?></li>
<?php endforeach ?>
</ul>
</div>
<?php endif; ?> -->
<!DOCTYPE html>
<html lang="ko">
<head>
<?php include __DIR__ . "/_head.php"; ?>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Q&A 게시판 리스트</title>
<link rel="stylesheet" href="/kngil/css/qa/font-awesome.min.css?ver=2303229">
<!-- 디자인팀 작성 -->
<script src="/kngil/js/lib/jquery-3.6.1.min.js" type="text/javascript"></script>
<script src="/kngil/js/qa/jquery.mousewheel.min.js" type="text/javascript"></script>
<script src="https://cdn.jsdelivr.net/npm/gsap@3.12.5/dist/gsap.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/gsap@3.12.5/dist/ScrollTrigger.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/gsap@3.12.5/dist/ScrollToPlugin.min.js"></script>
<link rel="stylesheet" href="https://unpkg.com/aos@2.3.1/dist/aos.css" type="text/css"/>
<link rel="stylesheet" href="https://unpkg.com/lenis@1.1.9/dist/lenis.css">
<script src="https://unpkg.com/aos@2.3.1/dist/aos.js"></script>
<script src="https://unpkg.com/lenis@1.1.9/dist/lenis.min.js"></script>
<!-- CKEditor 5 -->
<script src="https://cdn.ckeditor.com/ckeditor5/41.0.0/classic/ckeditor.js"></script>
</head>
<body>
<div class="wrap">
<?php
include __DIR__ . "/_header.php";
if (!$isLogin) {
echo "<script>
alert('로그인 후 문의 등록이 가능합니다.');
location.href = '/kngil/skin/qa_list.skin.php';
</script>";
exit;
}
?>
<?php
include __DIR__ . "/pop_login.php";
include __DIR__ . "/pop_join.php";
include __DIR__ . "/pop_agreement.php";
include __DIR__ . "/pop_mypage01.php";
include __DIR__ . "/pop_mypage02.php";
include __DIR__ . "/pop_mypage03.php";
include __DIR__ . "/pop_password.php";
include __DIR__ . "/pop_privacy.php";
include __DIR__ . "/pop_search.php";
?>
<div class="container faq">
<section class="sub-header">
<div class="page-title">
<h2>Q&A</h2>
<p class="sub-txt">KNGIL 관련 문의하기</p>
</div>
<ul class="sub-tab">
<li><a href="/kngil/skin/faq_list.skin.php">자주하는 질문(FAQ)</a></li>
<li class="on"><a href="/kngil/bbs/qa_list.php">문의하기(Q&A)</a></li>
<li><a href="https://939.co.kr/saman/" target="_blank">원격지원</a></li>
</ul>
</section>
<section class="sub-content">
<h3 class="sub-tit">문의하기(Q&A)</h3>
<form id="qaForm"
action="/kngil/bbs/qa_write.php<?= $isEdit ? '?id=' . $post['post_id'] : '' ?>"
method="POST"
enctype="multipart/form-data">
<div class="form-area">
<div class="form-group">
<fieldset class="form-item">
<label class="form-tit" for="category">구분</label>
<select class="select-sm" name="category" id="category" required>
<option value="">-- 선택 --</option>
<option value="오류문의" <?= ($post['category'] ?? '')=='오류문의' ? 'selected':'' ?>>오류문의</option>
<option value="개선문의" <?= ($post['category'] ?? '')=='개선문의' ? 'selected':'' ?>>개선문의</option>
<option value="일반문의" <?= ($post['category'] ?? '')=='일반문의' ? 'selected':'' ?>>일반문의</option>
<?php if ($isSuperAdmin): ?>
<option value="공지사항" <?= ($post['category'] ?? '')=='공지사항' ? 'selected':'' ?>>공지사항</option>
<option value="관리글" <?= ($post['category'] ?? '')=='관리글' ? 'selected':'' ?>>관리글</option>
<?php endif; ?>
</select>
</fieldset>
</div>
<div class="form-item">
<strong class="form-tit">제목<span class="require">*</span></strong>
<input type="text" name="title" style="width:100%;" placeholder="제목을 입력하세요" class="input-text" required
value="<?= htmlspecialchars($post['title'] ?? '', ENT_QUOTES) ?>">
</div>
<div class="form-item">
<strong class="form-tit">비밀글</strong>
<label>
<input type="checkbox" name="secret" value="1"
<?= ($isEdit && ($post['is_secret'] ?? 'N') === 'Y') ? 'checked' : '' ?>>
비밀글로 등록
</label>
</div>
<div class="form-item">
<label class="form-tit" for="content">내용</label>
<div class="form-col-group">
<textarea id="content" name="content" class="text-area"
placeholder="문의 내용을 작성해주세요"><?= htmlspecialchars($post['content'] ?? '') ?></textarea>
</div>
</div>
<div class="form-item">
<label class="form-tit" for="attach">첨부파일</label>
<div class="form-col-group">
<div class="attach-box">
<input type="file" id="attach" name="attach[]" multiple>
<small class="info-msg">* 최대 30MB 이내</small>
</div>
<div id="drop-zone" class="drop-zone">
<p>여기로 파일을 드래그하거나 클릭해서 선택하세요.</p>
</div>
<ul id="file-list"></ul>
</div>
</div>
</div>
<div class="btn-wrap right">
<button type="button" class="btn btn-cancel" onclick="history.back()">취소</button>
<button type="submit" class="btn btn-secondary"><?= $isEdit ? '수정 저장' : '작성완료' ?></button>
</div>
<form>
</section>
</div>
<?php include __DIR__ . "/_footer.php"; ?>
</div>
<script src="/kngil/js/index.js"></script>
<script src="/kngil/js/mypage.js"></script>
<script src="/kngil/js/join.js"></script>
<script type="module" src="/kngil/js/login.js"></script>
<script src="/kngil/js/login_sms.js"></script>
<!-- CKEditor 표시용 초기화 (submit 관여 X) -->
<script>
document.addEventListener("DOMContentLoaded", function () {
ClassicEditor
.create(document.querySelector('#content'), {
language: 'ko',
ckfinder: {
uploadUrl: '/kngil/bbs/qa_img_upload.php'
}
})
.catch(console.error);
});
</script>
<!-- 첨부파일 drag UX (submit 관여 X) -->
<script>
const dropZone = document.getElementById("drop-zone");
const fileInput = document.getElementById("attach");
const fileList = document.getElementById("file-list");
let uploadFiles = [];
if (dropZone) {
dropZone.addEventListener("click", () => fileInput.click());
dropZone.addEventListener("dragover", e => { e.preventDefault(); dropZone.classList.add("dragover"); });
dropZone.addEventListener("dragleave", () => dropZone.classList.remove("dragover"));
dropZone.addEventListener("drop", e => {
e.preventDefault();
dropZone.classList.remove("dragover");
addFiles(e.dataTransfer.files);
});
}
fileInput.addEventListener("change", () => addFiles(fileInput.files));
function addFiles(files) {
for (const f of files) uploadFiles.push(f);
render();
sync();
}
function render() {
fileList.innerHTML = "";
uploadFiles.forEach(f => {
const li = document.createElement("li");
li.textContent = `${f.name} (${(f.size/1024).toFixed(1)} KB)`;
fileList.appendChild(li);
});
}
function sync() {
const dt = new DataTransfer();
uploadFiles.forEach(f => dt.items.add(f));
fileInput.files = dt.files;
}
</script>
</body>
</html>