Files
dnssash/adm/code_manager/ui_manager_form.php
2026-06-11 18:47:38 +09:00

174 lines
8.3 KiB
PHP

<?php
$sub_menu = '100350';
include_once('./_common.php');
$w = isset($_REQUEST['w']) ? substr(trim($_REQUEST['w']), 0, 1) : '';
$um_id = isset($_REQUEST['um_id']) ? (int)$_REQUEST['um_id'] : 0;
// ==================================================================
// 💡 [핵심] 폼 제출(수정) 처리 로직
// ==================================================================
if ($w == 'u' && $_SERVER['REQUEST_METHOD'] === 'POST') {
auth_check_menu($auth, $sub_menu, 'w');
check_admin_token();
if (!$um_id) {
alert('um_id 값이 없습니다.');
}
// 입력값 정리
$screen_code = trim($_POST['screen_code']);
$group_code = trim($_POST['group_code']);
$resource_code = trim($_POST['resource_code']);
$resource_type = trim($_POST['resource_type']);
$resource_desc = trim($_POST['resource_desc']);
$cl_name = isset($_POST['cl_name']) ? trim($_POST['cl_name']) : '';
// 유효성 검사
if (!$screen_code || !$group_code || !$resource_code || !$resource_type) {
alert('필수 항목을 모두 입력해주세요.');
}
if ($resource_type == 'LABEL' && !$cl_name) {
alert('UI 라벨 타입은 한국어 라벨명을 필수로 입력해야 합니다.');
}
// 1. g5_ui_manager 테이블 정보 업데이트
$sql = "UPDATE {$g5['ui_manager_table']}
SET screen_code = '{$screen_code}',
group_code = '{$group_code}',
resource_code = '{$resource_code}',
resource_type = '{$resource_type}',
resource_desc = '{$resource_desc}',
updated_at = '".G5_TIME_YMDHIS."',
updated_by = '{$member['mb_id']}'
WHERE um_id = '{$um_id}'";
sql_query($sql);
// 2. 리소스 타입이 'LABEL'인 경우, g5_common_lang 테이블 정보 업데이트 (없으면 생성)
if ($resource_type == 'LABEL') {
$sql = "SELECT cl_id FROM {$g5['common_lang_table']} WHERE target_table = '{$g5['ui_manager_table']}' AND target_id = '{$um_id}' AND lang_code = 'ko'";
$lang_row = sql_fetch($sql);
if (isset($lang_row['cl_id'])) { // 기존 데이터가 있으면 UPDATE
$sql = "UPDATE {$g5['common_lang_table']}
SET cl_name = '{$cl_name}',
updated_at = '".G5_TIME_YMDHIS."',
updated_by = '{$member['mb_id']}'
WHERE cl_id = '{$lang_row['cl_id']}'";
} else { // 기존 데이터가 없으면 INSERT
$sql = "INSERT INTO {$g5['common_lang_table']}
SET target_table = '{$g5['ui_manager_table']}',
target_id = '{$um_id}',
lang_code = 'ko',
cl_name = '{$cl_name}',
updated_at = '".G5_TIME_YMDHIS."',
updated_by = '{$member['mb_id']}'";
}
sql_query($sql);
}
goto_url('./ui_manager_list.php');
}
// ==================================================================
auth_check_menu($auth, $sub_menu, 'r');
// 수정할 리소스 데이터 조회
if ($w == 'u') {
if (!$um_id) {
alert('um_id 값이 없습니다.', './ui_manager_list.php');
}
$sql = "SELECT A.*, B.cl_name
FROM {$g5['ui_manager_table']} AS A
LEFT JOIN {$g5['common_lang_table']} AS B
ON (A.um_id = B.target_id AND B.target_table = '{$g5['ui_manager_table']}' AND B.lang_code = 'ko')
WHERE A.um_id = '{$um_id}'";
$ui_resource = sql_fetch($sql);
if (!isset($ui_resource['um_id'])) {
alert('존재하지 않는 리소스입니다.', './ui_manager_list.php');
}
} else {
alert('w 값이 올바르지 않습니다.', './ui_manager_list.php');
}
$g5['title'] = 'UI 리소스 수정';
include_once(G5_ADMIN_PATH . '/admin.head.php');
add_stylesheet('<link rel="stylesheet" href="' . G5_ADMIN_URL . '/code_manager/css/code_manager.css?ver=1.1">', 0);
?>
<section id="code_manager_form">
<h2 class="h2_frm">UI 리소스 수정</h2>
<form name="fresourceform" id="fresourceform" action="<?php echo $_SERVER['SCRIPT_NAME']; ?>" method="post">
<input type="hidden" name="w" value="u">
<input type="hidden" name="um_id" value="<?php echo $um_id; ?>">
<input type="hidden" name="token" value="<?php echo get_admin_token(); ?>">
<div class="tbl_frm01 tbl_wrap">
<table>
<caption>UI 리소스 수정 폼</caption>
<colgroup>
<col class="grid_4">
<col>
</colgroup>
<tbody>
<tr>
<th scope="row"><label for="screen_code">화면 코드</label></th>
<td>
<input type="text" name="screen_code" id="screen_code" required class="required frm_input" size="30" value="<?php echo get_text($ui_resource['screen_code']); ?>">
<span class="frm_info">리소스가 사용될 화면의 고유 코드 (예: order_form, member_join)</span>
</td>
</tr>
<tr>
<th scope="row"><label for="group_code">그룹 코드</label></th>
<td>
<input type="text" name="group_code" id="group_code" required class="required frm_input" size="30" value="<?php echo get_text($ui_resource['group_code']); ?>">
<span class="frm_info">화면 내에서 리소스를 묶어줄 그룹 코드 (예: address_info, common_options)</span>
</td>
</tr>
<tr>
<th scope="row">리소스 타입</th>
<td>
<label><input type="radio" name="resource_type" value="LABEL" <?php echo get_checked($ui_resource['resource_type'], 'LABEL'); ?>> UI 라벨 (단일 텍스트)</label>
<label><input type="radio" name="resource_type" value="DATA" <?php echo get_checked($ui_resource['resource_type'], 'DATA'); ?>> 데이터 (선택 옵션)</label>
</td>
</tr>
<tr class="resource-type-field" id="label-field">
<th scope="row"><label for="cl_name">한국어 라벨명</label></th>
<td>
<input type="text" name="cl_name" id="cl_name" class="frm_input" size="50" value="<?php echo get_text($ui_resource['cl_name']); ?>">
<span class="frm_info">화면에 표시될 실제 텍스트 (예: 집의 유형, 창호 재질)</span>
</td>
</tr>
<tr>
<th scope="row"><label for="resource_code">리소스 코드</label></th>
<td>
<input type="text" name="resource_code" id="resource_code" required class="required frm_input" size="30" value="<?php echo get_text($ui_resource['resource_code']); ?>">
<span class="frm_info">개발자가 이 리소스를 호출할 때 사용할 고유 코드 (예: house_type_label, house_type_data)</span>
</td>
</tr>
<tr>
<th scope="row"><label for="resource_desc">설명</label></th>
<td>
<input type="text" name="resource_desc" id="resource_desc" class="frm_input" size="80" value="<?php echo get_text($ui_resource['resource_desc']); ?>">
<span class="frm_info">이 리소스의 용도에 대한 설명 (관리자 참고용)</span>
</td>
</tr>
</tbody>
</table>
</div>
<div class="btn_confirm01 btn_confirm">
<a href="./ui_manager_list.php" class="btn_cancel btn">목록으로</a>
<input type="submit" value="수정" class="btn_submit btn" accesskey="s">
</div>
</form>
</section>
<script src="<?php echo G5_ADMIN_URL; ?>/code_manager/js/ui_manager.js?ver=1.2"></script>
<?php
include_once(G5_ADMIN_PATH . '/admin.tail.php');