Files
dnssash/rb/rb.config/ajax.topvisual_add.php
2026-06-11 18:47:38 +09:00

158 lines
7.2 KiB
PHP

<?php
include_once('../../common.php');
if (!defined('_GNUBOARD_')) exit;
$mod_type = !empty($_POST['mod_type']) ? $_POST['mod_type'] : '';
$v_code = isset($_POST['v_code']) ? trim($_POST['v_code']) : '';
// 조건: shop-list- 로 시작하고 ca_id가 붙은 구조일 때만 처리
if (preg_match('/^shop-list-(\d+)$/', $v_code, $matches)) {
$ca_id = $matches[1];
// 2자리씩 하이픈 삽입
$formatted_ca_id = implode('-', str_split($ca_id, 2));
$v_code = 'shop-list-' . $formatted_ca_id;
}
if (!$v_code) exit('페이지 코드가 없습니다.');
if(isset($mod_type) && $mod_type == 1) {
$co_topvisual_height = !empty($_POST['co_topvisual_height']) ? $_POST['co_topvisual_height'] : '200';
$co_topvisual_width = !empty($_POST['co_topvisual_width']) ? $_POST['co_topvisual_width'] : '';
$co_topvisual_bl = isset($_POST['co_topvisual_bl']) ? $_POST['co_topvisual_bl'] : '10';
$co_topvisual_border = isset($_POST['co_topvisual_border']) ? $_POST['co_topvisual_border'] : '0';
$co_topvisual_radius = isset($_POST['co_topvisual_radius']) ? $_POST['co_topvisual_radius'] : '0';
$co_topvisual_m_color = !empty($_POST['co_topvisual_m_color']) ? $_POST['co_topvisual_m_color'] : '#ffffff';
$co_topvisual_m_size = !empty($_POST['co_topvisual_m_size']) ? $_POST['co_topvisual_m_size'] : '20';
$co_topvisual_m_font = !empty($_POST['co_topvisual_m_font']) ? $_POST['co_topvisual_m_font'] : 'font-B';
$co_topvisual_m_align = !empty($_POST['co_topvisual_m_align']) ? $_POST['co_topvisual_m_align'] : 'left';
$co_topvisual_s_color = !empty($_POST['co_topvisual_s_color']) ? $_POST['co_topvisual_s_color'] : '#ffffff';
$co_topvisual_s_size = !empty($_POST['co_topvisual_s_size']) ? $_POST['co_topvisual_s_size'] : '16';
$co_topvisual_s_font = !empty($_POST['co_topvisual_s_font']) ? $_POST['co_topvisual_s_font'] : 'font-R';
$co_topvisual_s_align = !empty($_POST['co_topvisual_s_align']) ? $_POST['co_topvisual_s_align'] : 'left';
$co_topvisual_bg_color = !empty($_POST['co_topvisual_bg_color']) ? $_POST['co_topvisual_bg_color'] : '#f9f9f9';
$co_topvisual_style_all = !empty($_POST['co_topvisual_style_all']) ? $_POST['co_topvisual_style_all'] : '0';
$v_time = G5_TIME_YMDHIS;
} else {
$v_use = isset($_POST['v_use']) ? intval($_POST['v_use']) : 0;
$v_url = isset($_POST['v_url']) ? trim($_POST['v_url']) : '';
$v_time = G5_TIME_YMDHIS;
}
$table = "rb_topvisual";
$row = sql_fetch("SELECT COUNT(*) as cnt FROM {$table} WHERE v_code = '{$v_code}'");
if(isset($mod_type) && $mod_type == 1) {
if ($row['cnt'] > 0) {
// 현재 노드 업데이트
sql_query("UPDATE {$table} SET
co_topvisual_height = '{$co_topvisual_height}',
co_topvisual_width = '{$co_topvisual_width}',
co_topvisual_bl = '{$co_topvisual_bl}',
co_topvisual_border = '{$co_topvisual_border}',
co_topvisual_radius = '{$co_topvisual_radius}',
co_topvisual_m_color = '{$co_topvisual_m_color}',
co_topvisual_m_size = '{$co_topvisual_m_size}',
co_topvisual_m_font = '{$co_topvisual_m_font}',
co_topvisual_m_align = '{$co_topvisual_m_align}',
co_topvisual_s_color = '{$co_topvisual_s_color}',
co_topvisual_s_size = '{$co_topvisual_s_size}',
co_topvisual_s_font = '{$co_topvisual_s_font}',
co_topvisual_s_align = '{$co_topvisual_s_align}',
co_topvisual_bg_color = '{$co_topvisual_bg_color}',
co_topvisual_style_all = '{$co_topvisual_style_all}',
v_time = '{$v_time}'
WHERE v_code = '{$v_code}'");
// co_topvisual_style_all = 1 이면 하위 노드도 동일하게 스타일 동기화
if ($co_topvisual_style_all == 1) {
sql_query("UPDATE {$table} SET
co_topvisual_height = '{$co_topvisual_height}',
co_topvisual_width = '{$co_topvisual_width}',
co_topvisual_bl = '{$co_topvisual_bl}',
co_topvisual_border = '{$co_topvisual_border}',
co_topvisual_radius = '{$co_topvisual_radius}',
co_topvisual_m_color = '{$co_topvisual_m_color}',
co_topvisual_m_size = '{$co_topvisual_m_size}',
co_topvisual_m_font = '{$co_topvisual_m_font}',
co_topvisual_m_align = '{$co_topvisual_m_align}',
co_topvisual_s_color = '{$co_topvisual_s_color}',
co_topvisual_s_size = '{$co_topvisual_s_size}',
co_topvisual_s_font = '{$co_topvisual_s_font}',
co_topvisual_s_align = '{$co_topvisual_s_align}',
co_topvisual_bg_color = '{$co_topvisual_bg_color}'
WHERE v_code LIKE '{$v_code}-%'");
}
// 응답
$data = array(
'co_topvisual_height' => $co_topvisual_height,
'co_topvisual_width' => $co_topvisual_width,
'co_topvisual_bl' => $co_topvisual_bl,
'co_topvisual_border' => $co_topvisual_border,
'co_topvisual_radius' => $co_topvisual_radius,
'co_topvisual_m_color' => $co_topvisual_m_color,
'co_topvisual_m_size' => $co_topvisual_m_size,
'co_topvisual_m_font' => $co_topvisual_m_font,
'co_topvisual_m_align' => $co_topvisual_m_align,
'co_topvisual_s_color' => $co_topvisual_s_color,
'co_topvisual_s_size' => $co_topvisual_s_size,
'co_topvisual_s_font' => $co_topvisual_s_font,
'co_topvisual_s_align' => $co_topvisual_s_align,
'co_topvisual_bg_color' => $co_topvisual_bg_color,
'co_topvisual_style_all' => $co_topvisual_style_all,
'status' => 'ok',
);
echo json_encode($data);
} else {
// 새로 등록되는 경우에는 스타일 정보가 없으므로 생략 그대로 OK
sql_query("INSERT INTO {$table} (v_code, v_name, v_url, v_use, v_time)
VALUES ('{$v_code}', '', '{$v_url}', '{$v_use}', '{$v_time}')");
$data = array(
'v_use' => $v_use,
'status' => 'ok',
);
echo json_encode($data);
}
} else {
if ($row['cnt'] > 0) {
// 기존 항목이 존재하면 업데이트
sql_query("UPDATE {$table} SET
v_use = '{$v_use}',
v_url = '{$v_url}',
v_time = '{$v_time}'
WHERE v_code = '{$v_code}'");
} else {
// 없으면 삽입
sql_query("INSERT INTO {$table}
(v_code, v_name, v_url, v_use, v_time)
VALUES ('{$v_code}', '', '{$v_url}', '{$v_use}', '{$v_time}')");
}
// 추가 로직: 관련된 v_code의 하위/전체 처리
if ($v_use == 2) {
sql_query("UPDATE {$table} SET v_use = 1 WHERE v_code LIKE '{$v_code}-%'");
sql_query("UPDATE {$table} SET v_use = '{$v_use}', co_topvisual_all = 1 WHERE v_code = '{$v_code}'");
} else {
sql_query("UPDATE {$table} SET v_use = 0 WHERE v_code LIKE '{$v_code}-%'");
sql_query("UPDATE {$table} SET v_use = '{$v_use}', co_topvisual_all = 0 WHERE v_code = '{$v_code}'");
}
// 응답 반환
$data = array(
'v_use' => $v_use,
'status' => 'ok',
);
echo json_encode($data);
}