
신청폼관리는 현재 구조대로 스킨형식이라면 하나의 신청폼만 사용할 수 있는 구조라, 하나의 사이트에 다중의 형식이 다른 신청폼을 사용한다면 문제가 될 수 있어 별도의 DB와 별도의 관리자 메뉴로 분리할 필요가 있음
- 게시판 테이블과 완전 분리하여 별도의 신청폼 데이터 생성(통합검색이나 SEO에 노출되지 않도록)
- 관리자모드 좌측메뉴 게시판 관리 아래에 [신청폼관리] 메뉴 추가, 하위메뉴로 신청폼 관리 생성, id, 신청폼 명칭으로.. 다중생성, 신청폼 항목관리는 기존과 동일
- 신청폼 관리 아래 신청내역관리에서 신청폼별 신청내역 확인, 목록 상단에 풀다운 메뉴로 신청폼 선택, 해당 신청폼으로 신청된 내역만 관리, 신청내역 검색, 상세보기, 엑셀저장 등 기존과 동일
- 생성된 신청폼은 메뉴관리에서 일반페이지, 게시판과 같은 형식으로 연결 /form/regist_01 등과 같이
admin/migrations/create_application_form_tables.php
<?php
// 파일: admin/migrations/create_application_form_tables.php
error_reporting(E_ALL);
ini_set('display_errors', 1);
echo
"Starting migration...<br>";
// DB 연결
if (!isset($pdo)) {
echo
"Loading config.php...<br>";
require_once
__DIR__
.
'/../../config.php';
}
if (!isset($pdo)) {
die("Error: PDO object not found after loading config.php");
}
$prefix = defined('DB_PREFIX') ? DB_PREFIX : 'cms_';
echo
"Using prefix: $prefix<br>";
try {
// 신청폼 마스터 테이블
echo
"Creating application_forms table...<br>";
$pdo->exec("CREATE
TABLE
IF
NOT
EXISTS {$prefix}application_forms (
id INT AUTO_INCREMENT PRIMARY KEY,
form_id VARCHAR(50) NOT NULL
UNIQUE,
title VARCHAR(255) NOT NULL,
description
TEXT,
options LONGTEXT,
site_id INT
DEFAULT
1,
created_at DATETIME
DEFAULT CURRENT_TIMESTAMP,
updated_at DATETIME
DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
INDEX idx_site_id (site_id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci");
// 신청폼 데이터 테이블
echo
"Creating application_data table...<br>";
$pdo->exec("CREATE
TABLE
IF
NOT
EXISTS {$prefix}application_data (
id INT AUTO_INCREMENT PRIMARY KEY,
form_id INT
NOT NULL,
applicant_name VARCHAR(255) NOT NULL,
password
VARCHAR(255),
content LONGTEXT NOT NULL,
ip_address VARCHAR(45),
user_agent TEXT,
is_read TINYINT(1) DEFAULT
0,
created_at DATETIME
DEFAULT CURRENT_TIMESTAMP,
INDEX idx_form_id (form_id),
INDEX idx_created_at (created_at),
FOREIGN KEY (form_id) REFERENCES {$prefix}application_forms(id) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci");
echo
"<b>Success: Application form tables created successfully.</b>";
} catch (Exception
$e) {
echo
"<b>Error creating tables: "
.
$e->getMessage() .
"</b>";
}
댓글 (1)
// admin/index.php
// admin/pages/application_forms.php
// admin/pages/application_submissions.php
// admin/pages/menu.php
// admin/ajax/menu.php
// core/Router/Routes/FormRoutes.php
// core/Router/RouteCollection.php
// controllers/FormController.php
// templates/application_form.php
댓글 쓰기