edit gitignore and add extend, head.sub.php edit

This commit is contained in:
2026-05-28 12:43:04 +09:00
parent e2ef164575
commit 0ef09d5b2c
13 changed files with 561 additions and 26 deletions

53
.gitignore vendored
View File

@ -1,29 +1,23 @@
# 백업 및 임시 파일 (요청하신 부분)
# ==========================================
# 1. 공통 무시 설정 (OS, 에디터, 로그, 임시파일)
# ==========================================
*.bak
*.tmp
*.temp
*~
~*
# OS 자동 생성 시스템 파일
.DS_Store
Thumbs.db
desktop.ini
# 로그 및 런타임 파일
*.log
npm-debug.log*
yarn-debug.log*
yarn-error.log*
# 환경 변수 및 비밀번호 (보안 필수)
.env
.env.local
.env.development.local
.env.test.local
.env.production.local
# IDE 및 편집기 설정 파일
.idea/
.vscode/
*.suo
@ -32,35 +26,42 @@ yarn-error.log*
*.sln
*.swp
# 1. 먼저 프로젝트 루트의 모든 파일과 폴더를 제외합니다.
# ==========================================
# 2. 프로젝트 최상위 화이트리스트 (전체 차단 후 허용)
# ==========================================
# 최상위 경로의 모든 파일과 폴더를 우선 제외합니다.
/*
# 2. 필수 설정 파일들은 예외로 두어 Git 관리 대상에 포함합니다.
# 최상위 경로에서 추적할 파일 예외로 허용합니다.
!.gitignore
!.env.example
!docker-compose.yml
# 상위폴더 권한허용
# web 폴더 내부로 Git이 접근할 수 있도록 허용합니다.
!/web/
#/web/*
# ==========================================
# 3. web 폴더 내부 설정
# ==========================================
# 🎯 conf.d 폴더와 그 내부의 파일(.ini 포함) 모두 추적 허용
!/web/conf.d/
# html 폴더로 접근 허용
!/web/html/
# html 폴더 안의 모든 것을 기본적으로 무시합니다.
/web/html/*
# 3. theme 폴더와 그 내부의 모든 것을 포함합니다.
# 🎯 html 폴더 안에서 실제로 추적할 폴더만 예외 처리
# (이렇게 폴더 자체를 예외 처리하면 내부의 모든 파일과 하위 폴더가 자동으로 추적됩니다)
!/web/html/theme/
/web/html/theme/*
!/web/html/theme/*/
/web/html/theme/basic/
# 4. extend 폴더와 그 내부의 모든 것을 포함합니다.
/web/html/theme/basic
!/web/html/extend/
/web/html/extend/*
!/web/html/extend/*/
!/web/conf.d/
/web/conf.d/*
!/web/conf.d/*/
# (선택) 만약 db 폴더나 web/data 등 docker 실행 파일들이 루트에 있다면
# 위에서 /* 로 이미 제외되었기 때문에 안전하지만, 명시적으로 적어주어도 좋습니다.
# ==========================================
# 4. 명시적 제외 구역
# ==========================================
# (참고: 상단의 /* 와 /web/html/* 로 이미 무시되었지만 확실히 명시)
/db/
/web/html/data/

View File

@ -0,0 +1 @@
# .htaccess

View File

@ -0,0 +1,4 @@
<?php
if (isset($_SERVER["HTTP_CF_CONNECTING_IP"])) {
$_SERVER['REMOTE_ADDR'] = $_SERVER["HTTP_CF_CONNECTING_IP"];
}

View File

@ -0,0 +1,20 @@
<?php
if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가
add_event('tail_sub', 'show_debug_bar');
function show_debug_bar() {
global $g5, $g5_debug, $is_admin;
if( ! get_permission_debug_show() ) return;
if ( !($is_admin === 'super' && !is_mobile() ) ){
return;
}
$memory_usage = function_exists( 'memory_get_peak_usage' ) ? memory_get_peak_usage() : memory_get_usage();
$php_run_time = (isset($g5_debug['php']) && isset($g5_debug['php']['begin_time'])) ? ( get_microtime() - $g5_debug['php']['begin_time'] ) : 0;
include_once( G5_PLUGIN_PATH.'/debugbar/debugbar.php' );
}

View File

@ -0,0 +1,12 @@
<?php
if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가
define('KGINICIS_USE_CERT_SEED', isset($config['cf_cert_use_seed']) ? (int) $config['cf_cert_use_seed'] : 1);
// 유저 사이드뷰에서 아이콘 지정 안했을시 기본 no 프로필 이미지
define('G5_NO_PROFILE_IMG', '<span class="profile_img"><img src="'.G5_IMG_URL.'/no_profile.gif" alt="no_profile" width="'.$config['cf_member_icon_width'].'" height="'.$config['cf_member_icon_height'].'"></span>');
define('G5_USE_MEMBER_IMAGE_FILETIME', TRUE);
// 썸네일 처리 방식, 비율유지 하지 않고 썸네일을 생성하려면 주석을 풀고 값은 false 입력합니다. ( true 또는 주석으로 된 경우에는 비율 유지합니다. )
//define('G5_USE_THUMB_RATIO', false);

View File

@ -0,0 +1,224 @@
<?php
if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가
// 퍼스트가든 관련 경로 설정
define('FG_DIR', 'fg_data');
define('FG_DATA_URL', G5_URL.'/'.FG_DIR);
define('FG_DATA_PATH', G5_PATH.'/'.FG_DIR);
// 퍼스트가든 패밀리사이트 URL 설정
define('FG_URL', 'https://firstgarden.co.kr');
define('FG_WEDDING_URL', 'https://wedding.firstgarden.co.kr');
define('FG_WATERPLAY_URL', 'http://192.168.0.240:81');
define('FG_HEEGARDEN_URL', 'http://192.168.0.240');
/*
// 퍼스트가든 관리페이지용 경로 상수
define('FG_MANAGER_DIR', 'manager');
define('FG_MANAGER_URL', G5_URL.'/'.FG_MANAGER_DIR);
define('FG_MANAGER_PATH', G5_PATH.'/'.FG_MANAGER_DIR);
// define('FG_MANAGER_URL', G5_ADMIN_URL.'/'.FG_MANAGER_DIR);
// define('FG_MANAGER_PATH', G5_ADMIN_PATH.'/'.FG_MANAGER_DIR);
// 퍼스트가든 caf24 CDN 경로
include_once G5_PATH.'/fg_config.php';
// define('CDN_URL', G5_URL.'/image');
// define('CDN_URL', 'https://firstgarden.cdn3.cafe24.com');
/*
// 연간회원권 상품 목록 (상품명 => 상품코드)
$annual_items = [
'빅5' => '1744799759',
'일반' => '1744817586',
];
// 퍼스트가든 관리페이지 adm 페이지로 전환
// /adm/admin.menuXXX.php 파일이 없는 경우, 새 메뉴 그룹이 없기 때문에, 강제로 메뉴파일 배열을 추가 hook (gnuwiz)
if(! function_exists('add_admin_amenu_update') ) {
add_replace('admin_amenu', 'add_admin_amenu_update', 1, 1);
function add_admin_amenu_update($amenu) {
$amenu['998'] = '';
return $amenu;
}
}
// 관리자메뉴에 커스텀 메뉴를 동적으로 추가 hook (gnuwiz)
if(! function_exists('add_admin_menu_update') ) {
add_replace('admin_menu', 'add_admin_menu_update', 1, 1);
function add_admin_menu_update($menu) {
$menu['menu998'] = array();
array_push($menu['menu998'],
array('998000', '퍼스트가든', G5_ADMIN_URL . '/fg_admin/bakery/bakery_stock.php', 'firstgarden'),
array('998010', '베이커리 재고관리', G5_ADMIN_URL . '/fg_admin/bakery/bakery_stock_adm.php', 'firstgarden'),
array('998020', '베이커리 목록관리', G5_ADMIN_URL . '/fg_admin/bakery/bakery_product_list.php', 'firstgarden'),
array('998210', 'VIP 명단관리', G5_ADMIN_URL . '/fg_admin/vip/vip_list.php', 'firstgarden'),
array('998220', 'VIP 구분관리', G5_ADMIN_URL . '/fg_admin/vip/vip_list_category.php', 'firstgarden'),
array('998310', '연간회원 명단관리', G5_ADMIN_URL . '/fg_admin/annual_member/annual_member_list.php', 'firstgarden'),
array('998320', '연간회원 구분관리', G5_ADMIN_URL . '/fg_admin/annual_member/annual_member_category.php', 'firstgarden'),
array('998411', '매표소주문확인', G5_ADMIN_URL.'/fg_admin/orderlist_ticket.php', 'firstgarden'),
array('998421', '혜윰주문확인', G5_ADMIN_URL.'/fg_admin/orderlist_hy.php', 'firstgarden'),
array('998431', 'B2B주문확인', G5_ADMIN_URL.'/fg_admin/orderlist_b2b.php', 'firstgarden'),
array('998412', '관리자주문확인', G5_ADMIN_URL . '/fg_admin/orderlist_admin.php', 'firstgarden'),
array('998413', '관지라월정산용', G5_ADMIN_URL . '/fg_admin/orderlist_admin_sum.php', 'firstgarden'),
);
return $menu;
}
}
// 새 글 작성 시 알림
// add_event('write_update_after', 'curl_tele_sent' G5_HOOK_DEFAULT_PRIORITY, 5);
// 텔레그램 메시지 보내기
// 사용법 curl_tele_sent(메세지);
if(! function_exists('curl_tele_sent')) {
function curl_tele_sent($text){
if(!$text){
exit("No Data!!");
} // end
$ch = curl_init();
$api_code = ""; // 900~
$chat_id = ""; // 822~~
$curl_url = "https://api.telegram.org/bot{$api_code}/sendMessage?chat_id={$chat_id}&text={$text}";
@curl_setopt($ch, CURLOPT_URL, $curl_url);
@curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
@curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 10);
@curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
$exec = curl_exec($ch);
} // curl_tele_sent end
}
// 주문이 실행되는 경우 연간회원권 주문인지 확인하고, 연간회원권이라면 회원정보 입력 페이지로 이동시킴
if (!function_exists('add_annual_member')) {
function add_annual_member($od_id) {
global $g5, $annual_items;
// 상품코드 배열만 추출
$annu_item_code = array_values($annual_items);
$sql = "SELECT it_id, ct_qty FROM {$g5['g5_shop_cart_table']} WHERE od_id = '{$od_id}'";
$result = sql_query($sql);
$total_qty = 0;
while ($row = sql_fetch_array($result)) {
if (in_array($row['it_id'], $annu_item_code)) {
$total_qty += (int)$row['ct_qty'];
}
}
if ($total_qty > 0) {
send_annual_member_notice($od_id, $total_qty);
}
}
add_event('fg_orderformupdate_after', 'add_annual_member', G5_HOOK_DEFAULT_PRIORITY, 1);
}
// SMS 발송
function send_annual_member_notice($od_id, $qty) {
global $g5;
$od = sql_fetch("SELECT od_name, od_hp, od_email FROM {$g5['g5_shop_order_table']} WHERE od_id = '{$od_id}'");
$link = G5_URL . "/manager/annu_member_insert.php?od_id={$od_id}";
$message = "주문하신 연간회원권 {$qty}건에 대한 회원정보 입력이 필요합니다.\n"
. "아래 링크를 통해 회원 정보를 입력해주세요:\n{$link}";
// SMS 발송 (예시)
annu_send_sms(preg_replace('/[^0-9]/', '', $od['od_hp']), $message);
// 메일 발송 (예시)
/*
$subject = "연간회원권 회원정보 입력 안내";
$body = "안녕하세요, {$od['od_name']}님.\n\n"
. "주문하신 연간회원권 {$qty}건에 대한 회원정보 입력이 필요합니다.\n"
. "아래 링크를 클릭하여 입력해주세요.\n\n"
. "{$link}\n\n감사합니다.";
send_mail($od['od_email'], $subject, $body);
*//*
}
function annu_send_sms($phone, $message) {
global $config, $default, $g5;
if (!$config['cf_sms_use'] || !$phone || !$message) {
return false;
}
$recv_number = preg_replace("/[^0-9]/", "", $phone);
$send_number = preg_replace("/[^0-9]/", "", $default['de_admin_company_tel']);
if (!$recv_number) {
return false;
}
$sms_messages = [
['recv' => $recv_number, 'send' => $send_number, 'cont' => $message]
];
$sms_count = 1;
if ($sms_count > 0) {
if ($config['cf_sms_type'] == 'LMS') {
include_once(G5_LIB_PATH . '/icode.lms.lib.php');
$port_setting = get_icode_port_type($config['cf_icode_id'], $config['cf_icode_pw']);
if ($port_setting !== false) {
$SMS = new LMS;
$SMS->SMS_con($config['cf_icode_server_ip'], $config['cf_icode_id'], $config['cf_icode_pw'], $port_setting);
foreach ($sms_messages as $sms) {
$strDest = [$sms['recv']];
$strCallBack = $sms['send'];
$strCaller = iconv_euckr(trim($default['de_admin_company_name']));
$strSubject = '';
$strURL = '';
$strData = iconv_euckr($sms['cont']);
$strDate = '';
$nCount = count($strDest);
$SMS->Add($strDest, $strCallBack, $strCaller, $strSubject, $strURL, $strData, $strDate, $nCount);
$SMS->Send();
$SMS->Init();
}
return true;
}
} else {
include_once(G5_LIB_PATH . '/icode.sms.lib.php');
$SMS = new SMS;
$SMS->SMS_con($config['cf_icode_server_ip'], $config['cf_icode_id'], $config['cf_icode_pw'], $config['cf_icode_server_port']);
foreach ($sms_messages as $sms) {
$recv_number = $sms['recv'];
$send_number = $sms['send'];
$sms_content = iconv_euckr($sms['cont']);
$SMS->Add($recv_number, $send_number, $config['cf_icode_id'], $sms_content, "");
}
$SMS->Send();
$SMS->Init();
return true;
}
}
return false;
}
*/
// 전화번호에 하이픈 추가
function add_hyphen($tel){
$tel = preg_replace("/[^0-9]*/s","",$tel); //숫자이외 제거
if (substr($tel,0,2) =='02'){
return preg_replace("/([0-9]{2})([0-9]{3,4})([0-9]{4})$/","\\1-\\2-\\3", $tel);
} else if(substr($tel,0,2) =='8' && substr($tel,0,2) =='15' || substr($tel,0,2) =='16'|| substr($tel,0,2) =='18' ) {
return preg_replace("/([0-9]{4})([0-9]{4})$/","\\1-\\2",$tel); // 지능망 번호이면
} else {
return preg_replace("/([0-9]{3})([0-9]{3,4})([0-9]{4})$/","\\1-\\2-\\3" ,$tel); //핸드폰번호만 이용한다면 이것만있어도됨
}
}

View File

@ -0,0 +1,69 @@
<?php
if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가
add_event('memo_list', 'g54_user_memo_insert', 10, 3);
add_event('password_is_wrong', 'g54_check_bbs_password', 10, 3);
add_replace('invalid_password', 'g54_return_invalid_password', 10, 3);
function g54_return_invalid_password($bool, $type, $wr){
if($type === 'write' && $bool === false && $wr['wr_password'] && isset($_POST['wr_password'])) {
if(G5_STRING_ENCRYPT_FUNCTION === 'create_hash' && (strlen($wr['wr_password']) === G5_MYSQL_PASSWORD_LENGTH || strlen($wr['wr_password']) === 16)) {
if( sql_password($_POST['wr_password']) === $wr['wr_password'] ){
$bool = true;
}
}
}
return $bool;
}
function g54_check_bbs_password($type, $wr, $qstr=''){
if($type === 'bbs' && (isset($wr['wr_password']) && $wr['wr_password']) && isset($_POST['wr_password'])) {
global $bo_table, $w;
if(G5_STRING_ENCRYPT_FUNCTION === 'create_hash' && (strlen($wr['wr_password']) === G5_MYSQL_PASSWORD_LENGTH || strlen($wr['wr_password']) === 16)) {
if( sql_password($_POST['wr_password']) === $wr['wr_password'] ){
if ($w == 's') {
$ss_name = 'ss_secret_'.$bo_table.'_'.$wr['wr_num'];
set_session($ss_name, TRUE);
} else if ($w == 'sc'){
$ss_name = 'ss_secret_comment_'.$bo_table.'_'.$wr['wr_id'];
set_session($ss_name, TRUE);
}
goto_url(short_url_clean(G5_HTTP_BBS_URL.'/board.php?'.$qstr));
}
}
}
}
function g54_user_memo_insert($kind, $unkind, $page=1){
global $g5, $is_member, $member;
if( ! $is_member || $kind !== 'send' ) return;
$sql = " select count(*) as cnt from {$g5['memo_table']} where me_send_mb_id = '{$member['mb_id']}' and me_type = 'recv' and me_send_ip = '' ";
$row = sql_fetch($sql);
if ( !$row['cnt'] ) return;
$sql = " select count(*) as cnt from {$g5['memo_table']} where me_send_mb_id = '{$member['mb_id']}' and me_type = 'send' ";
$row2 = sql_fetch($sql);
if( $row['cnt'] && ! $row2['cnt'] ){
$sql = " select * from {$g5['memo_table']} where me_send_mb_id = '{$member['mb_id']}' and me_type = 'recv' ";
$result = sql_query($sql);
while ($row = sql_fetch_array($result))
{
$sql = " insert into {$g5['memo_table']} ( me_recv_mb_id, me_send_mb_id, me_send_datetime, me_read_datetime, me_memo, me_send_id, me_type ) values ( '".addslashes($row['me_recv_mb_id'])."', '".addslashes($row['me_send_mb_id'])."', '".addslashes($row['me_send_datetime'])."', '".addslashes($row['me_read_datetime'])."', '".addslashes($row['me_memo'])."', '".$row['me_id']."', 'send' ) ";
sql_query($sql);
}
$sql = " update {$g5['memo_table']} set me_send_ip = '{$_SERVER['REMOTE_ADDR']}' where me_send_mb_id = '{$member['mb_id']}' and me_type = 'recv' and me_send_ip = '' ";
sql_query($sql);
}
}

View File

@ -0,0 +1,84 @@
<?php
if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가
if (!defined('G5_USE_SHOP') || !G5_USE_SHOP) return;
/*
배송업체에 데이터를 추가하는 경우 아래 형식으로 추가하세요.
.'(배송업체명^택배조회URL^연락처)'
*/
define('G5_DELIVERY_COMPANY',
'(경동택배^https://kdexp.com/service/delivery/etc/delivery.do?barcode=^1899-5368)'
.'(대신택배^https://www.ds3211.co.kr/freight/internalFreightSearch.ht?billno=^043-222-4582)'
.'(로젠택배^https://www.ilogen.com/m/personal/trace.pop/^1588-9988)'
.'(우체국^https://m.epost.go.kr/postal/mobile/mobile.trace.RetrieveDomRigiTraceList.comm?ems_gubun=E&sid1=^1588-1300)'
.'(한진택배^https://www.hanjin.co.kr/kor/CMS/DeliveryMgr/WaybillResult.do?mCode=MN038&schLang=KR&wblnumText2=^1588-0011)'
.'(롯데택배^https://www.lotteglogis.com/open/tracking?invno=^1588-2121)'
.'(CJ대한통운^https://trace.cjlogistics.com/next/tracking.html?wblNo=^1588-1255)'
.'(GS25편의점택배^https://www.cvsnet.co.kr/invoice/tracking.do?invoice_no=^1577-1287)'
.'(합동택배^https://hdexp.co.kr/deliverySearch2.hd?barcode=^1899-3392)'
.'(CU편의점택배^https://www.cupost.co.kr/postbox/delivery/localResult.cupost?invoice_no=^1577-1287)'
.'(천일택배^http://www.chunil.co.kr/HTrace/HTrace.jsp?transNo=^1877-6606)'
.'(건영택배^https://www.kunyoung.com/goods/goods_01.php?mulno=^031-460-2700)'
.'(우리택배^http://www.honamlogis.co.kr/04estimate/songjang_list.php?c_search1=^031-376-6070)'
.'(일양로지스^https://www.ilyanglogis.com/functionality/popup_result.asp?hawb_no=^1588-0002)'
.'(EMS^https://service.epost.go.kr/trace.RetrieveEmsRigiTraceList.comm?POST_CODE=^1588-1300)'
.'(DHL^https://www.dhl.com/kr-ko/home/tracking.html?tracking-id=^1588-1588-0001)'
.'(FedEx^https://www.fedex.com/fedextrack/?trknbr=^02-3496-7777)'
.'(UPS^https://www.fedex.com/fedextrack/?trknbr=^02-3496-7777)'
);
include_once(G5_LIB_PATH.'/shop.data.lib.php');
include_once(G5_LIB_PATH.'/shop.lib.php');
include_once(G5_LIB_PATH.'/thumbnail.lib.php');
//==============================================================================
// 쇼핑몰 미수금 등의 주문정보
//==============================================================================
/*
$info = get_order_info($od_id);
$info['od_cart_price'] // 장바구니 주문상품 총금액
$info['od_send_cost'] // 배송비
$info['od_coupon'] // 주문할인 쿠폰금액
$info['od_send_coupon'] // 배송할인 쿠폰금액
$info['od_cart_coupon'] // 상품할인 쿠폰금액
$info['od_tax_mny'] // 과세 공급가액
$info['od_vat_mny'] // 부가세액
$info['od_free_mny'] // 비과세 공급가액
$info['od_cancel_price'] // 주문 취소상품 총금액
$info['od_misu'] // 미수금액
*/
//==============================================================================
// 쇼핑몰 미수금 등의 주문정보
//==============================================================================
// 매출전표 url 설정
if($default['de_card_test']) {
define('G5_BILL_RECEIPT_URL', 'https://testadmin8.kcp.co.kr/assist/bill.BillActionNew.do?cmd=');
define('G5_CASH_RECEIPT_URL', 'https://testadmin8.kcp.co.kr/Modules/Service/Cash/Cash_Bill_Common_View.jsp?term_id=PGNW');
} else {
define('G5_BILL_RECEIPT_URL', 'https://admin8.kcp.co.kr/assist/bill.BillActionNew.do?cmd=');
define('G5_CASH_RECEIPT_URL', 'https://admin.kcp.co.kr/Modules/Service/Cash/Cash_Bill_Common_View.jsp?term_id=PGNW');
}
// 상품상세 페이지에서 재고체크 실행 여부 선택
// 상품의 옵션이 많아 로딩 속도가 느린 경우 false 로 설정
define('G5_SOLDOUT_CHECK', true);
// 주문폼의 상품이 재고 차감에 포함되는 기준 시간설정
// 0 이면 재고 차감에 계속 포함됨
define('G5_CART_STOCK_LIMIT', 3);
// 아이코드 코인 최소금액 설정
// 코인 잔액이 설정 금액보다 작을 때는 주문시 SMS 발송 안함
define('G5_ICODE_COIN', 100);
include_once(G5_LIB_PATH.'/shop.uri.lib.php');
add_replace('get_pretty_url', 'add_pretty_shop_url', 10, 5);
add_replace('false_short_url_clean', 'shop_short_url_clean', 10, 4);
add_replace('add_nginx_conf_rules', 'add_shop_nginx_conf_rules', 10, 3);
add_replace('add_mod_rewrite_rules', 'add_shop_mod_rewrite_rules', 10, 3);
add_replace('admin_dbupgrade', 'add_shop_admin_dbupgrade', 10, 3);
add_replace('exist_check_seo_title', 'shop_exist_check_seo_title', 10, 4);

View File

@ -0,0 +1,10 @@
<?php
if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가
//플러그인 폴더 이름 및 스킨 폴더 이름
define('SMARTEDITOR_UPLOAD_IMG_CHECK', 1); // 이미지 파일을 썸네일 할수 있는지 여부를 체크합니다. ( 해당 파일이 이미지 파일인지 체크합니다. 1이면 사용, 0이면 사용 안함 )
define('SMARTEDITOR_UPLOAD_RESIZE', 0); // 스마트에디터 업로드 이미지파일 JPG, PNG 리사이즈 1이면 사용, 0이면 사용안함
define('SMARTEDITOR_UPLOAD_MAX_WIDTH', 1200); // 스마트에디터 업로드 이미지 리사이즈 제한 width
define('SMARTEDITOR_UPLOAD_MAX_HEIGHT', 2800); // 스마트에디터 업로드 이미지 리사이즈 제한 height
define('SMARTEDITOR_UPLOAD_SIZE_LIMIT', 20); // 스마트에디터 업로드 사이즈 제한 ( 기본 20MB )
define('SMARTEDITOR_UPLOAD_IMAGE_QUALITY', 98); // 썸네일 이미지 JPG, PNG 압축률;

View File

@ -0,0 +1,47 @@
<?php
if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가
//------------------------------------------------------------------------------
// SMS 상수 모음 시작
//------------------------------------------------------------------------------
define('G5_SMS5_DIR', 'sms5');
define('G5_SMS5_PATH', G5_PLUGIN_PATH.'/'.G5_SMS5_DIR);
define('G5_SMS5_URL', G5_PLUGIN_URL.'/'.G5_SMS5_DIR);
define('G5_SMS5_ADMIN_DIR', 'sms_admin');
define('G5_SMS5_ADMIN_PATH', G5_ADMIN_PATH.'/'.G5_SMS5_ADMIN_DIR);
define('G5_SMS5_ADMIN_URL', G5_ADMIN_URL.'/'.G5_SMS5_ADMIN_DIR);
define('ICODE_JSON_SOCKET_HOST', '211.172.232.124');
define('ICODE_JSON_SOCKET_PORT', '9201');
define('G5_ICODE_LMS_MAX_LENGTH', 1500); // 구버전 LMS 최대길이
define('G5_ICODE_JSON_MAX_LENGTH', 2000); // JSON 버전 LMS 최대길이
// SMS 테이블명
$g5['sms5_prefix'] = G5_TABLE_PREFIX.'sms5_';
$g5['sms5_config_table'] = $g5['sms5_prefix'] . 'config';
$g5['sms5_write_table'] = $g5['sms5_prefix'] . 'write';
$g5['sms5_history_table'] = $g5['sms5_prefix'] . 'history';
$g5['sms5_book_table'] = $g5['sms5_prefix'] . 'book';
$g5['sms5_book_group_table'] = $g5['sms5_prefix'] . 'book_group';
$g5['sms5_form_table'] = $g5['sms5_prefix'] . 'form';
$g5['sms5_form_group_table'] = $g5['sms5_prefix'] . 'form_group';
$sms5 = array('cf_skin'=>'', 'cf_datetime'=>'', 'cf_phone'=>'');
if (!empty($config['cf_sms_use'])) {
$sms5 = sql_fetch("select * from {$g5['sms5_config_table']} ", false);
// Demo 설정
if (file_exists(G5_PATH.'/DEMO'))
{
// 받는 번호를 010-000-0000 으로 만듭니다.
$g5['sms5_demo'] = true;
// 아이코드에 실제로 보내지 않고 가상(Random)으로 전송결과를 저장합니다.
$g5['sms5_demo_send'] = true;
}
}

View File

@ -0,0 +1,47 @@
<?php
if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가
// 소셜로그인 테이블 정보가 dbconfig에 없으면 소셜 테이블 정의
if( !isset($g5['social_profile_table']) ){
$g5['social_profile_table'] = G5_TABLE_PREFIX.'member_social_profiles';
}
//플러그인 폴더 이름 및 스킨 폴더 이름
define('G5_SOCIAL_LOGIN_DIR', 'social');
// 소셜로그인 login_start 파라미터 이름입니다. 기본값은 hauth.start
define('G5_SOCIAL_LOGIN_START_PARAM', 'hauth.start');
// 소셜로그인 login_done 파라미터 이름입니다. 기본값은 hauth.done
define('G5_SOCIAL_LOGIN_DONE_PARAM', 'hauth.done');
define('G5_SOCIAL_LOGIN_PATH', G5_PLUGIN_PATH.'/'.G5_SOCIAL_LOGIN_DIR);
define('G5_SOCIAL_LOGIN_URL', G5_PLUGIN_URL.'/'.G5_SOCIAL_LOGIN_DIR);
// 소셜로그인 SOCIAL_LOGIN_BASE_URL 기본값은 G5_SOCIAL_LOGIN_URL.'/'
define('G5_SOCIAL_LOGIN_BASE_URL', G5_SOCIAL_LOGIN_URL.'/');
if(G5_IS_MOBILE) {
define('G5_SOCIAL_SKIN_PATH', G5_PATH.'/'.G5_MOBILE_DIR.'/'.G5_SKIN_DIR.'/'.G5_SOCIAL_LOGIN_DIR);
define('G5_SOCIAL_SKIN_URL', G5_URL.'/'.G5_MOBILE_DIR.'/'.G5_SKIN_DIR.'/'.G5_SOCIAL_LOGIN_DIR);
} else {
define('G5_SOCIAL_SKIN_PATH', G5_SKIN_PATH.'/'.G5_SOCIAL_LOGIN_DIR);
define('G5_SOCIAL_SKIN_URL', G5_SKIN_URL.'/'.G5_SOCIAL_LOGIN_DIR);
}
//소셜 로그인 팝업을 사용하면 true
define('G5_SOCIAL_USE_POPUP', ! is_mobile() ); // 모바일에서는 팝업사용 안함
//define('G5_SOCIAL_USE_POPUP', false ); //팝업을 사용하지 않을 경우
//소셜 db 테이블에 기록된 내용중에 mb_id가 없는 소셜 데이터를 몇일 이후에 삭제합니다.
//해당 기간동안 중복 회원가입을 막는 역할을 합니다.
//0 이면 체크를 하지 않습니다.
define('G5_SOCIAL_DELETE_DAY', 0);
// 메일 인증관련, false 이면 메일인증을 받지 않고 로그인됩니다. true 이고 기본환경설정에서 메일인증설정이 활성화 되어 있는 경우 메일인증을 받아야만 로그인 됩니다.
define('G5_SOCIAL_CERTIFY_MAIL', false);
// 소셜 DEBUG 관련 설정, 기본값은 false, true 로 설정시 data/tmp/social_anystring.log 파일이 생성됩니다.
define('G5_SOCIAL_IS_DEBUG', false);
include_once(G5_SOCIAL_LOGIN_PATH.'/includes/functions.php');

View File

@ -0,0 +1,8 @@
<?php
if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가
// 자바스크립트와 CSS 파일을 새로 다운로드 하도록 파일의 끝에 년월일 지정
// 예) https://도메인/css/default.css?ver=220620
// 예) https://도메인/js/common.js?ver=220620
define('G5_CSS_VER', '2303229');
define('G5_JS_VER', '2304171');

View File

@ -4,6 +4,14 @@ if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가
$g5_debug['php']['begin_time'] = $begin_time = get_microtime();
// 게시판이고 page가 선언되지 않거나 0인 경우 '페이지' 문구 제거
if (isset($bo_table)) {
global $page;
if (!$page || $page < 1) {
$g5['title'] = preg_replace('/\s*[0-9]*\s*페이지/u', '', $g5['title']);
}
}
if (!isset($g5['title'])) {
$g5['title'] = $config['cf_title'];
$g5_head_title = $g5['title'];