first commit 2
This commit is contained in:
@@ -0,0 +1,128 @@
|
||||
<?php
|
||||
if (!defined('_GNUBOARD_')) exit;
|
||||
|
||||
// 상담 관리 시스템 버전
|
||||
define('G5_CONSULTANT_VERSION', '1.0.0');
|
||||
|
||||
// 상담 관리 시스템 설치 확인
|
||||
function is_consultant_installed()
|
||||
{
|
||||
global $g5;
|
||||
$consultant_tables = ['consultant_schedule', 'consultant_reservations', 'consultant_config', 'consultant_log'];
|
||||
|
||||
foreach ($consultant_tables as $table) {
|
||||
if(!isset($g5[$table.'_table'])) $g5[$table.'_table'] = $table;
|
||||
$sql = "SHOW TABLES LIKE '{$g5[$table.'_table']}'";
|
||||
$result = sql_query($sql, false);
|
||||
if (!$result || sql_num_rows($result) == 0) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
// 상담 관리 시스템 권한 확인
|
||||
function consultant_auth_check($auth_level = 'r')
|
||||
{
|
||||
global $member, $is_admin;
|
||||
|
||||
if (!$is_admin) {
|
||||
alert('관리자만 접근할 수 있습니다.');
|
||||
}
|
||||
|
||||
// 추가 권한 확인 로직 (필요시)
|
||||
return true;
|
||||
}
|
||||
|
||||
// 상담 관리 시스템 설정값 조회
|
||||
function consultant_get_config($key, $default = null)
|
||||
{
|
||||
global $g5;
|
||||
if(!isset($g5['consultant_config_table'])) $g5['consultant_config_table'] = 'consultant_config';
|
||||
|
||||
$sql = "SELECT config_value FROM {$g5['consultant_config_table']} WHERE config_key = '" . sql_real_escape_string($key) . "'";
|
||||
$result = sql_fetch($sql);
|
||||
|
||||
if ($result) {
|
||||
return $result['config_value'];
|
||||
}
|
||||
|
||||
return $default;
|
||||
}
|
||||
|
||||
// 상담 관리 시스템 설정값 저장
|
||||
function consultant_set_config($key, $value)
|
||||
{
|
||||
global $g5;
|
||||
if(!isset($g5['consultant_config_table'])) $g5['consultant_config_table'] = 'consultant_config';
|
||||
|
||||
$sql = "INSERT INTO {$g5['consultant_config_table']} (config_key, config_value, updated_at)
|
||||
VALUES ('" . sql_real_escape_string($key) . "', '" . sql_real_escape_string($value) . "', NOW())
|
||||
ON DUPLICATE KEY UPDATE
|
||||
config_value = '" . sql_real_escape_string($value) . "',
|
||||
updated_at = NOW()";
|
||||
|
||||
return sql_query($sql);
|
||||
}
|
||||
|
||||
// 로그 함수
|
||||
function consultant_log($message, $level = 'info')
|
||||
{
|
||||
global $g5, $member;
|
||||
if(!isset($g5['consultant_log_table'])) $g5['consultant_log_table'] = 'consultant_log';
|
||||
|
||||
$sql = "INSERT INTO {$g5['consultant_log_table']} (mb_id, log_level, log_message, ip_address, log_time) VALUES ('".($member['mb_id'] ?? '')."', '".sql_real_escape_string($level)."', '".sql_real_escape_string($message)."', '".$_SERVER['REMOTE_ADDR']."', '".G5_TIME_YMDHIS."')";
|
||||
sql_query($sql, false);
|
||||
}
|
||||
|
||||
// 💡 [추가] 알림 발송 함수 (메일/SMS 통합)
|
||||
function consultant_send_notification($type, $template_key, $data) {
|
||||
global $g5;
|
||||
|
||||
// 템플릿 조회
|
||||
$table_name = ($type === 'sms') ? 'consultant_sms_templates' : 'consultant_mail_templates';
|
||||
|
||||
// 테이블 존재 확인
|
||||
$table_check = sql_query("SHOW TABLES LIKE '{$table_name}'", false);
|
||||
if (sql_num_rows($table_check) == 0) return false;
|
||||
|
||||
$sql = "SELECT * FROM {$table_name} WHERE template_key = '" . sql_real_escape_string($template_key) . "'";
|
||||
$template = sql_fetch($sql);
|
||||
|
||||
if (!$template) return false;
|
||||
|
||||
// 변수 치환
|
||||
$subject = $template['template_subject'];
|
||||
$content = $template['template_content'];
|
||||
|
||||
foreach ($data as $key => $value) {
|
||||
$subject = str_replace('{' . $key . '}', $value, $subject);
|
||||
$content = str_replace('{' . $key . '}', $value, $content);
|
||||
}
|
||||
|
||||
if ($type === 'email') {
|
||||
// 이메일 발송 (G5 기본 mailer 사용 가정)
|
||||
include_once(G5_LIB_PATH.'/mailer.lib.php');
|
||||
// $data['customer_email'] 등이 존재해야 함
|
||||
if (!empty($data['customer_email'])) {
|
||||
mailer($g5['title'], $g5['admin_email'], $data['customer_email'], $subject, $content, 1);
|
||||
consultant_log("이메일 발송: {$template_key} to {$data['customer_email']}");
|
||||
return true;
|
||||
}
|
||||
} elseif ($type === 'sms') {
|
||||
// SMS 발송 (G5 기본 SMS 라이브러리 사용 가정 - 실제 구현은 SMS 모듈에 따라 다름)
|
||||
// 여기서는 로그만 남기고 실제 발송 로직은 SMS 모듈에 맞게 구현 필요
|
||||
// 예:
|
||||
// include_once(G5_LIB_PATH.'/icode.sms.lib.php');
|
||||
// $SMS = new SMS;
|
||||
// $SMS->SMS_con($g5['sms_admin'], $g5['sms_id'], $g5['sms_pw'], $g5['sms_port']);
|
||||
// $SMS->Add($data['customer_phone'], $g5['admin_phone'], $g5['sms_admin'], iconv("utf-8", "euc-kr", $content), "");
|
||||
// $SMS->Send();
|
||||
|
||||
consultant_log("SMS 발송 시도: {$template_key} to {$data['customer_phone']} (내용: $content)");
|
||||
return true; // 실제 발송 성공 여부에 따라 변경
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
?>
|
||||
Reference in New Issue
Block a user