Merge branch 'master' of github.com:gnuboard/yc5

This commit is contained in:
SIR
2014-11-26 14:48:36 +09:00
42 changed files with 482 additions and 148 deletions

View File

@ -1282,7 +1282,10 @@ if($config['cf_cert_use']) {
// kcp일 때
if($config['cf_cert_hp'] == 'kcp') {
$exe = G5_KCPCERT_PATH.'/bin/ct_cli';
if(PHP_INT_MAX == 2147483647) // 32-bit
$exe = G5_KCPCERT_PATH . '/bin/ct_cli';
else
$exe = G5_KCPCERT_PATH . '/bin/ct_cli_x64';
echo module_exec_check($exe, 'ct_cli');
}

View File

@ -19,6 +19,20 @@ if(!sql_query(" select co_tag_filter_use from {$g5['content_table']} limit 1 ",
sql_query(" update {$g5['content_table']} set co_tag_filter_use = '1' ");
}
// 모바일 내용 추가
if(!sql_query(" select co_mobile_content from {$g5['content_table']} limit 1", false)) {
sql_query(" ALTER TABLE `{$g5['content_table']}`
ADD `co_mobile_content` longtext NOT NULL AFTER `co_content` ", true);
}
// 스킨 설정 추가
if(!sql_query(" select co_skin from {$g5['content_table']} limit 1 ", false)) {
sql_query(" ALTER TABLE `{$g5['content_table']}`
ADD `co_skin` varchar(255) NOT NULL DEFAULT '' AFTER `co_mobile_content`,
ADD `co_mobile_skin` varchar(255) NOT NULL DEFAULT '' AFTER `co_skin` ", true);
sql_query(" update {$g5['content_table']} set co_skin = 'basic', co_mobile_skin = 'basic' ");
}
$html_title = "내용";
$g5['title'] = $html_title.' 관리';
@ -36,6 +50,8 @@ else
{
$html_title .= ' 입력';
$co['co_html'] = 2;
$co['co_skin'] = 'basic';
$co['co_mobile_skin'] = 'basic';
}
include_once (G5_ADMIN_PATH.'/admin.head.php');
@ -69,6 +85,22 @@ include_once (G5_ADMIN_PATH.'/admin.head.php');
<th scope="row">내용</th>
<td><?php echo editor_html('co_content', get_text($co['co_content'], 0)); ?></td>
</tr>
<tr>
<th scope="row">모바일 내용</th>
<td><?php echo editor_html('co_mobile_content', get_text($co['co_mobile_content'], 0)); ?></td>
</tr>
<tr>
<th scope="row"><label for="co_skin">스킨 디렉토리<strong class="sound_only">필수</strong></label></th>
<td>
<?php echo get_skin_select('content', 'co_skin', 'co_skin', $co['co_skin'], 'required'); ?>
</td>
</tr>
<tr>
<th scope="row"><label for="co_mobile_skin">모바일스킨 디렉토리<strong class="sound_only">필수</strong></label></th>
<td>
<?php echo get_mobile_skin_select('content', 'co_mobile_skin', 'co_mobile_skin', $co['co_mobile_skin'], 'required'); ?>
</td>
</tr>
<tr>
<th scope="row"><label for="co_tag_filter_use">태그 필터링 사용</label></th>
<td>
@ -160,6 +192,7 @@ function frmcontentform_check(f)
<?php echo get_editor_js('co_content'); ?>
<?php echo chk_editor_js('co_content'); ?>
<?php echo get_editor_js('co_mobile_content'); ?>
check_field(f.co_id, "ID를 입력하세요.");
check_field(f.co_subject, "제목을 입력하세요.");

View File

@ -21,7 +21,10 @@ $sql_common = " co_include_head = '$co_include_head',
co_html = '$co_html',
co_tag_filter_use = '$co_tag_filter_use',
co_subject = '$co_subject',
co_content = '$co_content' ";
co_content = '$co_content',
co_mobile_content = '$co_mobile_content',
co_skin = '$co_skin',
co_mobile_skin = '$co_mobile_skin' ";
if ($w == "")
{

View File

@ -16,7 +16,7 @@ for ($i=0; $i<count($chk); $i++)
$mb = get_member($_POST['mb_id'][$k]);
if (!$mb[mb_id]) {
if (!$mb['mb_id']) {
$msg .= "{$mb['mb_id']} : 회원자료가 존재하지 않습니다.\\n";
} else if ($member['mb_id'] == $mb['mb_id']) {
$msg .= "{$mb['mb_id']} : 로그인 중인 관리자는 삭제 할 수 없습니다.\\n";

View File

@ -462,7 +462,7 @@ if(!sql_query(" select mb_id from {$g5['g5_shop_order_delete_table']} limit 1 ",
<?php } ?>
<input type="submit" value="선택수정" class="btn_submit" onclick="document.pressed=this.value">
<?php } ?>
<?php if ($od_status == '주문' || $od_status == '전체취소') { ?> <span>주문상태에서만 삭제가 가능합니다.</span> <input type="submit" value="선택삭제" class="btn_submit" onclick="document.pressed=this.value"><?php } ?>
<?php if ($od_status == '주문') { ?> <span>주문상태에서만 삭제가 가능합니다.</span> <input type="submit" value="선택삭제" class="btn_submit" onclick="document.pressed=this.value"><?php } ?>
</div>
<div class="local_desc02 local_desc">

View File

@ -236,7 +236,7 @@ if ($member['mb_level'] >= $board['bo_list_level'] && $board['bo_use_list_view']
include_once('./board_tail.php');
echo "\n<!-- 사용스킨 : ".(G5_IS_MOBEILE ? $board['bo_mobile_skin'] : $board['bo_skin'])." -->\n";
echo "\n<!-- 사용스킨 : ".(G5_IS_MOBILE ? $board['bo_mobile_skin'] : $board['bo_skin'])." -->\n";
include_once(G5_PATH.'/tail.sub.php');
?>

View File

@ -30,7 +30,6 @@ $str = conv_content($co['co_content'], $co['co_html'], $co['co_tag_filter_use'])
unset($src);
unset($dst);
$src[] = "/{{쇼핑몰명}}|{{홈페이지제목}}/";
//$dst[] = $default[de_subject];
$dst[] = $config['cf_title'];
$src[] = "/{{회사명}}|{{상호}}/";
$dst[] = $default['de_admin_company_name'];
@ -59,39 +58,33 @@ $dst[] = $default['de_admin_info_email'];
$str = preg_replace($src, $dst, $str);
if ($is_admin)
echo '<div class="ctt_admin"><a href="'.G5_ADMIN_URL.'/contentform.php?w=u&amp;co_id='.$co_id.'" class="btn_admin">내용 수정</a></div>';
?>
// 스킨경로
if(trim($co['co_skin']) == '')
$co['co_skin'] = 'basic';
<!-- 등록내용 시작 { -->
<?php
$himg = G5_DATA_PATH.'/content/'.$co_id.'_h';
if (file_exists($himg)) // 상단 이미지
echo '<div id="ctt_himg" class="ctt_img"><img src="'.G5_DATA_URL.'/content/'.$co_id.'_h" alt=""></div>';
?>
<article id="ctt" class="ctt_<?php echo $co_id; ?>">
<header>
<h1><?php echo $g5['title']; ?></h1>
</header>
<div id="ctt_con">
<?php echo $str; ?>
</div>
</article>
<?php
$timg = G5_DATA_PATH.'/content/'.$co_id.'_t';
if (file_exists($timg)) // 하단 이미지
echo '<div id="ctt_timg" class="ctt_img"><img src="'.G5_DATA_URL.'/content/'.$co_id.'_t" alt=""></div>';
$content_skin_path = G5_SKIN_PATH.'/content/'.$co['co_skin'];
$content_skin_url = G5_SKIN_URL.'/content/'.$co['co_skin'];
$skin_file = $content_skin_path.'/content.skin.php';
if ($is_admin)
echo '<div class="ctt_admin"><a href="'.G5_ADMIN_URL.'/contentform.php?w=u&amp;co_id='.$co_id.'" class="btn_admin">내용 수정</a></div>';
?>
<!-- } 등록내용 끝 -->
<?php
if(is_file($skin_file)) {
$himg = G5_DATA_PATH.'/content/'.$co_id.'_h';
if (file_exists($himg)) // 상단 이미지
echo '<div id="ctt_himg" class="ctt_img"><img src="'.G5_DATA_URL.'/content/'.$co_id.'_h" alt=""></div>';
include($skin_file);
$timg = G5_DATA_PATH.'/content/'.$co_id.'_t';
if (file_exists($timg)) // 하단 이미지
echo '<div id="ctt_timg" class="ctt_img"><img src="'.G5_DATA_URL.'/content/'.$co_id.'_t" alt=""></div>';
} else {
echo '<p>'.str_replace(G5_PATH.'/', '', $skin_file).'이 존재하지 않습니다.</p>';
}
if ($co['co_include_tail'])
@include_once($co['co_include_tail']);
else

View File

@ -50,6 +50,13 @@ if($config['cf_leave_day'] > 0) {
}
}
// 음성 캡챠 파일 삭제
foreach (glob(G5_PATH.'/data/cache/kcaptcha-*.mp3') as $file) {
if (filemtime($file) + 86400 < G5_SERVER_TIME) {
@unlink($file);
}
}
// 실행일 기록
if(isset($config['cf_optimize_date'])) {
sql_query(" update {$g5['config_table']} set cf_optimize_date = '".G5_TIME_YMD."' ");

View File

@ -252,13 +252,6 @@ a.btn_admin:focus, a.btn_admin:hover {text-decoration:none}
.new_win .win_btn a {display:inline-block;padding:0 10px;height:30px;background:#4b545e;color:#fff;vertical-align:middle;line-height:2.4em}
.new_win .win_btn a:focus, .new_win .win_btn a:hover {text-decoration:none}
/* 내용관리 */
#ctt {margin:10px 0;padding:10px;border:1px solid #e9e9e9}
.ctt_admin {text-align:right}
#ctt header h1 {position:absolute;font-size:0;line-height:0;overflow:hidden}
#ctt_con {padding:10px 0}
.ctt_img {text-align:center}
/* 검색결과 색상 */
.sch_word {color:#ff3061}

View File

@ -225,13 +225,6 @@ a.btn_admin:focus, a.btn_admin:hover {text-decoration:none}
.new_win .win_btn button {display:inline-block;padding:0 10px;height:2.5em;border:0;background:#666;color:#fff;text-decoration:none;line-height:2.5em}
.new_win .win_btn input {padding:0 10px;height:2.5em;line-height:2.5em}
/* 내용관리 */
#ctt {margin:10px 0;padding:10px;border-top:1px solid #e9e9e9;border-bottom:1px solid #e9e9e9}
.ctt_admin {margin:0 5px;text-align:right}
#ctt header h1 {position:absolute;font-size:0;line-height:0;overflow:hidden}
#ctt_con {padding:10px 0}
.ctt_img {text-align:center}
/* 검색결과 색상 */
.sch_word {color:#ff3061}

View File

@ -131,6 +131,10 @@ if($default['de_card_test']) {
define('G5_CASH_RECEIPT_URL', 'https://admin.kcp.co.kr/Modules/Service/Cash/Cash_Bill_Common_View.jsp?term_id=PGNW');
}
// 주문폼의 상품이 재고 차감에 포함되는 기준 시간설정
// 0 이면 재고 차감에 계속 포함됨
define('G5_CART_STOCK_LIMIT', 3);
// 아이코드 코인 최소금액 설정
// 코인 잔액이 설정 금액보다 작을 때는 주문시 SMS 발송 안함
define('G5_ICODE_COIN', 100);

View File

@ -781,6 +781,9 @@ CREATE TABLE IF NOT EXISTS `g5_content` (
`co_html` tinyint(4) NOT NULL DEFAULT '0',
`co_subject` varchar(255) NOT NULL DEFAULT '',
`co_content` longtext NOT NULL,
`co_mobile_content` longtext NOT NULL,
`co_skin` varchar(255) NOT NULL DEFAULT '',
`co_mobile_skin` varchar(255) NOT NULL DEFAULT '',
`co_tag_filter_use` tinyint(4) NOT NULL DEFAULT '0',
`co_hit` int(11) NOT NULL DEFAULT '0',
`co_include_head` varchar(255) NOT NULL,

View File

@ -56,6 +56,7 @@ CREATE TABLE IF NOT EXISTS `g5_shop_cart` (
`ct_send_cost` tinyint(4) NOT NULL DEFAULT '0',
`ct_direct` tinyint(4) NOT NULL DEFAULT '0',
`ct_select` tinyint(4) NOT NULL DEFAULT '0',
`ct_select_time` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
PRIMARY KEY (`ct_id`),
KEY `od_id` (`od_id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

View File

@ -201,9 +201,9 @@ if($g5_install || !$result) {
@mysql_query($sql);
// 내용관리 생성
@mysql_query(" insert into `{$table_prefix}content` set co_id = 'company', co_html = '1', co_subject = '회사소개', co_content= '<p align=center><b>회사소개에 대한 내용을 입력하십시오.</b></p>' ") or die(mysql_error() . "<p>" . $sql);
@mysql_query(" insert into `{$table_prefix}content` set co_id = 'privacy', co_html = '1', co_subject = '개인정보 처리방침', co_content= '<p align=center><b>개인정보 처리방침에 대한 내용을 입력하십시오.</b></p>' ") or die(mysql_error() . "<p>" . $sql);
@mysql_query(" insert into `{$table_prefix}content` set co_id = 'provision', co_html = '1', co_subject = '서비스 이용약관', co_content= '<p align=center><b>서비스 이용약관에 대한 내용을 입력하십시오.</b></p>' ") or die(mysql_error() . "<p>" . $sql);
@mysql_query(" insert into `{$table_prefix}content` set co_id = 'company', co_html = '1', co_subject = '회사소개', co_content= '<p align=center><b>회사소개에 대한 내용을 입력하십시오.</b></p>', co_skin = 'basic', co_mobile_skin = 'basic' ") or die(mysql_error() . "<p>" . $sql);
@mysql_query(" insert into `{$table_prefix}content` set co_id = 'privacy', co_html = '1', co_subject = '개인정보 처리방침', co_content= '<p align=center><b>개인정보 처리방침에 대한 내용을 입력하십시오.</b></p>', co_skin = 'basic', co_mobile_skin = 'basic' ") or die(mysql_error() . "<p>" . $sql);
@mysql_query(" insert into `{$table_prefix}content` set co_id = 'provision', co_html = '1', co_subject = '서비스 이용약관', co_content= '<p align=center><b>서비스 이용약관에 대한 내용을 입력하십시오.</b></p>', co_skin = 'basic', co_mobile_skin = 'basic' ") or die(mysql_error() . "<p>" . $sql);
// FAQ Master
@mysql_query(" insert into `{$table_prefix}faq_master` set fm_id = '1', fm_subject = '자주하시는 질문' ") or die(mysql_error() . "<p>" . $sql);

13
js/shop.order.js Normal file
View File

@ -0,0 +1,13 @@
var order_stock_check = function() {
var result = "";
$.ajax({
type: "POST",
url: g5_url+"/shop/ajax.orderstock.php",
cache: false,
async: false,
success: function(data) {
result = data;
}
});
return result;
}

View File

@ -141,7 +141,7 @@ function get_cookie($cookie_name)
{
$cookie = md5($cookie_name);
if (array_key_exists($cookie, $_COOKIE))
return base64_decode($_COOKIE[md5($cookie_name)]);
return base64_decode($_COOKIE[$cookie]);
else
return "";
}
@ -214,11 +214,12 @@ function url_auto_link($str)
// 140326 유창화님 제안코드로 수정
// http://sir.co.kr/bbs/board.php?bo_table=pg_lecture&wr_id=461
// http://sir.co.kr/bbs/board.php?bo_table=pg_lecture&wr_id=463
$str = str_replace(array("&lt;", "&gt;", "&amp;", "&quot;", "&nbsp;"), array("\t_lt_\t", "\t_gt_\t", "&", "\"", "\t_nbsp_\t"), $str);
$str = preg_replace("`(?:(?:(?:href|src)\s*=\s*(?:\"|'|)){0})((http|https|ftp|telnet|news|mms)://[^\"'\s()]+)`", "<A HREF=\"\\1\" TARGET='{$config['cf_link_target']}'>\\1</A>", $str);
$str = preg_replace("/(^|[\"'\s(])(www\.[^\"'\s()]+)/i", "\\1<A HREF=\"http://\\2\" TARGET='{$config['cf_link_target']}'>\\2</A>", $str);
$str = preg_replace("/[0-9a-z_-]+@[a-z0-9._-]{4,}/i", "<a href='mailto:\\0'>\\0</a>", $str);
$str = str_replace(array("\t_nbsp_\t", "\t_lt_\t", "\t_gt_\t"), array("&nbsp;", "&lt;", "&gt;"), $str);
$str = str_replace(array("&lt;", "&gt;", "&amp;", "&quot;", "&nbsp;", "&#039;"), array("\t_lt_\t", "\t_gt_\t", "&", "\"", "\t_nbsp_\t", "'"), $str);
//$str = preg_replace("`(?:(?:(?:href|src)\s*=\s*(?:\"|'|)){0})((http|https|ftp|telnet|news|mms)://[^\"'\s()]+)`", "<A HREF=\"\\1\" TARGET='{$config['cf_link_target']}'>\\1</A>", $str);
$str = preg_replace("/([^(href=\"?'?)|(src=\"?'?)]|\(|^)((http|https|ftp|telnet|news|mms):\/\/[a-zA-Z0-9\.-]+\.[가-힣\xA1-\xFEa-zA-Z0-9\.:&#=_\?\/~\+%@;\-\|\,\(\)]+)/i", "\\1<A HREF=\"\\2\" TARGET=\"{$config['cf_link_target']}\">\\2</A>", $str);
$str = preg_replace("/(^|[\"'\s(])(www\.[^\"'\s()]+)/i", "\\1<A HREF=\"http://\\2\" TARGET=\"{$config['cf_link_target']}\">\\2</A>", $str);
$str = preg_replace("/[0-9a-z_-]+@[a-z0-9._-]{4,}/i", "<a href=\"mailto:\\0\">\\0</a>", $str);
$str = str_replace(array("\t_nbsp_\t", "\t_lt_\t", "\t_gt_\t", "'"), array("&nbsp;", "&lt;", "&gt;", "&#039;"), $str);
/*
// 속도 향상 031011
@ -483,7 +484,7 @@ function search_font($stx, $str)
// 제목을 변환
function conv_subject($subject, $len, $suffix='')
{
return cut_str(get_text($subject), $len, $suffix);
return get_text(cut_str($subject, $len, $suffix));
}
// 내용을 변환
@ -528,7 +529,6 @@ function conv_content($content, $html, $filter=true)
$content = str_replace("\n ", "\n&nbsp;", $content);
$content = get_text($content, 1);
$content = url_auto_link($content);
}

View File

@ -2138,12 +2138,38 @@ function cart_item_clean()
{
global $g5, $default;
// 장바구니 보관일
$keep_term = $default['de_cart_keep_term'];
if(!$keep_term)
$keep_term = 15; // 기본값 15일
$beforetime = G5_SERVER_TIME - (86400 * $keep_term);
sql_query(" delete from {$g5['g5_shop_cart_table']} where ct_status = '쇼핑' and UNIX_TIMESTAMP(ct_time) < '$beforetime' ");
// ct_select_time이 기준시간 이상 경과된 경우 변경
if(defined('G5_CART_STOCK_LIMIT'))
$cart_stock_limit = G5_CART_STOCK_LIMIT;
else
$cart_stock_limit = 3;
$stocktime = 0;
if($cart_stock_limit > 0) {
if($cart_stock_limit > $keep_term * 24)
$cart_stock_limit = $keep_term * 24;
$stocktime = G5_SERVER_TIME - (3600 * $cart_stock_limit);
$sql = " update {$g5['g5_shop_cart_table']}
set ct_select = '0'
where ct_select = '1'
and ct_status = '쇼핑'
and UNIX_TIMESTAMP(ct_select_time) < '$stocktime' ";
sql_query($sql);
}
// 설정 시간이상 경과된 상품 삭제
$statustime = G5_SERVER_TIME - (86400 * $keep_term);
$sql = " delete from {$g5['g5_shop_cart_table']}
where ct_status = '쇼핑'
and UNIX_TIMESTAMP(ct_time) < '$statustime' ";
sql_query($sql);
}
//==============================================================================

View File

@ -10,13 +10,13 @@ if (!$co['co_id'])
$g5['title'] = $co['co_subject'];
include_once('./_head.php');
$str = conv_content($co['co_content'], $co['co_html'], $co['co_tag_filter_use']);
$co_content = $co['co_mobile_content'] ? $co['co_mobile_content'] : $co['co_content'];
$str = conv_content($co_content, $co['co_html'], $co['co_tag_filter_use']);
// $src 를 $dst 로 변환
unset($src);
unset($dst);
$src[] = "/{{쇼핑몰명}}|{{홈페이지제목}}/";
//$dst[] = $default[de_subject];
$dst[] = $config['cf_title'];
$src[] = "/{{회사명}}|{{상호}}/";
$dst[] = $default['de_admin_company_name'];
@ -44,21 +44,20 @@ $src[] = "/{{정보관리책임자e-mail}}|{{정보책임자e-mail}}/i";
$dst[] = $default['de_admin_info_email'];
$str = preg_replace($src, $dst, $str);
?>
<!-- 등록내용 시작 { -->
<article id="ctt" class="ctt_<?php echo $co_id; ?>">
<header>
<h1><?php echo $g5['title']; ?></h1>
</header>
// 스킨경로
if(trim($co['co_mobile_skin']) == '')
$co['co_mobile_skin'] = 'basic';
<div id="ctt_con">
<?php echo $str; ?>
</div>
$content_skin_path = G5_MOBILE_PATH .'/'.G5_SKIN_DIR.'/content/'.$co['co_mobile_skin'];
$content_skin_url = G5_MOBILE_URL .'/'.G5_SKIN_DIR.'/content/'.$co['co_mobile_skin'];
$skin_file = $content_skin_path.'/content.skin.php';
</article>
<!-- } 등록내용 끝 -->
if(is_file($skin_file)) {
include($skin_file);
} else {
echo '<p>'.str_replace(G5_PATH.'/', '', $skin_file).'이 존재하지 않습니다.</p>';
}
<?php
include_once('./_tail.php');
?>

View File

@ -1130,6 +1130,13 @@ var temp_point = 0;
function pay_approval()
{
// 재고체크
var stock_msg = order_stock_check();
if(stock_msg != "") {
alert(stock_msg);
return false;
}
var f = document.sm_form;
var pf = document.forderform;

View File

@ -413,8 +413,26 @@ if($default['de_tax_flag_use']) {
$od_free_mny = (int)$_POST['comm_free_mny'];
}
$od_pg = $default['de_pg_service'];
$od_email = get_email_address($od_email);
$od_pg = $default['de_pg_service'];
$od_email = get_email_address($od_email);
$od_name = clean_xss_tags($od_name);
$od_tel = clean_xss_tags($od_tel);
$od_hp = clean_xss_tags($od_hp);
$od_zip1 = preg_replace('/[^0-9]/', '', $od_zip1);
$od_zip2 = preg_replace('/[^0-9]/', '', $od_zip2);
$od_addr1 = clean_xss_tags($od_addr1);
$od_addr2 = clean_xss_tags($od_addr2);
$od_addr3 = clean_xss_tags($od_addr3);
$od_addr_jibeon = preg_match("/^(N|R)$/", $od_addr_jibeon) ? $od_addr_jibeon : '';
$od_b_name = clean_xss_tags($od_b_name);
$od_b_tel = clean_xss_tags($od_b_tel);
$od_b_hp = clean_xss_tags($od_b_hp);
$od_b_addr1 = clean_xss_tags($od_b_addr1);
$od_b_addr2 = clean_xss_tags($od_b_addr2);
$od_b_addr3 = clean_xss_tags($od_b_addr3);
$od_b_addr_jibeon = preg_match("/^(N|R)$/", $od_b_addr_jibeon) ? $od_b_addr_jibeon : '';
$od_memo = clean_xss_tags($od_memo);
$od_deposit_name = clean_xss_tags($od_deposit_name);
// 주문서에 입력
$sql = " insert {$g5['g5_shop_order_table']}

View File

@ -0,0 +1,18 @@
<?php
if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가
// add_stylesheet('css 구문', 출력순서); 숫자가 작을 수록 먼저 출력됨
add_stylesheet('<link rel="stylesheet" href="'.$content_skin_url.'/style.css">', 0);
?>
<article id="ctt" class="ctt_<?php echo $co_id; ?>">
<header>
<h1><?php echo $g5['title']; ?></h1>
</header>
<div id="ctt_con">
<?php echo $str; ?>
</div>
</article>

View File

@ -0,0 +1,8 @@
@charset "utf-8";
/* 내용관리 */
#ctt {margin:10px 0;padding:10px;border-top:1px solid #e9e9e9;border-bottom:1px solid #e9e9e9}
.ctt_admin {margin:0 5px;text-align:right}
#ctt header h1 {position:absolute;font-size:0;line-height:0;overflow:hidden}
#ctt_con {padding:10px 0}
.ctt_img {text-align:center}

View File

@ -6,7 +6,7 @@ add_stylesheet('<link rel="stylesheet" href="'.$latest_skin_url.'/style.css">',
?>
<div class="lt">
<a href="<?php echo G5_BBS_URL ?>/board.php?bo_table=<?php echo $bo_table ?>" class="lt_title" onclick="return false"><strong><?php echo $bo_subject ?></strong></a>
<a href="<?php echo G5_BBS_URL ?>/board.php?bo_table=<?php echo $bo_table ?>" class="lt_title"><strong><?php echo $bo_subject ?></strong></a>
<ul>
<?php for ($i=0; $i<count($list); $i++) { ?>
<li>

View File

@ -184,13 +184,13 @@ add_stylesheet('<link rel="stylesheet" href="'.G5_SHOP_CSS_URL.'/style.css">', 0
<?php if($it['it_buy_min_qty']) { ?>
<tr>
<th>최소구매수량</th>
<td><?php echo number_format($it['it_buy_min_qty']); ?> 개<td>
<td><?php echo number_format($it['it_buy_min_qty']); ?> 개</td>
</tr>
<?php } ?>
<?php if($it['it_buy_max_qty']) { ?>
<tr>
<th>최대구매수량</th>
<td><?php echo number_format($it['it_buy_max_qty']); ?> 개<td>
<td><?php echo number_format($it['it_buy_max_qty']); ?> 개</td>
</tr>
<?php } ?>
</tbody>

View File

@ -5,24 +5,18 @@ if (!defined("_GNUBOARD_")) exit; // 개별 페이지 접근 불가
add_stylesheet('<link rel="stylesheet" href="'.G5_MSHOP_SKIN_URL.'/style.css">', 0);
?>
<script src="<?php echo G5_JS_URL ?>/jquery.fancylist.js"></script>
<!-- 개인결제진열 시작 { -->
<?php
for ($i=1; $row=sql_fetch_array($result); $i++) {
if ($list_mod >= 2) { // 1줄 이미지 : 2개 이상
if ($i%$list_mod == 0) $sct_last = ' sct_last'; // 줄 마지막
else if ($i%$list_mod == 1) $sct_last = ' sct_clear'; // 줄 첫번째
else $sct_last = '';
} else { // 1줄 이미지 : 1개
$sct_last = 'sct_clear';
}
if ($i == 1) {
echo "<ul class=\"sct sct_pv\">\n";
for ($i=0; $row=sql_fetch_array($result); $i++) {
if ($i == 0) {
echo "<ul id=\"sct_wrap\" class=\"sct sct_pv\">\n";
}
$href = G5_SHOP_URL.'/personalpayform.php?pp_id='.$row['pp_id'].'&amp;page='.$page;
?>
<li class="sct_li<?php echo $sct_last; ?>" style="width:<?php echo $img_width; ?>px">
<li class="sct_li" style="width:<?php echo $img_width; ?>px">
<div class="sct_img"><a href="<?php echo $href; ?>" class="sct_a"><img src="<?php echo G5_MSHOP_SKIN_URL; ?>/img/personal.jpg" alt=""></a></div>
<div class="sct_txt"><a href="<?php echo $href; ?>" class="sct_a"><?php echo get_text($row['pp_name']).'님 개인결제'; ?></a></div>
<div class="sct_cost"><?php echo display_price($row['pp_price']); ?></div>
@ -30,8 +24,14 @@ for ($i=1; $row=sql_fetch_array($result); $i++) {
<?php
}
if ($i > 1) echo "</ul>\n";
if ($i > 0) echo "</ul>\n";
if($i == 1) echo "<p class=\"sct_noitem\">등록된 개인결제가 없습니다.</p>\n";
if($i == 0) echo "<p class=\"sct_noitem\">등록된 개인결제가 없습니다.</p>\n";
?>
<!-- } 개인결제진열 끝 -->
<!-- } 개인결제진열 끝 -->
<script>
$(function() {
$("#sct_wrap").fancyList("li.sct_li", "sct_clear");
});
</script>

View File

@ -52,6 +52,15 @@ if(G5_DEVICE_BUTTON_DISPLAY && G5_IS_MOBILE) {
if ($config['cf_analytics']) {
echo $config['cf_analytics'];
}
?>
<script>
$(function() {
// 폰트 리사이즈 쿠키있으면 실행
font_resize("container", get_cookie("ck_font_resize_rmv_class"), get_cookie("ck_font_resize_add_class"));
});
</script>
<?php
include_once(G5_PATH."/tail.sub.php");
?>

View File

@ -38,9 +38,15 @@ if(!sql_query(" select it_sc_type from {$g5['g5_shop_cart_table']} limit 1 ", fa
where ct_id = '{$row['ct_id']}' ";
sql_query($sql);
}
echo '<p>장바구니 테이블 업그레이드 완료!</p>';
}
// 장바구니 상품 주문폼 등록시간 기록 필드 추가
if(!sql_query(" select ct_select_time from {$g5['g5_shop_cart_table']} limit 1 ", false)) {
sql_query(" ALTER TABLE `{$g5['g5_shop_cart_table']}`
ADD `ct_select_time` datetime NOT NULL DEFAULT '0000-00-00 00:00:00' AFTER `ct_select` ", true);
}
echo '<p>장바구니 테이블 업그레이드 완료!</p>';
include_once(G5_PATH.'/tail.sub.php');
?>

View File

@ -2,6 +2,7 @@
# kcp 본인확인 실행 파일
chmod 755 plugin/kcpcert/bin/ct_cli
chmod 755 plugin/kcpcert/bin/ct_cli_x64
# okname 본인확인 실행 파일
chmod 755 plugin/okname/bin/okname

View File

@ -15,7 +15,7 @@
<script type="text/javascript" src="./js/SE2B_Configuration_General.js" charset="utf-8"></script> <!-- 설정 파일 -->
<script type="text/javascript" src="./js/SE2BasicCreator.js?v3" charset="utf-8"></script>
<script src='js/smarteditor2.min.js' charset='utf-8'></script>
<script src='js/smarteditor2.min.js?v2' charset='utf-8'></script>
<script src='photo_uploader/plugin/hp_SE2M_AttachQuickPhoto.js' charset='utf-8'></script>
</head>
<body>

View File

@ -12138,9 +12138,19 @@ nhn.husky.SE2M_Hyperlink = jindo.$Class({
var sResult;
if (sWWWURL){
sResult = '<a href="http://'+sWWWURL+'">'+sURL+'</a>';
var exp = /([-a-zA-Z0-9@:%_\+.~#?&//=]{2,256}\.[a-z]{2,4}\b(\/[-a-zA-Z0-9@:%_\+.~#?&//=]*)?)/gi;
if( sWWWURL.match(exp) ){
sResult = sWWWURL.replace(exp, '<a href="http://$1" >$1</a>');
} else {
sResult = '<a href="http://'+sWWWURL+'">'+sURL+'</a>';
}
} else {
sResult = '<a href="'+sHTTPURL+'">'+sURL+'</a>';
var exp = /(\b(https?|ftp|file):\/\/[-A-Z0-9+&@#\/%?=~_|!:,.;]*[-A-Z0-9+&@#\/%=~_|])/ig;
if( sHTTPURL.match(exp) ){
sResult = sHTTPURL.replace(exp,"<a href='$1'>$1</a>");
} else {
sResult = '<a href="'+sHTTPURL+'">'+sURL+'</a>';
}
}
return sBreaker+sResult;

File diff suppressed because one or more lines are too long

View File

@ -26,11 +26,11 @@ function make_mp3()
file_put_contents(G5_PATH.'/'.$mp3_file, $contents);
// 지난 캡챠 파일 삭제 (100번중에 한번만 실행)
// 지난 캡챠 파일 삭제
if (rand(0,99) == 0) {
foreach (glob(G5_PATH.'/data/cache/kcaptcha-*.mp3') as $file) {
if (filemtime($file) + 86400 < G5_SERVER_TIME) {
unset($file);
@unlink($file);
}
}
}

BIN
plugin/kcpcert/bin/ct_cli_x64 Executable file

Binary file not shown.

View File

@ -101,8 +101,12 @@ if( $cert_enc_use == "Y" )
if ( $ct_cert->check_valid_hash ( $home_dir , $dn_hash , $veri_str ) != "1" )
{
// 검증 실패시 처리 영역
if(PHP_INT_MAX == 2147483647) // 32-bit
$bin_exe = '/bin/ct_cli';
else
$bin_exe = '/bin/ct_cli_x64';
echo "dn_hash 변조 위험있음 (".G5_KCPCERT_PATH."/bin/ct_cli 파일에 실행권한이 있는지 확인하세요.)";
echo "dn_hash 변조 위험있음 (".G5_KCPCERT_PATH.$bin_exe." 파일에 실행권한이 있는지 확인하세요.)";
exit;
// 오류 처리 ( dn_hash 변조 위험있음)
}

View File

@ -16,19 +16,19 @@ class C_CT_CLI
// 변수 초기화 영역
function mf_clear()
{
$this->m_dec_data="";
$this->m_dec_data="";
}
// hash 처리 영역
function make_hash_data( $home_dir , $str )
{
$hash_data = $this -> mf_exec( $home_dir . "/bin/ct_cli" ,
$hash_data = $this -> mf_exec( $home_dir . "/bin/ct_cli" ,
"lf_CT_CLI__make_hash_data",
$str
);
if ( $hash_data == "" ) { $hash_data = "HS01"; }
return $hash_data;
}
@ -49,7 +49,12 @@ class C_CT_CLI
// 암호화 인증데이터 복호화
function decrypt_enc_cert ( $home_dir, $site_cd , $cert_no , $enc_cert_data , $opt)
{
$dec_data = $this -> mf_exec( $home_dir . "/bin/ct_cli" ,
if(PHP_INT_MAX == 2147483647) // 32-bit
$bin_exe = $home_dir . '/bin/ct_cli';
else
$bin_exe = $home_dir . '/bin/ct_cli_x64';
$dec_data = $this -> mf_exec( $bin_exe ,
"lf_CT_CLI__decrypt_enc_cert" ,
$site_cd ,
$cert_no ,

67
shop/ajax.orderstock.php Normal file
View File

@ -0,0 +1,67 @@
<?php
include_once('./_common.php');
if (get_session('ss_direct'))
$tmp_cart_id = get_session('ss_cart_direct');
else
$tmp_cart_id = get_session('ss_cart_id');
if (get_cart_count($tmp_cart_id) == 0)// 장바구니에 담기
die("장바구니가 비어 있습니다.\n\n이미 주문하셨거나 장바구니에 담긴 상품이 없는 경우입니다.");
$keep_term = $default['de_cart_keep_term'];
if(!$keep_term)
$keep_term = 15; // 기본값 15일
if(defined('G5_CART_STOCK_LIMIT'))
$cart_stock_limit = G5_CART_STOCK_LIMIT;
else
$cart_stock_limit = 3;
// 기준 시간을 초과한 경우 체크
if($cart_stock_limit > 0) {
if($cart_stock_limit > $keep_term * 24)
$cart_stock_limit = $keep_term * 24;
$stocktime = G5_SERVER_TIME - (3600 * $cart_stock_limit);
$sql = " select count(*) as cnt
from {$g5['g5_shop_cart_table']}
where od_id = '$tmp_cart_id'
and ct_status = '쇼핑'
and ct_select = '1'
and UNIX_TIMESTAMP(ct_select_time) > '$stocktime' ";
$row = sql_fetch($sql);
if(!$row['cnt'])
die("주문 요청 때까지 ".$cart_stock_limit."시간 이상 경과되어 주문 상품이 초기화 됐습니다.\n\n 장바구니에서 주문하실 상품을 다시 확인해 주십시오.");
}
// 재고체크
$sql = " select *
from {$g5['g5_shop_cart_table']}
where od_id = '$tmp_cart_id'
and ct_select = '1'
and ct_status = '쇼핑' ";
$result = sql_query($sql);
for($i=0; $row=sql_fetch_array($result); $i++) {
$ct_qty = $row['ct_qty'];
if(!$row['io_id'])
$it_stock_qty = get_it_stock_qty($row['it_id']);
else
$it_stock_qty = get_option_stock_qty($row['it_id'], $row['io_id'], $row['io_type']);
if ($ct_qty > $it_stock_qty)
{
$item_option = $row['it_name'];
if($row['io_id'])
$item_option .= '('.$row['ct_option'].')';
die($item_option." 의 재고수량이 부족합니다.\n\n현재 재고수량 : " . number_format($it_stock_qty) . "");
}
}
die("");
?>

View File

@ -37,9 +37,48 @@ if($act == "buy")
$ct_chk = $_POST['ct_chk'][$i];
if($ct_chk) {
$it_id = $_POST['it_id'][$i];
// 주문 상품의 재고체크
$sql = " select ct_qty, it_name, ct_option, io_id, io_type
from {$g5['g5_shop_cart_table']}
where od_id = '$tmp_cart_id'
and it_id = '$it_id' ";
$result = sql_query($sql);
for($k=0; $row=sql_fetch_array($result); $k++) {
$sql = " select SUM(ct_qty) as cnt from {$g5['g5_shop_cart_table']}
where od_id <> '$tmp_cart_id'
and it_id = '$it_id'
and io_id = '{$row['io_id']}'
and io_type = '{$row['io_type']}'
and ct_stock_use = 0
and ct_status = '쇼핑'
and ct_select = '1' ";
$sum = sql_fetch($sql);
$sum_qty = $sum['cnt'];
// 재고 구함
$ct_qty = $row['ct_qty'];
if(!$row['io_id'])
$it_stock_qty = get_it_stock_qty($it_id);
else
$it_stock_qty = get_option_stock_qty($it_id, $row['io_id'], $row['io_type']);
if ($ct_qty + $sum_qty > $it_stock_qty)
{
$item_option = $row['it_name'];
if($row['io_id'])
$item_option .= '('.$row['ct_option'].')';
alert($item_option." 의 재고수량이 부족합니다.\\n\\n현재 재고수량 : " . number_format($it_stock_qty - $sum_qty) . "");
}
}
$sql = " update {$g5['g5_shop_cart_table']}
set ct_select = '1'
where it_id = '$it_id' and od_id = '$tmp_cart_id' ";
set ct_select = '1',
ct_select_time = '".G5_TIME_YMDHIS."'
where od_id = '$tmp_cart_id'
and it_id = '$it_id' ";
sql_query($sql);
}
}
@ -144,58 +183,64 @@ else // 장바구니에 담기
$lst_count++;
}
//--------------------------------------------------------
// 재고 검사
//--------------------------------------------------------
// 이미 장바구니에 있는 같은 상품의 수량합계를 구한다.
for($k=0; $k<$opt_count; $k++) {
$io_id = $_POST['io_id'][$it_id][$k];
$io_type = $_POST['io_type'][$it_id][$k];
$io_value = $_POST['io_value'][$it_id][$k];
$sql = " select SUM(ct_qty) as cnt from {$g5['g5_shop_cart_table']}
where od_id <> '$tmp_cart_id'
and it_id = '$it_id'
and io_id = '$io_id'
and io_type = '$io_type'
and ct_stock_use = 0
and ct_status = '쇼핑' ";
$row = sql_fetch($sql);
$sum_qty = $row['cnt'];
// 재고 구함
$ct_qty = $_POST['ct_qty'][$it_id][$k];
if(!$io_id)
$it_stock_qty = get_it_stock_qty($it_id);
else
$it_stock_qty = get_option_stock_qty($it_id, $io_id, $io_type);
if ($ct_qty + $sum_qty > $it_stock_qty)
{
alert($io_value." 의 재고수량이 부족합니다.\\n\\n현재 재고수량 : " . number_format($it_stock_qty - $sum_qty) . "");
}
}
//--------------------------------------------------------
// 바로구매에 있던 장바구니 자료를 지운다.
if($i == 0 && $sw_direct)
sql_query(" delete from {$g5['g5_shop_cart_table']} where od_id = '$tmp_cart_id' and ct_direct = 1 ", false);
//--------------------------------------------------------
// 재고 검사, 바로구매일 때만 체크
//--------------------------------------------------------
// 이미 주문폼에 있는 같은 상품의 수량합계를 구한다.
if($sw_direct) {
for($k=0; $k<$opt_count; $k++) {
$io_id = $_POST['io_id'][$it_id][$k];
$io_type = $_POST['io_type'][$it_id][$k];
$io_value = $_POST['io_value'][$it_id][$k];
$sql = " select SUM(ct_qty) as cnt from {$g5['g5_shop_cart_table']}
where od_id <> '$tmp_cart_id'
and it_id = '$it_id'
and io_id = '$io_id'
and io_type = '$io_type'
and ct_stock_use = 0
and ct_status = '쇼핑'
and ct_select = '1' ";
$row = sql_fetch($sql);
$sum_qty = $row['cnt'];
// 재고 구함
$ct_qty = $_POST['ct_qty'][$it_id][$k];
if(!$io_id)
$it_stock_qty = get_it_stock_qty($it_id);
else
$it_stock_qty = get_option_stock_qty($it_id, $io_id, $io_type);
if ($ct_qty + $sum_qty > $it_stock_qty)
{
alert($io_value." 의 재고수량이 부족합니다.\\n\\n현재 재고수량 : " . number_format($it_stock_qty - $sum_qty) . "");
}
}
}
//--------------------------------------------------------
// 옵션수정일 때 기존 장바구니 자료를 먼저 삭제
if($act == 'optionmod')
sql_query(" delete from {$g5['g5_shop_cart_table']} where od_id = '$tmp_cart_id' and it_id = '$it_id' ");
// 장바구니에 Insert
// 바로구매일 경우 장바구니가 체크된것으로 강제 설정
if($sw_direct)
if($sw_direct) {
$ct_select = 1;
else
$ct_select_time = G5_TIME_YMDHIS;
} else {
$ct_select = 0;
$ct_select_time = '0000-00-00 00:00:00';
}
// 장바구니에 Insert
$comma = '';
$sql = " INSERT INTO {$g5['g5_shop_cart_table']}
( od_id, mb_id, it_id, it_name, it_sc_type, it_sc_method, it_sc_price, it_sc_minimum, it_sc_qty, ct_status, ct_price, ct_point, ct_point_use, ct_stock_use, ct_option, ct_qty, ct_notax, io_id, io_type, io_price, ct_time, ct_ip, ct_send_cost, ct_direct, ct_select )
( od_id, mb_id, it_id, it_name, it_sc_type, it_sc_method, it_sc_price, it_sc_minimum, it_sc_qty, ct_status, ct_price, ct_point, ct_point_use, ct_stock_use, ct_option, ct_qty, ct_notax, io_id, io_type, io_price, ct_time, ct_ip, ct_send_cost, ct_direct, ct_select, ct_select_time )
VALUES ";
for($k=0; $k<$opt_count; $k++) {
@ -224,7 +269,7 @@ else // 장바구니에 담기
}
// 동일옵션의 상품이 있으면 수량 더함
$sql2 = " select ct_id
$sql2 = " select ct_id, io_type, ct_qty
from {$g5['g5_shop_cart_table']}
where od_id = '$tmp_cart_id'
and it_id = '$it_id'
@ -232,6 +277,18 @@ else // 장바구니에 담기
and ct_status = '쇼핑' ";
$row2 = sql_fetch($sql2);
if($row2['ct_id']) {
// 재고체크
$tmp_ct_qty = $row2['ct_qty'];
if(!$io_id)
$tmp_it_stock_qty = get_it_stock_qty($it_id);
else
$tmp_it_stock_qty = get_option_stock_qty($it_id, $io_id, $row2['io_type']);
if ($tmp_ct_qty + $ct_qty > $tmp_it_stock_qty)
{
alert($io_value." 의 재고수량이 부족합니다.\\n\\n현재 재고수량 : " . number_format($tmp_it_stock_qty) . "");
}
$sql3 = " update {$g5['g5_shop_cart_table']}
set ct_qty = ct_qty + '$ct_qty'
where ct_id = '{$row2['ct_id']}' ";
@ -258,7 +315,7 @@ else // 장바구니에 담기
else if($it['it_sc_type'] > 1 && $it['it_sc_method'] == 1)
$ct_send_cost = 1; // 착불
$sql .= $comma."( '$tmp_cart_id', '{$member['mb_id']}', '{$it['it_id']}', '".addslashes($it['it_name'])."', '{$it['it_sc_type']}', '{$it['it_sc_method']}', '{$it['it_sc_price']}', '{$it['it_sc_minimum']}', '{$it['it_sc_qty']}', '쇼핑', '{$it['it_price']}', '$point', '0', '0', '$io_value', '$ct_qty', '{$it['it_notax']}', '$io_id', '$io_type', '$io_price', '".G5_TIME_YMDHIS."', '$REMOTE_ADDR', '$ct_send_cost', '$sw_direct', '$ct_select' )";
$sql .= $comma."( '$tmp_cart_id', '{$member['mb_id']}', '{$it['it_id']}', '".addslashes($it['it_name'])."', '{$it['it_sc_type']}', '{$it['it_sc_method']}', '{$it['it_sc_price']}', '{$it['it_sc_minimum']}', '{$it['it_sc_qty']}', '쇼핑', '{$it['it_price']}', '$point', '0', '0', '$io_value', '$ct_qty', '{$it['it_notax']}', '$io_id', '$io_type', '$io_price', '".G5_TIME_YMDHIS."', '$REMOTE_ADDR', '$ct_send_cost', '$sw_direct', '$ct_select', '$ct_select_time' )";
$comma = ' , ';
$ct_count++;
}

View File

@ -4,6 +4,9 @@ include_once('./_common.php');
// add_javascript('js 구문', 출력순서); 숫자가 작을 수록 먼저 출력됨
add_javascript(G5_POSTCODE_JS, 0); //다음 주소 js
// 주문상품 재고체크 js 파일
add_javascript('<script src="'.G5_JS_URL.'/shop.order.js"></script>', 0);
if (G5_IS_MOBILE) {
include_once(G5_MSHOP_PATH.'/orderform.php');
return;
@ -1145,6 +1148,13 @@ function calculate_tax()
function forderform_check(f)
{
// 재고체크
var stock_msg = order_stock_check();
if(stock_msg != "") {
alert(stock_msg);
return false;
}
errmsg = "";
errfld = "";
var deffld = "";

View File

@ -409,6 +409,24 @@ if($default['de_tax_flag_use']) {
$od_pg = $default['de_pg_service'];
$od_email = get_email_address($od_email);
$od_name = clean_xss_tags($od_name);
$od_tel = clean_xss_tags($od_tel);
$od_hp = clean_xss_tags($od_hp);
$od_zip1 = preg_replace('/[^0-9]/', '', $od_zip1);
$od_zip2 = preg_replace('/[^0-9]/', '', $od_zip2);
$od_addr1 = clean_xss_tags($od_addr1);
$od_addr2 = clean_xss_tags($od_addr2);
$od_addr3 = clean_xss_tags($od_addr3);
$od_addr_jibeon = preg_match("/^(N|R)$/", $od_addr_jibeon) ? $od_addr_jibeon : '';
$od_b_name = clean_xss_tags($od_b_name);
$od_b_tel = clean_xss_tags($od_b_tel);
$od_b_hp = clean_xss_tags($od_b_hp);
$od_b_addr1 = clean_xss_tags($od_b_addr1);
$od_b_addr2 = clean_xss_tags($od_b_addr2);
$od_b_addr3 = clean_xss_tags($od_b_addr3);
$od_b_addr_jibeon = preg_match("/^(N|R)$/", $od_b_addr_jibeon) ? $od_b_addr_jibeon : '';
$od_memo = clean_xss_tags($od_memo);
$od_deposit_name = clean_xss_tags($od_deposit_name);
// 주문서에 입력
$sql = " insert {$g5['g5_shop_order_table']}

View File

@ -0,0 +1,17 @@
<?php
if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가
// add_stylesheet('css 구문', 출력순서); 숫자가 작을 수록 먼저 출력됨
add_stylesheet('<link rel="stylesheet" href="'.$content_skin_url.'/style.css">', 0);
?>
<article id="ctt" class="ctt_<?php echo $co_id; ?>">
<header>
<h1><?php echo $g5['title']; ?></h1>
</header>
<div id="ctt_con">
<?php echo $str; ?>
</div>
</article>

View File

@ -0,0 +1,8 @@
@charset "utf-8";
/* 내용관리 */
#ctt {margin:10px 0;padding:10px;border:1px solid #e9e9e9}
.ctt_admin {text-align:right}
#ctt header h1 {position:absolute;font-size:0;line-height:0;overflow:hidden}
#ctt_con {padding:10px 0}
.ctt_img {text-align:center}

View File

@ -186,13 +186,13 @@ add_stylesheet('<link rel="stylesheet" href="'.G5_SHOP_CSS_URL.'/style.css">', 0
<?php if($it['it_buy_min_qty']) { ?>
<tr>
<th>최소구매수량</th>
<td><?php echo number_format($it['it_buy_min_qty']); ?> 개<td>
<td><?php echo number_format($it['it_buy_min_qty']); ?> 개</td>
</tr>
<?php } ?>
<?php if($it['it_buy_max_qty']) { ?>
<tr>
<th>최대구매수량</th>
<td><?php echo number_format($it['it_buy_max_qty']); ?> 개<td>
<td><?php echo number_format($it['it_buy_max_qty']); ?> 개</td>
</tr>
<?php } ?>
</tbody>