208 lines
9.3 KiB
PHP
208 lines
9.3 KiB
PHP
<?php
|
|
$sub_menu = '710200';
|
|
include_once('./_common.php');
|
|
|
|
auth_check_menu($auth, $sub_menu, "w");
|
|
|
|
$sv_id = isset($_GET['sv_id']) ? (int)$_GET['sv_id'] : 0;
|
|
$template_id = isset($_GET['template_id']) ? (int)$_GET['template_id'] : 0;
|
|
$is_edit = $sv_id > 0;
|
|
|
|
$survey = [
|
|
'sv_title' => '',
|
|
'sv_description' => '',
|
|
'sv_start_date' => date('Y-m-d H:i'),
|
|
'sv_end_date' => date('Y-m-d H:i', strtotime('+30 days')),
|
|
'sv_allow_anonymous' => 1,
|
|
'sv_allow_multiple' => 0,
|
|
'sv_max_responses' => '',
|
|
'sv_theme_color' => '#AA20FF',
|
|
'sv_thank_message' => ''
|
|
];
|
|
|
|
$questions = [];
|
|
|
|
if ($is_edit) {
|
|
$survey = get_survey($sv_id);
|
|
if (!$survey) {
|
|
alert('존재하지 않는 설문입니다.', 'survey_list.php');
|
|
}
|
|
$questions = get_survey_questions($sv_id);
|
|
$g5['title'] = '설문 수정';
|
|
} else {
|
|
$g5['title'] = '설문 작성';
|
|
}
|
|
|
|
include_once(G5_ADMIN_PATH.'/admin.head.php');
|
|
|
|
// 템플릿 목록
|
|
$templates = get_survey_templates();
|
|
?>
|
|
|
|
<!-- CSS는 survey_form.css 파일에서 자동 로드됩니다 -->
|
|
|
|
<div class="survey-form-container">
|
|
<div class="form-header">
|
|
<h1><?php echo $is_edit ? '설문 수정' : '새 설문 만들기'; ?></h1>
|
|
<p><?php echo $is_edit ? '설문 내용을 수정할 수 있습니다' : '전문적인 설문조사를 쉽게 만들어보세요'; ?></p>
|
|
</div>
|
|
|
|
<form id="surveyForm" method="post" action="survey_form_update.php">
|
|
<input type="hidden" name="sv_id" value="<?php echo $sv_id; ?>">
|
|
|
|
<!-- 탭 메뉴 -->
|
|
<div class="form-tabs">
|
|
<button type="button" class="form-tab active" data-tab="basic">
|
|
<i class="fa fa-info-circle"></i> 기본 정보
|
|
</button>
|
|
<button type="button" class="form-tab" data-tab="questions">
|
|
<i class="fa fa-question-circle"></i> 질문 설정
|
|
</button>
|
|
<button type="button" class="form-tab" data-tab="settings">
|
|
<i class="fa fa-cog"></i> 고급 설정
|
|
</button>
|
|
</div>
|
|
|
|
<!-- 기본 정보 탭 -->
|
|
<div class="tab-content active" id="basic">
|
|
<?php if (!$is_edit): ?>
|
|
<!-- 템플릿 선택 -->
|
|
<div class="template-section">
|
|
<h3><i class="fa fa-magic"></i> 템플릿으로 빠르게 시작하기</h3>
|
|
<p class="help-text">미리 만들어진 템플릿을 선택하면 질문이 자동으로 추가됩니다.</p>
|
|
|
|
<div class="template-grid">
|
|
<div class="template-card" data-template="0">
|
|
<h4><i class="fa fa-plus"></i> 직접 작성</h4>
|
|
<p>처음부터 직접 설문을 만들어보세요</p>
|
|
</div>
|
|
<?php foreach ($templates as $template): ?>
|
|
<div class="template-card" data-template="<?php echo $template['st_id']; ?>">
|
|
<h4><?php echo htmlspecialchars($template['st_name']); ?></h4>
|
|
<p><?php echo htmlspecialchars($template['st_description']); ?></p>
|
|
<small class="template-category"><?php echo $template['st_category']; ?></small>
|
|
</div>
|
|
<?php endforeach; ?>
|
|
</div>
|
|
<input type="hidden" name="template_id" id="templateId" value="<?php echo $template_id; ?>">
|
|
</div>
|
|
<?php endif; ?>
|
|
|
|
<div class="form-group">
|
|
<label class="form-label required">설문 제목</label>
|
|
<input type="text" name="sv_title" class="form-input"
|
|
value="<?php echo htmlspecialchars($survey['sv_title']); ?>"
|
|
placeholder="설문조사의 제목을 입력하세요" required>
|
|
<div class="help-text">명확하고 흥미로운 제목을 작성하면 더 많은 참여를 유도할 수 있습니다.</div>
|
|
</div>
|
|
|
|
<div class="form-group">
|
|
<label class="form-label">설문 설명</label>
|
|
<textarea name="sv_description" class="form-textarea"
|
|
placeholder="설문의 목적과 내용을 간단히 설명해주세요"><?php echo htmlspecialchars($survey['sv_description']); ?></textarea>
|
|
<div class="help-text">설문의 목적과 예상 소요시간을 안내하면 참여율이 높아집니다.</div>
|
|
</div>
|
|
|
|
<div class="form-row">
|
|
<div class="form-col">
|
|
<label class="form-label required">시작일시</label>
|
|
<input type="datetime-local" name="sv_start_date" class="form-input"
|
|
value="<?php echo date('Y-m-d\TH:i', strtotime($survey['sv_start_date'])); ?>" required>
|
|
</div>
|
|
<div class="form-col">
|
|
<label class="form-label required">종료일시</label>
|
|
<input type="datetime-local" name="sv_end_date" class="form-input"
|
|
value="<?php echo date('Y-m-d\TH:i', strtotime($survey['sv_end_date'])); ?>" required>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="form-group">
|
|
<label class="form-label">테마 색상</label>
|
|
<input type="color" name="sv_theme_color" class="color-picker"
|
|
value="<?php echo $survey['sv_theme_color']; ?>">
|
|
<div class="help-text">설문 페이지의 메인 색상을 선택하세요.</div>
|
|
</div>
|
|
|
|
<div class="form-group">
|
|
<label class="form-label">완료 메시지</label>
|
|
<textarea name="sv_thank_message" class="form-textarea"
|
|
placeholder="설문 완료 후 표시될 감사 메시지를 입력하세요"><?php echo htmlspecialchars($survey['sv_thank_message']); ?></textarea>
|
|
<div class="help-text">참여자에게 감사 인사와 함께 추가 안내사항을 전달할 수 있습니다.</div>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- 질문 설정 탭 -->
|
|
<div class="tab-content" id="questions">
|
|
<div class="questions-container">
|
|
<div id="questionsList">
|
|
<?php if (!empty($questions)): ?>
|
|
<?php foreach ($questions as $index => $question): ?>
|
|
<div class="question-item" data-question-id="<?php echo $question['sq_id']; ?>">
|
|
<!-- 기존 질문 렌더링 로직은 JavaScript에서 처리 -->
|
|
</div>
|
|
<?php endforeach; ?>
|
|
<?php endif; ?>
|
|
</div>
|
|
|
|
<button type="button" class="add-question-btn" onclick="addQuestion()">
|
|
<i class="fa fa-plus"></i> 질문 추가하기
|
|
</button>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- 고급 설정 탭 -->
|
|
<div class="tab-content" id="settings">
|
|
<div class="form-group">
|
|
<label class="form-label">참여 설정</label>
|
|
<div class="checkbox-group">
|
|
<div class="checkbox-item">
|
|
<input type="checkbox" name="sv_allow_anonymous" value="1"
|
|
<?php echo $survey['sv_allow_anonymous'] ? 'checked' : ''; ?>>
|
|
<label>익명 참여 허용</label>
|
|
</div>
|
|
<div class="checkbox-item">
|
|
<input type="checkbox" name="sv_allow_multiple" value="1"
|
|
<?php echo $survey['sv_allow_multiple'] ? 'checked' : ''; ?>>
|
|
<label>중복 참여 허용</label>
|
|
</div>
|
|
</div>
|
|
<div class="help-text">익명 참여를 허용하면 로그인하지 않은 사용자도 참여할 수 있습니다.</div>
|
|
</div>
|
|
|
|
<div class="form-group">
|
|
<label class="form-label">최대 응답 수</label>
|
|
<input type="number" name="sv_max_responses" class="form-input"
|
|
value="<?php echo $survey['sv_max_responses']; ?>"
|
|
placeholder="제한 없음" min="1">
|
|
<div class="help-text">응답 수를 제한하려면 숫자를 입력하세요. 비워두면 제한이 없습니다.</div>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- 폼 액션 -->
|
|
<div class="form-actions">
|
|
<button type="submit" name="action" value="save_draft" class="btn btn-secondary">
|
|
<i class="fa fa-save"></i> 임시저장
|
|
</button>
|
|
<button type="submit" name="action" value="save_and_activate" class="btn btn-success">
|
|
<i class="fa fa-play"></i> 저장 후 활성화
|
|
</button>
|
|
<a href="survey_list.php" class="btn btn-secondary">
|
|
<i class="fa fa-times"></i> 취소
|
|
</a>
|
|
</div>
|
|
</form>
|
|
</div>
|
|
|
|
<!-- JavaScript는 survey_form.js 파일에서 자동 로드됩니다 -->
|
|
<script>
|
|
// 페이지별 초기 데이터 설정
|
|
window.surveyFormData = {
|
|
questionCount: <?php echo count($questions); ?>,
|
|
templateId: <?php echo $template_id; ?>,
|
|
isEdit: <?php echo $is_edit ? 'true' : 'false'; ?>
|
|
};
|
|
</script>
|
|
|
|
<?php
|
|
include_once(G5_ADMIN_PATH.'/admin.tail.php');
|
|
?>
|