Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
c74c04bf16 | ||
|
|
816b658252 | ||
|
|
3d668f1a1d | ||
|
|
fa780a5aa3 | ||
|
|
f029210122 | ||
|
|
54080f516a | ||
|
|
a42041a645 | ||
|
|
0b74f2ec32 | ||
|
|
b2041758f4 | ||
|
|
469e1ff890 | ||
|
|
abe801a7ac | ||
|
|
f283e6c3d9 | ||
|
|
50612db75a | ||
|
|
63217a6a67 | ||
|
|
688440eb18 | ||
|
|
a3e8c97ef5 | ||
|
|
7dea8e6866 | ||
|
|
ebf00b6834 | ||
|
|
6090b0de18 | ||
|
|
0b11cee221 | ||
|
|
ce7de94486 | ||
|
|
fc0f67d4c2 | ||
|
|
f75202786e | ||
|
|
5c73de46a9 | ||
|
|
e14e392488 | ||
|
|
9d0ead3140 | ||
|
|
c4544671a2 | ||
|
|
38308f887b | ||
|
|
bdd52dae6f | ||
|
|
ae515803f6 | ||
|
|
5d31a5505d | ||
|
|
99087027a2 | ||
|
|
6b5ca5c5e6 | ||
|
|
0731b57c80 | ||
|
|
8d7bdb331d | ||
|
|
1accc143ec | ||
|
|
8e87434e99 | ||
|
|
b3e53e3c78 | ||
|
|
8e20e39e3f | ||
|
|
c7de15f7f5 | ||
|
|
4595fefe7d | ||
|
|
e3bfefab55 | ||
|
|
c024c7552b | ||
|
|
8ed56ec293 | ||
|
|
ed3143b6fd | ||
|
|
1491ae6e17 | ||
|
|
b29ced4553 | ||
|
|
77064a40c6 | ||
|
|
52ed0f3d64 | ||
|
|
d0e101b3e8 | ||
|
|
3f97138715 | ||
|
|
d76b371a58 | ||
|
|
42bf3d6044 | ||
|
|
1d89af99b0 | ||
|
|
81635f7737 | ||
|
|
e1e20f2dc2 | ||
|
|
0260fb9e33 | ||
|
|
d9e6342c09 | ||
|
|
8abf0dfcae | ||
|
|
c2ce0f1d95 | ||
|
|
4183ae5a42 | ||
|
|
8468a87f26 | ||
|
|
fdbbe2d307 | ||
|
|
9bc012f7f8 | ||
|
|
76bbc41043 | ||
|
|
bda235bf01 | ||
|
|
57e41498bc | ||
|
|
a58bc5d2fb | ||
|
|
ff9f5ee936 | ||
|
|
69e37cbec9 | ||
|
|
f631b3dca7 | ||
|
|
e3a7dfd319 | ||
|
|
94cd7b2979 | ||
|
|
6b293876da | ||
|
|
cf3570586a | ||
|
|
d8df299366 | ||
|
|
b3b92d4e1c | ||
|
|
f27e4c3c0c | ||
|
|
bd33a31a10 | ||
|
|
8ac1d25242 | ||
|
|
cfc6804ee5 | ||
|
|
395725a2b5 | ||
|
|
e928df8a8c | ||
|
|
911503e055 | ||
|
|
cc2524e3a4 | ||
|
|
c82add0eca | ||
|
|
d4a63cd105 | ||
|
|
58f5e9b5cd | ||
|
|
74798b93c1 | ||
|
|
178886c87a | ||
|
|
01c5771c16 | ||
|
|
0e9a234dfb | ||
|
|
3fa43d55af | ||
|
|
7daa07b53f | ||
|
|
7a40546c4a | ||
|
|
fefccdb353 | ||
|
|
7a166ea47b | ||
|
|
907bdfc66e | ||
|
|
d8e161eaea | ||
|
|
8ea99dda00 | ||
|
|
3da6e9ff60 | ||
|
|
b986729466 |
+1
-1
@@ -9,7 +9,7 @@ test.php
|
||||
log
|
||||
g5_tree
|
||||
cheditor5.*/
|
||||
ckeditor*/
|
||||
!ckeditor*/
|
||||
log/
|
||||
g5_tree/
|
||||
.vscode/
|
||||
|
||||
@@ -111,7 +111,9 @@ function imageview(id, w, h)
|
||||
|
||||
<div id="tnb">
|
||||
<ul>
|
||||
<?php if (defined('G5_USE_SHOP') && G5_USE_SHOP) { ?>
|
||||
<li class="tnb_li"><a href="<?php echo G5_SHOP_URL ?>/" class="tnb_shop" target="_blank" title="쇼핑몰 바로가기">쇼핑몰 바로가기</a></li>
|
||||
<?php } ?>
|
||||
<li class="tnb_li"><a href="<?php echo G5_URL ?>/" class="tnb_community" target="_blank" title="커뮤니티 바로가기">커뮤니티 바로가기</a></li>
|
||||
<li class="tnb_li"><a href="<?php echo G5_ADMIN_URL ?>/service.php" class="tnb_service">부가서비스</a></li>
|
||||
<li class="tnb_li"><button type="button" class="tnb_mb_btn">관리자<span class="./img/btn_gnb.png">메뉴열기</span></button>
|
||||
|
||||
+1
-1
@@ -83,7 +83,7 @@ function get_skin_dir($skin, $skin_path=G5_SKIN_PATH)
|
||||
|
||||
$dirname = $skin_path.'/'.$skin.'/';
|
||||
if(!is_dir($dirname))
|
||||
return;
|
||||
return array();
|
||||
|
||||
$handle = opendir($dirname);
|
||||
while ($file = readdir($handle)) {
|
||||
|
||||
+3
-1
@@ -1,7 +1,9 @@
|
||||
<?php
|
||||
if (!defined('_GNUBOARD_')) exit;
|
||||
|
||||
$print_version = defined('G5_YOUNGCART_VER') ? 'YoungCart Version '.G5_YOUNGCART_VER : 'Version '.G5_GNUBOARD_VER;
|
||||
// 그누보드5.4.5.5 버전과 영카트5.4.5.5.1 버전이 통합됨에 따라 그누보드 버전만 표시
|
||||
// $print_version = defined('G5_YOUNGCART_VER') ? 'YoungCart Version '.G5_YOUNGCART_VER : 'Version '.G5_GNUBOARD_VER;
|
||||
$print_version = 'Version '.G5_GNUBOARD_VER;
|
||||
?>
|
||||
|
||||
<noscript>
|
||||
|
||||
+2
-3
@@ -11,8 +11,6 @@ if (!$row['cnt'])
|
||||
alert('게시판그룹이 한개 이상 생성되어야 합니다.', './boardgroup_form.php');
|
||||
|
||||
$html_title = '게시판';
|
||||
$reaonly = '';
|
||||
$required_valid = '';
|
||||
|
||||
if (!isset($board['bo_device'])) {
|
||||
// 게시판 사용 필드 추가
|
||||
@@ -142,6 +140,7 @@ run_event('adm_board_form_before', $board, $w);
|
||||
$required = "";
|
||||
$readonly = "";
|
||||
$sound_only = "";
|
||||
$required_valid = "";
|
||||
if ($w == '') {
|
||||
|
||||
$html_title .= ' 생성';
|
||||
@@ -1062,7 +1061,7 @@ $pg_anchor = '<ul class="anchor">
|
||||
<th scope="row"><label for="bo_gallery_cols">갤러리 이미지 수<strong class="sound_only">필수</strong></label></th>
|
||||
<td>
|
||||
<?php echo help('갤러리 형식의 게시판 목록에서 이미지를 한줄에 몇장씩 보여 줄 것인지를 설정하는 값') ?>
|
||||
<?php echo get_member_level_select('bo_gallery_cols', 1, 10, $board['bo_gallery_cols']); ?>
|
||||
<input type="text" name="bo_gallery_cols" value="<?php echo $board['bo_gallery_cols'] ?>" id="bo_gallery_cols" required class="required numeric frm_input" size="4">
|
||||
</td>
|
||||
<td class="td_grpset">
|
||||
<input type="checkbox" name="chk_grp_gallery_cols" value="1" id="chk_grp_gallery_cols">
|
||||
|
||||
@@ -1530,4 +1530,13 @@ if($config['cf_cert_use']) {
|
||||
}
|
||||
}
|
||||
|
||||
if (stripos($config['cf_image_extension'], "webp") !== false) {
|
||||
if (!function_exists("imagewebp")) {
|
||||
echo '<script>'.PHP_EOL;
|
||||
echo 'alert("이 서버는 webp 이미지를 지원하고 있지 않습니다.\n이미지 업로드 확장자에서 webp 확장자를 제거해 주십시오.\n제거하지 않으면 이미지와 관련된 오류가 발생할 수 있습니다.");'.PHP_EOL;
|
||||
echo 'document.getElementById("cf_image_extension").focus();'.PHP_EOL;
|
||||
echo '</script>'.PHP_EOL;
|
||||
}
|
||||
}
|
||||
|
||||
include_once ('./admin.tail.php');
|
||||
+25
-23
@@ -177,31 +177,33 @@ if( !$row ) {
|
||||
$is_check = true;
|
||||
}
|
||||
|
||||
// 임시저장 테이블이 없을 경우 생성
|
||||
if(!sql_query(" DESC {$g5['g5_shop_post_log_table']} ", false)) {
|
||||
sql_query(" CREATE TABLE IF NOT EXISTS `{$g5['g5_shop_post_log_table']}` (
|
||||
`log_id` int(11) NOT NULL AUTO_INCREMENT,
|
||||
`oid` bigint(20) unsigned NOT NULL,
|
||||
`mb_id` varchar(255) NOT NULL DEFAULT '',
|
||||
`post_data` text NOT NULL,
|
||||
`ol_code` varchar(255) NOT NULL DEFAULT '',
|
||||
`ol_msg` text NOT NULL,
|
||||
`ol_datetime` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
|
||||
`ol_ip` varchar(25) NOT NULL DEFAULT '',
|
||||
PRIMARY KEY (`log_id`)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8; ", true);
|
||||
if (defined('G5_USE_SHOP') && G5_USE_SHOP) {
|
||||
// 임시저장 테이블이 없을 경우 생성
|
||||
if(!sql_query(" DESC {$g5['g5_shop_post_log_table']} ", false)) {
|
||||
sql_query(" CREATE TABLE IF NOT EXISTS `{$g5['g5_shop_post_log_table']}` (
|
||||
`log_id` int(11) NOT NULL AUTO_INCREMENT,
|
||||
`oid` bigint(20) unsigned NOT NULL,
|
||||
`mb_id` varchar(255) NOT NULL DEFAULT '',
|
||||
`post_data` text NOT NULL,
|
||||
`ol_code` varchar(255) NOT NULL DEFAULT '',
|
||||
`ol_msg` text NOT NULL,
|
||||
`ol_datetime` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
|
||||
`ol_ip` varchar(25) NOT NULL DEFAULT '',
|
||||
PRIMARY KEY (`log_id`)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8; ", true);
|
||||
|
||||
$is_check = true;
|
||||
}
|
||||
|
||||
$result = sql_query("describe `{$g5['g5_shop_post_log_table']}`");
|
||||
while ($row = sql_fetch_array($result)){
|
||||
if( $row['Field'] === 'ol_msg' && $row['Type'] === 'varchar(255)' ){
|
||||
sql_query("ALTER TABLE `{$g5['g5_shop_post_log_table']}` MODIFY ol_msg TEXT NOT NULL;", false);
|
||||
sql_query("ALTER TABLE `{$g5['g5_shop_post_log_table']}` DROP PRIMARY KEY;", false);
|
||||
sql_query("ALTER TABLE `{$g5['g5_shop_post_log_table']}` ADD `log_id` int(11) NOT NULL AUTO_INCREMENT, ADD PRIMARY KEY (`log_id`);", false);
|
||||
$is_check = true;
|
||||
break;
|
||||
}
|
||||
|
||||
$result = sql_query("describe `{$g5['g5_shop_post_log_table']}`");
|
||||
while ($row = sql_fetch_array($result)){
|
||||
if( $row['Field'] === 'ol_msg' && $row['Type'] === 'varchar(255)' ){
|
||||
sql_query("ALTER TABLE `{$g5['g5_shop_post_log_table']}` MODIFY ol_msg TEXT NOT NULL;", false);
|
||||
sql_query("ALTER TABLE `{$g5['g5_shop_post_log_table']}` DROP PRIMARY KEY;", false);
|
||||
sql_query("ALTER TABLE `{$g5['g5_shop_post_log_table']}` ADD `log_id` int(11) NOT NULL AUTO_INCREMENT, ADD PRIMARY KEY (`log_id`);", false);
|
||||
$is_check = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
+3
-1
@@ -65,9 +65,11 @@ include_once (G5_ADMIN_PATH.'/admin.head.php');
|
||||
<td>
|
||||
<?php echo help("커뮤니티에 표시될 것인지 쇼핑몰에 표시될 것인지를 설정합니다."); ?>
|
||||
<select name="nw_division" id="nw_division">
|
||||
<option value="both"<?php echo get_selected($nw['nw_division'], 'both', true); ?>>커뮤니티와 쇼핑몰</option>
|
||||
<option value="comm"<?php echo get_selected($nw['nw_division'], 'comm'); ?>>커뮤니티</option>
|
||||
<?php if (defined('G5_USE_SHOP') && G5_USE_SHOP) { ?>
|
||||
<option value="both"<?php echo get_selected($nw['nw_division'], 'both', true); ?>>커뮤니티와 쇼핑몰</option>
|
||||
<option value="shop"<?php echo get_selected($nw['nw_division'], 'shop'); ?>>쇼핑몰</option>
|
||||
<?php } ?>
|
||||
</select>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@@ -181,7 +181,7 @@ if(!sql_query(" DESC {$g5['g5_shop_post_log_table']} ", false)) {
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8; ", false);
|
||||
}
|
||||
|
||||
|
||||
|
||||
// 현금영수증 발급 조건 추가
|
||||
if(!isset($default['de_taxsave_types'])) {
|
||||
sql_query(" ALTER TABLE `{$g5['g5_shop_default_table']}`
|
||||
@@ -1602,7 +1602,7 @@ function byte_check(el_cont, el_byte)
|
||||
<input type="password" name="cf_icode_pw" value="<?php echo get_sanitize_input($config['cf_icode_pw']); ?>" class="frm_input" id="cf_icode_pw">
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="icode_old_version" <?php if(!(isset($userinfo['payment']) && $userinfo['payment'])){ echo 'cf_tr_hide'; } ?>">
|
||||
<tr class="icode_old_version <?php if(!(isset($userinfo['payment']) && $userinfo['payment'])){ echo 'cf_tr_hide'; } ?>">
|
||||
<th scope="row">요금제<br>(구버전)</th>
|
||||
<td>
|
||||
<input type="hidden" name="cf_icode_server_ip" value="<?php echo get_sanitize_input($config['cf_icode_server_ip']); ?>">
|
||||
|
||||
@@ -1843,8 +1843,10 @@ function fitemformcheck(f)
|
||||
|
||||
if(f.it_point_type.value == "1" || f.it_point_type.value == "2") {
|
||||
var point = parseInt(f.it_point.value);
|
||||
if(point > 99) {
|
||||
if(point < 0 || point > 99) {
|
||||
alert("포인트 비율을 0과 99 사이의 값으로 입력해 주십시오.");
|
||||
f.it_point.focus();
|
||||
f.it_point.select();
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -218,6 +218,10 @@ if ($w == "" || $w == "u")
|
||||
@set_cookie("ck_origin", stripslashes($it_origin), time() + 86400*31);
|
||||
}
|
||||
|
||||
// 관련상품을 삭제한 뒤에 경고가 노출되어 등록, 수정 없이 관련상품만 삭제될 수 있는 오류 수정 (squared2님,210617)
|
||||
// 포인트 비율 값 체크
|
||||
if(($it_point_type == 1 || $it_point_type == 2) && ($it_point < 0 || $it_point > 99))
|
||||
alert("포인트 비율을 0과 99 사이의 값으로 입력해 주십시오.");
|
||||
|
||||
// 관련상품을 우선 삭제함
|
||||
sql_query(" delete from {$g5['g5_shop_item_relation_table']} where it_id = '$it_id' ");
|
||||
@@ -287,10 +291,6 @@ for($i=0; $i<$count_ii_article; $i++) {
|
||||
}
|
||||
$it_info_value = addslashes(serialize($value_array));
|
||||
|
||||
// 포인트 비율 값 체크
|
||||
if(($it_point_type == 1 || $it_point_type == 2) && $it_point > 99)
|
||||
alert("포인트 비율을 0과 99 사이의 값으로 입력해 주십시오.");
|
||||
|
||||
$it_name = isset($_POST['it_name']) ? strip_tags(clean_xss_attributes(trim($_POST['it_name']))) : '';
|
||||
|
||||
// KVE-2019-0708
|
||||
|
||||
@@ -178,7 +178,8 @@ function no_hp_click(val)
|
||||
}
|
||||
$line = 0;
|
||||
$qry = sql_query("select * from {$g5['sms5_book_table']} where 1 $sql_group $sql_search $sql_korean $sql_no_hp order by bk_no desc limit $page_start, $page_size");
|
||||
while($res = sql_fetch_array($qry))
|
||||
// while($res = sql_fetch_array($qry))
|
||||
for ($i=0; $res = sql_fetch_array($qry); $i++)
|
||||
{
|
||||
$bg = 'bg'.($line++%2);
|
||||
|
||||
|
||||
+25
-23
@@ -30,7 +30,7 @@ $qstr_device = '&mode='.$mode.'&device='.(G5_IS_MOBILE ? 'pc' : 'mobile
|
||||
$sql = " select bo_table, wr_parent from {$g5['board_new_table']} order by bn_id desc limit 1 ";
|
||||
$row = sql_fetch($sql);
|
||||
$bo_table = $row['bo_table'];
|
||||
$board = sql_fetch(" select * from {$g5['board_table']} where bo_table = '$bo_table' ");
|
||||
$board = sql_fetch(" select * from {$g5['board_table']} where bo_table = '{$bo_table}' ");
|
||||
$write_table = $g5['write_prefix'] . $bo_table;
|
||||
|
||||
// theme.config.php 미리보기 게시판 스킨이 설정돼 있다면
|
||||
@@ -100,29 +100,31 @@ for($i=1; $i<=5; $i++) {
|
||||
$default['de_mimg_width'] = (isset($tconfig['de_mimg_width']) && $tconfig['de_mimg_width']) ? $tconfig['de_mimg_width'] : $default['de_mimg_width'];
|
||||
$default['de_mimg_height'] = (isset($tconfig['de_mimg_height']) && $tconfig['de_mimg_height']) ? $tconfig['de_mimg_height'] : $default['de_mimg_height'];
|
||||
|
||||
// 테마 경로 설정
|
||||
if(defined('G5_THEME_PATH')) {
|
||||
define('G5_THEME_SHOP_PATH', G5_THEME_PATH.'/'.G5_SHOP_DIR);
|
||||
define('G5_THEME_SHOP_URL', G5_THEME_URL.'/'.G5_SHOP_DIR);
|
||||
define('G5_THEME_MSHOP_PATH', G5_THEME_PATH.'/'.G5_MOBILE_DIR.'/'.G5_SHOP_DIR);
|
||||
define('G5_THEME_MSHOP_URL', G5_THEME_URL.'/'.G5_MOBILE_DIR.'/'.G5_SHOP_DIR);
|
||||
}
|
||||
if (defined('G5_USE_SHOP') && G5_USE_SHOP) {
|
||||
// 테마 경로 설정
|
||||
if(defined('G5_THEME_PATH')) {
|
||||
define('G5_THEME_SHOP_PATH', G5_THEME_PATH.'/'.G5_SHOP_DIR);
|
||||
define('G5_THEME_SHOP_URL', G5_THEME_URL.'/'.G5_SHOP_DIR);
|
||||
define('G5_THEME_MSHOP_PATH', G5_THEME_PATH.'/'.G5_MOBILE_DIR.'/'.G5_SHOP_DIR);
|
||||
define('G5_THEME_MSHOP_URL', G5_THEME_URL.'/'.G5_MOBILE_DIR.'/'.G5_SHOP_DIR);
|
||||
}
|
||||
|
||||
// 스킨 경로 설정
|
||||
if(preg_match('#^theme/(.+)$#', $default['de_shop_skin'], $match)) {
|
||||
define('G5_SHOP_SKIN_PATH', G5_THEME_PATH.'/'.G5_SKIN_DIR.'/shop/'.$match[1]);
|
||||
define('G5_SHOP_SKIN_URL', G5_THEME_URL .'/'.G5_SKIN_DIR.'/shop/'.$match[1]);
|
||||
} else {
|
||||
define('G5_SHOP_SKIN_PATH', G5_PATH.'/'.G5_SKIN_DIR.'/shop/'.$default['de_shop_skin']);
|
||||
define('G5_SHOP_SKIN_URL', G5_URL .'/'.G5_SKIN_DIR.'/shop/'.$default['de_shop_skin']);
|
||||
}
|
||||
// 스킨 경로 설정
|
||||
if(preg_match('#^theme/(.+)$#', $default['de_shop_skin'], $match)) {
|
||||
define('G5_SHOP_SKIN_PATH', G5_THEME_PATH.'/'.G5_SKIN_DIR.'/'.G5_SHOP_DIR.'/'.$match[1]);
|
||||
define('G5_SHOP_SKIN_URL', G5_THEME_URL .'/'.G5_SKIN_DIR.'/'.G5_SHOP_DIR.'/'.$match[1]);
|
||||
} else {
|
||||
define('G5_SHOP_SKIN_PATH', G5_PATH.'/'.G5_SKIN_DIR.'/'.G5_SHOP_DIR.'/'.$default['de_shop_skin']);
|
||||
define('G5_SHOP_SKIN_URL', G5_URL .'/'.G5_SKIN_DIR.'/'.G5_SHOP_DIR.'/'.$default['de_shop_skin']);
|
||||
}
|
||||
|
||||
if(preg_match('#^theme/(.+)$#', $default['de_shop_mobile_skin'], $match)) {
|
||||
define('G5_MSHOP_SKIN_PATH', G5_THEME_MOBILE_PATH.'/'.G5_SKIN_DIR.'/shop/'.$match[1]);
|
||||
define('G5_MSHOP_SKIN_URL', G5_THEME_URL .'/'.G5_MOBILE_DIR.'/'.G5_SKIN_DIR.'/shop/'.$match[1]);
|
||||
} else {
|
||||
define('G5_MSHOP_SKIN_PATH', G5_MOBILE_PATH.'/'.G5_SKIN_DIR.'/shop/'.$default['de_shop_mobile_skin']);
|
||||
define('G5_MSHOP_SKIN_URL', G5_MOBILE_URL .'/'.G5_SKIN_DIR.'/shop/'.$default['de_shop_mobile_skin']);
|
||||
if(preg_match('#^theme/(.+)$#', $default['de_shop_mobile_skin'], $match)) {
|
||||
define('G5_MSHOP_SKIN_PATH', G5_THEME_MOBILE_PATH.'/'.G5_SKIN_DIR.'/'.G5_SHOP_DIR.'/'.$match[1]);
|
||||
define('G5_MSHOP_SKIN_URL', G5_THEME_URL .'/'.G5_MOBILE_DIR.'/'.G5_SKIN_DIR.'/'.G5_SHOP_DIR.'/'.$match[1]);
|
||||
} else {
|
||||
define('G5_MSHOP_SKIN_PATH', G5_MOBILE_PATH.'/'.G5_SKIN_DIR.'/'.G5_SHOP_DIR.'/'.$default['de_shop_mobile_skin']);
|
||||
define('G5_MSHOP_SKIN_URL', G5_MOBILE_URL .'/'.G5_SKIN_DIR.'/'.G5_SHOP_DIR.'/'.$default['de_shop_mobile_skin']);
|
||||
}
|
||||
}
|
||||
|
||||
$conf = sql_fetch(" select cf_theme from {$g5['config_table']} ");
|
||||
@@ -170,7 +172,7 @@ require_once(G5_PATH.'/head.sub.php');
|
||||
break;
|
||||
case 'view':
|
||||
$wr_id = $row['wr_parent'];
|
||||
$write = sql_fetch(" select * from $write_table where wr_id = '$wr_id' ");
|
||||
$write = sql_fetch(" select * from {$write_table} where wr_id = '{$wr_id}' ");
|
||||
include(G5_BBS_PATH.'/board.php');
|
||||
break;
|
||||
case 'shop':
|
||||
|
||||
+2
-3
@@ -11,7 +11,7 @@ for ($i=0; $i<count($filter); $i++) {
|
||||
$str = $filter[$i];
|
||||
|
||||
// 제목 필터링 (찾으면 중지)
|
||||
$subj = "";
|
||||
$subj = $cont = "";
|
||||
$pos = stripos($subject, $str);
|
||||
if ($pos !== false) {
|
||||
$subj = $str;
|
||||
@@ -19,7 +19,6 @@ for ($i=0; $i<count($filter); $i++) {
|
||||
}
|
||||
|
||||
// 내용 필터링 (찾으면 중지)
|
||||
$cont = "";
|
||||
$pos = stripos($content, $str);
|
||||
if ($pos !== false) {
|
||||
$cont = $str;
|
||||
@@ -27,4 +26,4 @@ for ($i=0; $i<count($filter); $i++) {
|
||||
}
|
||||
}
|
||||
|
||||
die("{\"subject\":\"$subj\",\"content\":\"$cont\"}");
|
||||
die("{\"subject\":\"{$subj}\",\"content\":\"{$cont}\"}");
|
||||
@@ -23,6 +23,7 @@ if (!$file['bf_file'])
|
||||
alert_close('파일 정보가 존재하지 않습니다.');
|
||||
|
||||
// JavaScript 불가일 때
|
||||
$js = (isset($_GET['js'])) ? $_GET['js'] : '';
|
||||
if($js != 'on' && $board['bo_download_point'] < 0) {
|
||||
$msg = $file['bf_source'].' 파일을 다운로드 하시면 포인트가 차감('.number_format($board['bo_download_point']).'점)됩니다.\\n포인트는 게시물당 한번만 차감되며 다음에 다시 다운로드 하셔도 중복하여 차감하지 않습니다.\\n그래도 다운로드 하시겠습니까?';
|
||||
$url1 = G5_BBS_URL.'/download.php?'.clean_query_string($_SERVER['QUERY_STRING'], false).'&js=on';
|
||||
|
||||
+23
-5
@@ -58,15 +58,33 @@ if(is_file($skin_file)) {
|
||||
|
||||
$stx = trim($stx);
|
||||
if($stx) {
|
||||
if (preg_match("/[a-zA-Z]/", $stx))
|
||||
$sql_search .= " and ( INSTR(LOWER(qa_subject), LOWER('$stx')) > 0 or INSTR(LOWER(qa_content), LOWER('$stx')) > 0 )";
|
||||
else
|
||||
$sql_search .= " and ( INSTR(qa_subject, '$stx') > 0 or INSTR(qa_content, '$stx') > 0 ) ";
|
||||
$sfl = trim($sfl);
|
||||
if ($sfl) {
|
||||
switch ($sfl) {
|
||||
case "qa_subject" :
|
||||
case "qa_content" :
|
||||
case "qa_name" :
|
||||
case "mb_id" :
|
||||
break;
|
||||
default :
|
||||
$sfl = "qa_subject";
|
||||
}
|
||||
} else {
|
||||
$sfl = "qa_subject";
|
||||
}
|
||||
$sql_search .= " and (`{$sfl}` like '%{$stx}%') ";
|
||||
}
|
||||
// $stx = trim($stx);
|
||||
// if($stx) {
|
||||
// if (preg_match("/[a-zA-Z]/", $stx))
|
||||
// $sql_search .= " and ( INSTR(LOWER(qa_subject), LOWER('$stx')) > 0 or INSTR(LOWER(qa_content), LOWER('$stx')) > 0 )";
|
||||
// else
|
||||
// $sql_search .= " and ( INSTR(qa_subject, '$stx') > 0 or INSTR(qa_content, '$stx') > 0 ) ";
|
||||
// }
|
||||
|
||||
$sql_order = " order by qa_num ";
|
||||
|
||||
$sql = " select count(*) as cnt
|
||||
$sql = " select count(*) as cnt
|
||||
$sql_common
|
||||
$sql_search ";
|
||||
$row = sql_fetch($sql);
|
||||
|
||||
@@ -12,6 +12,7 @@ $content = '';
|
||||
|
||||
$token = _token();
|
||||
set_session('ss_qa_delete_token', $token);
|
||||
set_session('ss_qa_write_token', $token);
|
||||
|
||||
$g5['title'] = $qaconfig['qa_title'];
|
||||
include_once('./qahead.php');
|
||||
|
||||
+3
-1
@@ -79,7 +79,8 @@ if(is_file($skin_file)) {
|
||||
else
|
||||
$content = "\n\n\n\n====== 이전 답변내용 =======\n";
|
||||
|
||||
$content .= get_text($write['qa_content'], 0);
|
||||
// KISA 취약점 권고사항 Stored XSS (210624)
|
||||
$content .= get_text(html_purifier($write['qa_content']), 0);
|
||||
} else {
|
||||
//$content = get_text($write['qa_content'], 0);
|
||||
|
||||
@@ -95,6 +96,7 @@ if(is_file($skin_file)) {
|
||||
$upload_max_filesize = number_format($qaconfig['qa_upload_size']) . ' 바이트';
|
||||
|
||||
$html_value = '';
|
||||
$html_checked = '';
|
||||
if (isset($write['qa_html']) && $write['qa_html']) {
|
||||
$html_checked = 'checked';
|
||||
$html_value = $write['qa_html'];
|
||||
|
||||
@@ -197,7 +197,8 @@ for ($i=1; $i<=$upload_count; $i++) {
|
||||
// image type
|
||||
if ( preg_match("/\.({$config['cf_image_extension']})$/i", $filename) ||
|
||||
preg_match("/\.({$config['cf_flash_extension']})$/i", $filename) ) {
|
||||
if ($timg['2'] < 1 || $timg['2'] > 16)
|
||||
// webp 파일의 type 이 18 이므로 업로드가 가능하도록 수정
|
||||
if ($timg['2'] < 1 || $timg['2'] > 18)
|
||||
continue;
|
||||
}
|
||||
//=================================================================
|
||||
|
||||
+1
-1
@@ -12,7 +12,7 @@ if(function_exists('clean_relative_paths')){
|
||||
|
||||
$extension = pathinfo($filename, PATHINFO_EXTENSION);
|
||||
|
||||
if ( ! preg_match('/(jpg|jpeg|png|gif|bmp)$/i', $extension) ){
|
||||
if ( ! preg_match('/(jpg|jpeg|png|gif|bmp|webp)$/i', $extension) ){
|
||||
alert_close('이미지 확장자가 아닙니다.');
|
||||
}
|
||||
|
||||
|
||||
@@ -14,7 +14,9 @@ if (get_cookie('ck_visit_ip') != $_SERVER['REMOTE_ADDR'])
|
||||
$referer = "";
|
||||
if (isset($_SERVER['HTTP_REFERER']))
|
||||
$referer = escape_trim(clean_xss_tags(strip_tags($_SERVER['HTTP_REFERER'])));
|
||||
$user_agent = escape_trim(clean_xss_tags(strip_tags($_SERVER['HTTP_USER_AGENT'])));
|
||||
$user_agent = '';
|
||||
if (isset($_SERVER['HTTP_USER_AGENT']))
|
||||
$user_agent = escape_trim(clean_xss_tags(strip_tags($_SERVER['HTTP_USER_AGENT'])));
|
||||
$vi_browser = '';
|
||||
$vi_os = '';
|
||||
$vi_device = '';
|
||||
|
||||
@@ -29,6 +29,11 @@ if ($w == 'u' || $w == 'r') {
|
||||
} else {
|
||||
alert("글이 존재하지 않습니다.\\n삭제되었거나 이동된 경우입니다.", G5_URL);
|
||||
}
|
||||
} else if ($w == '') { // 게시글 입력시에도 $wr_1 ~ $wr_10 변수 사용시 오류 나오지 않도록 가변변수 생성 (다온테마님,210806)
|
||||
for ($i=1; $i<=10; $i++) {
|
||||
$vvar = "wr_".$i;
|
||||
$$vvar = '';
|
||||
}
|
||||
}
|
||||
|
||||
run_event('bbs_write', $board, $wr_id, $w);
|
||||
|
||||
@@ -532,7 +532,7 @@ if(isset($_FILES['bf_file']['name']) && is_array($_FILES['bf_file']['name'])) {
|
||||
// image type
|
||||
if ( preg_match("/\.({$config['cf_image_extension']})$/i", $filename) ||
|
||||
preg_match("/\.({$config['cf_flash_extension']})$/i", $filename) ) {
|
||||
if ($timg['2'] < 1 || $timg['2'] > 16)
|
||||
if ($timg['2'] < 1 || $timg['2'] > 18)
|
||||
continue;
|
||||
}
|
||||
//=================================================================
|
||||
@@ -658,7 +658,7 @@ for ($i=(int)$row['max_bf_no']; $i>=0; $i--)
|
||||
$row2 = sql_fetch(" select bf_file from {$g5['board_file_table']} where bo_table = '{$bo_table}' and wr_id = '{$wr_id}' and bf_no = '{$i}' ");
|
||||
|
||||
// 정보가 있다면 빠집니다.
|
||||
if ($row2['bf_file']) break;
|
||||
if (isset($row2['bf_file']) && $row2['bf_file']) break;
|
||||
|
||||
// 그렇지 않다면 정보를 삭제합니다.
|
||||
sql_query(" delete from {$g5['board_file_table']} where bo_table = '{$bo_table}' and wr_id = '{$wr_id}' and bf_no = '{$i}' ");
|
||||
@@ -725,8 +725,10 @@ if (!($w == 'u' || $w == 'cu') && $config['cf_email_use'] && $board['bo_use_emai
|
||||
}
|
||||
|
||||
// 옵션에 메일받기가 체크되어 있고, 게시자의 메일이 있다면
|
||||
if (strstr($wr['wr_option'], 'mail') && $wr['wr_email'])
|
||||
$array_email[] = $wr['wr_email'];
|
||||
if (isset($wr['wr_option']) && isset($wr['wr_email'])) {
|
||||
if (strstr($wr['wr_option'], 'mail') && $wr['wr_email'])
|
||||
$array_email[] = $wr['wr_email'];
|
||||
}
|
||||
|
||||
// 중복된 메일 주소는 제거
|
||||
$unique_email = array_unique($array_email);
|
||||
|
||||
+12
-8
@@ -102,11 +102,13 @@ function sql_escape_string($str)
|
||||
// SQL Injection 등으로 부터 보호를 위해 sql_escape_string() 적용
|
||||
//------------------------------------------------------------------------------
|
||||
// magic_quotes_gpc 에 의한 backslashes 제거
|
||||
if (function_exists('get_magic_quotes_gpc') && get_magic_quotes_gpc()) {
|
||||
$_POST = array_map_deep('stripslashes', $_POST);
|
||||
$_GET = array_map_deep('stripslashes', $_GET);
|
||||
$_COOKIE = array_map_deep('stripslashes', $_COOKIE);
|
||||
$_REQUEST = array_map_deep('stripslashes', $_REQUEST);
|
||||
if (7.0 > (float)phpversion()) {
|
||||
if (function_exists('get_magic_quotes_gpc') && get_magic_quotes_gpc()) {
|
||||
$_POST = array_map_deep('stripslashes', $_POST);
|
||||
$_GET = array_map_deep('stripslashes', $_GET);
|
||||
$_COOKIE = array_map_deep('stripslashes', $_COOKIE);
|
||||
$_REQUEST = array_map_deep('stripslashes', $_REQUEST);
|
||||
}
|
||||
}
|
||||
|
||||
// sql_escape_string 적용
|
||||
@@ -230,7 +232,7 @@ function chrome_domain_session_name(){
|
||||
'.maru.net', // 마루호스팅
|
||||
);
|
||||
|
||||
if(preg_match('/('.implode('|', $domain_array).')/i', $_SERVER['HTTP_HOST'])){ // 위의 도메인주소를 포함한 url접속시 기본세션이름을 변경한다.
|
||||
if(isset($_SERVER['HTTP_HOST']) && preg_match('/('.implode('|', $domain_array).')/i', $_SERVER['HTTP_HOST'])){ // 위의 도메인주소를 포함한 url접속시 기본세션이름을 변경한다.
|
||||
if(! defined('G5_SESSION_NAME')) define('G5_SESSION_NAME', 'G5PHPSESSID');
|
||||
@session_name(G5_SESSION_NAME);
|
||||
}
|
||||
@@ -337,8 +339,10 @@ if( $config['cf_cert_use'] || (defined('G5_YOUNGCART_VER') && G5_YOUNGCART_VER)
|
||||
$res = @session_start($options);
|
||||
|
||||
// IE 브라우저 또는 엣지브라우저 또는 IOS 모바일과 http환경에서는 secure; SameSite=None을 설정하지 않습니다.
|
||||
if( preg_match('/Edge/i', $_SERVER['HTTP_USER_AGENT']) || preg_match('/(iPhone|iPod|iPad).*AppleWebKit.*Safari/i', $_SERVER['HTTP_USER_AGENT']) || preg_match('~MSIE|Internet Explorer~i', $_SERVER['HTTP_USER_AGENT']) || preg_match('~Trident/7.0(; Touch)?; rv:11.0~',$_SERVER['HTTP_USER_AGENT']) || ! (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS']=='on') ){
|
||||
return $res;
|
||||
if (isset($_SERVER['HTTP_USER_AGENT'])) {
|
||||
if( preg_match('/Edge/i', $_SERVER['HTTP_USER_AGENT']) || preg_match('/(iPhone|iPod|iPad).*AppleWebKit.*Safari/i', $_SERVER['HTTP_USER_AGENT']) || preg_match('~MSIE|Internet Explorer~i', $_SERVER['HTTP_USER_AGENT']) || preg_match('~Trident/7.0(; Touch)?; rv:11.0~',$_SERVER['HTTP_USER_AGENT']) || ! (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS']=='on') ){
|
||||
return $res;
|
||||
}
|
||||
}
|
||||
|
||||
$headers = headers_list();
|
||||
|
||||
+3
-6
@@ -4,14 +4,11 @@
|
||||
상수 선언
|
||||
********************/
|
||||
|
||||
define('G5_VERSION', '그누보드5');
|
||||
define('G5_GNUBOARD_VER', '5.4.6');
|
||||
// 그누보드5.4.5.5 버전과 영카트5.4.5.5.1 버전을 합쳐서 그누보드5.4.6 버전에서 시작함 (kagla-210617)
|
||||
// define('G5_YOUNGCART_VER', '5.4.5.5.1');
|
||||
|
||||
// 이 상수가 정의되지 않으면 각각의 개별 페이지는 별도로 실행될 수 없음
|
||||
define('_GNUBOARD_', true);
|
||||
|
||||
include_once($g5_path['path'].'/version.php'); // 설정 파일
|
||||
|
||||
// 기본 시간대 설정
|
||||
date_default_timezone_set("Asia/Seoul");
|
||||
|
||||
@@ -233,4 +230,4 @@ if(isset($_SERVER['HTTPS']) && $_SERVER['HTTPS']=='on') { //https 통신일때
|
||||
define('G5_POSTCODE_JS', '<script src="https://spi.maps.daum.net/imap/map_js_init/postcode.v2.js"></script>');
|
||||
} else { //http 통신일때 daum 주소 js
|
||||
define('G5_POSTCODE_JS', '<script src="http://dmaps.daum.net/map_js_init/postcode.v2.js"></script>');
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,5 +1,8 @@
|
||||
<?php
|
||||
if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가
|
||||
|
||||
define('G5_JS_VER', '191202');
|
||||
define('G5_CSS_VER', '191202');
|
||||
// 자바스크립트와 CSS 파일을 새로 다운로드 하도록 파일의 끝에 년월일 지정
|
||||
// 예) https://도메인/css/default.css?ver=210618
|
||||
// 예) https://도메인/js/common.js?ver=210618
|
||||
define('G5_CSS_VER', '210618');
|
||||
define('G5_JS_VER', '210618');
|
||||
|
||||
@@ -38,7 +38,9 @@ include_once(G5_LIB_PATH.'/popular.lib.php');
|
||||
<?php if(defined('G5_COMMUNITY_USE') == false || G5_COMMUNITY_USE) { ?>
|
||||
<ul id="hd_define">
|
||||
<li class="active"><a href="<?php echo G5_URL ?>/">커뮤니티</a></li>
|
||||
<?php if (defined('G5_USE_SHOP') && G5_USE_SHOP) { ?>
|
||||
<li><a href="<?php echo G5_SHOP_URL ?>/">쇼핑몰</a></li>
|
||||
<?php } ?>
|
||||
</ul>
|
||||
<?php } ?>
|
||||
<ul id="hd_qnb">
|
||||
|
||||
@@ -79,7 +79,9 @@ var g5_bo_table = "<?php echo isset($bo_table)?$bo_table:''; ?>";
|
||||
var g5_sca = "<?php echo isset($sca)?$sca:''; ?>";
|
||||
var g5_editor = "<?php echo ($config['cf_editor'] && $board['bo_use_dhtml_editor'])?$config['cf_editor']:''; ?>";
|
||||
var g5_cookie_domain = "<?php echo G5_COOKIE_DOMAIN ?>";
|
||||
<?php if(defined('G5_USE_SHOP') && G5_USE_SHOP) { ?>
|
||||
var g5_shop_url = "<?php echo G5_SHOP_URL; ?>";
|
||||
<?php } ?>
|
||||
<?php if(defined('G5_IS_ADMIN')) { ?>
|
||||
var g5_admin_url = "<?php echo G5_ADMIN_URL; ?>";
|
||||
<?php } ?>
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
<?php
|
||||
$g5_path['path'] = '..';
|
||||
include_once ('../config.php');
|
||||
include_once('../lib/json.lib.php');
|
||||
include_once('../lib/common.lib.php'); // 공통 라이브러리
|
||||
@@ -56,4 +57,4 @@ if(sql_query("DESCRIBE `{$table_prefix}config`", G5_DISPLAY_SQL_ERROR, $dblink))
|
||||
die(install_json_msg('주의! 이미 테이블이 존재하므로, 기존 DB 자료가 망실됩니다. 계속 진행하겠습니까?', 'exists'));
|
||||
}
|
||||
|
||||
die(install_json_msg('ok', 'success'));
|
||||
die(install_json_msg('ok', 'success'));
|
||||
|
||||
+2
-1
@@ -1,6 +1,7 @@
|
||||
<?php
|
||||
@header('Content-Type: text/html; charset=utf-8');
|
||||
@header('X-Robots-Tag: noindex');
|
||||
$g5_path['path'] = '..';
|
||||
include_once ('../config.php');
|
||||
$title = G5_VERSION." 라이센스 확인 1/3";
|
||||
include_once ('./install.inc.php');
|
||||
@@ -50,4 +51,4 @@ function frm_submit(f)
|
||||
?>
|
||||
|
||||
<?php
|
||||
include_once ('./install.inc2.php');
|
||||
include_once ('./install.inc2.php');
|
||||
|
||||
@@ -8,6 +8,7 @@ header('Pragma: no-cache'); // HTTP/1.0
|
||||
@header('Content-Type: text/html; charset=utf-8');
|
||||
@header('X-Robots-Tag: noindex');
|
||||
|
||||
$g5_path['path'] = '..';
|
||||
include_once ('../config.php');
|
||||
$title = G5_VERSION." 초기환경설정 2/3";
|
||||
include_once ('./install.inc.php');
|
||||
@@ -221,4 +222,4 @@ function frm_install_submit(f)
|
||||
</script>
|
||||
|
||||
<?php
|
||||
include_once ('./install.inc2.php');
|
||||
include_once ('./install.inc2.php');
|
||||
|
||||
+15
-4
@@ -9,6 +9,7 @@ header('Pragma: no-cache'); // HTTP/1.0
|
||||
@header('Content-Type: text/html; charset=utf-8');
|
||||
@header('X-Robots-Tag: noindex');
|
||||
|
||||
$g5_path['path'] = '..';
|
||||
include_once ('../config.php');
|
||||
include_once ('../lib/common.lib.php');
|
||||
include_once('./install.function.php'); // 인스톨 과정 함수 모음
|
||||
@@ -141,6 +142,13 @@ $download_point = 0;
|
||||
//-------------------------------------------------------------------------------------------------
|
||||
// config 테이블 설정
|
||||
if($g5_install || !$result) {
|
||||
// 기본 이미지 확장자를 설정하고
|
||||
$image_extension = "gif|jpg|jpeg|png";
|
||||
// 서버에서 webp 를 지원하면 확장자를 추가한다.
|
||||
if (function_exists("imagewebp")) {
|
||||
$image_extension .= "|webp";
|
||||
}
|
||||
|
||||
$sql = " insert into `{$table_prefix}config`
|
||||
set cf_title = '".G5_VERSION."',
|
||||
cf_theme = 'basic',
|
||||
@@ -197,7 +205,7 @@ if($g5_install || !$result) {
|
||||
cf_member_img_width = '60',
|
||||
cf_member_img_height = '60',
|
||||
cf_login_minutes = '10',
|
||||
cf_image_extension = 'gif|jpg|jpeg|png',
|
||||
cf_image_extension = '{$image_extension}',
|
||||
cf_flash_extension = 'swf',
|
||||
cf_movie_extension = 'asx|asf|wmv|wma|mpg|mpeg|mov|avi|mp3',
|
||||
cf_formmail_is_member = '1',
|
||||
@@ -241,8 +249,11 @@ if($g5_install || !$result) {
|
||||
// FAQ Master
|
||||
sql_query(" insert into `{$table_prefix}faq_master` set fm_id = '1', fm_subject = '자주하시는 질문' ", true, $dblink);
|
||||
|
||||
$tmp_gr_id = defined('G5_YOUNGCART_VER') ? 'shop' : 'community';
|
||||
$tmp_gr_subject = defined('G5_YOUNGCART_VER') ? '쇼핑몰' : '커뮤니티';
|
||||
// 그누보드, 영카트 통합으로 인하여 게시판그룹을 커뮤니티(community)로 생성 (NaviGator님,210624)
|
||||
// $tmp_gr_id = defined('G5_YOUNGCART_VER') ? 'shop' : 'community';
|
||||
// $tmp_gr_subject = defined('G5_YOUNGCART_VER') ? '쇼핑몰' : '커뮤니티';
|
||||
$tmp_gr_id = 'community';
|
||||
$tmp_gr_subject = '커뮤니티';
|
||||
|
||||
// 게시판 그룹 생성
|
||||
sql_query(" insert into `{$table_prefix}group` set gr_id = '$tmp_gr_id', gr_subject = '$tmp_gr_subject' ", true, $dblink);
|
||||
@@ -664,4 +675,4 @@ if($g5_shop_install) {
|
||||
</div>
|
||||
|
||||
<?php
|
||||
include_once ('./install.inc2.php');
|
||||
include_once ('./install.inc2.php');
|
||||
|
||||
+12
-6
@@ -850,12 +850,14 @@ function get_admin($admin='super', $fields='*')
|
||||
$is = true;
|
||||
}
|
||||
|
||||
if (($is && !$mb['mb_id']) || $admin == 'group') {
|
||||
// if (($is && !$mb['mb_id']) || $admin == 'group') {
|
||||
if (($is && !isset($mb['mb_id'])) || $admin == 'group') {
|
||||
$mb = sql_fetch("select {$fields} from {$g5['member_table']} where mb_id in ('{$group['gr_admin']}') limit 1 ");
|
||||
$is = true;
|
||||
}
|
||||
|
||||
if (($is && !$mb['mb_id']) || $admin == 'super') {
|
||||
// if (($is && !$mb['mb_id']) || $admin == 'super') {
|
||||
if (($is && !isset($mb['mb_id'])) || $admin == 'super') {
|
||||
$mb = sql_fetch("select {$fields} from {$g5['member_table']} where mb_id in ('{$config['cf_admin']}') limit 1 ");
|
||||
}
|
||||
|
||||
@@ -2217,7 +2219,10 @@ function get_checked($field, $value)
|
||||
|
||||
function is_mobile()
|
||||
{
|
||||
return preg_match('/'.G5_MOBILE_AGENT.'/i', $_SERVER['HTTP_USER_AGENT']);
|
||||
if (isset($_SERVER['HTTP_USER_AGENT']))
|
||||
return preg_match('/'.G5_MOBILE_AGENT.'/i', $_SERVER['HTTP_USER_AGENT']);
|
||||
else
|
||||
return '';
|
||||
}
|
||||
|
||||
|
||||
@@ -2344,8 +2349,9 @@ function delete_editor_thumbnail($contents)
|
||||
for($i=0; $i<count($matchs[1]); $i++) {
|
||||
// 이미지 path 구함
|
||||
$imgurl = @parse_url($matchs[1][$i]);
|
||||
$srcfile = dirname(G5_PATH).$imgurl['path'];
|
||||
if(! preg_match('/(\.jpe?g|\.gif|\.png)$/i', $srcfile)) continue;
|
||||
// $srcfile = dirname(G5_PATH).$imgurl['path'];
|
||||
$srcfile = (G5_PATH).$imgurl['path'];
|
||||
if(!preg_match('/(\.jpe?g|\.gif|\.png|\.webp)$/i', $srcfile)) continue;
|
||||
$filename = preg_replace("/\.[^\.]+$/i", "", basename($srcfile));
|
||||
$filepath = dirname($srcfile);
|
||||
$files = glob($filepath.'/thumb-'.$filename.'*');
|
||||
@@ -3138,7 +3144,7 @@ function member_delete($mb_id)
|
||||
}
|
||||
|
||||
// 회원자료는 정보만 없앤 후 아이디는 보관하여 다른 사람이 사용하지 못하도록 함 : 061025
|
||||
$sql = " update {$g5['member_table']} set mb_password = '', mb_level = 1, mb_email = '', mb_homepage = '', mb_tel = '', mb_hp = '', mb_zip1 = '', mb_zip2 = '', mb_addr1 = '', mb_addr2 = '', mb_birth = '', mb_sex = '', mb_signature = '', mb_memo = '".date('Ymd', G5_SERVER_TIME)." 삭제함\n".sql_real_escape_string($mb['mb_memo'])."' where mb_id = '{$mb_id}' ";
|
||||
$sql = " update {$g5['member_table']} set mb_password = '', mb_level = 1, mb_email = '', mb_homepage = '', mb_tel = '', mb_hp = '', mb_zip1 = '', mb_zip2 = '', mb_addr1 = '', mb_addr2 = '', mb_addr3 = '', mb_point = 0, mb_profile = '', mb_birth = '', mb_sex = '', mb_signature = '', mb_memo = '".date('Ymd', G5_SERVER_TIME)." 삭제함\n".sql_real_escape_string($mb['mb_memo'])."' where mb_id = '{$mb_id}' ";
|
||||
|
||||
sql_query($sql);
|
||||
|
||||
|
||||
+15
-1
@@ -294,7 +294,7 @@ function get_thumbnail_find_cache($bo_table, $wr_id, $wr_key){
|
||||
return get_write($write_table, $wr_id, true);
|
||||
}
|
||||
|
||||
return get_board_file_db($bo_table, $wr_id, 'bf_file, bf_content', "and bf_type between '1' and '3'", true);
|
||||
return get_board_file_db($bo_table, $wr_id, 'bf_file, bf_content', "and bf_type in (1, 2, 3, 18) ", true);
|
||||
}
|
||||
|
||||
function get_write_table_name($bo_table){
|
||||
@@ -457,6 +457,20 @@ function get_board_sfl_select_options($sfl){
|
||||
return run_replace('get_board_sfl_select_options', $str, $sfl);
|
||||
}
|
||||
|
||||
function get_qa_sfl_select_options($sfl) {
|
||||
|
||||
global $is_admin;
|
||||
|
||||
$str = '';
|
||||
$str .= '<option value="qa_subject" '.get_selected($sfl, 'qa_subject', true).'>제목</option>';
|
||||
$str .= '<option value="qa_content" '.get_selected($sfl, 'qa_content').'>내용</option>';
|
||||
$str .= '<option value="qa_name" '.get_selected($sfl, 'qa_name').'>글쓴이</option>';
|
||||
if ($is_admin)
|
||||
$str .= '<option value="mb_id" '.get_selected($sfl, 'mb_id').'>회원아이디</option>';
|
||||
|
||||
return run_replace('get_qa_sfl_select_options', $str, $sfl);
|
||||
}
|
||||
|
||||
// 읽지 않은 메모 갯수 반환
|
||||
function get_memo_not_read($mb_id, $add_where='')
|
||||
{
|
||||
|
||||
+1
-1
@@ -70,7 +70,7 @@ function latest($skin_dir='', $bo_table, $rows=10, $subject_len=40, $cache_time=
|
||||
}
|
||||
$list[$i] = get_list($row, $board, $latest_skin_url, $subject_len);
|
||||
|
||||
$list[$i]['first_file_thumb'] = (isset($row['wr_file']) && $row['wr_file']) ? get_board_file_db($bo_table, $row['wr_id'], 'bf_file, bf_content', "and bf_type between '1' and '3'", true) : array('bf_file'=>'', 'bf_content'=>'');
|
||||
$list[$i]['first_file_thumb'] = (isset($row['wr_file']) && $row['wr_file']) ? get_board_file_db($bo_table, $row['wr_id'], 'bf_file, bf_content', "and bf_type in (1, 2, 3, 18) ", true) : array('bf_file'=>'', 'bf_content'=>'');
|
||||
$list[$i]['bo_table'] = $bo_table;
|
||||
// 썸네일 추가
|
||||
if($options && is_string($options)) {
|
||||
|
||||
+61
-21
@@ -85,7 +85,7 @@ function get_file_thumbnail($file){
|
||||
|
||||
if( ! is_array($file) ) return '';
|
||||
|
||||
if( preg_match('/(\.jpg|\.jpeg|\.gif|\.png|\.bmp)$/i', $file['file']) && $contents = run_replace('get_file_thumbnail_tags', '', $file) ){
|
||||
if( preg_match('/(\.jpg|\.jpeg|\.gif|\.png|\.bmp|\.webp)$/i', $file['file']) && $contents = run_replace('get_file_thumbnail_tags', '', $file) ){
|
||||
return $contents;
|
||||
} else if ($file['view']) {
|
||||
return get_view_thumbnail($file['view']);
|
||||
@@ -108,6 +108,8 @@ function get_view_thumbnail($contents, $thumb_width=0)
|
||||
if(empty($matches))
|
||||
return $contents;
|
||||
|
||||
$extensions = array(1=>'gif', 2=>'jpg', 3=>'png', 18=>'webp');
|
||||
|
||||
for($i=0; $i<count($matches[1]); $i++) {
|
||||
|
||||
$img = $matches[1][$i];
|
||||
@@ -138,8 +140,11 @@ function get_view_thumbnail($contents, $thumb_width=0)
|
||||
if(empty($size))
|
||||
continue;
|
||||
|
||||
$file_ext = $extensions[$size[2]];
|
||||
if (!$file_ext) continue;
|
||||
|
||||
// jpg 이면 exif 체크
|
||||
if($size[2] == 2 && function_exists('exif_read_data')) {
|
||||
if( $file_ext === 'jpg' && function_exists('exif_read_data')) {
|
||||
$degree = 0;
|
||||
$exif = @exif_read_data($srcfile);
|
||||
if(!empty($exif['Orientation'])) {
|
||||
@@ -166,7 +171,7 @@ function get_view_thumbnail($contents, $thumb_width=0)
|
||||
|
||||
// Animated GIF 체크
|
||||
$is_animated = false;
|
||||
if($size[2] == 1) {
|
||||
if($file_ext === 'gif') {
|
||||
$is_animated = is_animated_gif($srcfile);
|
||||
|
||||
if($replace_content = run_replace('thumbnail_is_animated_gif_content', '', $contents, $srcfile, $is_animated, $img_tag, $data_path, $size)){
|
||||
@@ -226,9 +231,20 @@ function thumbnail($filename, $source_path, $target_path, $thumb_width, $thumb_h
|
||||
if(!is_file($source_file)) // 원본 파일이 없다면
|
||||
return;
|
||||
|
||||
|
||||
$size = @getimagesize($source_file);
|
||||
if(!isset($size[2]) || $size[2] < 1 || $size[2] > 3) // gif, jpg, png 에 대해서만 적용
|
||||
return;
|
||||
|
||||
$extensions = array(1 => 'gif', 2 => 'jpg', 3 => 'png', 18 => 'webp');
|
||||
$file_ext = $extensions[$size[2]]; // 파일 확장자
|
||||
if (!$file_ext) return;
|
||||
|
||||
// gif, jpg, png, webp 에 대해서만 적용
|
||||
// if ( !(isset($size[2]) && ($size[2] == 1 || $size[2] == 2 || $size[2] == 3 || $size[2] == 18)) )
|
||||
// return;
|
||||
|
||||
// $extensions 배열에 없는 확장자 라면 썸네일 만들지 않음
|
||||
// if (!in_array($file_ext, $extensions))
|
||||
// return;
|
||||
|
||||
if (!is_dir($target_path)) {
|
||||
@mkdir($target_path, G5_DIR_PERMISSION);
|
||||
@@ -240,16 +256,19 @@ function thumbnail($filename, $source_path, $target_path, $thumb_width, $thumb_h
|
||||
return '';
|
||||
|
||||
// Animated GIF는 썸네일 생성하지 않음
|
||||
if($size[2] == 1) {
|
||||
if($file_ext === 'gif') {
|
||||
if(is_animated_gif($source_file))
|
||||
return basename($source_file);
|
||||
} else if ($file_ext === 'webp') {
|
||||
if(is_animated_webp($source_file))
|
||||
return basename($source_file);
|
||||
}
|
||||
|
||||
$ext = array(1 => 'gif', 2 => 'jpg', 3 => 'png');
|
||||
|
||||
$thumb_filename = preg_replace("/\.[^\.]+$/i", "", $filename); // 확장자제거
|
||||
$thumb_file = "$target_path/thumb-{$thumb_filename}_{$thumb_width}x{$thumb_height}.".$ext[$size[2]];
|
||||
|
||||
// $thumb_file = "$target_path/thumb-{$thumb_filename}_{$thumb_width}x{$thumb_height}.".$ext[$size[2]];
|
||||
$thumb_file = "$target_path/thumb-{$thumb_filename}_{$thumb_width}x{$thumb_height}.".$file_ext;
|
||||
|
||||
$thumb_time = @filemtime($thumb_file);
|
||||
$source_time = @filemtime($source_file);
|
||||
|
||||
@@ -263,10 +282,10 @@ function thumbnail($filename, $source_path, $target_path, $thumb_width, $thumb_h
|
||||
$src = null;
|
||||
$degree = 0;
|
||||
|
||||
if ($size[2] == 1) {
|
||||
if ($file_ext === 'gif') {
|
||||
$src = @imagecreatefromgif($source_file);
|
||||
$src_transparency = @imagecolortransparent($src);
|
||||
} else if ($size[2] == 2) {
|
||||
} else if ($file_ext === 'jpg') {
|
||||
$src = @imagecreatefromjpeg($source_file);
|
||||
|
||||
if(function_exists('exif_read_data')) {
|
||||
@@ -298,9 +317,12 @@ function thumbnail($filename, $source_path, $target_path, $thumb_width, $thumb_h
|
||||
}
|
||||
}
|
||||
}
|
||||
} else if ($size[2] == 3) {
|
||||
} else if ($file_ext === 'png') {
|
||||
$src = @imagecreatefrompng($source_file);
|
||||
@imagealphablending($src, true);
|
||||
} else if ($file_ext === 'webp') {
|
||||
$src = @imagecreatefromwebp($source_file);
|
||||
@imagealphablending($src, true);
|
||||
} else {
|
||||
return;
|
||||
}
|
||||
@@ -363,10 +385,10 @@ function thumbnail($filename, $source_path, $target_path, $thumb_width, $thumb_h
|
||||
|
||||
$dst = imagecreatetruecolor($dst_w, $dst_h);
|
||||
|
||||
if($size[2] == 3) {
|
||||
if($file_ext === 'png') {
|
||||
imagealphablending($dst, false);
|
||||
imagesavealpha($dst, true);
|
||||
} else if($size[2] == 1) {
|
||||
} else if($file_ext === 'gif') {
|
||||
$palletsize = imagecolorstotal($src);
|
||||
if($src_transparency >= 0 && $src_transparency < $palletsize) {
|
||||
$transparent_color = imagecolorsforindex($src, $src_transparency);
|
||||
@@ -391,12 +413,12 @@ function thumbnail($filename, $source_path, $target_path, $thumb_width, $thumb_h
|
||||
}
|
||||
}
|
||||
|
||||
if($size[2] == 3) {
|
||||
if($file_ext === 'png') {
|
||||
$bgcolor = imagecolorallocatealpha($dst, 0, 0, 0, 127);
|
||||
imagefill($dst, 0, 0, $bgcolor);
|
||||
imagealphablending($dst, false);
|
||||
imagesavealpha($dst, true);
|
||||
} else if($size[2] == 1) {
|
||||
} else if($file_ext === 'gif') {
|
||||
$palletsize = imagecolorstotal($src);
|
||||
if($src_transparency >= 0 && $src_transparency < $palletsize) {
|
||||
$transparent_color = imagecolorsforindex($src, $src_transparency);
|
||||
@@ -474,12 +496,12 @@ function thumbnail($filename, $source_path, $target_path, $thumb_width, $thumb_h
|
||||
}
|
||||
}
|
||||
|
||||
if($size[2] == 3) {
|
||||
if($file_ext === 'png') {
|
||||
$bgcolor = imagecolorallocatealpha($dst, 0, 0, 0, 127);
|
||||
imagefill($dst, 0, 0, $bgcolor);
|
||||
imagealphablending($dst, false);
|
||||
imagesavealpha($dst, true);
|
||||
} else if($size[2] == 1) {
|
||||
} else if($file_ext === 'gif') {
|
||||
$palletsize = imagecolorstotal($src);
|
||||
if($src_transparency >= 0 && $src_transparency < $palletsize) {
|
||||
$transparent_color = imagecolorsforindex($src, $src_transparency);
|
||||
@@ -502,22 +524,24 @@ function thumbnail($filename, $source_path, $target_path, $thumb_width, $thumb_h
|
||||
UnsharpMask($dst, $val[0], $val[1], $val[2]);
|
||||
}
|
||||
|
||||
if($size[2] == 1) {
|
||||
if($file_ext === 'gif') {
|
||||
imagegif($dst, $thumb_file);
|
||||
} else if($size[2] == 3) {
|
||||
} else if($file_ext === 'png') {
|
||||
if(!defined('G5_THUMB_PNG_COMPRESS'))
|
||||
$png_compress = 5;
|
||||
else
|
||||
$png_compress = G5_THUMB_PNG_COMPRESS;
|
||||
|
||||
imagepng($dst, $thumb_file, $png_compress);
|
||||
} else {
|
||||
} else if ($file_ext === 'jpg') {
|
||||
if(!defined('G5_THUMB_JPG_QUALITY'))
|
||||
$jpg_quality = 90;
|
||||
else
|
||||
$jpg_quality = G5_THUMB_JPG_QUALITY;
|
||||
|
||||
imagejpeg($dst, $thumb_file, $jpg_quality);
|
||||
} else if ($file_ext === 'webp') {
|
||||
imagewebp($dst, $thumb_file);
|
||||
}
|
||||
|
||||
chmod($thumb_file, G5_FILE_PERMISSION); // 추후 삭제를 위하여 파일모드 변경
|
||||
@@ -695,6 +719,22 @@ and the roundoff errors in the Gaussian blur process, are welcome.
|
||||
|
||||
}
|
||||
|
||||
// 움직이는 webp 파일인지 검사한다.
|
||||
// 출처) https://stackoverflow.com/questions/45190469/how-to-identify-whether-webp-image-is-static-or-animated?answertab=votes#tab-top
|
||||
function is_animated_webp($filename) {
|
||||
$contents = file_get_contents($filename);
|
||||
$where = strpos($contents, "ANMF");
|
||||
if ($where !== false){
|
||||
// animated
|
||||
$is_animated = true;
|
||||
}
|
||||
else{
|
||||
// non animated
|
||||
$is_animated = false;
|
||||
}
|
||||
return $is_animated;
|
||||
}
|
||||
|
||||
function is_animated_gif($filename) {
|
||||
|
||||
static $cache = array();
|
||||
|
||||
@@ -68,7 +68,9 @@ include_once(G5_LIB_PATH.'/popular.lib.php');
|
||||
if ($i == 0) { ?>
|
||||
<li id="gnb_empty">메뉴 준비 중입니다.<?php if ($is_admin) { ?> <br><a href="<?php echo G5_ADMIN_URL; ?>/menu_list.php">관리자모드 > 환경설정 > 메뉴설정</a>에서 설정하세요.<?php } ?></li>
|
||||
<?php } ?>
|
||||
<?php if (defined('G5_USE_SHOP') && G5_USE_SHOP) { ?>
|
||||
<li class="gnb_1dli"><a href="<?php echo G5_SHOP_URL ?>" class="gnb_1da"> 쇼핑몰</a></li>
|
||||
<?php } ?>
|
||||
</ul>
|
||||
<ul id="hd_nb">
|
||||
<li class="hd_nb1"><a href="<?php echo G5_BBS_URL ?>/faq.php" id="snb_faq"><i class="fa fa-question" aria-hidden="true"></i>FAQ</a></li>
|
||||
|
||||
@@ -185,7 +185,6 @@ $cart_count = sql_num_rows($result);
|
||||
<?php if ($naverpay_button_js) { ?>
|
||||
<div class="naverpay-cart"><?php echo $naverpay_request_js.$naverpay_button_js; ?></div>
|
||||
<?php } ?>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
|
||||
|
||||
@@ -182,7 +182,8 @@ if(isset($data['pp_id']) && !empty($data['pp_id'])) {
|
||||
$P_VACT_NUM = $_POST['P_VACT_NUM'] = isset($PAY['P_VACT_NUM']) ? $PAY['P_VACT_NUM'] : '';
|
||||
$P_VACT_NAME = $_POST['P_VACT_NAME'] = isset($PAY['P_VACT_NAME']) ? iconv_utf8($PAY['P_VACT_NAME']) : '';
|
||||
$P_VACT_BANK = $_POST['P_VACT_BANK'] = (isset($PAY['P_VACT_BANK_CODE']) && isset($BANK_CODE[$PAY['P_VACT_BANK_CODE']])) ? $BANK_CODE[$PAY['P_VACT_BANK_CODE']] : '';
|
||||
$P_CARD_ISSUER = $_POST['P_CARD_ISSUER'] = isset($CARD_CODE[$PAY['P_CARD_ISSUER_CODE']]) ? $CARD_CODE[$PAY['P_CARD_ISSUER_CODE']] : '';
|
||||
// $P_CARD_ISSUER = $_POST['P_CARD_ISSUER'] = isset($CARD_CODE[$PAY['P_CARD_ISSUER_CODE']]) ? $CARD_CODE[$PAY['P_CARD_ISSUER_CODE']] : '';
|
||||
$P_CARD_ISSUER = $_POST['P_CARD_ISSUER'] = isset($CARD_CODE[$PAY['P_FN_CD1']]) ? $CARD_CODE[$PAY['P_FN_CD1']] : '';
|
||||
$P_UNAME = $_POST['P_UNAME'] = isset($PAY['P_UNAME']) ? iconv_utf8($PAY['P_UNAME']) : '';
|
||||
|
||||
$check_keys = array('od_name', 'od_tel', 'od_pwd', 'od_hp', 'od_zip', 'od_addr1', 'od_addr2', 'od_addr3', 'od_addr_jibeon', 'od_email', 'ad_default', 'ad_subject', 'od_hope_date', 'od_b_name', 'od_b_tel', 'od_b_hp', 'od_b_zip', 'od_b_addr1', 'od_b_addr2', 'od_b_addr3', 'od_b_addr_jibeon', 'od_memo', 'od_settle_case', 'max_temp_point', 'od_temp_point', 'od_send_cost', 'od_send_cost2', 'od_bank_account', 'od_deposit_name', 'od_test', 'od_ip');
|
||||
|
||||
@@ -147,6 +147,9 @@ if((int)$pp['pp_price'] !== (int)$pg_price) {
|
||||
case 'lg':
|
||||
include G5_SHOP_PATH.'/lg/xpay_cancel.php';
|
||||
break;
|
||||
case 'inicis':
|
||||
include G5_SHOP_PATH.'/inicis/inipay_cancel.php';
|
||||
break;
|
||||
default:
|
||||
include G5_SHOP_PATH.'/kcp/pp_ax_hub_cancel.php';
|
||||
break;
|
||||
@@ -209,7 +212,7 @@ if($pp_receipt_price > 0 && $pp['pp_id'] && $pp['od_id']) {
|
||||
where od_id = '{$pp['od_id']}' ";
|
||||
$result = sql_query($sql, false);
|
||||
|
||||
// 결제정보 입력 오류시 kcp 결제 취소
|
||||
// 결제정보 입력 오류시 결제 취소
|
||||
if(!$result) {
|
||||
$cancel_msg = '결제정보 입력 오류';
|
||||
switch($default['de_pg_service']) {
|
||||
|
||||
@@ -1,67 +1,5 @@
|
||||
@charset "utf-8";
|
||||
|
||||
/* ### 기본 스타일 커스터마이징 시작 ### */
|
||||
|
||||
/* 게시판 버튼 */
|
||||
/* 목록 버튼 */
|
||||
#bo_gall a.btn_b01 {}
|
||||
#bo_gall a.btn_b01:focus, #bo_gall .btn_b01:hover {}
|
||||
#bo_gall a.btn_b02 {}
|
||||
#bo_gall a.btn_b02:focus, #bo_gall .btn_b02:hover {}
|
||||
#bo_gall a.btn_admin {} /* 관리자 전용 버튼 */
|
||||
#bo_gall a.btn_admin:focus, #bo_gall a.btn_admin:hover {}
|
||||
|
||||
/* 읽기 버튼 */
|
||||
#bo_v a.btn_b01 {}
|
||||
#bo_v a.btn_b01:focus, #bo_v .btn_b01:hover {}
|
||||
#bo_v a.btn_b02 {}
|
||||
#bo_v a.btn_b02:focus, #bo_v .btn_b02:hover {}
|
||||
#bo_v a.btn_admin {} /* 관리자 전용 버튼 */
|
||||
#bo_v a.btn_admin:focus, #bo_v a.btn_admin:hover {}
|
||||
|
||||
/* 쓰기 버튼 */
|
||||
#bo_w .btn_confirm {} /* 서식단계 진행 */
|
||||
#bo_w .btn_submit {}
|
||||
#bo_w .btn_cancel {}
|
||||
#bo_w .btn_frmline {} /* 우편번호검색버튼 등 */
|
||||
|
||||
/* 기본테이블 */
|
||||
/* 읽기 내 테이블 */
|
||||
#bo_v .tbl_head01 {}
|
||||
#bo_v .tbl_head01 caption {}
|
||||
#bo_v .tbl_head01 thead th {}
|
||||
#bo_v .tbl_head01 thead a {}
|
||||
#bo_v .tbl_head01 thead th input {} /* middle 로 하면 게시판 읽기에서 목록 사용시 체크박스 라인 깨짐 */
|
||||
#bo_v .tbl_head01 tfoot th {}
|
||||
#bo_v .tbl_head01 tfoot td {}
|
||||
#bo_v .tbl_head01 tbody th {}
|
||||
#bo_v .tbl_head01 td {}
|
||||
#bo_v .tbl_head01 a {}
|
||||
#bo_v td.empty_table {}
|
||||
|
||||
/* 쓰기 테이블 */
|
||||
#bo_w table {}
|
||||
#bo_w caption {}
|
||||
#bo_w .frm_address {}
|
||||
#bo_w .frm_file {}
|
||||
#bo_w .frm_info {}
|
||||
|
||||
#bo_w .tbl_frm01 {}
|
||||
#bo_w .tbl_frm01 caption {}
|
||||
#bo_w .tbl_frm01 th {}
|
||||
#bo_w .tbl_frm01 td {}
|
||||
#bo_w .tbl_frm01 textarea, #bo_w .frm_input {}
|
||||
#bo_w .tbl_frm01 textarea {}
|
||||
/*
|
||||
#bo_w .tbl_frm01 #captcha {}
|
||||
#bo_w .tbl_frm01 #captcha input {}
|
||||
*/
|
||||
#bo_w .tbl_frm01 a {}
|
||||
|
||||
#bo_w .required, #bo_w textarea.required {}
|
||||
|
||||
/* ### 기본 스타일 커스터마이징 끝 ### */
|
||||
|
||||
/* 갤러리 공통 */
|
||||
.bo_fx {margin-bottom:5px;padding:0 10px}
|
||||
.bo_fx:after {display:block;visibility:hidden;clear:both;content:""}
|
||||
|
||||
@@ -23,21 +23,21 @@ add_stylesheet('<link rel="stylesheet" href="'.$outlogin_skin_url.'/style.css">'
|
||||
|
||||
<ul id="ol_after_private">
|
||||
<li id="ol_after_memo">
|
||||
<a href="<?php echo G5_BBS_URL ?>/memo.php" target="_blank">
|
||||
<a href="<?php echo G5_BBS_URL ?>/memo.php" target="_blank" class="win_memo">
|
||||
<i class="fa fa-envelope-o" aria-hidden="true"></i>
|
||||
<span class="sound_only">안 읽은</span>쪽지
|
||||
<strong><?php echo $memo_not_read ?></strong>
|
||||
</a>
|
||||
</li>
|
||||
<li id="ol_after_pt">
|
||||
<a href="<?php echo G5_BBS_URL ?>/point.php" target="_blank">
|
||||
<a href="<?php echo G5_BBS_URL ?>/point.php" target="_blank" class="win_point">
|
||||
<i class="fa fa-database" aria-hidden="true"></i>
|
||||
포인트
|
||||
<strong><?php echo $point ?></strong>
|
||||
</a>
|
||||
</li>
|
||||
<li id="ol_after_scrap">
|
||||
<a href="<?php echo G5_BBS_URL ?>/scrap.php" target="_blank">
|
||||
<a href="<?php echo G5_BBS_URL ?>/scrap.php" target="_blank" class="win_scrap">
|
||||
<i class="fa fa-thumb-tack" aria-hidden="true"></i>스크랩
|
||||
</a>
|
||||
</li>
|
||||
|
||||
@@ -15,7 +15,7 @@ add_stylesheet('<link rel="stylesheet" href="'.$outlogin_skin_url.'/style.css">'
|
||||
<a href="<?php echo G5_BBS_URL ?>/member_confirm.php?url=register_form.php" id="ol_after_info"><i class="fa fa-cog" aria-hidden="true"></i><span class="sound_only">정보수정</span></a>
|
||||
</span>
|
||||
<strong class="nickname"><?php echo $nick ?>님</strong>
|
||||
<a href="<?php echo G5_BBS_URL ?>/point.php" target="_blank" class="point"><strong><?php echo $point ?></strong> 포인트
|
||||
<a href="<?php echo G5_BBS_URL ?>/point.php" target="_blank" class="point win_point"><strong><?php echo $point ?></strong> 포인트
|
||||
</a>
|
||||
<div id="ol_after_btn">
|
||||
<?php if ($is_admin == 'super' || $is_auth) { ?><a href="<?php echo G5_ADMIN_URL ?>" class="btn_admin">관리자</a><?php } ?>
|
||||
@@ -26,7 +26,7 @@ add_stylesheet('<link rel="stylesheet" href="'.$outlogin_skin_url.'/style.css">'
|
||||
|
||||
<ul id="ol_after_private">
|
||||
<li id="ol_after_memo">
|
||||
<a href="<?php echo G5_BBS_URL ?>/memo.php" target="_blank">
|
||||
<a href="<?php echo G5_BBS_URL ?>/memo.php" target="_blank" class="win_memo">
|
||||
<i class="fa fa-envelope" aria-hidden="true"></i>쪽지
|
||||
<strong><?php echo $memo_not_read; ?></strong>
|
||||
</a>
|
||||
|
||||
@@ -115,6 +115,11 @@ add_stylesheet('<link rel="stylesheet" href="'.$qa_skin_url.'/style.css">', 0);
|
||||
<legend>게시물 검색</legend>
|
||||
<form name="fsearch" method="get">
|
||||
<input type="hidden" name="sca" value="<?php echo $sca ?>">
|
||||
<input type="hidden" name="sop" value="and">
|
||||
<label for="sfl" class="sound_only">검색대상</label>
|
||||
<select name="sfl" id="sfl">
|
||||
<?php echo get_qa_sfl_select_options($sfl); ?>
|
||||
</select>
|
||||
<label for="stx" class="sound_only">검색어<strong class="sound_only"> 필수</strong></label>
|
||||
<input type="text" name="stx" value="<?php echo stripslashes($stx) ?>" required placeholder="검색어를 입력하세요" id="stx" class="sch_input" size="15" maxlength="15">
|
||||
<button type="submit" value="검색" class="sch_btn"><i class="fa fa-search" aria-hidden="true"></i> <span class="sound_only">검색</span></button>
|
||||
|
||||
@@ -136,7 +136,8 @@
|
||||
#bo_sch {background:#fff;border:1px solid #d0d3db;position:relative;margin:10px}
|
||||
#bo_sch:after {display:block;visibility:hidden;clear:both;content:""}
|
||||
#bo_sch legend {position:absolute;margin:0;padding:0;font-size:0;line-height:0;text-indent:-9999em;overflow:hidden}
|
||||
#bo_sch .sch_input {float:left;width:100%;height:38px;border:0;padding:0;background-color:transparent;padding:0 0 0 10px}
|
||||
#bo_sch select {border:0;height:38px;border-right:1px solid #f8f8f8;float:left;width:30%}
|
||||
#bo_sch .sch_input {height:38px;border:0;padding:0;background-color:transparent;float:left;width:70%;padding:0 40px 0 10px}
|
||||
#bo_sch .sch_btn {height:38px;position:absolute;top:0;right:0;border:0;width:40px;background:none;font-size:15px}
|
||||
|
||||
|
||||
|
||||
@@ -9,10 +9,11 @@ if( !function_exists('che_reprocessImage') ){
|
||||
function che_reprocessImage($file_path, $callback){
|
||||
|
||||
$MIME_TYPES_PROCESSORS = array(
|
||||
"image/gif" => array("imagecreatefromgif", "imagegif"),
|
||||
"image/gif" => array("imagecreatefromgif", "imagegif"),
|
||||
"image/jpg" => array("imagecreatefromjpeg", "imagejpeg"),
|
||||
"image/jpeg" => array("imagecreatefromjpeg", "imagejpeg"),
|
||||
"image/png" => array("imagecreatefrompng", "imagepng"),
|
||||
"image/png" => array("imagecreatefrompng", "imagepng"),
|
||||
"image/webp" => array("imagecreatefromwebp", "imagewebp"),
|
||||
"image/bmp" => array("imagecreatefromwbmp", "imagewbmp")
|
||||
);
|
||||
|
||||
@@ -76,7 +77,7 @@ run_event('cheditor_photo_upload', $data_dir, $data_url);
|
||||
//
|
||||
$tempfile = $_FILES['file']['tmp_name'];
|
||||
$filename = $_FILES['file']['name'];
|
||||
|
||||
$filename_len = strrpos($filename, ".");
|
||||
$type = substr($filename, strrpos($filename, ".")+1);
|
||||
$found = false;
|
||||
switch ($type) {
|
||||
@@ -84,10 +85,11 @@ switch ($type) {
|
||||
case "jpeg":
|
||||
case "gif":
|
||||
case "png":
|
||||
case "webp":
|
||||
$found = true;
|
||||
}
|
||||
|
||||
if ($found != true) {
|
||||
if ($found != true || $filename_len != 23) {
|
||||
exit;
|
||||
}
|
||||
|
||||
|
||||
@@ -14,7 +14,7 @@
|
||||
<div style="margin: 0px 0px 10px 0px;">
|
||||
<img src="../icons/imageUpload/remove_all.gif" class="remove-button" onclick="removeImages();"
|
||||
alt="" style="vertical-align: middle" />
|
||||
<input type="file" name="imageUpload[]" accept="image/jpeg,image/png,image/gif" id="inputImageUpload" multiple="multiple"
|
||||
<input type="file" name="imageUpload[]" accept="image/jpeg,image/png,image/gif,image/webp" id="inputImageUpload" multiple="multiple"
|
||||
onchange="selectedFiles(event)" style="vertical-align: middle; visibility: hidden; width: 0px"/>
|
||||
<img id="fileSelectButton" src="../icons/imageUpload/add.gif" alt="image button" onclick="inputImageUpload.click()"
|
||||
style="vertical-align: middle; margin-left: -5px; cursor: pointer"/>
|
||||
|
||||
@@ -14,7 +14,7 @@
|
||||
<div style="margin: 0px 0px 10px 0px;">
|
||||
<img src="../icons/imageUpload/remove_all.gif" class="remove-button" onclick="removeImages();"
|
||||
alt="" style="vertical-align: middle" />
|
||||
<input type="file" name="imageUpload[]" accept="image/jpeg,image/png,image/gif" id="inputImageUpload" multiple="multiple"
|
||||
<input type="file" name="imageUpload[]" accept="image/jpeg,image/png,image/gif,image/webp" id="inputImageUpload" multiple="multiple"
|
||||
onchange="selectedFiles(event)" style="vertical-align: middle; visibility: hidden; width: 0px"/>
|
||||
<img id="fileSelectButton" src="../icons/imageUpload/add.gif" alt="image button" onclick="inputImageUpload.click()"
|
||||
style="vertical-align: middle; margin-left: -5px; cursor: pointer"/>
|
||||
|
||||
@@ -14,7 +14,7 @@ var activeImage = null,
|
||||
dragDropDiv,
|
||||
eventDiff_x = 0,
|
||||
eventDiff_y = 0,
|
||||
fileTypeRe = /^image\/(png|jpeg|gif)$/i,
|
||||
fileTypeRe = /^image\/(png|jpeg|gif|webp)$/i,
|
||||
geckoOffsetX_marker = -3,
|
||||
geckoOffsetY_marker = -1,
|
||||
imageCompleted = 0,
|
||||
@@ -434,7 +434,12 @@ function startUpload(list) {
|
||||
|
||||
function fileFilterError(file) {
|
||||
alert("선택하신 '" + file + "' 파일은 전송할 수 없습니다.\n" +
|
||||
"gif, png, jpg 사진 파일만 전송할 수 있습니다.");
|
||||
"gif, png, jpg, webp 사진 파일만 전송할 수 있습니다.");
|
||||
}
|
||||
|
||||
function explorerFileFilterError(file) {
|
||||
alert("선택하신 '" + file + "' 파일은 전송할 수 없습니다.\n" +
|
||||
"익스플로러 환경에서는 gif, png, jpg 사진 파일만 \n전송할 수 있습니다.");
|
||||
}
|
||||
|
||||
function imgComplete(img, imgSize, boxId) {
|
||||
@@ -962,7 +967,13 @@ DoUpload.prototype = {
|
||||
file = files[i];
|
||||
|
||||
if (!file.type.match(fileTypeRe)) {
|
||||
fileFilterError(file.name);
|
||||
// 엣지를 제외한 ie브라우저인지 체크
|
||||
var agent = navigator.userAgent.toLowerCase();
|
||||
if (agent.indexOf('trident') != -1 || agent.indexOf("msie") != -1) {
|
||||
explorerFileFilterError(file.name);
|
||||
} else {
|
||||
FileFilterError(file.name);
|
||||
}
|
||||
continue;
|
||||
}
|
||||
this.list.push(file);
|
||||
|
||||
@@ -14,7 +14,7 @@ var activeImage = null,
|
||||
dragDropDiv,
|
||||
eventDiff_x = 0,
|
||||
eventDiff_y = 0,
|
||||
fileTypeRe = /^image\/(png|jpeg|gif)$/i,
|
||||
fileTypeRe = /^image\/(png|jpeg|gif|webp)$/i,
|
||||
geckoOffsetX_marker = -3,
|
||||
geckoOffsetY_marker = -1,
|
||||
imageCompleted = 0,
|
||||
@@ -434,7 +434,12 @@ function startUpload(list) {
|
||||
|
||||
function fileFilterError(file) {
|
||||
alert("선택하신 '" + file + "' 파일은 전송할 수 없습니다.\n" +
|
||||
"gif, png, jpg 사진 파일만 전송할 수 있습니다.");
|
||||
"gif, png, jpg, webp 사진 파일만 전송할 수 있습니다.");
|
||||
}
|
||||
|
||||
function explorerFileFilterError(file) {
|
||||
alert("선택하신 '" + file + "' 파일은 전송할 수 없습니다.\n" +
|
||||
"익스플로러 환경에서는 gif, png, jpg 사진 파일만 \n전송할 수 있습니다.");
|
||||
}
|
||||
|
||||
function imgComplete(img, imgSize, boxId) {
|
||||
@@ -962,10 +967,16 @@ DoUpload.prototype = {
|
||||
file = files[i];
|
||||
|
||||
if (!file.type.match(fileTypeRe)) {
|
||||
fileFilterError(file.name);
|
||||
// 엣지를 제외한 ie브라우저인지 체크
|
||||
var agent = navigator.userAgent.toLowerCase();
|
||||
if (agent.indexOf('trident') != -1 || agent.indexOf("msie") != -1) {
|
||||
explorerFileFilterError(file.name);
|
||||
} else {
|
||||
FileFilterError(file.name);
|
||||
}
|
||||
continue;
|
||||
}
|
||||
this.list.push(file);
|
||||
this.list.push(file);
|
||||
}
|
||||
|
||||
if (this.list.length < 1) {
|
||||
|
||||
@@ -335,7 +335,7 @@ function startUpload(count) {
|
||||
|
||||
function fileFilterError(file) {
|
||||
alert("선택하신 '" + file + "' 파일은 전송할 수 없습니다.\n" +
|
||||
"gif, png, jpg, 그림 파일만 전송할 수 있습니다.");
|
||||
"gif, png, jpg, webp 그림 파일만 전송할 수 있습니다.");
|
||||
}
|
||||
|
||||
function imgComplete(img, imgSize, boxId) {
|
||||
|
||||
@@ -54,7 +54,7 @@ function chkImgFormat (url)
|
||||
{
|
||||
var imageName = getFilename(url);
|
||||
var allowSubmit = false;
|
||||
var extArray = [".gif", ".jpg", ".jpeg", ".png"];
|
||||
var extArray = [".gif", ".jpg", ".jpeg", ".png", ".webp"];
|
||||
|
||||
extArray.join(" ");
|
||||
if (imageName === "") {
|
||||
@@ -72,7 +72,7 @@ function chkImgFormat (url)
|
||||
}
|
||||
|
||||
if (!allowSubmit) {
|
||||
alert("사진은 GIF, JPG, PNG 형식만 넣을 수 있습니다.");
|
||||
alert("사진은 GIF, JPG, PNG, WEBP 형식만 넣을 수 있습니다.");
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
@@ -1,64 +1,67 @@
|
||||
<!DOCTYPE HTML>
|
||||
<html lang="ko">
|
||||
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=Edge,chrome=1">
|
||||
<title>사진 첨부하기 :: SmartEditor2</title>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<!-- Generic page styles -->
|
||||
<link rel="stylesheet" href="css/style.css?v=140715">
|
||||
<!-- CSS to style the file input field as button and adjust the Bootstrap progress bars -->
|
||||
<link rel="stylesheet" href="css/jquery.fileupload.css">
|
||||
<meta charset="utf-8">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=Edge,chrome=1">
|
||||
<title>사진 첨부하기 :: SmartEditor2</title>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<!-- Generic page styles -->
|
||||
<link rel="stylesheet" href="css/style.css?v=140715">
|
||||
<!-- CSS to style the file input field as button and adjust the Bootstrap progress bars -->
|
||||
<link rel="stylesheet" href="css/jquery.fileupload.css">
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div class="container pop_container">
|
||||
<!-- header -->
|
||||
<div id="pop_header">
|
||||
<h1>사진 첨부하기</h1>
|
||||
</div>
|
||||
<!-- //header -->
|
||||
<div class="content_container">
|
||||
<div class="drag_explain">
|
||||
<p>마우스로 드래그하여 순서를 바꿀수 있습니다.</p>
|
||||
<div class="file_selet_group">
|
||||
<span class="btn btn-success fileinput-button">
|
||||
<span>파일선택</span>
|
||||
<!-- The file input field used as target for the file upload widget -->
|
||||
<input id="fileupload" type="file" name="files[]" multiple accept="image/*">
|
||||
</span>
|
||||
<button type="button" class="btn btn-danger delete" id="all_remove_btn">
|
||||
<span>전체삭제</span>
|
||||
</button>
|
||||
<div class="container pop_container">
|
||||
<!-- header -->
|
||||
<div id="pop_header">
|
||||
<h1>사진 첨부하기</h1>
|
||||
</div>
|
||||
<!-- //header -->
|
||||
<div class="content_container">
|
||||
<div class="drag_explain">
|
||||
<p>마우스로 드래그하여 순서를 바꿀수 있습니다.</p>
|
||||
<div class="file_selet_group">
|
||||
<span class="btn btn-success fileinput-button">
|
||||
<span>파일선택</span>
|
||||
<!-- The file input field used as target for the file upload widget -->
|
||||
<input id="fileupload" type="file" name="files[]" multiple accept="image/*">
|
||||
</span>
|
||||
<button type="button" class="btn btn-danger delete" id="all_remove_btn">
|
||||
<span>전체삭제</span>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
<div class="drag_area" id="drag_area">
|
||||
<ul class="sortable" id="sortable">
|
||||
</ul>
|
||||
<em class="blind">마우스로 드래그해서 이미지를 추가해주세요.</em><span id="guide_text" class="bg hidebg"></span>
|
||||
</div>
|
||||
<div class="seletion_explain">이미지는 한번에 10개까지 선택할수 있습니다.</div>
|
||||
<div class="btn_group">
|
||||
<button type="button" class="btn" id="img_upload_submit">
|
||||
<span>등록</span>
|
||||
</button>
|
||||
<button type="button" class="btn" id="close_w_btn">
|
||||
<span>취소</span>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
<div class="drag_area" id="drag_area">
|
||||
<ul class="sortable" id="sortable">
|
||||
</ul>
|
||||
<em class="blind">마우스로 드래그해서 이미지를 추가해주세요.</em><span id="guide_text" class="bg hidebg"></span>
|
||||
</div>
|
||||
<div class="seletion_explain">이미지는 한번에 10개까지 선택할수 있습니다.</div>
|
||||
<div class="btn_group">
|
||||
<button type="button" class="btn" id="img_upload_submit">
|
||||
<span>등록</span>
|
||||
</button>
|
||||
<button type="button" class="btn" id="close_w_btn" >
|
||||
<span>취소</span>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
|
||||
<script src="//ajax.googleapis.com/ajax/libs/jqueryui/1.9.2/jquery-ui.min.js"></script>
|
||||
<!-- The Iframe Transport is required for browsers without support for XHR file uploads -->
|
||||
<script src="./js/jquery.iframe-transport.js"></script>
|
||||
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
|
||||
<script src="//ajax.googleapis.com/ajax/libs/jqueryui/1.9.2/jquery-ui.min.js"></script>
|
||||
<!-- The Iframe Transport is required for browsers without support for XHR file uploads -->
|
||||
<script src="./js/jquery.iframe-transport.js"></script>
|
||||
|
||||
<script type="text/javascript" src="./swfupload/swfupload.js"></script>
|
||||
<script type="text/javascript" src="./swfupload/jquery.swfupload.js"></script>
|
||||
<script type="text/javascript" src="./swfupload/swfupload.js?v=210625-1329"></script>
|
||||
<script type="text/javascript" src="./swfupload/jquery.swfupload.js?v=210625-1329"></script>
|
||||
|
||||
<!-- The basic File Upload plugin -->
|
||||
<script src="./js/jquery.fileupload.js?v=140715"></script>
|
||||
<!-- The basic File Upload plugin -->
|
||||
<script src="./js/jquery.fileupload.js?v=210625-1329"></script>
|
||||
|
||||
<script src="./js/basic.js?v=210625-1329"></script>
|
||||
</body>
|
||||
|
||||
<script src="./js/basic.js?v3"></script>
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,9 +1,9 @@
|
||||
jQuery.fn.bindAll = function(options) {
|
||||
var $this = this;
|
||||
jQuery.each(options, function(key, val){
|
||||
$this.bind(key, val);
|
||||
});
|
||||
return this;
|
||||
jQuery.fn.bindAll = function (options) {
|
||||
var $this = this;
|
||||
jQuery.each(options, function (key, val) {
|
||||
$this.bind(key, val);
|
||||
});
|
||||
return this;
|
||||
}
|
||||
|
||||
jQuery(function ($) {
|
||||
@@ -11,131 +11,133 @@ jQuery(function ($) {
|
||||
|
||||
var ed_nonce = '';
|
||||
|
||||
if( !!opener && !!opener.window && !!opener.window.nhn ){
|
||||
if (!!opener && !!opener.window && !!opener.window.nhn) {
|
||||
ed_nonce = opener.window.nhn.husky.SE2M_Configuration.SE2M_Accessibility.ed_nonce;
|
||||
}
|
||||
|
||||
// Change this to the location of your server-side upload handler:
|
||||
var gnu = {
|
||||
url : './php/?_nonce='+ed_nonce,
|
||||
container_el : 'body',
|
||||
dreg_area : '#drag_area',
|
||||
dreg_area_list : '#drag_area > ul',
|
||||
progress_bar : '#progress .progress-bar',
|
||||
filter : /^(image\/bmp|image\/gif|image\/jpg|image\/jpeg|image\/png)$/i,
|
||||
files : [],
|
||||
file_limit : 10, //한번에 올릴수 파일갯수 제한
|
||||
imgw : 100,
|
||||
imgh : 70,
|
||||
file_api_support : !!(window.ProgressEvent && window.FileReader),
|
||||
$elTextGuide : $("#guide_text"),
|
||||
init : function(){
|
||||
url: './php/?_nonce=' + ed_nonce,
|
||||
container_el: 'body',
|
||||
dreg_area: '#drag_area',
|
||||
dreg_area_list: '#drag_area > ul',
|
||||
progress_bar: '#progress .progress-bar',
|
||||
filter: /^(image\/bmp|image\/gif|image\/jpg|image\/jpeg|image\/png|image\/webp)$/i,
|
||||
files: [],
|
||||
file_limit: 10, //한번에 올릴수 파일갯수 제한
|
||||
imgw: 100,
|
||||
imgh: 70,
|
||||
file_api_support: !!(window.ProgressEvent && window.FileReader),
|
||||
$elTextGuide: $("#guide_text"),
|
||||
init: function () {
|
||||
$(this.dreg_area_list).sortable({
|
||||
'cursor':'pointer',
|
||||
'placeholder':'placeholder'
|
||||
'cursor': 'pointer',
|
||||
'placeholder': 'placeholder'
|
||||
});
|
||||
$(this.dreg_area_list).disableSelection();
|
||||
if( this.file_api_support ) this.$elTextGuide.removeClass("hidebg").addClass("showbg");
|
||||
if (this.file_api_support) this.$elTextGuide.removeClass("hidebg").addClass("showbg");
|
||||
},
|
||||
file_push : function(file){
|
||||
file_push: function (file) {
|
||||
var othis = this,
|
||||
last = othis.files.length;
|
||||
|
||||
othis.files.push(file);
|
||||
},
|
||||
_readymodebg : function(){
|
||||
if( this.file_api_support ) {
|
||||
_readymodebg: function () {
|
||||
if (this.file_api_support) {
|
||||
var sClass = this.$elTextGuide.attr('class');
|
||||
if(sClass.indexOf('hidebg') > 0){
|
||||
if (sClass.indexOf('hidebg') > 0) {
|
||||
this.$elTextGuide.removeClass('hidebg');
|
||||
this.$elTextGuide.addClass('showbg');
|
||||
}
|
||||
}
|
||||
},
|
||||
_startmodebg : function(){
|
||||
if( this.file_api_support ) {
|
||||
_startmodebg: function () {
|
||||
if (this.file_api_support) {
|
||||
var sClass = this.$elTextGuide.attr('class');
|
||||
if(sClass.indexOf('hidebg') < 0){
|
||||
if (sClass.indexOf('hidebg') < 0) {
|
||||
this.$elTextGuide.removeClass('showbg');
|
||||
this.$elTextGuide.addClass('hidebg');
|
||||
}
|
||||
}
|
||||
},
|
||||
_delete : function(e){
|
||||
_delete: function (e) {
|
||||
e.preventDefault();
|
||||
var othis = gnu,
|
||||
$button = $(e.currentTarget),
|
||||
delete_url = $button.attr("data-delete");
|
||||
if( delete_url ){
|
||||
if (delete_url) {
|
||||
$.ajax({
|
||||
url: othis.url+"&del=1&file="+ delete_url
|
||||
url: othis.url + "&del=1&file=" + delete_url
|
||||
}).done(function (result) {
|
||||
});
|
||||
}
|
||||
$button.parents('li.sort_list').fadeOut(300, function(){
|
||||
$button.parents('li.sort_list').fadeOut(300, function () {
|
||||
$(this).remove();
|
||||
var $dreg_area = $(othis.dreg_area_list);
|
||||
$dreg_area.sortable('refresh');
|
||||
if( !$dreg_area.children('li').length ) othis._readymodebg();
|
||||
if (!$dreg_area.children('li').length) othis._readymodebg();
|
||||
});
|
||||
},
|
||||
_add : function(e, data, preload){
|
||||
_add: function (e, data, preload) {
|
||||
var othis = this;
|
||||
othis._startmodebg();
|
||||
data.context = $('<li/>').addClass("sort_list").appendTo(this.dreg_area_list);
|
||||
$.each(data.files, function (index, file) {
|
||||
if ( !preload && !othis.filter.test(file.type)) {
|
||||
if (!preload && !othis.filter.test(file.type)) {
|
||||
var agent = navigator.userAgent.toLowerCase();
|
||||
var msg = '';
|
||||
msg = (agent.indexOf('trident') != -1 || agent.indexOf("msie") != -1)? "익스플로러 환경에서는 gif, png, jpg 파일만 \n전송할 수 있습니다.":"이미지만 허용합니다.";
|
||||
data.context.remove();
|
||||
alert('이미지만 허용합니다.');
|
||||
alert(msg);
|
||||
return true;
|
||||
}
|
||||
var node = $('<div/>')
|
||||
.append($('<span/>').text(file.name))
|
||||
.append($('<span/>').addClass("delete_img").attr({"data-delete":file.name,"data-url":file.url}).html("<img src='./img/system_delete.png' alt='삭제' title='삭제' >")),
|
||||
.append($('<span/>').text(file.name))
|
||||
.append($('<span/>').addClass("delete_img").attr({ "data-delete": file.name, "data-url": file.url }).html("<img src='./img/system_delete.png' alt='삭제' title='삭제' >")),
|
||||
$img = "<img src='./img/loading.gif' class='pre_thumb' />",
|
||||
size_text = '';
|
||||
|
||||
if ( preload && preload != 'swfupload' ){
|
||||
var ret = othis.get_ratio( file.width, file.height ),
|
||||
size_text = file.width+" x "+file.height;
|
||||
$img = "<img src='"+file.url+"' width='"+ret['width']+"' height='"+ret['height']+"' class='pre_thumb' />";
|
||||
|
||||
}
|
||||
if (!index) {
|
||||
node
|
||||
.prepend('<br>')
|
||||
.prepend($img);
|
||||
if(size_text){
|
||||
node.append('<br>')
|
||||
|
||||
if (preload && preload != 'swfupload') {
|
||||
var ret = othis.get_ratio(file.width, file.height),
|
||||
size_text = file.width + " x " + file.height;
|
||||
$img = "<img src='" + file.url + "' width='" + ret['width'] + "' height='" + ret['height'] + "' class='pre_thumb' />";
|
||||
|
||||
}
|
||||
if (!index) {
|
||||
node.prepend('<br>')
|
||||
.prepend($img);
|
||||
if (size_text) {
|
||||
node.append('<br>')
|
||||
.append($('<span/>').text(size_text))
|
||||
}
|
||||
}
|
||||
}
|
||||
node.appendTo(data.context);
|
||||
node.find(".delete_img").on("click", othis._delete);
|
||||
});
|
||||
$(othis.dreg_area_list).sortable('refresh');
|
||||
},
|
||||
get_file_all : function(){
|
||||
get_file_all: function () {
|
||||
var othis = this,
|
||||
oDate = new Date();
|
||||
$.ajax({
|
||||
// Uncomment the following to send cross-domain cookies:
|
||||
//xhrFields: {withCredentials: true},
|
||||
//url: $('#fileupload').fileupload('option', 'url'),
|
||||
url: this.url+"&t="+ oDate.getTime(),
|
||||
url: this.url + "&t=" + oDate.getTime(),
|
||||
dataType: 'json',
|
||||
context: $('#fileupload')[0]
|
||||
}).always(function () {
|
||||
//$(this).removeClass('fileupload-processing');
|
||||
}).done(function (result) {
|
||||
$.each(result.files, function (index, data) {
|
||||
var tmp = { files : [] };
|
||||
var tmp = { files: [] };
|
||||
tmp.files[0] = data;
|
||||
othis._add( $.Event('add'), tmp, 'preload' );
|
||||
othis._add($.Event('add'), tmp, 'preload');
|
||||
});
|
||||
});
|
||||
},
|
||||
_processalways : function(e, data){
|
||||
_processalways: function (e, data) {
|
||||
var index = data.index,
|
||||
file = data.files[index],
|
||||
node = $(data.context.children()[index]);
|
||||
@@ -150,29 +152,29 @@ jQuery(function ($) {
|
||||
.prop('disabled', !!data.files.error);
|
||||
}
|
||||
},
|
||||
obj_to_arr : function(obj){
|
||||
var array = $.map(obj, function(value, index) {
|
||||
obj_to_arr: function (obj) {
|
||||
var array = $.map(obj, function (value, index) {
|
||||
return [value];
|
||||
});
|
||||
return array;
|
||||
},
|
||||
_done : function(e, data){
|
||||
_done: function (e, data) {
|
||||
var othis = this;
|
||||
$.each(data.result.files, function (index, file) {
|
||||
if (file.url && !file.error) {
|
||||
var ret = othis.get_ratio( file.width, file.height ),
|
||||
var ret = othis.get_ratio(file.width, file.height),
|
||||
node = $(data.context.children()[index]),
|
||||
size_text = file.width+" x "+file.height,
|
||||
size_text = file.width + " x " + file.height,
|
||||
//$img = "<img src='"+file.url+"' width='"+ret['width']+"' height='"+ret['height']+"' />",
|
||||
link = $('<a>')
|
||||
.attr('target', '_blank')
|
||||
.prop('href', file.url);
|
||||
node
|
||||
//.wrap(link)
|
||||
.append('<br>')
|
||||
.append($('<span/>').text(size_text))
|
||||
.find("img.pre_thumb").attr({"src":file.url,"width":ret['width'],"height":ret['height']})
|
||||
.end().find(".delete_img").attr({"data-delete":file.name,"data-url":file.url});
|
||||
.attr('target', '_blank')
|
||||
.prop('href', file.url);
|
||||
node
|
||||
//.wrap(link)
|
||||
.append('<br>')
|
||||
.append($('<span/>').text(size_text))
|
||||
.find("img.pre_thumb").attr({ "src": file.url, "width": ret['width'], "height": ret['height'] })
|
||||
.end().find(".delete_img").attr({ "data-delete": file.name, "data-url": file.url });
|
||||
} else if (file.error) {
|
||||
var error = $('<span class="text-danger"/>').text(file.error);
|
||||
$(data.context.children()[index])
|
||||
@@ -182,20 +184,20 @@ jQuery(function ($) {
|
||||
othis.file_push(file);
|
||||
});
|
||||
},
|
||||
get_ratio : function(width, height){
|
||||
get_ratio: function (width, height) {
|
||||
var ratio = 0,
|
||||
ret_img = [];
|
||||
if( !width || !height ){
|
||||
if (!width || !height) {
|
||||
ret_img['width'] = this.imgw;
|
||||
ret_img['height'] = this.imgh;
|
||||
return ret_img;
|
||||
}
|
||||
if(width > this.imgw){
|
||||
if (width > this.imgw) {
|
||||
ratio = this.imgw / width;
|
||||
height = height * ratio;
|
||||
width = this.imgw;
|
||||
}
|
||||
if( height > this.imgh ){
|
||||
if (height > this.imgh) {
|
||||
ratio = this.imgh / height;
|
||||
width = width * ratio;
|
||||
height = this.imgh;
|
||||
@@ -204,7 +206,7 @@ jQuery(function ($) {
|
||||
ret_img['height'] = parseInt(height);
|
||||
return ret_img;
|
||||
},
|
||||
setPhotoToEditor : function(oFileInfo){
|
||||
setPhotoToEditor: function (oFileInfo) {
|
||||
if (!!opener && !!opener.nhn && !!opener.nhn.husky && !!opener.nhn.husky.PopUpManager) {
|
||||
//스마트 에디터 플러그인을 통해서 넣는 방법 (oFileInfo는 Array)
|
||||
opener.nhn.husky.PopUpManager.setCallback(window, 'SET_PHOTO', [oFileInfo]);
|
||||
@@ -221,19 +223,19 @@ jQuery(function ($) {
|
||||
dropZone: $(gnu.dreg_area),
|
||||
autoUpload: true,
|
||||
sequentialUploads: true,
|
||||
acceptFileTypes: /(\.|\/)(gif|jpe?g|bmp|png)$/i,
|
||||
acceptFileTypes: /(\.|\/)(gif|jpe?g|bmp|png|webp)$/i,
|
||||
// Enable image resizing, except for Android and Opera,
|
||||
// which actually support image resizing, but fail to
|
||||
// send Blob objects via XHR requests:
|
||||
disableImageResize: true,
|
||||
limit_filesLength : gnu.file_limit
|
||||
limit_filesLength: gnu.file_limit
|
||||
}).on('fileuploadadd', function (e, data) {
|
||||
gnu._add(e, data);
|
||||
}).on('fileuploadprocessalways', function (e, data) {
|
||||
gnu._processalways(e, data);
|
||||
}).on('fileuploaddone', function (e, data) {
|
||||
|
||||
gnu._done( e, data );
|
||||
gnu._done(e, data);
|
||||
|
||||
}).on('fileuploadfail', function (e, data) {
|
||||
$.each(data.files, function (index, file) {
|
||||
@@ -247,85 +249,84 @@ jQuery(function ($) {
|
||||
|
||||
gnu.init();
|
||||
|
||||
var listeners = {
|
||||
data : {},
|
||||
log : false,
|
||||
swfuploadLoaded: function(event){
|
||||
if(this.log) $('.log', this).append('<li>Loaded</li>');
|
||||
},
|
||||
fileQueued: function(event, file){
|
||||
if(this.log) $('.log', this).append('<li>File queued - '+file.name+'</li>');
|
||||
// start the upload once it is queued
|
||||
// but only if this queue is not disabled
|
||||
if (!$('input[name=disabled]:checked', this).length) {
|
||||
$(this).swfupload('startUpload');
|
||||
}
|
||||
},
|
||||
fileQueueError: function(event, file, errorCode, message){
|
||||
switch (errorCode)
|
||||
{
|
||||
case -100 :
|
||||
alert("파일을 "+message+"개 이하로 선택해주세요.");
|
||||
var listeners = {
|
||||
data: {},
|
||||
log: false,
|
||||
swfuploadLoaded: function (event) {
|
||||
if (this.log) $('.log', this).append('<li>Loaded</li>');
|
||||
},
|
||||
fileQueued: function (event, file) {
|
||||
if (this.log) $('.log', this).append('<li>File queued - ' + file.name + '</li>');
|
||||
// start the upload once it is queued
|
||||
// but only if this queue is not disabled
|
||||
if (!$('input[name=disabled]:checked', this).length) {
|
||||
$(this).swfupload('startUpload');
|
||||
}
|
||||
},
|
||||
fileQueueError: function (event, file, errorCode, message) {
|
||||
switch (errorCode) {
|
||||
case -100:
|
||||
alert("파일을 " + message + "개 이하로 선택해주세요.");
|
||||
break;
|
||||
}
|
||||
if(this.log) $('.log', this).append('<li>File queue error - '+message+'</li>');
|
||||
},
|
||||
fileDialogStart: function(event){
|
||||
if(this.log) $('.log', this).append('<li>File dialog start</li>');
|
||||
},
|
||||
fileDialogComplete: function(event, numFilesSelected, numFilesQueued){
|
||||
if(this.log) $('.log', this).append('<li>File dialog complete</li>');
|
||||
},
|
||||
uploadStart: function(event, file){
|
||||
if (this.log) $('.log', this).append('<li>File queue error - ' + message + '</li>');
|
||||
},
|
||||
fileDialogStart: function (event) {
|
||||
if (this.log) $('.log', this).append('<li>File dialog start</li>');
|
||||
},
|
||||
fileDialogComplete: function (event, numFilesSelected, numFilesQueued) {
|
||||
if (this.log) $('.log', this).append('<li>File dialog complete</li>');
|
||||
},
|
||||
uploadStart: function (event, file) {
|
||||
listeners.data.files = $.makeArray(file);
|
||||
gnu._add( event, listeners.data, 'swfupload' );
|
||||
if(this.log) $('.log', this).append('<li>Upload start - '+file.name+'</li>');
|
||||
},
|
||||
uploadProgress: function(event, file, bytesLoaded){
|
||||
if(this.log) $('.log', this).append('<li>Upload progress - '+bytesLoaded+'</li>');
|
||||
},
|
||||
uploadSuccess: function(event, file, serverData){
|
||||
listeners.data.result = jQuery.parseJSON( serverData );
|
||||
gnu._done( event, listeners.data );
|
||||
if(this.log) $('.log', this).append('<li>Upload success - '+file.name+'</li>');
|
||||
gnu._add(event, listeners.data, 'swfupload');
|
||||
if (this.log) $('.log', this).append('<li>Upload start - ' + file.name + '</li>');
|
||||
},
|
||||
uploadProgress: function (event, file, bytesLoaded) {
|
||||
if (this.log) $('.log', this).append('<li>Upload progress - ' + bytesLoaded + '</li>');
|
||||
},
|
||||
uploadSuccess: function (event, file, serverData) {
|
||||
listeners.data.result = jQuery.parseJSON(serverData);
|
||||
gnu._done(event, listeners.data);
|
||||
if (this.log) $('.log', this).append('<li>Upload success - ' + file.name + '</li>');
|
||||
|
||||
},
|
||||
uploadComplete: function(event, file){
|
||||
if(this.log) $('.log', this).append('<li>Upload complete - '+file.name+'</li>');
|
||||
// upload has completed, lets try the next one in the queue
|
||||
// but only if this queue is not disabled
|
||||
if (!$('input[name=disabled]:checked', this).length) {
|
||||
$(this).swfupload('startUpload');
|
||||
}
|
||||
},
|
||||
uploadError: function(event, file, errorCode, message){
|
||||
if(this.log) $('.log', this).append('<li>Upload error - '+message+'</li>');
|
||||
}
|
||||
};
|
||||
},
|
||||
uploadComplete: function (event, file) {
|
||||
if (this.log) $('.log', this).append('<li>Upload complete - ' + file.name + '</li>');
|
||||
// upload has completed, lets try the next one in the queue
|
||||
// but only if this queue is not disabled
|
||||
if (!$('input[name=disabled]:checked', this).length) {
|
||||
$(this).swfupload('startUpload');
|
||||
}
|
||||
},
|
||||
uploadError: function (event, file, errorCode, message) {
|
||||
if (this.log) $('.log', this).append('<li>Upload error - ' + message + '</li>');
|
||||
}
|
||||
};
|
||||
|
||||
$(gnu.container_el).bindAll(listeners);
|
||||
$(gnu.container_el).bindAll(listeners);
|
||||
/* listeners이벤트 */
|
||||
|
||||
$(gnu.dreg_area).bind('drop dragover', function (e) {
|
||||
e.preventDefault();
|
||||
if( !gnu.file_api_support && e.type == 'drop' ) alert("브라우저가 드래그 앤 드랍을 지원하지 않습니다.");
|
||||
if (!gnu.file_api_support && e.type == 'drop') alert("브라우저가 드래그 앤 드랍을 지원하지 않습니다.");
|
||||
});
|
||||
$("#all_remove_btn").bind("click", function(e){
|
||||
$("#all_remove_btn").bind("click", function (e) {
|
||||
e.preventDefault();
|
||||
if( $(gnu.dreg_area_list).children().length ){
|
||||
if (confirm("추가한 이미지가 있습니다.정말 삭제 하시겠습니까?")){
|
||||
$(gnu.dreg_area_list).find(".delete_img").each( function(i){
|
||||
if ($(gnu.dreg_area_list).children().length) {
|
||||
if (confirm("추가한 이미지가 있습니다.정말 삭제 하시겠습니까?")) {
|
||||
$(gnu.dreg_area_list).find(".delete_img").each(function (i) {
|
||||
$(this).trigger("click");
|
||||
});
|
||||
$(gnu.dreg_area_list).sortable('refresh');
|
||||
}
|
||||
}
|
||||
});
|
||||
$("#img_upload_submit").bind("click", function(e){
|
||||
$("#img_upload_submit").bind("click", function (e) {
|
||||
e.preventDefault();
|
||||
var aResult = [], j = 0;
|
||||
$(gnu.dreg_area_list).find(".delete_img").each( function(i, f){
|
||||
if( !$(this).attr("data-url") ) return true;
|
||||
var aResult = [], j = 0;
|
||||
$(gnu.dreg_area_list).find(".delete_img").each(function (i, f) {
|
||||
if (!$(this).attr("data-url")) return true;
|
||||
aResult[j] = [];
|
||||
aResult[j]['bNewLine'] = 'true';
|
||||
aResult[j]['sAlign'] = '';
|
||||
@@ -333,13 +334,13 @@ jQuery(function ($) {
|
||||
aResult[j]['sFileURL'] = $(this).attr("data-url");
|
||||
j++;
|
||||
});
|
||||
if( aResult.length ){
|
||||
if (aResult.length) {
|
||||
gnu.setPhotoToEditor(aResult);
|
||||
aResult = null;
|
||||
}
|
||||
window.close();
|
||||
});
|
||||
$("#close_w_btn").bind("click", function(e){
|
||||
$("#close_w_btn").bind("click", function (e) {
|
||||
e.preventDefault();
|
||||
window.close();
|
||||
});
|
||||
|
||||
@@ -1283,8 +1283,8 @@
|
||||
file_size_limit : "10 MB",
|
||||
file_upload_limit: 0,
|
||||
file_queue_limit : this.options.limit_filesLength,
|
||||
file_types : "*.jpeg; *.bmp; *.png; *.jpg; *.gif",
|
||||
file_types_description : "Image Files (JPG, JPEG, PNG, BMP, GIF)",
|
||||
file_types : "*.jpeg; *.bmp; *.png; *.jpg; *.gif; *.webp",
|
||||
file_types_description : "Image Files (JPG, JPEG, PNG, BMP, GIF, WEBP)",
|
||||
flash_url : "./swfupload/swfupload.swf",
|
||||
button_placeholder : this.options.fileInput[0],
|
||||
button_width : "100%",
|
||||
|
||||
@@ -26,6 +26,7 @@ class UploadHandler
|
||||
"image/jpg" => array("imagecreatefromjpeg", "imagejpeg"),
|
||||
"image/jpeg" => array("imagecreatefromjpeg", "imagejpeg"),
|
||||
"image/png" => array("imagecreatefrompng", "imagepng"),
|
||||
"image/webp" => array("imagecreatefromwebp", "imagewebp"),
|
||||
"image/bmp" => array("imagecreatefromwbmp", "imagewbmp")
|
||||
);
|
||||
|
||||
@@ -93,10 +94,10 @@ class UploadHandler
|
||||
// is enabled, set to 0 to disable chunked reading of files:
|
||||
'readfile_chunk_size' => 10 * 1024 * 1024, // 10 MiB
|
||||
// Defines which files can be displayed inline when downloaded:
|
||||
'inline_file_types' => '/\.(gif|jpe?g|bmp|png)$/i',
|
||||
'inline_file_types' => '/\.(gif|jpe?g|bmp|png|webp)$/i',
|
||||
// Defines which files (based on their names) are accepted for upload:
|
||||
//'accept_file_types' => '/.+$/i',
|
||||
'accept_file_types' => '/\.(gif|jpe?g|bmp|png)$/i',
|
||||
'accept_file_types' => '/\.(gif|jpe?g|bmp|png|webp)$/i',
|
||||
// The php.ini settings upload_max_filesize and post_max_size
|
||||
// take precedence over the following max_file_size setting:
|
||||
'max_file_size' => null,
|
||||
@@ -104,7 +105,7 @@ class UploadHandler
|
||||
// The maximum number of files for the upload directory:
|
||||
'max_number_of_files' => null,
|
||||
// Defines which files are handled as image files:
|
||||
'image_file_types' => '/\.(gif|jpe?g|bmp|png)$/i',
|
||||
'image_file_types' => '/\.(gif|jpe?g|bmp|png|webp)$/i',
|
||||
'is_resize' => (defined('SMARTEDITOR_UPLOAD_RESIZE') && SMARTEDITOR_UPLOAD_RESIZE) ? true : false,
|
||||
'resize_max_width' => (defined('SMARTEDITOR_UPLOAD_MAX_WIDTH') && SMARTEDITOR_UPLOAD_MAX_WIDTH) ? SMARTEDITOR_UPLOAD_MAX_WIDTH : 800,
|
||||
'resize_max_height' => (defined('SMARTEDITOR_UPLOAD_MAX_HEIGHT') && SMARTEDITOR_UPLOAD_MAX_HEIGHT) ? SMARTEDITOR_UPLOAD_MAX_HEIGHT : 800,
|
||||
@@ -498,7 +499,7 @@ class UploadHandler
|
||||
}
|
||||
// Add missing file extension for known image types:
|
||||
if (strpos($name, '.') === false &&
|
||||
preg_match('/^image\/(gif|jpe?g|png)/', $type, $matches)) {
|
||||
preg_match('/^image\/(gif|jpe?g|png|webp)/', $type, $matches)) {
|
||||
$name .= '.'.$matches[1];
|
||||
}
|
||||
if (function_exists('exif_imagetype') && $file_path) {
|
||||
@@ -512,6 +513,9 @@ class UploadHandler
|
||||
case IMAGETYPE_GIF:
|
||||
$extensions = array('gif');
|
||||
break;
|
||||
case IMAGETYPE_WEBP:
|
||||
$extensions = array('webp');
|
||||
break;
|
||||
}
|
||||
// Adjust incorrect image file extensions:
|
||||
if (!empty($extensions)) {
|
||||
@@ -688,7 +692,7 @@ class UploadHandler
|
||||
$src_func = 'imagecreatefromjpeg';
|
||||
$write_func = 'imagejpeg';
|
||||
$image_quality = isset($options['jpeg_quality']) ?
|
||||
$options['jpeg_quality'] : 75;
|
||||
$options['jpeg_quality'] : 75;
|
||||
break;
|
||||
case 'gif':
|
||||
$src_func = 'imagecreatefromgif';
|
||||
@@ -699,7 +703,12 @@ class UploadHandler
|
||||
$src_func = 'imagecreatefrompng';
|
||||
$write_func = 'imagepng';
|
||||
$image_quality = isset($options['png_quality']) ?
|
||||
$options['png_quality'] : 9;
|
||||
$options['png_quality'] : 9;
|
||||
break;
|
||||
case 'webp':
|
||||
$src_func = 'imagecreatefromwebp';
|
||||
$write_func = 'imagewebp';
|
||||
$image_quality = null;
|
||||
break;
|
||||
default:
|
||||
return false;
|
||||
@@ -1083,11 +1092,16 @@ class UploadHandler
|
||||
//throw new Exception("Invalid image MIME type");
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
$image_from_file = self::$MIME_TYPES_PROCESSORS[$mime_type][0];
|
||||
$image_to_file = self::$MIME_TYPES_PROCESSORS[$mime_type][1];
|
||||
|
||||
// webp 의 경우 gd-webp cannot allocate temporary buffer 오류가 발생하여 webp 이미지가 업로드 되지 않을 수 있음
|
||||
// $reprocessed_image = imagecreatefromwebp($file_path); 이 코드로 웹서버의 error_log 에서 확인해 볼 수 있음
|
||||
// https://stackoverflow.com/questions/61394477/php-e-error-gd-webp-cannot-allocate-temporary-buffer
|
||||
// 움직이는 webp 이미지나 큰사이즈의 webp 이미지에 대한 해결 방안은 아직 없는 것 같다
|
||||
$reprocessed_image = @$image_from_file($file_path);
|
||||
// error_log("\$image_from_file = '$image_from_file', \$image_to_file = '$image_to_file', \$reprocessed_image = '$reprocessed_image', \$file_path ='$file_path' ");
|
||||
|
||||
if (!$reprocessed_image) {
|
||||
//throw new Exception("Unable to create reprocessed image from file");
|
||||
@@ -1288,6 +1302,8 @@ class UploadHandler
|
||||
return 'image/png';
|
||||
case 'gif':
|
||||
return 'image/gif';
|
||||
case 'webp':
|
||||
return 'image/webp';
|
||||
default:
|
||||
return '';
|
||||
}
|
||||
|
||||
@@ -287,7 +287,7 @@ function preview(thumb) {
|
||||
var thumb = file.bf_file;
|
||||
}
|
||||
|
||||
var pattern = /\.(jpg|png|gif)$/i;
|
||||
var pattern = /\.(jpg|png|gif|webp)$/i;
|
||||
if (pattern.test(thumb)) {
|
||||
var thumb_kind = "img";
|
||||
} else {
|
||||
@@ -321,7 +321,7 @@ function file_to_editor() {
|
||||
var file = get_file_info(files_list.options[i].value);
|
||||
var path = board_file_path + '/' + file.bf_file;
|
||||
|
||||
var pattern = /\.(jpg|png|gif)$/i;
|
||||
var pattern = /\.(jpg|png|gif|webp)$/i;
|
||||
if (pattern.test(file.bf_file)) {
|
||||
if (wr_id) {
|
||||
html = "{이미지:" + file.bf_no + "}";
|
||||
|
||||
@@ -13,8 +13,8 @@ $connection = new TwitterOAuth(CONSUMER_KEY, CONSUMER_SECRET);
|
||||
$request_token = $connection->getRequestToken(OAUTH_CALLBACK);
|
||||
|
||||
/* Save temporary credentials to session. */
|
||||
$_SESSION['oauth_token'] = $token = $request_token['oauth_token'];
|
||||
$_SESSION['oauth_token_secret'] = $request_token['oauth_token_secret'];
|
||||
$_SESSION['oauth_token'] = $token = @$request_token['oauth_token'];
|
||||
$_SESSION['oauth_token_secret'] = @$request_token['oauth_token_secret'];
|
||||
|
||||
//print_r2($_SESSION); exit;
|
||||
|
||||
|
||||
@@ -77,7 +77,7 @@ class TwitterOAuth {
|
||||
$parameters['oauth_callback'] = $oauth_callback;
|
||||
$request = $this->oAuthRequest($this->requestTokenURL(), 'GET', $parameters);
|
||||
$token = OAuthUtil::parse_parameters($request);
|
||||
$this->token = new OAuthConsumer($token['oauth_token'], $token['oauth_token_secret']);
|
||||
$this->token = new OAuthConsumer(@$token['oauth_token'], @$token['oauth_token_secret']);
|
||||
return $token;
|
||||
}
|
||||
|
||||
|
||||
@@ -131,10 +131,10 @@ class Hybrid_Providers_Naver extends Hybrid_Provider_Model_OAuth2
|
||||
if( array_key_exists('birthday',$data) ){
|
||||
$tmp = explode("-",$data['birthday']);
|
||||
if( isset($tmp[0]) ){
|
||||
$this->user->profile->birthDay = $tmp[0];
|
||||
$this->user->profile->birthMonth = $tmp[0];
|
||||
}
|
||||
if( isset($tmp[1]) ){
|
||||
$this->user->profile->birthMonth = $tmp[1];
|
||||
$this->user->profile->birthDay = $tmp[1];
|
||||
}
|
||||
}
|
||||
$this->user->profile->email = (array_key_exists('email',$data))?$data['email']:"";
|
||||
|
||||
@@ -23,7 +23,7 @@ if( isset( $_REQUEST["redirect_to_idp"] ) ){
|
||||
$get_login_url = G5_BBS_URL."/login.php?url=".$urlencode;
|
||||
|
||||
if( $content ){
|
||||
//팝업으로 뜨웠다면 아래
|
||||
//팝업으로 띄웠다면 아래 코드를 실행
|
||||
?>
|
||||
<script>
|
||||
if( window.opener ){
|
||||
|
||||
+3
-1
@@ -74,7 +74,9 @@ if($act == "buy")
|
||||
and ct_status = '쇼핑'
|
||||
and ct_select = '1' ";
|
||||
$sum = sql_fetch($sql);
|
||||
$sum_qty = $sum['cnt'];
|
||||
// $sum['cnt'] 가 null 일때 재고 반영이 제대로 안되는 오류 수정 (그누위즈님,210614)
|
||||
// $sum_qty = $sum['cnt'];
|
||||
$sum_qty = is_int($sum['cnt']) ? $sum['cnt'] : 0;
|
||||
|
||||
// 재고 구함
|
||||
$ct_qty = $row['ct_qty'];
|
||||
|
||||
@@ -7,15 +7,18 @@ $query = $_SERVER['QUERY_STRING'];
|
||||
$vars = array();
|
||||
|
||||
foreach(explode('&', $query) as $pair) {
|
||||
list($key, $value) = explode('=', $pair);
|
||||
@list($key, $value) = explode('=', $pair);
|
||||
$key = urldecode($key);
|
||||
$value = preg_replace("/[^A-Za-z0-9\-_]/", "", urldecode($value));
|
||||
$vars[$key][] = $value;
|
||||
}
|
||||
|
||||
$itemIds = $vars['ITEM_ID'];
|
||||
if (isset($vars['ITEM_ID']))
|
||||
$itemIds = $vars['ITEM_ID'];
|
||||
else
|
||||
$itemIds = array();
|
||||
|
||||
if (count($itemIds) < 1) {
|
||||
if (is_null($itemIds) || count($itemIds) < 1) {
|
||||
exit('ITEM_ID 는 필수입니다.');
|
||||
}
|
||||
|
||||
|
||||
@@ -36,7 +36,7 @@ box-shadow:inset 0 2px 5px rgb(33, 135, 202)}
|
||||
#bo_gall .gall_con {position:relative}
|
||||
|
||||
.gall_row .col-gn-0,.gall_row .col-gn-1,.gall_row .col-gn-2,.gall_row .col-gn-3,.gall_row .col-gn-4,.gall_row .col-gn-5,.gall_row .col-gn-6,.gall_row .col-gn-7,.gall_row .col-gn-8,.gall_row .col-gn-9,.gall_row .col-gn-10 {position:relative;min-height:1px;padding-left:10px;*padding-left:0;padding-right:10px;*padding-right:0;float:left;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;margin-left:0}
|
||||
.gall_row .col-gn-0,.latest_row .col-gn-1 {width:100%}
|
||||
.gall_row .col-gn-0,.gall_row .col-gn-1 {width:100%}
|
||||
.gall_row .col-gn-2 {width:50%}
|
||||
.gall_row .col-gn-3 {width:33.33333333%}
|
||||
.gall_row .col-gn-4 {width:25%}
|
||||
|
||||
@@ -39,7 +39,7 @@ add_stylesheet('<link rel="stylesheet" href="'.$member_skin_url.'/style.css">',
|
||||
</div>
|
||||
|
||||
<?php // 쇼핑몰 사용시 여기부터 ?>
|
||||
<?php if ($default['de_level_sell'] == 1) { // 상품구입 권한 ?>
|
||||
<?php if (isset($default['de_level_sell']) && $default['de_level_sell'] == 1) { // 상품구입 권한 ?>
|
||||
|
||||
<!-- 주문하기, 신청하기 -->
|
||||
<?php if (preg_match("/orderform.php/", $url)) { ?>
|
||||
|
||||
@@ -41,6 +41,11 @@ add_stylesheet('<link rel="stylesheet" href="'.$qa_skin_url.'/style.css">', 0);
|
||||
<legend>게시물 검색</legend>
|
||||
<form name="fsearch" method="get">
|
||||
<input type="hidden" name="sca" value="<?php echo $sca ?>">
|
||||
<input type="hidden" name="sop" value="and">
|
||||
<label for="sfl" class="sound_only">검색대상</label>
|
||||
<select name="sfl" id="sfl">
|
||||
<?php echo get_qa_sfl_select_options($sfl); ?>
|
||||
</select>
|
||||
<label for="stx" class="sound_only">검색어<strong class="sound_only"> 필수</strong></label>
|
||||
<div class="sch_bar">
|
||||
<input type="text" name="stx" value="<?php echo stripslashes($stx); ?>" id="stx" required class="sch_input" size="25" maxlength="15" placeholder=" 검색어를 입력해주세요">
|
||||
|
||||
@@ -182,7 +182,7 @@ box-shadow:inset 0 2px 5px rgb(33, 135, 202)}
|
||||
.bo_sch select {border:0;width:100%;height:40px;border:1px solid #d0d3db;border-radius:2px;-webkit-box-shadow:inset 0 1px 1px rgba(0, 0, 0, .075);
|
||||
-moz-box-shadow:inset 0 1px 1px rgba(0, 0, 0, .075);
|
||||
box-shadow:inset 0 1px 1px rgba(0, 0, 0, .075)}
|
||||
.bo_sch .sch_bar {display:inline-block;width:100%;clear:both;border:1px solid #d0d3db;border-radius:2px;-webkit-box-shadow:inset 0 1px 1px rgba(0, 0, 0, .075);
|
||||
.bo_sch .sch_bar {display:inline-block;width:100%;clear:both;margin-top:15px;border:1px solid #d0d3db;border-radius:2px;-webkit-box-shadow:inset 0 1px 1px rgba(0, 0, 0, .075);
|
||||
-moz-box-shadow:inset 0 1px 1px rgba(0, 0, 0, .075);
|
||||
box-shadow:inset 0 1px 1px rgba(0, 0, 0, .075)}
|
||||
.bo_sch .sch_input {width:250px;height:38px;border:0;padding:0;background-color:transparent;float:left}
|
||||
|
||||
@@ -23,7 +23,7 @@ for ($i=0; $row=sql_fetch_array($result); $i++)
|
||||
$banner = '';
|
||||
$size = getimagesize($bimg);
|
||||
echo '<li>'.PHP_EOL;
|
||||
if ($row['bn_url'][0] == '#')
|
||||
if (preg_match("/^#/", $row['bn_url']))
|
||||
$banner .= '<a href="'.$row['bn_url'].'">';
|
||||
else if ($row['bn_url'] && $row['bn_url'] != 'http://') {
|
||||
$banner .= '<a href="'.G5_SHOP_URL.'/bannerhit.php?bn_id='.$row['bn_id'].'"'.$bn_new_win.'>';
|
||||
|
||||
@@ -35,7 +35,9 @@ include_once(G5_LIB_PATH.'/popular.lib.php');
|
||||
<?php if(G5_COMMUNITY_USE) { ?>
|
||||
<ul id="hd_define">
|
||||
<li class="active"><a href="<?php echo G5_URL ?>/">커뮤니티</a></li>
|
||||
<?php if (defined('G5_USE_SHOP') && G5_USE_SHOP) { ?>
|
||||
<li><a href="<?php echo G5_SHOP_URL ?>/">쇼핑몰</a></li>
|
||||
<?php } ?>
|
||||
</ul>
|
||||
<?php } ?>
|
||||
<ul id="hd_qnb">
|
||||
|
||||
@@ -68,8 +68,10 @@ var g5_bo_table = "<?php echo isset($bo_table)?$bo_table:''; ?>";
|
||||
var g5_sca = "<?php echo isset($sca)?$sca:''; ?>";
|
||||
var g5_editor = "<?php echo ($config['cf_editor'] && $board['bo_use_dhtml_editor'])?$config['cf_editor']:''; ?>";
|
||||
var g5_cookie_domain = "<?php echo G5_COOKIE_DOMAIN ?>";
|
||||
<?php if (defined('G5_USE_SHOP') && G5_USE_SHOP) { ?>
|
||||
var g5_theme_shop_url = "<?php echo G5_THEME_SHOP_URL; ?>";
|
||||
var g5_shop_url = "<?php echo G5_SHOP_URL; ?>";
|
||||
<?php } ?>
|
||||
<?php if(defined('G5_IS_ADMIN')) { ?>
|
||||
var g5_admin_url = "<?php echo G5_ADMIN_URL; ?>";
|
||||
<?php } ?>
|
||||
|
||||
@@ -69,7 +69,9 @@ include_once(G5_LIB_PATH.'/popular.lib.php');
|
||||
if ($i == 0) { ?>
|
||||
<li id="gnb_empty">메뉴 준비 중입니다.<?php if ($is_admin) { ?> <br><a href="<?php echo G5_ADMIN_URL; ?>/menu_list.php">관리자모드 > 환경설정 > 메뉴설정</a>에서 설정하세요.<?php } ?></li>
|
||||
<?php } ?>
|
||||
<?php if (defined('G5_USE_SHOP') && G5_USE_SHOP) { ?>
|
||||
<li class="gnb_1dli"><a href="<?php echo G5_SHOP_URL ?>" class="gnb_1da"> 쇼핑몰</a></li>
|
||||
<?php } ?>
|
||||
</ul>
|
||||
|
||||
<ul id="hd_nb">
|
||||
|
||||
@@ -34,13 +34,7 @@ $admin = get_admin("super");
|
||||
<?php
|
||||
if(G5_DEVICE_BUTTON_DISPLAY && G5_IS_MOBILE) { ?>
|
||||
<a href="<?php echo get_device_change_url(); ?>" id="device_change">PC 버전</a>
|
||||
<?php
|
||||
}
|
||||
|
||||
if ($config['cf_analytics']) {
|
||||
echo $config['cf_analytics'];
|
||||
}
|
||||
?>
|
||||
<?php } ?>
|
||||
</div>
|
||||
|
||||
<?php
|
||||
|
||||
@@ -1,67 +1,5 @@
|
||||
@charset "utf-8";
|
||||
|
||||
/* ### 기본 스타일 커스터마이징 시작 ### */
|
||||
|
||||
/* 게시판 버튼 */
|
||||
/* 목록 버튼 */
|
||||
#bo_gall a.btn_b01 {}
|
||||
#bo_gall a.btn_b01:focus, #bo_gall .btn_b01:hover {}
|
||||
#bo_gall a.btn_b02 {}
|
||||
#bo_gall a.btn_b02:focus, #bo_gall .btn_b02:hover {}
|
||||
#bo_gall a.btn_admin {} /* 관리자 전용 버튼 */
|
||||
#bo_gall a.btn_admin:focus, #bo_gall a.btn_admin:hover {}
|
||||
|
||||
/* 읽기 버튼 */
|
||||
#bo_v a.btn_b01 {}
|
||||
#bo_v a.btn_b01:focus, #bo_v .btn_b01:hover {}
|
||||
#bo_v a.btn_b02 {}
|
||||
#bo_v a.btn_b02:focus, #bo_v .btn_b02:hover {}
|
||||
#bo_v a.btn_admin {} /* 관리자 전용 버튼 */
|
||||
#bo_v a.btn_admin:focus, #bo_v a.btn_admin:hover {}
|
||||
|
||||
/* 쓰기 버튼 */
|
||||
#bo_w .btn_confirm {} /* 서식단계 진행 */
|
||||
#bo_w .btn_submit {}
|
||||
#bo_w .btn_cancel {}
|
||||
#bo_w .btn_frmline {} /* 우편번호검색버튼 등 */
|
||||
|
||||
/* 기본테이블 */
|
||||
/* 읽기 내 테이블 */
|
||||
#bo_v .tbl_head01 {}
|
||||
#bo_v .tbl_head01 caption {}
|
||||
#bo_v .tbl_head01 thead th {}
|
||||
#bo_v .tbl_head01 thead a {}
|
||||
#bo_v .tbl_head01 thead th input {} /* middle 로 하면 게시판 읽기에서 목록 사용시 체크박스 라인 깨짐 */
|
||||
#bo_v .tbl_head01 tfoot th {}
|
||||
#bo_v .tbl_head01 tfoot td {}
|
||||
#bo_v .tbl_head01 tbody th {}
|
||||
#bo_v .tbl_head01 td {}
|
||||
#bo_v .tbl_head01 a {}
|
||||
#bo_v td.empty_table {}
|
||||
|
||||
/* 쓰기 테이블 */
|
||||
#bo_w table {}
|
||||
#bo_w caption {}
|
||||
#bo_w .frm_address {}
|
||||
#bo_w .frm_file {}
|
||||
#bo_w .frm_info {}
|
||||
|
||||
#bo_w .tbl_frm01 {}
|
||||
#bo_w .tbl_frm01 caption {}
|
||||
#bo_w .tbl_frm01 th {}
|
||||
#bo_w .tbl_frm01 td {}
|
||||
#bo_w .tbl_frm01 textarea, #bo_w .frm_input {}
|
||||
#bo_w .tbl_frm01 textarea {}
|
||||
/*
|
||||
#bo_w .tbl_frm01 #captcha {}
|
||||
#bo_w .tbl_frm01 #captcha input {}
|
||||
*/
|
||||
#bo_w .tbl_frm01 a {}
|
||||
|
||||
#bo_w .required, #bo_w textarea.required {}
|
||||
|
||||
/* ### 기본 스타일 커스터마이징 끝 ### */
|
||||
|
||||
/* 갤러리 공통 */
|
||||
.bo_fx {margin-bottom:5px;padding:0 10px}
|
||||
.bo_fx:after {display:block;visibility:hidden;clear:both;content:""}
|
||||
|
||||
@@ -23,21 +23,21 @@ add_stylesheet('<link rel="stylesheet" href="'.$outlogin_skin_url.'/style.css">'
|
||||
|
||||
<ul id="ol_after_private">
|
||||
<li id="ol_after_memo">
|
||||
<a href="<?php echo G5_BBS_URL ?>/memo.php" target="_blank">
|
||||
<a href="<?php echo G5_BBS_URL ?>/memo.php" target="_blank" class="win_memo">
|
||||
<i class="fa fa-envelope-o" aria-hidden="true"></i>
|
||||
<span class="sound_only">안 읽은</span>쪽지
|
||||
<strong><?php echo $memo_not_read ?></strong>
|
||||
</a>
|
||||
</li>
|
||||
<li id="ol_after_pt">
|
||||
<a href="<?php echo G5_BBS_URL ?>/point.php" target="_blank">
|
||||
<a href="<?php echo G5_BBS_URL ?>/point.php" target="_blank" class="win_point">
|
||||
<i class="fa fa-database" aria-hidden="true"></i>
|
||||
포인트
|
||||
<strong><?php echo $point ?></strong>
|
||||
</a>
|
||||
</li>
|
||||
<li id="ol_after_scrap">
|
||||
<a href="<?php echo G5_BBS_URL ?>/scrap.php" target="_blank">
|
||||
<a href="<?php echo G5_BBS_URL ?>/scrap.php" target="_blank" class="win_scrap">
|
||||
<i class="fa fa-thumb-tack" aria-hidden="true"></i>스크랩
|
||||
</a>
|
||||
</li>
|
||||
|
||||
@@ -15,7 +15,7 @@ add_stylesheet('<link rel="stylesheet" href="'.$outlogin_skin_url.'/style.css">'
|
||||
<a href="<?php echo G5_BBS_URL ?>/member_confirm.php?url=register_form.php" id="ol_after_info"><i class="fa fa-cog" aria-hidden="true"></i><span class="sound_only">정보수정</span></a>
|
||||
</span>
|
||||
<strong class="nickname"><?php echo $nick ?>님</strong>
|
||||
<a href="<?php echo G5_BBS_URL ?>/point.php" target="_blank" class="point"><strong><?php echo $point ?></strong> 포인트
|
||||
<a href="<?php echo G5_BBS_URL ?>/point.php" target="_blank" class="point win_point"><strong><?php echo $point ?></strong> 포인트
|
||||
</a>
|
||||
<div id="ol_after_btn">
|
||||
<?php if ($is_admin == 'super' || $is_auth) { ?><a href="<?php echo G5_ADMIN_URL ?>" class="btn_admin">관리자</a><?php } ?>
|
||||
@@ -26,13 +26,18 @@ add_stylesheet('<link rel="stylesheet" href="'.$outlogin_skin_url.'/style.css">'
|
||||
|
||||
<ul id="ol_after_private">
|
||||
<li id="ol_after_memo">
|
||||
<a href="<?php echo G5_BBS_URL ?>/memo.php" target="_blank">
|
||||
<a href="<?php echo G5_BBS_URL ?>/memo.php" target="_blank" class="win_memo">
|
||||
<i class="fa fa-envelope" aria-hidden="true"></i>쪽지
|
||||
<strong><?php echo $memo_not_read; ?></strong>
|
||||
</a>
|
||||
</li>
|
||||
|
||||
<li><a href="<?php echo G5_SHOP_URL ?>/coupon.php" target="_blank" class="win_coupon"><i class="fa fa-ticket" aria-hidden="true"></i>쿠폰<strong><?php echo number_format(get_shop_member_coupon_count($member['mb_id'], true)); ?></strong></a></li>
|
||||
<li>
|
||||
<a href="<?php echo G5_SHOP_URL ?>/coupon.php" target="_blank" class="win_coupon">
|
||||
<i class="fa fa-ticket" aria-hidden="true"></i>쿠폰
|
||||
<strong><?php echo number_format(get_shop_member_coupon_count($member['mb_id'], true)); ?></strong>
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
</aside>
|
||||
|
||||
@@ -115,6 +115,11 @@ add_stylesheet('<link rel="stylesheet" href="'.$qa_skin_url.'/style.css">', 0);
|
||||
<legend>게시물 검색</legend>
|
||||
<form name="fsearch" method="get">
|
||||
<input type="hidden" name="sca" value="<?php echo $sca ?>">
|
||||
<input type="hidden" name="sop" value="and">
|
||||
<label for="sfl" class="sound_only">검색대상</label>
|
||||
<select name="sfl" id="sfl">
|
||||
<?php echo get_qa_sfl_select_options($sfl); ?>
|
||||
</select>
|
||||
<label for="stx" class="sound_only">검색어<strong class="sound_only"> 필수</strong></label>
|
||||
<input type="text" name="stx" value="<?php echo stripslashes($stx) ?>" required placeholder="검색어를 입력하세요" id="stx" class="sch_input" size="15" maxlength="15">
|
||||
<button type="submit" value="검색" class="sch_btn"><i class="fa fa-search" aria-hidden="true"></i> <span class="sound_only">검색</span></button>
|
||||
|
||||
@@ -136,7 +136,8 @@
|
||||
#bo_sch {background:#fff;border:1px solid #d0d3db;position:relative;margin:10px}
|
||||
#bo_sch:after {display:block;visibility:hidden;clear:both;content:""}
|
||||
#bo_sch legend {position:absolute;margin:0;padding:0;font-size:0;line-height:0;text-indent:-9999em;overflow:hidden}
|
||||
#bo_sch .sch_input {float:left;width:100%;height:38px;border:0;padding:0;background-color:transparent;padding:0 0 0 10px}
|
||||
#bo_sch select {border:0;height:38px;border-right:1px solid #f8f8f8;float:left;width:30%}
|
||||
#bo_sch .sch_input {height:38px;border:0;padding:0;background-color:transparent;float:left;width:70%;padding:0 40px 0 10px}
|
||||
#bo_sch .sch_btn {height:38px;position:absolute;top:0;right:0;border:0;width:40px;background:none;font-size:15px}
|
||||
|
||||
|
||||
|
||||
@@ -36,7 +36,7 @@ box-shadow:inset 0 2px 5px rgb(33, 135, 202)}
|
||||
#bo_gall .gall_con {position:relative}
|
||||
|
||||
.gall_row .col-gn-0,.gall_row .col-gn-1,.gall_row .col-gn-2,.gall_row .col-gn-3,.gall_row .col-gn-4,.gall_row .col-gn-5,.gall_row .col-gn-6,.gall_row .col-gn-7,.gall_row .col-gn-8,.gall_row .col-gn-9,.gall_row .col-gn-10 {position:relative;min-height:1px;padding-left:10px;*padding-left:0;padding-right:10px;*padding-right:0;float:left;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;margin-left:0}
|
||||
.gall_row .col-gn-0,.latest_row .col-gn-1 {width:100%}
|
||||
.gall_row .col-gn-0,.gall_row .col-gn-1 {width:100%}
|
||||
.gall_row .col-gn-2 {width:50%}
|
||||
.gall_row .col-gn-3 {width:33.33333333%}
|
||||
.gall_row .col-gn-4 {width:25%}
|
||||
|
||||
@@ -41,6 +41,11 @@ add_stylesheet('<link rel="stylesheet" href="'.$qa_skin_url.'/style.css">', 0);
|
||||
<legend>게시물 검색</legend>
|
||||
<form name="fsearch" method="get">
|
||||
<input type="hidden" name="sca" value="<?php echo $sca ?>">
|
||||
<input type="hidden" name="sop" value="and">
|
||||
<label for="sfl" class="sound_only">검색대상</label>
|
||||
<select name="sfl" id="sfl">
|
||||
<?php echo get_qa_sfl_select_options($sfl); ?>
|
||||
</select>
|
||||
<label for="stx" class="sound_only">검색어<strong class="sound_only"> 필수</strong></label>
|
||||
<div class="sch_bar">
|
||||
<input type="text" name="stx" value="<?php echo stripslashes($stx); ?>" id="stx" required class="sch_input" size="25" maxlength="15" placeholder=" 검색어를 입력해주세요">
|
||||
|
||||
@@ -182,7 +182,7 @@ box-shadow:inset 0 2px 5px rgb(33, 135, 202)}
|
||||
.bo_sch select {border:0;width:100%;height:40px;border:1px solid #d0d3db;border-radius:2px;-webkit-box-shadow:inset 0 1px 1px rgba(0, 0, 0, .075);
|
||||
-moz-box-shadow:inset 0 1px 1px rgba(0, 0, 0, .075);
|
||||
box-shadow:inset 0 1px 1px rgba(0, 0, 0, .075)}
|
||||
.bo_sch .sch_bar {display:inline-block;width:100%;clear:both;border:1px solid #d0d3db;border-radius:2px;-webkit-box-shadow:inset 0 1px 1px rgba(0, 0, 0, .075);
|
||||
.bo_sch .sch_bar {display:inline-block;width:100%;clear:both;margin-top:15px;border:1px solid #d0d3db;border-radius:2px;-webkit-box-shadow:inset 0 1px 1px rgba(0, 0, 0, .075);
|
||||
-moz-box-shadow:inset 0 1px 1px rgba(0, 0, 0, .075);
|
||||
box-shadow:inset 0 1px 1px rgba(0, 0, 0, .075)}
|
||||
.bo_sch .sch_input {width:250px;height:38px;border:0;padding:0;background-color:transparent;float:left}
|
||||
|
||||
@@ -0,0 +1,9 @@
|
||||
<?php
|
||||
if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가
|
||||
|
||||
define('G5_VERSION', '그누보드5');
|
||||
define('G5_GNUBOARD_VER', '5.4.16');
|
||||
// 그누보드5.4.5.5 버전과 영카트5.4.5.5.1 버전을 합쳐서 그누보드5.4.6 버전에서 시작함 (kagla-210617)
|
||||
// G5_YOUNGCART_VER 이 상수를 사용하는 곳이 있으므로 주석 처리 해제함
|
||||
// 그누보드5.4.6 이상 버전 부터는 영카트를 그누보드에 포함하여 배포하므로 영카트5의 버전은 의미가 없습니다.
|
||||
define('G5_YOUNGCART_VER', '5.4.5.5.1');
|
||||
Reference in New Issue
Block a user