Compare commits
101
Commits
v5.5.8.1.1
...
v5.5.8.2.8
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
b01adc51c7 | ||
|
|
bfdc48b021 | ||
|
|
10b3a9c841 | ||
|
|
3f27a5e32d | ||
|
|
a904c5c634 | ||
|
|
d603f2d5b3 | ||
|
|
275f7e5d8a | ||
|
|
2595a7a45d | ||
|
|
cb346b08c1 | ||
|
|
3db2dc8be3 | ||
|
|
b3451f1cc2 | ||
|
|
b557483e1d | ||
|
|
d28be44108 | ||
|
|
f61d6cc09a | ||
|
|
6fa0f0e704 | ||
|
|
66039a4b37 | ||
|
|
aca4733b12 | ||
|
|
85b97f4b29 | ||
|
|
724a4e4bf6 | ||
|
|
9cf8804611 | ||
|
|
8f3893bb43 | ||
|
|
7617aba611 | ||
|
|
d99641d122 | ||
|
|
7516424989 | ||
|
|
1cb12d9f2c | ||
|
|
dbcb6a2cb6 | ||
|
|
18c42a648e | ||
|
|
f5e2252997 | ||
|
|
6fd339174e | ||
|
|
1891b5eb38 | ||
|
|
3fcc1f2d5f | ||
|
|
4958cc9e35 | ||
|
|
1750e957d2 | ||
|
|
abfeee5e92 | ||
|
|
c3272f9170 | ||
|
|
df176c6ad9 | ||
|
|
22bfc5e9bb | ||
|
|
4e0cd0d911 | ||
|
|
25091a201b | ||
|
|
3706ef99d3 | ||
|
|
69a4998fce | ||
|
|
513976b5a2 | ||
|
|
97a8352117 | ||
|
|
21dc36199f | ||
|
|
0a18368759 | ||
|
|
6d9db83789 | ||
|
|
3e53cd8ff6 | ||
|
|
816a32d5c9 | ||
|
|
529b8a1004 | ||
|
|
62d0bf5c4e | ||
|
|
4c6b833f73 | ||
|
|
21532eb9bf | ||
|
|
cd50af93fd | ||
|
|
589b7f4e39 | ||
|
|
9c8f7128f2 | ||
|
|
a93008d392 | ||
|
|
d3561623aa | ||
|
|
311e879563 | ||
|
|
9932b99a51 | ||
|
|
5c9ed36bf2 | ||
|
|
dbc8e1676a | ||
|
|
749345e502 | ||
|
|
7c8a21ecc0 | ||
|
|
8751ab122a | ||
|
|
0f3e6125b5 | ||
|
|
a21d02f4c5 | ||
|
|
2f9fb355e3 | ||
|
|
8074bce274 | ||
|
|
85dbbe946a | ||
|
|
1f2e79b188 | ||
|
|
27434107e8 | ||
|
|
f1a303e445 | ||
|
|
ba062ca5b6 | ||
|
|
34774f0fc3 | ||
|
|
26b22ac9ca | ||
|
|
9e4a8a95b0 | ||
|
|
1bca642b33 | ||
|
|
3a59bca369 | ||
|
|
5ad2307175 | ||
|
|
25b3d8f6ed | ||
|
|
0d02afd712 | ||
|
|
78d5dce761 | ||
|
|
45d5404520 | ||
|
|
1e6710a55b | ||
|
|
463ca06a21 | ||
|
|
71f58f3108 | ||
|
|
a6e302ff84 | ||
|
|
0c275d0907 | ||
|
|
fa7d0bc717 | ||
|
|
95492a5cd8 | ||
|
|
58dc48d3ea | ||
|
|
281bb5427c | ||
|
|
0577882c6c | ||
|
|
be758d57a5 | ||
|
|
3cee6ede91 | ||
|
|
5d86287069 | ||
|
|
c1a45a1bec | ||
|
|
444c6d88c2 | ||
|
|
958b9342b5 | ||
|
|
adc8e94774 | ||
|
|
26857a8d50 |
+16
-2
@@ -421,6 +421,16 @@ function get_sanitize_input($s, $is_html = false)
|
||||
return $s;
|
||||
}
|
||||
|
||||
function domain_mail_host($is_at=true){
|
||||
list($domain_host,) = explode(':', $_SERVER['HTTP_HOST']);
|
||||
|
||||
if ('www.' === substr($domain_host, 0, 4)) {
|
||||
$domain_host = substr($domain_host, 4);
|
||||
}
|
||||
|
||||
return $is_at ? '@'.$domain_host : $domain_host;
|
||||
}
|
||||
|
||||
function check_log_folder($log_path, $is_delete = true)
|
||||
{
|
||||
|
||||
@@ -675,5 +685,9 @@ if (isset($_REQUEST) && $_REQUEST) {
|
||||
}
|
||||
}
|
||||
|
||||
// 관리자에서는 추가 스크립트는 사용하지 않는다.
|
||||
//$config['cf_add_script'] = '';
|
||||
// 관리자에서는 추가 스크립트와 추가 매타태그, 방문자분석 스크립트가 실행되지 않게 빈값으로 합니다.
|
||||
if (run_replace('safe_admin_add_script_boolean', false) === false) {
|
||||
$config['cf_analytics'] = '';
|
||||
$config['cf_add_script'] = '';
|
||||
$config['cf_add_meta'] = '';
|
||||
}
|
||||
+5
-4
@@ -914,7 +914,7 @@ $pg_anchor = '<ul class="anchor">
|
||||
<tr>
|
||||
<th scope="row"><label for="bo_include_head">상단 파일 경로</label></th>
|
||||
<td>
|
||||
<input type="text" name="bo_include_head" value="<?php echo $board['bo_include_head'] ?>" id="bo_include_head" class="frm_input" size="50">
|
||||
<input type="text" name="bo_include_head" value="<?php echo get_sanitize_input($board['bo_include_head']); ?>" id="bo_include_head" class="frm_input" size="50">
|
||||
</td>
|
||||
<td class="td_grpset">
|
||||
<input type="checkbox" name="chk_grp_include_head" value="1" id="chk_grp_include_head">
|
||||
@@ -926,7 +926,7 @@ $pg_anchor = '<ul class="anchor">
|
||||
<tr>
|
||||
<th scope="row"><label for="bo_include_tail">하단 파일 경로</label></th>
|
||||
<td>
|
||||
<input type="text" name="bo_include_tail" value="<?php echo $board['bo_include_tail'] ?>" id="bo_include_tail" class="frm_input" size="50">
|
||||
<input type="text" name="bo_include_tail" value="<?php echo get_sanitize_input($board['bo_include_tail']); ?>" id="bo_include_tail" class="frm_input" size="50">
|
||||
</td>
|
||||
<td class="td_grpset">
|
||||
<input type="checkbox" name="chk_grp_include_tail" value="1" id="chk_grp_include_tail">
|
||||
@@ -1423,9 +1423,10 @@ function use_captcha_check(){
|
||||
});
|
||||
}
|
||||
|
||||
var bo_include_head = jQuery.trim(jQuery("#bo_include_head").val()),
|
||||
bo_include_tail = jQuery.trim(jQuery("#bo_include_tail").val());
|
||||
|
||||
function frm_check_file(){
|
||||
var bo_include_head = "<?php echo $board['bo_include_head']; ?>";
|
||||
var bo_include_tail = "<?php echo $board['bo_include_tail']; ?>";
|
||||
var head = jQuery.trim(jQuery("#bo_include_head").val());
|
||||
var tail = jQuery.trim(jQuery("#bo_include_tail").val());
|
||||
|
||||
|
||||
+10
-5
@@ -8,6 +8,8 @@ if ($is_admin != 'super') {
|
||||
alert('최고관리자만 접근 가능합니다.');
|
||||
}
|
||||
|
||||
$copy_config = get_config(true);
|
||||
|
||||
if (!isset($config['cf_add_script'])) {
|
||||
sql_query(
|
||||
" ALTER TABLE `{$g5['config_table']}`
|
||||
@@ -475,6 +477,9 @@ if ($config['cf_sms_use'] && $config['cf_icode_id'] && $config['cf_icode_pw']) {
|
||||
<td colspan="3">
|
||||
<?php echo help('관리자가 보내고 받는 용도로 사용하는 메일 주소를 입력합니다. (회원가입, 인증메일, 테스트, 회원메일발송 등에서 사용)') ?>
|
||||
<input type="text" name="cf_admin_email" value="<?php echo get_sanitize_input($config['cf_admin_email']); ?>" id="cf_admin_email" required class="required email frm_input" size="40">
|
||||
<?php if (function_exists('domain_mail_host') && $config['cf_admin_email'] && stripos($config['cf_admin_email'], domain_mail_host()) === false) { ?>
|
||||
<?php echo help('외부메일설정이나 기타 설정을 하지 않았다면, 도메인과 다른 헤더로 여겨 스팸이나 차단될 가능성이 있습니다.<br>name'.domain_mail_host().' 과 같은 도메인 형식으로 설정할것을 권장합니다.') ?>
|
||||
<?php } ?>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
@@ -693,15 +698,15 @@ if ($config['cf_sms_use'] && $config['cf_icode_id'] && $config['cf_icode_pw']) {
|
||||
<tr>
|
||||
<th scope="row"><label for="cf_analytics">방문자분석 스크립트</label></th>
|
||||
<td colspan="3">
|
||||
<?php echo help('방문자분석 스크립트 코드를 입력합니다. 예) 구글 애널리틱스'); ?>
|
||||
<textarea name="cf_analytics" id="cf_analytics"><?php echo get_text($config['cf_analytics']); ?></textarea>
|
||||
<?php echo help('방문자분석 스크립트 코드를 입력합니다. 예) 구글 애널리틱스<br>관리자 페이지에서는 이 코드를 사용하지 않습니다.'); ?>
|
||||
<textarea name="cf_analytics" id="cf_analytics"><?php echo get_text($copy_config['cf_analytics']); ?></textarea>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row"><label for="cf_add_meta">추가 메타태그</label></th>
|
||||
<td colspan="3">
|
||||
<?php echo help('추가로 사용하실 meta 태그를 입력합니다.'); ?>
|
||||
<textarea name="cf_add_meta" id="cf_add_meta"><?php echo get_text($config['cf_add_meta']); ?></textarea>
|
||||
<?php echo help('추가로 사용하실 meta 태그를 입력합니다.<br>관리자 페이지에서는 이 코드를 사용하지 않습니다.'); ?>
|
||||
<textarea name="cf_add_meta" id="cf_add_meta"><?php echo get_text($copy_config['cf_add_meta']); ?></textarea>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
@@ -1387,7 +1392,7 @@ if ($config['cf_sms_use'] && $config['cf_icode_id'] && $config['cf_icode_pw']) {
|
||||
<th scope="row"><label for="cf_add_script">추가 script, css</label></th>
|
||||
<td>
|
||||
<?php echo help('HTML의 </HEAD> 태그위로 추가될 JavaScript와 css 코드를 설정합니다.<br>관리자 페이지에서는 이 코드를 사용하지 않습니다.') ?>
|
||||
<textarea name="cf_add_script" id="cf_add_script"><?php echo get_text($config['cf_add_script']); ?></textarea>
|
||||
<textarea name="cf_add_script" id="cf_add_script"><?php echo get_text($copy_config['cf_add_script']); ?></textarea>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
|
||||
+2
-2
@@ -137,14 +137,14 @@ require_once G5_ADMIN_PATH . '/admin.head.php';
|
||||
<th scope="row"><label for="co_include_head">상단 파일 경로</label></th>
|
||||
<td>
|
||||
<?php echo help("설정값이 없으면 기본 상단 파일을 사용합니다."); ?>
|
||||
<input type="text" name="co_include_head" value="<?php echo $co['co_include_head']; ?>" id="co_include_head" class="frm_input" size="60">
|
||||
<input type="text" name="co_include_head" value="<?php echo get_sanitize_input($co['co_include_head']); ?>" id="co_include_head" class="frm_input" size="60">
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row"><label for="co_include_tail">하단 파일 경로</label></th>
|
||||
<td>
|
||||
<?php echo help("설정값이 없으면 기본 하단 파일을 사용합니다."); ?>
|
||||
<input type="text" name="co_include_tail" value="<?php echo $co['co_include_tail']; ?>" id="co_include_tail" class="frm_input" size="60">
|
||||
<input type="text" name="co_include_tail" value="<?php echo get_sanitize_input($co['co_include_tail']); ?>" id="co_include_tail" class="frm_input" size="60">
|
||||
</td>
|
||||
</tr>
|
||||
<tr id="admin_captcha_box" style="display:none;">
|
||||
|
||||
+2
-15
@@ -447,6 +447,7 @@ tfoot th {}
|
||||
.td_delino {width:130px}
|
||||
.td_device {width:70px;text-align:center}
|
||||
.td_etc {width:80px;text-align:center}
|
||||
.td_use {width:80px;text-align:center}
|
||||
.td_extra label {display:inline-block;width:100px}
|
||||
.td_extra input {margin-right:5px;width:130px}
|
||||
.td_grid {width:60px;text-align:center}
|
||||
@@ -876,20 +877,6 @@ strong.sodr_nonpay {display:block;padding:5px 0;text-align:right}
|
||||
.sbn_img {text-align:center}
|
||||
.sbn_image {display:none;margin:0 0 10px;text-align:left}
|
||||
|
||||
/* SMS문자전송 */
|
||||
#sms_send {padding-bottom:100px;zoom:1}
|
||||
#sms_send:after {display:block;visibility:hidden;clear:both;content:""}
|
||||
|
||||
#sms_frm {float:left;width:650px}
|
||||
#sms_frm table {margin:0 0 30px}
|
||||
#sms_frm textarea {height:70px}
|
||||
|
||||
#sms_sm {position:relative;float:left;width:229px;height:418px;background:url('../shop_admin/img/mobilebg.jpg') no-repeat}
|
||||
#sms_sm_text {position:absolute;top:75px;left:27px;width:180px;color:#fff;font-size:2em;word-break:break-all}
|
||||
#sms_sm p {position:absolute;bottom:-70px;left:0;font-size:0.95em;letter-spacing:-0.1em}
|
||||
|
||||
#sms_send .local_desc01 {min-width:320px}
|
||||
|
||||
/* 가격비교사이트 */
|
||||
#anc_pricecompare_info li {margin:5px 0 5px -1px}
|
||||
|
||||
@@ -1075,7 +1062,7 @@ box-shadow: 1px 2px 5px rgba(150,150,150,0.5);z-index:1000}
|
||||
#theme_detail:after{display:block;visibility:hidden;clear:both;content:""}
|
||||
#theme_detail h2{font-size:1.25em;background:#fff;padding:0 15px;line-height:40px;border-bottom:1px solid #d8d8d8;margin:0}
|
||||
.theme_dt_img{float:left;padding:20px}
|
||||
.theme_dt_img img{border:1px solid #aaa;}
|
||||
.theme_dt_img img{border:1px solid #aaa;max-width:600px;max-height:460px}
|
||||
.theme_dt_if{float:left;width:235px;padding:20px 0}
|
||||
.theme_dt_if table{width:100%;border-collapse:collapse;margin:15px 0 0 ;font-size:0.92em}
|
||||
.theme_dt_if table th{padding:5px;background:#fff;border-bottom:1px solid #f3f3f3;vertical-align:top;color:#3f51b5}
|
||||
|
||||
@@ -121,7 +121,7 @@ require_once './admin.head.php';
|
||||
<?php } ?>
|
||||
</tbody>
|
||||
</table>
|
||||
<textarea name="ma_list" style="display:none"><?php echo $ma_list ?></textarea>
|
||||
<textarea name="ma_list" style="display:none"><?php echo html_purifier($ma_list); ?></textarea>
|
||||
</div>
|
||||
|
||||
<div class="btn_confirm01 btn_confirm">
|
||||
|
||||
+3
-3
@@ -380,15 +380,15 @@ add_javascript(G5_POSTCODE_JS, 0); //다음 주소 js
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row"><label for="mb_signature">서명</label></th>
|
||||
<td colspan="3"><textarea name="mb_signature" id="mb_signature"><?php echo $mb['mb_signature'] ?></textarea></td>
|
||||
<td colspan="3"><textarea name="mb_signature" id="mb_signature"><?php echo html_purifier($mb['mb_signature']); ?></textarea></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row"><label for="mb_profile">자기 소개</label></th>
|
||||
<td colspan="3"><textarea name="mb_profile" id="mb_profile"><?php echo $mb['mb_profile'] ?></textarea></td>
|
||||
<td colspan="3"><textarea name="mb_profile" id="mb_profile"><?php echo html_purifier($mb['mb_profile']); ?></textarea></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row"><label for="mb_memo">메모</label></th>
|
||||
<td colspan="3"><textarea name="mb_memo" id="mb_memo"><?php echo $mb['mb_memo'] ?></textarea></td>
|
||||
<td colspan="3"><textarea name="mb_memo" id="mb_memo"><?php echo html_purifier($mb['mb_memo']); ?></textarea></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row"><label for="mb_cert_history">본인인증 내역</label></th>
|
||||
|
||||
@@ -158,7 +158,13 @@ if ($w == '') {
|
||||
}
|
||||
|
||||
if ($mb_id === $member['mb_id'] && $_POST['mb_level'] != $mb['mb_level']) {
|
||||
alert($mb['mb_id'] . ' : 로그인 중인 관리자 레벨은 수정 할 수 없습니다.');
|
||||
alert($mb['mb_id'] . ' : 로그인 중인 관리자 레벨은 수정할 수 없습니다.');
|
||||
}
|
||||
|
||||
if ($posts['mb_leave_date'] || $posts['mb_intercept_date']){
|
||||
if ($member['mb_id'] === $mb['mb_id'] || is_admin($mb['mb_id']) === 'super'){
|
||||
alert('해당 관리자의 탈퇴 일자 또는 접근 차단 일자를 수정할 수 없습니다.');
|
||||
}
|
||||
}
|
||||
|
||||
// 닉네임중복체크
|
||||
|
||||
+10
-2
@@ -23,6 +23,10 @@ if ($w == '') {
|
||||
alert('w 값이 제대로 넘어오지 않았습니다.');
|
||||
}
|
||||
|
||||
if (!isset($po['po_use'])) {
|
||||
sql_query(" alter table `{$g5['poll_table']}` add `po_use` tinyint not null default '0' after `mb_ids` ", false);
|
||||
}
|
||||
|
||||
$g5['title'] = $html_title;
|
||||
require_once './admin.head.php';
|
||||
?>
|
||||
@@ -94,17 +98,21 @@ require_once './admin.head.php';
|
||||
</tr>
|
||||
|
||||
<?php if ($w == 'u') { ?>
|
||||
<tr>
|
||||
<th scope="row">투표사용</th>
|
||||
<td><input type="checkbox" name="po_use" id="po_use" value="1" <?php if ($po['po_use']) { echo 'checked="checked"'; } ?>> <label for="po_use">사용</label></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row">투표등록일</th>
|
||||
<td><?php echo $po['po_date']; ?></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row"><label for="po_ips">투표참가 IP</label></th>
|
||||
<td><textarea name="po_ips" id="po_ips" readonly rows="10"><?php echo preg_replace("/\n/", " / ", $po['po_ips']) ?></textarea></td>
|
||||
<td><textarea name="po_ips" id="po_ips" readonly rows="10"><?php echo html_purifier(preg_replace("/\n/", " / ", $po['po_ips'])); ?></textarea></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row"><label for="mb_ids">투표참가 회원</label></th>
|
||||
<td><textarea name="mb_ids" id="mb_ids" readonly rows="10"><?php echo preg_replace("/\n/", " / ", $po['mb_ids']) ?></textarea></td>
|
||||
<td><textarea name="mb_ids" id="mb_ids" readonly rows="10"><?php echo html_purifier(preg_replace("/\n/", " / ", $po['mb_ids'])); ?></textarea></td>
|
||||
</tr>
|
||||
<?php } ?>
|
||||
</tbody>
|
||||
|
||||
@@ -51,8 +51,8 @@ $po_id = isset($_POST['po_id']) ? $_POST['po_id'] : '';
|
||||
|
||||
if ($w == '') {
|
||||
$sql = " insert {$g5['poll_table']}
|
||||
( po_subject, po_poll1, po_poll2, po_poll3, po_poll4, po_poll5, po_poll6, po_poll7, po_poll8, po_poll9, po_cnt1, po_cnt2, po_cnt3, po_cnt4, po_cnt5, po_cnt6, po_cnt7, po_cnt8, po_cnt9, po_etc, po_level, po_point, po_date )
|
||||
values ( '{$_POST['po_subject']}', '{$_POST['po_poll1']}', '{$_POST['po_poll2']}', '{$_POST['po_poll3']}', '{$_POST['po_poll4']}', '{$_POST['po_poll5']}', '{$_POST['po_poll6']}', '{$_POST['po_poll7']}', '{$_POST['po_poll8']}', '{$_POST['po_poll9']}', '{$_POST['po_cnt1']}', '{$_POST['po_cnt2']}', '{$_POST['po_cnt3']}', '{$_POST['po_cnt4']}', '{$_POST['po_cnt5']}', '{$_POST['po_cnt6']}', '{$_POST['po_cnt7']}', '{$_POST['po_cnt8']}', '{$_POST['po_cnt9']}', '{$_POST['po_etc']}', '{$_POST['po_level']}', '{$_POST['po_point']}', '" . G5_TIME_YMD . "' ) ";
|
||||
( po_subject, po_poll1, po_poll2, po_poll3, po_poll4, po_poll5, po_poll6, po_poll7, po_poll8, po_poll9, po_cnt1, po_cnt2, po_cnt3, po_cnt4, po_cnt5, po_cnt6, po_cnt7, po_cnt8, po_cnt9, po_etc, po_level, po_point, po_date, po_use )
|
||||
values ( '{$_POST['po_subject']}', '{$_POST['po_poll1']}', '{$_POST['po_poll2']}', '{$_POST['po_poll3']}', '{$_POST['po_poll4']}', '{$_POST['po_poll5']}', '{$_POST['po_poll6']}', '{$_POST['po_poll7']}', '{$_POST['po_poll8']}', '{$_POST['po_poll9']}', '{$_POST['po_cnt1']}', '{$_POST['po_cnt2']}', '{$_POST['po_cnt3']}', '{$_POST['po_cnt4']}', '{$_POST['po_cnt5']}', '{$_POST['po_cnt6']}', '{$_POST['po_cnt7']}', '{$_POST['po_cnt8']}', '{$_POST['po_cnt9']}', '{$_POST['po_etc']}', '{$_POST['po_level']}', '{$_POST['po_point']}', '" . G5_TIME_YMD . "', 1 ) ";
|
||||
sql_query($sql);
|
||||
|
||||
$po_id = sql_insert_id();
|
||||
@@ -79,7 +79,8 @@ if ($w == '') {
|
||||
po_cnt9 = '{$_POST['po_cnt9']}',
|
||||
po_etc = '{$_POST['po_etc']}',
|
||||
po_level = '{$_POST['po_level']}',
|
||||
po_point = '{$_POST['po_point']}'
|
||||
po_point = '{$_POST['po_point']}',
|
||||
po_use = '{$_POST['po_use']}'
|
||||
where po_id = '{$_POST['po_id']}' ";
|
||||
sql_query($sql);
|
||||
} elseif ($w == 'd') {
|
||||
|
||||
+4
-1
@@ -49,7 +49,7 @@ $listall = '<a href="' . $_SERVER['SCRIPT_NAME'] . '" class="ov_listall">전체
|
||||
$g5['title'] = '투표관리';
|
||||
require_once './admin.head.php';
|
||||
|
||||
$colspan = 7;
|
||||
$colspan = 8;
|
||||
?>
|
||||
|
||||
<div class="local_ov01 local_ov">
|
||||
@@ -92,6 +92,7 @@ $colspan = 7;
|
||||
<th scope="col">투표권한</th>
|
||||
<th scope="col">투표수</th>
|
||||
<th scope="col">기타의견</th>
|
||||
<th scope="col">사용</th>
|
||||
<th scope="col">관리</th>
|
||||
</tr>
|
||||
</thead>
|
||||
@@ -101,6 +102,7 @@ $colspan = 7;
|
||||
$sql2 = " select sum(po_cnt1+po_cnt2+po_cnt3+po_cnt4+po_cnt5+po_cnt6+po_cnt7+po_cnt8+po_cnt9) as sum_po_cnt from {$g5['poll_table']} where po_id = '{$row['po_id']}' ";
|
||||
$row2 = sql_fetch($sql2);
|
||||
$po_etc = ($row['po_etc']) ? "사용" : "미사용";
|
||||
$po_use = ($row['po_use']) ? "사용" : "미사용";
|
||||
|
||||
$s_mod = '<a href="./poll_form.php?' . $qstr . '&w=u&po_id=' . $row['po_id'] . '" class="btn btn_03">수정</a>';
|
||||
|
||||
@@ -117,6 +119,7 @@ $colspan = 7;
|
||||
<td class="td_num"><?php echo $row['po_level'] ?></td>
|
||||
<td class="td_num"><?php echo $row2['sum_po_cnt'] ?></td>
|
||||
<td class="td_etc"><?php echo $po_etc ?></td>
|
||||
<td class="td_use"><?php echo $po_use ?></td>
|
||||
<td class="td_mng td_mng_s"><?php echo $s_mod ?></td>
|
||||
</tr>
|
||||
|
||||
|
||||
+5
-5
@@ -266,13 +266,13 @@ if (!isset($qaconfig['qa_include_head'])) {
|
||||
<tr>
|
||||
<th scope="row"><label for="qa_include_head">상단 파일 경로</label></th>
|
||||
<td>
|
||||
<input type="text" name="qa_include_head" value="<?php echo $qaconfig['qa_include_head'] ?>" id="qa_include_head" class="frm_input" size="50">
|
||||
<input type="text" name="qa_include_head" value="<?php echo get_sanitize_input($qaconfig['qa_include_head']); ?>" id="qa_include_head" class="frm_input" size="50">
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row"><label for="qa_include_tail">하단 파일 경로</label></th>
|
||||
<td>
|
||||
<input type="text" name="qa_include_tail" value="<?php echo $qaconfig['qa_include_tail'] ?>" id="qa_include_tail" class="frm_input" size="50">
|
||||
<input type="text" name="qa_include_tail" value="<?php echo get_sanitize_input($qaconfig['qa_include_tail']); ?>" id="qa_include_tail" class="frm_input" size="50">
|
||||
</td>
|
||||
</tr>
|
||||
<tr id="admin_captcha_box" style="display:none;">
|
||||
@@ -344,7 +344,9 @@ if (!isset($qaconfig['qa_include_head'])) {
|
||||
</form>
|
||||
|
||||
<script>
|
||||
var captcha_chk = false;
|
||||
var captcha_chk = false,
|
||||
qa_include_head = jQuery.trim(jQuery("#qa_include_head").val()),
|
||||
qa_include_tail = jQuery.trim(jQuery("#qa_include_tail").val());
|
||||
|
||||
function use_captcha_check() {
|
||||
$.ajax({
|
||||
@@ -361,8 +363,6 @@ if (!isset($qaconfig['qa_include_head'])) {
|
||||
}
|
||||
|
||||
function frm_check_file() {
|
||||
var qa_include_head = "<?php echo $qaconfig['qa_include_head']; ?>";
|
||||
var qa_include_tail = "<?php echo $qaconfig['qa_include_tail']; ?>";
|
||||
var head = jQuery.trim(jQuery("#qa_include_head").val());
|
||||
var tail = jQuery.trim(jQuery("#qa_include_tail").val());
|
||||
|
||||
|
||||
@@ -41,6 +41,7 @@ if (isset($_POST['email'])) {
|
||||
echo '해당 주소로 테스트 메일이 도착했는지 확인해 주십시오.<br>';
|
||||
echo '만약, 테스트 메일이 오지 않는다면 더 다양한 계정의 메일 주소로 메일을 보내 보십시오.<br>';
|
||||
echo '그래도 메일이 하나도 도착하지 않는다면 메일 서버(sendmail server)의 오류일 가능성이 높으니, 웹 서버관리자에게 문의하여 주십시오.<br>';
|
||||
echo '도메인을 소유하고 있을시 SPF, DKIM 설정이 필요할수 있습니다.<br>';
|
||||
echo '</p></div>';
|
||||
echo '</section>';
|
||||
}
|
||||
@@ -53,6 +54,10 @@ if (isset($_POST['email'])) {
|
||||
<p>
|
||||
메일서버가 정상적으로 동작 중인지 확인할 수 있습니다.<br>
|
||||
아래 입력칸에 테스트 메일을 발송하실 메일 주소를 입력하시면, [메일검사] 라는 제목으로 테스트 메일을 발송합니다.<br>
|
||||
보내는 메일주소 : <?php echo get_sanitize_input($config['cf_admin_email']); ?><br>
|
||||
<?php if (function_exists('domain_mail_host') && $config['cf_admin_email'] && stripos($config['cf_admin_email'], domain_mail_host()) === false) { ?>
|
||||
<?php echo '외부메일설정이나 기타 설정을 하지 않았다면, 도메인과 다른 헤더로 여겨 스팸이나 차단될 가능성이 있습니다.<br>기본환경설정에서 관리자 메일 주소를 name'.domain_mail_host().' 과 같은 도메인 형식으로 설정할것을 권장합니다.'; ?>
|
||||
<?php } ?>
|
||||
</p>
|
||||
</div>
|
||||
<form name="fsendmailtest" method="post">
|
||||
|
||||
@@ -12,7 +12,6 @@ $ca = array(
|
||||
'ca_name'=>'',
|
||||
'ca_order'=>'',
|
||||
'ca_mb_id'=>'',
|
||||
'ca_skin_dir'=>'',
|
||||
'ca_cert_use'=>0,
|
||||
'ca_adult_use'=>0,
|
||||
'ca_sell_email'=>'',
|
||||
|
||||
@@ -17,7 +17,7 @@ if ($stx != "") {
|
||||
$sql_search .= " $where $sfl like '%$stx%' ";
|
||||
$where = " and ";
|
||||
}
|
||||
if ($save_stx && ($save_stx != $stx))
|
||||
if (isset($save_stx) && $save_stx && ($save_stx != $stx))
|
||||
$page = 1;
|
||||
}
|
||||
|
||||
|
||||
@@ -593,7 +593,7 @@ if(!$default['de_kakaopay_cancelpwd']){
|
||||
<tr>
|
||||
<th scope="row"><label for="de_bank_account">은행계좌번호</label></th>
|
||||
<td>
|
||||
<textarea name="de_bank_account" id="de_bank_account"><?php echo $default['de_bank_account']; ?></textarea>
|
||||
<textarea name="de_bank_account" id="de_bank_account"><?php echo html_purifier($default['de_bank_account']); ?></textarea>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
@@ -781,10 +781,11 @@ if(!$default['de_kakaopay_cancelpwd']){
|
||||
<tr class="pg_info_fld kcp_info_fld">
|
||||
<th scope="row"><label for="de_kcp_easy_pays">NHN KCP 간편결제</label></th>
|
||||
<td>
|
||||
<?php echo help("체크시 NHN KCP 간편결제들을 활성화 합니다.\nNHN_KCP > 네이버페이, 카카오페이는 테스트결제가 되지 않습니다."); ?>
|
||||
<?php echo help("체크시 NHN KCP 간편결제들을 활성화 합니다.\nNHN_KCP > 네이버페이, 카카오페이는 테스트결제가 되지 않습니다.\n애플페이는 IOS 기기에 모바일결제만 가능합니다."); ?>
|
||||
<input type="checkbox" id="de_easy_nhnkcp_payco" name="de_easy_pays[]" value="nhnkcp_payco" <?php if(stripos($default['de_easy_pay_services'], 'nhnkcp_payco') !== false){ echo 'checked="checked"'; } ?> > <label for="de_easy_nhnkcp_payco" disabled>PAYCO (페이코)</label><br>
|
||||
<input type="checkbox" id="de_easy_nhnkcp_naverpay" name="de_easy_pays[]" value="nhnkcp_naverpay" <?php if(stripos($default['de_easy_pay_services'], 'nhnkcp_naverpay') !== false){ echo 'checked="checked"'; } ?> > <label for="de_easy_nhnkcp_naverpay">NAVERPAY (네이버페이)</label><br>
|
||||
<input type="checkbox" id="de_easy_nhnkcp_kakaopay" name="de_easy_pays[]" value="nhnkcp_kakaopay" <?php if(stripos($default['de_easy_pay_services'], 'nhnkcp_kakaopay') !== false){ echo 'checked="checked"'; } ?> > <label for="de_easy_nhnkcp_kakaopay">KAKAOPAY (카카오페이)</label>
|
||||
<input type="checkbox" id="de_easy_nhnkcp_kakaopay" name="de_easy_pays[]" value="nhnkcp_kakaopay" <?php if(stripos($default['de_easy_pay_services'], 'nhnkcp_kakaopay') !== false){ echo 'checked="checked"'; } ?> > <label for="de_easy_nhnkcp_kakaopay">KAKAOPAY (카카오페이)</label><br>
|
||||
<input type="checkbox" id="de_easy_nhnkcp_applepay" name="de_easy_pays[]" value="nhnkcp_applepay" <?php if(stripos($default['de_easy_pay_services'], 'nhnkcp_applepay') !== false){ echo 'checked="checked"'; } ?> > <label for="de_easy_nhnkcp_applepay">APPLEPAY (애플페이)</label>
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="pg_info_fld kcp_info_fld">
|
||||
|
||||
@@ -32,6 +32,8 @@ include_once(G5_PATH.'/head.sub.php');
|
||||
|
||||
<script>
|
||||
// <![CDATA[
|
||||
var g5_admin_csrf_token_key = "<?php echo (function_exists('admin_csrf_token_key')) ? admin_csrf_token_key() : ''; ?>";
|
||||
|
||||
function _copy(link)
|
||||
{
|
||||
var new_it_id = document.getElementById('new_it_id').value;
|
||||
|
||||
@@ -21,7 +21,7 @@ $fr_date = (isset($_GET['fr_date']) && preg_match("/^[0-9]{4}-(0[1-9]|1[0-2])-(0
|
||||
$to_date = (isset($_GET['to_date']) && preg_match("/^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])$/", $_GET['to_date'])) ? $_GET['to_date'] : '';
|
||||
|
||||
$od_misu = isset($_GET['od_misu']) ? preg_replace('/[^0-9a-z]/i', '', $_GET['od_misu']) : '';
|
||||
$od_cancel_price = isset($_GET['od_cancel_price']) ? preg_replace('/[^0-9a-z]/', '', $_GET['od_cancel_price']) : '';
|
||||
$od_cancel_price = isset($_GET['od_cancel_price']) ? preg_replace('/[^0-9a-z]/i', '', $_GET['od_cancel_price']) : '';
|
||||
$od_refund_price = isset($_GET['od_refund_price']) ? preg_replace('/[^0-9a-z]/i', '', $_GET['od_refund_price']) : '';
|
||||
$od_receipt_point = isset($_GET['od_receipt_point']) ? preg_replace('/[^0-9a-z]/i', '', $_GET['od_receipt_point']) : '';
|
||||
$od_coupon = isset($_GET['od_coupon']) ? preg_replace('/[^0-9a-z]/i', '', $_GET['od_coupon']) : '';
|
||||
@@ -222,7 +222,7 @@ if( function_exists('pg_setting_check') ){
|
||||
<input type="radio" name="od_settle_case" value="신용카드" id="od_settle_case06" <?php echo get_checked($od_settle_case, '신용카드'); ?>>
|
||||
<label for="od_settle_case06">신용카드</label>
|
||||
<input type="radio" name="od_settle_case" value="간편결제" id="od_settle_case07" <?php echo get_checked($od_settle_case, '간편결제'); ?>>
|
||||
<label for="od_settle_case07" data-tooltip-text="NHN_KCP 간편결제 : PAYCO, 네이버페이, 카카오페이(NHN_KCP) 
LG유플러스 간편결제 : PAYNOW 
KG 이니시스 간편결제 : KPAY, 삼성페이, LPAY, 카카오페이(KG이니시스)">PG간편결제</label>
|
||||
<label for="od_settle_case07" data-tooltip-text="NHN_KCP 간편결제 : PAYCO, 네이버페이, 카카오페이(NHN_KCP), 애플페이(NHN_KCP) 
LG유플러스 간편결제 : PAYNOW 
KG 이니시스 간편결제 : KPAY, 삼성페이, LPAY, 카카오페이(KG이니시스)">PG간편결제</label>
|
||||
<input type="radio" name="od_settle_case" value="KAKAOPAY" id="od_settle_case08" <?php echo get_checked($od_settle_case, 'KAKAOPAY'); ?>>
|
||||
<label for="od_settle_case08">KAKAOPAY</label>
|
||||
</div>
|
||||
|
||||
@@ -227,7 +227,7 @@ if(!sql_query(" select pp_cash from {$g5['g5_shop_personalpay_table']} limit 1 "
|
||||
<?php } ?>
|
||||
<tr>
|
||||
<th scope="row"><label for="pp_shop_memo">상점메모</label></th>
|
||||
<td><textarea name="pp_shop_memo" id="pp_shop_memo" rows="8"><?php echo $pp['pp_shop_memo']; ?></textarea></td>
|
||||
<td><textarea name="pp_shop_memo" id="pp_shop_memo" rows="8"><?php echo html_purifier($pp['pp_shop_memo']); ?></textarea></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row"><label for="pp_use">사용</label></th>
|
||||
|
||||
@@ -66,6 +66,8 @@ while($res = sql_fetch_array($qry))
|
||||
$group_name = '미분류';
|
||||
else
|
||||
$group_name = $tmp['fg_name'];
|
||||
|
||||
$res['fo_content'] = html_purifier($res['fo_content']);
|
||||
$list_text .="
|
||||
<li class=\"screen_list sms5_box\">
|
||||
<span class=\"box_ico\"></span>
|
||||
|
||||
@@ -174,7 +174,7 @@ function multi_update(sel)
|
||||
<input type="checkbox" name="fo_no[]" value="<?php echo $res['fo_no']?>" id="fo_no_<?php echo $i; ?>">
|
||||
</div>
|
||||
<div class="li_preview">
|
||||
<textarea readonly class="box_txt box_square"><?php echo $res['fo_content']?></textarea>
|
||||
<textarea readonly class="box_txt box_square"><?php echo html_purifier($res['fo_content']); ?></textarea>
|
||||
</div>
|
||||
<div class="li_info">
|
||||
<span class="sound_only">그룹 </span><b><?php echo $group_name?></b><br>
|
||||
|
||||
@@ -67,7 +67,7 @@ include_once(G5_ADMIN_PATH.'/admin.head.php');
|
||||
<div class="sms5_box write_wrap">
|
||||
<span class="box_ico"></span>
|
||||
<label for="sms_contents" id="wr_message_lbl">내용</label>
|
||||
<textarea name="fo_content" id="sms_contents" class="box_txt box_square" onkeyup="byte_check('sms_contents', 'sms_bytes');" accesskey="m"><?php echo $write['fo_content']?></textarea>
|
||||
<textarea name="fo_content" id="sms_contents" class="box_txt box_square" onkeyup="byte_check('sms_contents', 'sms_bytes');" accesskey="m"><?php echo html_purifier($write['fo_content']); ?></textarea>
|
||||
|
||||
<div id="sms_byte"><span id="sms_bytes">0</span> / 80 byte</div>
|
||||
|
||||
|
||||
@@ -109,7 +109,7 @@ function all_send()
|
||||
|
||||
<div id="con_sms" class="sms5_box">
|
||||
<span class="box_ico"></span>
|
||||
<textarea class="box_txt is_overview" readonly><?php echo $write['wr_message'];?></textarea>
|
||||
<textarea class="box_txt is_overview" readonly><?php echo html_purifier($write['wr_message']); ?></textarea>
|
||||
</div>
|
||||
|
||||
<?php if ($write['wr_re_total'] && !$wr_renum) { ?>
|
||||
|
||||
@@ -33,7 +33,16 @@ if ($w == 'u' && is_numeric($bk_no)) {
|
||||
$g5['title'] .= '수정';
|
||||
}
|
||||
else {
|
||||
$write = array('bg_no' => (int) $bg_no);
|
||||
$write = array(
|
||||
'bg_no' => (int) $bg_no,
|
||||
'bk_no' => 0,
|
||||
'mb_id' => '',
|
||||
'bk_name' => '',
|
||||
'bk_hp' => '',
|
||||
'bk_memo' => '',
|
||||
'bk_receipt' => 1,
|
||||
'bk_datetime' => ''
|
||||
);
|
||||
$g5['title'] .= '추가';
|
||||
}
|
||||
|
||||
|
||||
@@ -71,18 +71,16 @@ if( count($save_group) ){ //그룹테이블 업데이트
|
||||
|
||||
$msg = '해당 번호를 선택한 그룹으로 '.$act.' 하였습니다.';
|
||||
$opener_href = './num_book.php?page='.$page;
|
||||
|
||||
echo <<<HEREDOC
|
||||
?>
|
||||
<meta http-equiv="content-type" content="text/html; charset=utf-8">
|
||||
<script>
|
||||
alert("$msg");
|
||||
opener.document.location.href = "$opener_href";
|
||||
alert("<?php echo $msg; ?>");
|
||||
opener.document.location.href = "<?php echo $opener_href; ?>";
|
||||
window.close();
|
||||
</script>
|
||||
<noscript>
|
||||
<p>
|
||||
"$msg"
|
||||
<?php echo $msg; ?>
|
||||
</p>
|
||||
<a href="$opener_href">돌아가기</a>
|
||||
</noscript>
|
||||
HEREDOC;
|
||||
<a href="<?php echo $opener_href; ?>">돌아가기</a>
|
||||
</noscript>
|
||||
+11
-1
@@ -17,7 +17,17 @@ if($error) {
|
||||
|
||||
<script>
|
||||
alert("<?php echo $msg; ?>");
|
||||
window.close();
|
||||
try {
|
||||
window.close();
|
||||
} catch(error) {
|
||||
history.back();
|
||||
}
|
||||
|
||||
setTimeout(function() {
|
||||
if (window.history.length) {
|
||||
window.history.back();
|
||||
}
|
||||
}, 500);
|
||||
</script>
|
||||
|
||||
<noscript>
|
||||
|
||||
+2
-2
@@ -5,7 +5,7 @@ if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가
|
||||
if (G5_IS_MOBILE) {
|
||||
// 모바일의 경우 설정을 따르지 않는다.
|
||||
include_once(G5_BBS_PATH.'/_head.php');
|
||||
echo html_purifier(stripslashes($board['bo_mobile_content_head']));
|
||||
echo run_replace('board_mobile_content_head', html_purifier(stripslashes($board['bo_mobile_content_head'])), $board);
|
||||
} else {
|
||||
// 상단 파일 경로를 입력하지 않았다면 기본 상단 파일도 include 하지 않음
|
||||
if (trim($board['bo_include_head'])) {
|
||||
@@ -15,5 +15,5 @@ if (G5_IS_MOBILE) {
|
||||
include_once(G5_BBS_PATH.'/_head.php');
|
||||
}
|
||||
}
|
||||
echo html_purifier(stripslashes($board['bo_content_head']));
|
||||
echo run_replace('board_content_head', html_purifier(stripslashes($board['bo_content_head'])), $board);
|
||||
}
|
||||
+2
-2
@@ -3,11 +3,11 @@ if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가
|
||||
|
||||
// 게시판 관리의 하단 파일 경로
|
||||
if (G5_IS_MOBILE) {
|
||||
echo html_purifier(stripslashes($board['bo_mobile_content_tail']));
|
||||
echo run_replace('board_mobile_content_tail', html_purifier(stripslashes($board['bo_mobile_content_tail'])), $board);
|
||||
// 모바일의 경우 설정을 따르지 않는다.
|
||||
include_once(G5_BBS_PATH.'/_tail.php');
|
||||
} else {
|
||||
echo html_purifier(stripslashes($board['bo_content_tail']));
|
||||
echo run_replace('board_content_tail', html_purifier(stripslashes($board['bo_content_tail'])), $board);
|
||||
// 하단 파일 경로를 입력하지 않았다면 기본 하단 파일도 include 하지 않음
|
||||
if (trim($board['bo_include_tail'])) {
|
||||
if (is_include_path_check($board['bo_include_tail'])) { //파일경로 체크
|
||||
|
||||
+3
-3
@@ -81,20 +81,20 @@ $content_skin_url = get_skin_url('content', $co['co_skin']);
|
||||
$skin_file = $content_skin_path.'/content.skin.php';
|
||||
|
||||
if ($is_admin)
|
||||
echo '<div class="ctt_admin"><a href="'.G5_ADMIN_URL.'/contentform.php?w=u&co_id='.$co_id.'" class="btn_admin btn"><span class="sound_only">내용 수정</span><i class="fa fa-cog fa-spin fa-fw"></i></a></div>';
|
||||
echo run_replace('content_admin_button_html', '<div class="ctt_admin"><a href="'.G5_ADMIN_URL.'/contentform.php?w=u&co_id='.$co_id.'" class="btn_admin btn"><span class="sound_only">내용 수정</span><i class="fa fa-cog fa-spin fa-fw"></i></a></div>', $co);
|
||||
?>
|
||||
|
||||
<?php
|
||||
if(is_file($skin_file)) {
|
||||
$himg = G5_DATA_PATH.'/content/'.$co_id.'_h';
|
||||
if (file_exists($himg)) // 상단 이미지
|
||||
echo '<div id="ctt_himg" class="ctt_img"><img src="'.G5_DATA_URL.'/content/'.$co_id.'_h" alt=""></div>';
|
||||
echo run_replace('content_head_image_html', '<div id="ctt_himg" class="ctt_img"><img src="'.G5_DATA_URL.'/content/'.$co_id.'_h" alt=""></div>', $co);
|
||||
|
||||
include($skin_file);
|
||||
|
||||
$timg = G5_DATA_PATH.'/content/'.$co_id.'_t';
|
||||
if (file_exists($timg)) // 하단 이미지
|
||||
echo '<div id="ctt_timg" class="ctt_img"><img src="'.G5_DATA_URL.'/content/'.$co_id.'_t" alt=""></div>';
|
||||
echo run_replace('content_tail_image_html', '<div id="ctt_timg" class="ctt_img"><img src="'.G5_DATA_URL.'/content/'.$co_id.'_t" alt=""></div>', $co);
|
||||
} else {
|
||||
echo '<p>'.str_replace(G5_PATH.'/', '', $skin_file).'이 존재하지 않습니다.</p>';
|
||||
}
|
||||
|
||||
@@ -22,6 +22,14 @@ $file = sql_fetch($sql);
|
||||
if (!$file['bf_file'])
|
||||
alert_close('파일 정보가 존재하지 않습니다.');
|
||||
|
||||
$nonce = isset($_REQUEST['nonce']) ? preg_replace('/[^0-9a-z\|]/i', '', $_REQUEST['nonce']) : '';
|
||||
|
||||
if (function_exists('download_file_nonce_is_valid') && !defined('G5_DOWNLOAD_NONCE_CHECK')){
|
||||
if(! download_file_nonce_is_valid($nonce, $bo_table, $wr_id)){
|
||||
alert('토큰 유효시간이 지났거나 토큰이 유효하지 않습니다.\\n브라우저를 새로고침 후 다시 시도해 주세요.', G5_URL);
|
||||
}
|
||||
}
|
||||
|
||||
// JavaScript 불가일 때
|
||||
$js = (isset($_GET['js'])) ? $_GET['js'] : '';
|
||||
if($js != 'on' && $board['bo_download_point'] < 0) {
|
||||
|
||||
+5
-2
@@ -17,12 +17,15 @@ while ($row=sql_fetch_array($result))
|
||||
$faq_master_list[$key] = $row;
|
||||
}
|
||||
|
||||
$fm = array();
|
||||
if (isset($fm_id) && $fm_id){
|
||||
$fm_id = (int) $fm_id;
|
||||
$qstr .= '&fm_id=' . $fm_id; // 마스터faq key_id
|
||||
|
||||
$fm = $faq_master_list[$fm_id];
|
||||
}
|
||||
|
||||
$fm = $faq_master_list[$fm_id];
|
||||
if (!$fm['fm_id'])
|
||||
if (! (isset($fm['fm_id']) && $fm['fm_id']))
|
||||
alert('등록된 내용이 없습니다.');
|
||||
|
||||
$g5['title'] = $fm['fm_subject'];
|
||||
|
||||
+2
-2
@@ -62,7 +62,7 @@ if(isset($_POST['js']) && $_POST['js'] === "on") {
|
||||
and mb_id = '{$member['mb_id']}'
|
||||
and bg_flag in ('good', 'nogood') ";
|
||||
$row = sql_fetch($sql);
|
||||
if ($row['bg_flag'])
|
||||
if (isset($row['bg_flag']) && $row['bg_flag'])
|
||||
{
|
||||
if ($row['bg_flag'] == 'good')
|
||||
$status = '추천';
|
||||
@@ -127,7 +127,7 @@ if(isset($_POST['js']) && $_POST['js'] === "on") {
|
||||
and mb_id = '{$member['mb_id']}'
|
||||
and bg_flag in ('good', 'nogood') ";
|
||||
$row = sql_fetch($sql);
|
||||
if ($row['bg_flag'])
|
||||
if (isset($row['bg_flag']) && $row['bg_flag'])
|
||||
{
|
||||
if ($row['bg_flag'] == 'good')
|
||||
$status = '추천';
|
||||
|
||||
+6
-4
@@ -8,7 +8,7 @@ $mb_password = isset($_POST['mb_password']) ? trim($_POST['mb_password']) : '';
|
||||
|
||||
run_event('member_login_check_before', $mb_id);
|
||||
|
||||
if (!$mb_id || !$mb_password)
|
||||
if (!$mb_id || run_replace('check_empty_member_login_password', !$mb_password, $mb_id))
|
||||
alert('회원아이디나 비밀번호가 공백이면 안됩니다.');
|
||||
|
||||
$mb = get_member($mb_id);
|
||||
@@ -27,11 +27,13 @@ if(function_exists('social_is_login_check')){
|
||||
$is_social_password_check = social_is_login_password_check($mb_id);
|
||||
}
|
||||
|
||||
//소셜 로그인이 맞다면 패스워드를 체크하지 않습니다.
|
||||
$is_need_not_password = run_replace('login_check_need_not_password', $is_social_password_check, $mb_id, $mb_password, $mb, $is_social_login);
|
||||
|
||||
// $is_need_not_password 변수가 true 이면 패스워드를 체크하지 않습니다.
|
||||
// 가입된 회원이 아니다. 비밀번호가 틀리다. 라는 메세지를 따로 보여주지 않는 이유는
|
||||
// 회원아이디를 입력해 보고 맞으면 또 비밀번호를 입력해보는 경우를 방지하기 위해서입니다.
|
||||
// 불법사용자의 경우 회원아이디가 틀린지, 비밀번호가 틀린지를 알기까지는 많은 시간이 소요되기 때문입니다.
|
||||
if (!$is_social_password_check && (! (isset($mb['mb_id']) && $mb['mb_id']) || !login_password_check($mb, $mb_password, $mb['mb_password'])) ) {
|
||||
if (!$is_need_not_password && (! (isset($mb['mb_id']) && $mb['mb_id']) || !login_password_check($mb, $mb_password, $mb['mb_password'])) ) {
|
||||
|
||||
run_event('password_is_wrong', 'login', $mb);
|
||||
|
||||
@@ -153,7 +155,7 @@ if( is_admin($mb['mb_id']) && is_dir(G5_DATA_PATH.'/tmp/') ){
|
||||
$tmp_data_check = false;
|
||||
}
|
||||
}
|
||||
@fclose($tmp_data_check);
|
||||
if (is_resource($tmp_data_check)) @fclose($tmp_data_check);
|
||||
@unlink($tmp_data_file);
|
||||
|
||||
if(! $tmp_data_check){
|
||||
|
||||
@@ -77,6 +77,8 @@ if($result){
|
||||
}
|
||||
}
|
||||
|
||||
run_event('cert_refresh_update_after', $mb_id);
|
||||
|
||||
//===============================================================
|
||||
|
||||
(empty($url))? goto_url(G5_URL) : goto_url($url);
|
||||
@@ -17,6 +17,8 @@ if( function_exists('social_member_comfirm_redirect') && (! $url || $url === 're
|
||||
social_member_comfirm_redirect();
|
||||
}
|
||||
|
||||
$url = run_replace('member_confirm_next_url', $url);
|
||||
|
||||
$g5['title'] = '회원 비밀번호 확인';
|
||||
include_once('./_head.sub.php');
|
||||
|
||||
@@ -31,7 +33,6 @@ if($url){
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
$url = get_text($url);
|
||||
|
||||
include_once($member_skin_path.'/member_confirm.skin.php');
|
||||
|
||||
@@ -14,9 +14,11 @@ if (!($post_mb_password && check_password($post_mb_password, $member['mb_passwor
|
||||
|
||||
// 회원탈퇴일을 저장
|
||||
$date = date("Ymd");
|
||||
$sql = " update {$g5['member_table']} set mb_leave_date = '{$date}', mb_memo = '".date('Ymd', G5_SERVER_TIME)." 탈퇴함\n".sql_real_escape_string($mb['mb_memo'])."', mb_certify = '', mb_adult = 0, mb_dupinfo = '' where mb_id = '{$member['mb_id']}' ";
|
||||
$sql = " update {$g5['member_table']} set mb_leave_date = '{$date}', mb_memo = '".date('Ymd', G5_SERVER_TIME)." 탈퇴함\n".sql_real_escape_string($member['mb_memo'])."', mb_certify = '', mb_adult = 0, mb_dupinfo = '' where mb_id = '{$member['mb_id']}' ";
|
||||
sql_query($sql);
|
||||
|
||||
run_event('member_leave', $member);
|
||||
|
||||
// 3.09 수정 (로그아웃)
|
||||
unset($_SESSION['ss_mb_id']);
|
||||
|
||||
|
||||
+2
-2
@@ -7,11 +7,11 @@ $qa_skin_url = get_skin_url('qa', (G5_IS_MOBILE ? $qaconfig['qa_mobile_skin'] :
|
||||
if (G5_IS_MOBILE) {
|
||||
// 모바일의 경우 설정을 따르지 않는다.
|
||||
include_once('./_head.php');
|
||||
echo conv_content($qaconfig['qa_mobile_content_head'], 1);
|
||||
echo run_replace('qa_mobile_content_head', conv_content($qaconfig['qa_mobile_content_head'], 1), $qaconfig);
|
||||
} else {
|
||||
if($qaconfig['qa_include_head'] && is_include_path_check($qaconfig['qa_include_head']))
|
||||
@include ($qaconfig['qa_include_head']);
|
||||
else
|
||||
include ('./_head.php');
|
||||
echo conv_content($qaconfig['qa_content_head'], 1);
|
||||
echo run_replace('qa_content_head', conv_content($qaconfig['qa_content_head'], 1), $qaconfig);
|
||||
}
|
||||
+2
-2
@@ -2,11 +2,11 @@
|
||||
if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가
|
||||
|
||||
if (G5_IS_MOBILE) {
|
||||
echo conv_content($qaconfig['qa_mobile_content_tail'], 1);
|
||||
echo run_replace('qa_mobile_content_tail', conv_content($qaconfig['qa_mobile_content_tail'], 1), $qaconfig);
|
||||
// 모바일의 경우 설정을 따르지 않는다.
|
||||
include_once('./_tail.php');
|
||||
} else {
|
||||
echo conv_content($qaconfig['qa_content_tail'], 1);
|
||||
echo run_replace('qa_content_tail', conv_content($qaconfig['qa_content_tail'], 1), $qaconfig);
|
||||
if($qaconfig['qa_include_tail'] && is_include_path_check($qaconfig['qa_include_tail']))
|
||||
@include ($qaconfig['qa_include_tail']);
|
||||
else
|
||||
|
||||
@@ -135,6 +135,32 @@ if(is_file($skin_file)) {
|
||||
$answer_update_href = G5_BBS_URL.'/qawrite.php?w=u&qa_id='.$answer['qa_id'].$qstr;
|
||||
$answer_delete_href = G5_BBS_URL.'/qadelete.php?qa_id='.$answer['qa_id'].'&token='.$token.$qstr;
|
||||
}
|
||||
|
||||
$ss_name = 'ss_qa_view_'.$answer['qa_id'];
|
||||
if(!get_session($ss_name))
|
||||
set_session($ss_name, TRUE);
|
||||
|
||||
// 답변 첨부파일
|
||||
$answer['img_file'] = array();
|
||||
$answer['download_href'] = array();
|
||||
$answer['download_source'] = array();
|
||||
$answer['img_count'] = 0;
|
||||
$answer['download_count'] = 0;
|
||||
|
||||
for ($i=1; $i<=2; $i++) {
|
||||
if(preg_match("/\.({$config['cf_image_extension']})$/i", $answer['qa_file'.$i])) {
|
||||
$attr_href = run_replace('thumb_view_image_href', G5_BBS_URL.'/view_image.php?fn='.urlencode('/'.G5_DATA_DIR.'/qa/'.$answer['qa_file'.$i]), '/'.G5_DATA_DIR.'/qa/'.$answer['qa_file'.$i], '', '', '', '');
|
||||
$answer['img_file'][] = '<a href="'.$attr_href.'" target="_blank" class="view_image"><img src="'.G5_DATA_URL.'/qa/'.$answer['qa_file'.$i].'"></a>';
|
||||
$answer['img_count']++;
|
||||
continue;
|
||||
}
|
||||
|
||||
if ($answer['qa_file'.$i]) {
|
||||
$answer['download_href'][] = G5_BBS_URL.'/qadownload.php?qa_id='.$answer['qa_id'].'&no='.$i;
|
||||
$answer['download_source'][] = $answer['qa_source'.$i];
|
||||
$answer['download_count']++;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$stx = get_text(stripslashes($stx));
|
||||
|
||||
@@ -17,7 +17,7 @@ if ($w == 'u' && $is_admin == 'super') {
|
||||
alert('데모 화면에서는 하실(보실) 수 없는 작업입니다.');
|
||||
}
|
||||
|
||||
if (!chk_captcha()) {
|
||||
if (run_replace('register_member_chk_captcha', !chk_captcha(), $w)) {
|
||||
alert('자동등록방지 숫자가 틀렸습니다.');
|
||||
}
|
||||
|
||||
@@ -94,10 +94,15 @@ if ($w == '' || $w == 'u') {
|
||||
alert('닉네임을 올바르게 입력해 주십시오.');
|
||||
}
|
||||
|
||||
if ($w == '' && !$mb_password)
|
||||
alert('비밀번호가 넘어오지 않았습니다.');
|
||||
if($w == '' && $mb_password != $mb_password_re)
|
||||
alert('비밀번호가 일치하지 않습니다.');
|
||||
// 비밀번호를 체크하는 상태의 기본값은 true이며, 비밀번호를 체크하지 않으려면 hook 을 통해 false 값으로 바꿔야 합니다.
|
||||
$is_check_password = run_replace('register_member_password_check', true, $mb_id, $mb_nick, $mb_email, $w);
|
||||
|
||||
if ($is_check_password){
|
||||
if ($w == '' && !$mb_password)
|
||||
alert('비밀번호가 넘어오지 않았습니다.');
|
||||
if ($w == '' && $mb_password != $mb_password_re)
|
||||
alert('비밀번호가 일치하지 않습니다.');
|
||||
}
|
||||
|
||||
if ($msg = empty_mb_name($mb_name)) alert($msg, "", true, true);
|
||||
if ($msg = empty_mb_nick($mb_nick)) alert($msg, "", true, true);
|
||||
@@ -111,7 +116,7 @@ if ($w == '' || $w == 'u') {
|
||||
if ($msg = prohibit_mb_email($mb_email))alert($msg, "", true, true);
|
||||
|
||||
// 휴대폰 필수입력일 경우 휴대폰번호 유효성 체크
|
||||
if ($config['cf_use_hp'] || ($config['cf_cert_hp'] || $config['cf_cert_simple']) && $config['cf_req_hp']) {
|
||||
if (($config['cf_use_hp'] || $config['cf_cert_hp'] || $config['cf_cert_simple']) && $config['cf_req_hp']) {
|
||||
if ($msg = valid_mb_hp($mb_hp)) alert($msg, "", true, true);
|
||||
}
|
||||
|
||||
|
||||
+7
-3
@@ -362,7 +362,12 @@ if( $config['cf_cert_use'] || (defined('G5_YOUNGCART_VER') && G5_YOUNGCART_VER)
|
||||
|
||||
// IE 브라우저 또는 엣지브라우저 또는 IOS 모바일과 http환경에서는 secure; SameSite=None을 설정하지 않습니다.
|
||||
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') ){
|
||||
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')
|
||||
|| !(isset($_SERVER['HTTP_X_FORWARDED_PROTO']) && $_SERVER['HTTP_X_FORWARDED_PROTO'] == "https")){
|
||||
return $res;
|
||||
}
|
||||
}
|
||||
@@ -497,6 +502,7 @@ if (isset($_REQUEST['url'])) {
|
||||
$urlencode = urlencode($_SERVER['REQUEST_URI']);
|
||||
if (G5_DOMAIN) {
|
||||
$p = @parse_url(G5_DOMAIN);
|
||||
$p['path'] = isset($p['path']) ? $p['path'] : '/';
|
||||
$urlencode = G5_DOMAIN.urldecode(preg_replace("/^".urlencode($p['path'])."/", "", $urlencode));
|
||||
}
|
||||
}
|
||||
@@ -836,5 +842,3 @@ header('Cache-Control: pre-check=0, post-check=0, max-age=0'); // HTTP/1.1
|
||||
header('Pragma: no-cache'); // HTTP/1.0
|
||||
|
||||
run_event('common_header');
|
||||
|
||||
$html_process = new html_process();
|
||||
+3
-6
@@ -28,6 +28,7 @@ define('G5_HTTPS_DOMAIN', '');
|
||||
|
||||
// 그누보드 디버그바 설정입니다, 실제 서버운영시 false 로 설정해 주세요.
|
||||
define('G5_DEBUG', false);
|
||||
define('G5_COLLECT_QUERY', false);
|
||||
|
||||
// Set Database table default engine is Database default_storage_engine, If you want to use MyISAM or InnoDB, change to MyISAM or InnoDB.
|
||||
// DB에 테이블 생성 시 테이블의 기본 스토리지 엔진을 설정할 수 있습니다.
|
||||
@@ -233,9 +234,5 @@ define('G5_VISIT_BROWSCAP_USE', false);
|
||||
*/
|
||||
define('G5_IP_DISPLAY', '\\1.♡.\\3.\\4');
|
||||
|
||||
if ((isset($_SERVER['HTTPS']) && $_SERVER['HTTPS']=='on') ||
|
||||
(isset($_SERVER['HTTP_X_FORWARDED_PROTO']) && $_SERVER['HTTP_X_FORWARDED_PROTO']==='https')) { //https 통신일때 daum 주소 js
|
||||
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>');
|
||||
}
|
||||
// KAKAO 우편번호 서비스 CDN
|
||||
define('G5_POSTCODE_JS', '<script src="//t1.daumcdn.net/mapjsapi/bundle/postcode/prod/postcode.v2.js" async></script>');
|
||||
|
||||
@@ -1148,6 +1148,7 @@ box-shadow: 1px 2px 2px #eee;}
|
||||
.sod_frm_mobile #m_sod_frm_paysel .inicis_lpay{background:url(../img/lpay_logo.png) no-repeat;width:35px;height:12px;overflow:hidden;text-indent:-999px;display:inline-block;background-size:100%}
|
||||
.sod_frm_mobile #m_sod_frm_paysel .inicis_kakaopay{background:url(../img/kakao.png) no-repeat 50% 50% #f4dc34;border-radius:30px;height:22px;width:74px;display:inline-block;overflow:hidden;text-indent:-999px;background-size:35px auto}
|
||||
.sod_frm_mobile #m_sod_frm_paysel .kakaopay_icon{background:url(../img/kakao.png) no-repeat 50% 50% #f4dc34;border-radius:30px;height:22px;width:74px;display:inline-block;overflow:hidden;text-indent:-999px;background-size:35px auto}
|
||||
.sod_frm_mobile #m_sod_frm_paysel .applepay_icon{background:url(../img/ico-mobile-applepay.png) no-repeat 50% 50% #fff;border-radius:30px;height:23px;width:50px;display:inline-block;overflow:hidden;text-indent:-999px;background-size:35px auto}
|
||||
.sod_frm_mobile #m_sod_frm_paysel .samsung_pay{margin-left:-23px;background:url(../img/samsungpay.png) no-repeat 24px 3px;height:25px;width:106px;display:inline-block;overflow:hidden;text-indent:-999px}
|
||||
.sod_frm_mobile #sod_frm_pay{border-top:1px solid #f3f3f3}
|
||||
.sod_frm_mobile #sod_frm_pay h2{margin:10px 0;font-size:1.25em}
|
||||
|
||||
+8
-7
@@ -83,7 +83,7 @@ input[type=radio] {-webkit-appearance: radio}
|
||||
|
||||
/*카테고리*/
|
||||
.menu {display:none;position:fixed;top:0;height:100%;z-index:99999;-webkit-backface-visibility:hidden;width:100%;background:#efefef}
|
||||
.menu .menu_wr{;width:100%;height:100%;overflow-y:auto;background:#eee;position:relative;z-index:199919;
|
||||
.menu .menu_wr{width:100%;height:100%;overflow-y:auto;background:#eee;position:relative;z-index:199919;
|
||||
-webkit-box-shadow: 0 0 5px rgba(55,55,5,0.4));
|
||||
-moz-box-shadow: 0 0 5px rgba(55,55,5,0.4));
|
||||
box-shadow: 0 0 5px rgba(55,55,5,0.4);}
|
||||
@@ -220,14 +220,15 @@ box-shadow: 0 0 6px rgba(0,0,0,0.2);}
|
||||
#m_sod_frm_paysel h3{background:#fff;padding:15px 10px ;border:1px solid #e3e5e8;border-bottom:0}
|
||||
#m_sod_frm_paysel ul {margin:0 0 ;background:#fff;padding:10px;border:1px solid #e3e5e8}
|
||||
#m_sod_frm_paysel ul:after {display:block;visibility:hidden;clear:both;content:""}
|
||||
#m_sod_frm_paysel li {float:left;padding:5px ;width:46%;height:25px}
|
||||
#m_sod_frm_paysel li {float:left;padding:5px;width:46%;height:35px}
|
||||
#m_sod_frm_paysel .KPAY{background:url('../img/kpay.png') no-repeat;width:37px;height:15px;overflow:hidden;text-indent:-999px;display:inline-block;background-size:100%}
|
||||
#m_sod_frm_paysel .PAYNOW{background:url('../img/paynow.png') no-repeat;width:46px;height:15px;overflow:hidden;text-indent:-999px;display:inline-block;background-size:100%;}
|
||||
#m_sod_frm_paysel .PAYCO{background:url('../img/payco.png') no-repeat 1px;width:46px;height:15px;overflow:hidden;text-indent:-999px;display:inline-block;background-size:100%;}
|
||||
#m_sod_frm_paysel .PAYCO{background:url('../img/payco.png') no-repeat 1px;width:50px;height:15px;overflow:hidden;text-indent:-999px;display:inline-block;background-size:100%}
|
||||
#m_sod_frm_paysel .inicis_lpay{background:url('../img/lpay_logo.png') no-repeat;width:35px;height:12px;overflow:hidden;text-indent:-999px;display:inline-block;background-size:100%;}
|
||||
#m_sod_frm_paysel .inicis_kakaopay{background:url('../img/kakao.png') no-repeat 50% 50% #ffeb00;border-radius:30px;height:22px;width:74px;display:inline-block;overflow:hidden;text-indent:-999px;background-size:35px auto}
|
||||
#m_sod_frm_paysel .kakaopay_icon{background:url('../img/ico-mobile-kakaopay.png') no-repeat #fff;height:15px;width:43px;display:inline-block;overflow:hidden;text-indent:-999px;background-size:35px auto}
|
||||
#m_sod_frm_paysel .naverpay_icon{background:url('../img/ico-mobile-naverpay.png') no-repeat #fff;height:15px;width:40px;display:inline-block;overflow:hidden;text-indent:-999px;background-size:35px auto}
|
||||
#m_sod_frm_paysel .inicis_kakaopay{background:url('../img/kakao.png') no-repeat 50% 50% #ffeb00;border-radius:30px;height:26px;width:74px;display:inline-block;overflow:hidden;text-indent:-999px;background-size:36px auto}
|
||||
#m_sod_frm_paysel .kakaopay_icon{background:url('../img/ico-mobile-kakaopay.png') no-repeat #fff;height:23px;width:63px;display:inline-block;overflow:hidden;text-indent:-999px;background-size:45px auto;background-position: 10% 40%}
|
||||
#m_sod_frm_paysel .naverpay_icon{background:url('../img/ico-mobile-naverpay.png') no-repeat #fff;height:23px;width:60px;display:inline-block;overflow:hidden;text-indent:-999px;background-size:45px auto;background-position: 0% 30%}
|
||||
#m_sod_frm_paysel .applepay_icon{background:url('../img/ico-mobile-applepay.png') no-repeat #fff;height:30px;width:60px;display:inline-block;overflow:hidden;text-indent:-999px;background-size:43px auto}
|
||||
#m_sod_frm_paysel .samsung_pay{margin-left:-23px;background:url('../img/samsungpay.png') no-repeat 24px 3px;height:25px;width:106px;display:inline-block;overflow:hidden;text-indent:-999px}
|
||||
|
||||
#sod_frm_pay{padding:10px;;border-top:1px solid #f3f3f3}
|
||||
@@ -318,7 +319,7 @@ box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075);
|
||||
}
|
||||
|
||||
#sod_frm .sod_ta_wr{background: #fff}
|
||||
#sod_frm .btn_confirm{;margin:0 10px 10px}
|
||||
#sod_frm .btn_confirm{margin:0 10px 10px}
|
||||
#sod_frm .btn_submit{width:100%;height:45px;font-size: 1.167em;font-weight: bold;margin:5px 0;border-radius:4px}
|
||||
#sod_frm .btn_cancel,#sod_frm .btn01{width:100%;height:45px;line-height:43px;font-size:1.167em;font-weight: bold;padding:0;border-radius:4px}
|
||||
|
||||
|
||||
@@ -9,19 +9,19 @@ if (!defined('G5_USE_SHOP') || !G5_USE_SHOP) return;
|
||||
*/
|
||||
define('G5_DELIVERY_COMPANY',
|
||||
'(경동택배^https://kdexp.com/basicNewDelivery.kd?barcode=^080-873-2178)'
|
||||
.'(대신택배^http://home.daesinlogistics.co.kr/daesin/jsp/d_freight_chase/d_general_process2.jsp?billno1=^043-222-4582)'
|
||||
.'(대신택배^https://www.ds3211.co.kr/freight/internalFreightSearch.ht?billno=^043-222-4582)'
|
||||
.'(동부택배^http://www.dongbups.com/delivery/delivery_search_view.jsp?item_no=^1588-8848)'
|
||||
.'(로젠택배^https://www.ilogen.com/m/personal/trace.pop/^1588-9988)'
|
||||
.'(우체국^http://service.epost.go.kr/trace.RetrieveRegiPrclDeliv.postal?sid1=^1588-1300)'
|
||||
.'(우체국^https://m.epost.go.kr/postal/mobile/mobile.trace.RetrieveDomRigiTraceList.comm?ems_gubun=E&sid1=^1588-1300)'
|
||||
.'(이노지스택배^http://www.innogis.co.kr/tracking_view.asp?invoice=^1566-4082)'
|
||||
.'(한진택배^http://www.hanjin.co.kr/Delivery_html/inquiry/result_waybill.jsp?wbl_num=^1588-0011)'
|
||||
.'(한진택배^https://www.hanjin.co.kr/kor/CMS/DeliveryMgr/WaybillResult.do?mCode=MN038&schLang=KR&wblnumText2=^1588-0011)'
|
||||
.'(롯데택배^https://www.lotteglogis.com/open/tracking?invno=^1588-2121)'
|
||||
.'(CJ대한통운^https://www.doortodoor.co.kr/parcel/doortodoor.do?fsp_action=PARC_ACT_002&fsp_cmd=retrieveInvNoACT&invc_no=^1588-1255)'
|
||||
.'(CVSnet편의점택배^http://was.cvsnet.co.kr/_ver2/board/ctod_status.jsp?invoice_no=^1577-1287)'
|
||||
.'(CVSnet편의점택배^https://www.cvsnet.co.kr/invoice/tracking.do?invoice_no=^1577-1287)'
|
||||
.'(KG옐로우캡택배^http://www.yellowcap.co.kr/custom/inquiry_result.asp?invoice_no=^1588-0123)'
|
||||
.'(KGB택배^http://www.kgbls.co.kr/sub5/trace.asp?f_slipno=^1577-4577)'
|
||||
.'(KG로지스^http://www.kglogis.co.kr/contents/waybill.jsp?item_no=^1588-8848)'
|
||||
.'(건영택배^http://www.kunyoung.com/goods/goods_01.php?mulno=^031-460-2700)'
|
||||
.'(건영택배^https://www.kunyoung.com/goods/goods_01.php?mulno=^031-460-2700)'
|
||||
.'(호남택배^http://www.honamlogis.co.kr/04estimate/songjang_list.php?c_search1=^031-376-6070)'
|
||||
);
|
||||
|
||||
|
||||
@@ -4,5 +4,5 @@ if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가
|
||||
// 자바스크립트와 CSS 파일을 새로 다운로드 하도록 파일의 끝에 년월일 지정
|
||||
// 예) https://도메인/css/default.css?ver=220620
|
||||
// 예) https://도메인/js/common.js?ver=220620
|
||||
define('G5_CSS_VER', '220620');
|
||||
define('G5_JS_VER', '220620');
|
||||
define('G5_CSS_VER', '2303229');
|
||||
define('G5_JS_VER', '2210172');
|
||||
|
||||
@@ -71,7 +71,8 @@ include_once(G5_LIB_PATH.'/popular.lib.php');
|
||||
<script>
|
||||
function fsearchbox_submit(f)
|
||||
{
|
||||
if (f.stx.value.length < 2) {
|
||||
var stx = f.stx.value.trim();
|
||||
if (stx.length < 2) {
|
||||
alert("검색어는 두글자 이상 입력하십시오.");
|
||||
f.stx.select();
|
||||
f.stx.focus();
|
||||
@@ -80,8 +81,8 @@ include_once(G5_LIB_PATH.'/popular.lib.php');
|
||||
|
||||
// 검색에 많은 부하가 걸리는 경우 이 주석을 제거하세요.
|
||||
var cnt = 0;
|
||||
for (var i=0; i<f.stx.value.length; i++) {
|
||||
if (f.stx.value.charAt(i) == ' ')
|
||||
for (var i = 0; i < stx.length; i++) {
|
||||
if (stx.charAt(i) == ' ')
|
||||
cnt++;
|
||||
}
|
||||
|
||||
@@ -91,6 +92,7 @@ include_once(G5_LIB_PATH.'/popular.lib.php');
|
||||
f.stx.focus();
|
||||
return false;
|
||||
}
|
||||
f.stx.value = stx;
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 2.0 KiB |
@@ -617,6 +617,7 @@ CREATE TABLE IF NOT EXISTS `g5_poll` (
|
||||
`po_date` date NOT NULL default '0000-00-00',
|
||||
`po_ips` mediumtext NOT NULL,
|
||||
`mb_ids` text NOT NULL,
|
||||
`po_use` tinyint(4) NOT NULL default '0',
|
||||
PRIMARY KEY (`po_id`)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
|
||||
|
||||
|
||||
+10
-2
@@ -19,9 +19,17 @@ function certify_win_open(type, url, event) {
|
||||
if($("input[name=veri_up_hash]").length < 1)
|
||||
$("input[name=cert_no]").after('<input type="hidden" name="veri_up_hash" value="">');
|
||||
|
||||
if( navigator.userAgent.indexOf("Android") > - 1 || navigator.userAgent.indexOf("iPhone") > - 1 )
|
||||
// iframe에서 세션공유 문제가 있어서 더 이상 iframe 을 사용하지 않습니다.
|
||||
var use_iframe = false;
|
||||
|
||||
if(use_iframe && (navigator.userAgent.indexOf("Android") > - 1 || navigator.userAgent.indexOf("iPhone") > - 1))
|
||||
{
|
||||
var $frm = $(event.target.form);
|
||||
|
||||
if($frm.length < 1){
|
||||
$frm = $(event.target).parent();
|
||||
}
|
||||
|
||||
if($("#kcp_cert").length < 1) {
|
||||
$frm.wrap('<div id="cert_info"></div>');
|
||||
|
||||
@@ -31,7 +39,7 @@ function certify_win_open(type, url, event) {
|
||||
}
|
||||
|
||||
$("#cert_info")
|
||||
.after('<iframe id="kcp_cert" name="kcp_cert" width="100%" height="700" frameborder="0" scrolling="no" style="display:none"></iframe>');
|
||||
.after('<iframe id="kcp_cert" name="kcp_cert" width="100%" height="700" frameborder="0" scrolling="yes" style="display:none"></iframe>');
|
||||
|
||||
var temp_form = document.form_temp;
|
||||
temp_form.target = "kcp_cert";
|
||||
|
||||
+3
-3
@@ -355,8 +355,8 @@ var win_homepage = function(href) {
|
||||
* 우편번호 창
|
||||
**/
|
||||
var win_zip = function(frm_name, frm_zip, frm_addr1, frm_addr2, frm_addr3, frm_jibeon) {
|
||||
if(typeof daum === 'undefined'){
|
||||
alert("다음 우편번호 postcode.v2.js 파일이 로드되지 않았습니다.");
|
||||
if(typeof daum === "undefined"){
|
||||
alert("KAKAO 우편번호 서비스 postcode.v2.js 파일이 로드되지 않았습니다.");
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -423,7 +423,7 @@ var win_zip = function(frm_name, frm_zip, frm_addr1, frm_addr2, frm_addr3, frm_j
|
||||
element_wrap = document.createElement("div");
|
||||
element_wrap.setAttribute("id", daum_pape_id);
|
||||
element_wrap.style.cssText = 'display:none;border:1px solid;left:0;width:100%;height:300px;margin:5px 0;position:relative;-webkit-overflow-scrolling:touch;';
|
||||
element_wrap.innerHTML = '<img src="//i1.daumcdn.net/localimg/localimages/07/postcode/320/close.png" id="btnFoldWrap" style="cursor:pointer;position:absolute;right:0px;top:-21px;z-index:1" class="close_daum_juso" alt="접기 버튼">';
|
||||
element_wrap.innerHTML = '<img src="//t1.daumcdn.net/postcode/resource/images/close.png" id="btnFoldWrap" style="cursor:pointer;position:absolute;right:0px;top:-21px;z-index:1" class="close_daum_juso" alt="접기 버튼">';
|
||||
jQuery('form[name="'+frm_name+'"]').find('input[name="'+frm_addr1+'"]').before(element_wrap);
|
||||
jQuery("#"+daum_pape_id).off("click", ".close_daum_juso").on("click", ".close_daum_juso", function(e){
|
||||
e.preventDefault();
|
||||
|
||||
@@ -8,9 +8,4 @@ $(function() {
|
||||
window.open($(this).attr("href"), "win_twitter", "menubar=1,resizable=1,width=600,height=350");
|
||||
return false;
|
||||
});
|
||||
|
||||
$(".share-googleplus").click(function() {
|
||||
window.open($(this).attr("href"), "win_googleplus", "menubar=1,resizable=1,width=600,height=600");
|
||||
return false;
|
||||
});
|
||||
});
|
||||
+20
-10
@@ -61,29 +61,39 @@ Class G5_object_cache {
|
||||
$this->contents[$group][$key] = $data;
|
||||
break;
|
||||
default :
|
||||
$datas = $this->etcs[$group][$key] = $data;
|
||||
$this->etcs[$group][$key] = $data;
|
||||
break;
|
||||
}
|
||||
|
||||
}
|
||||
/**
|
||||
* cache 데이터 제거
|
||||
* @param string $type
|
||||
* @param string $key
|
||||
* @param string $group
|
||||
* @return bool
|
||||
* kkigomi 님이 고쳐주심
|
||||
*/
|
||||
function delete($type, $key, $group = 'default')
|
||||
{
|
||||
if (!$this->exists($type, $key, $group)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
function delete($key, $group='default') {
|
||||
switch ($key) {
|
||||
switch ($type) {
|
||||
case 'bbs':
|
||||
$datas = $this->writes;
|
||||
$datas = &$this->writes;
|
||||
break;
|
||||
case 'content':
|
||||
$datas = $this->contents;
|
||||
$datas = &$this->contents;
|
||||
break;
|
||||
default :
|
||||
$datas = $this->etcs;
|
||||
default:
|
||||
$datas = &$this->etcs;
|
||||
break;
|
||||
}
|
||||
|
||||
if ( ! $this->exists('bbs', $key, $group) )
|
||||
return false;
|
||||
unset($datas[$group][$key]);
|
||||
|
||||
unset( $datas[$group][$key] );
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
+260
-90
@@ -96,6 +96,8 @@ function print_r2($var)
|
||||
// header("location:URL") 을 대체
|
||||
function goto_url($url)
|
||||
{
|
||||
run_event('goto_url', $url);
|
||||
|
||||
$url = str_replace("&", "&", $url);
|
||||
//echo "<script> location.replace('$url'); </script>";
|
||||
|
||||
@@ -144,11 +146,13 @@ function get_session($session_name)
|
||||
|
||||
|
||||
// 쿠키변수 생성
|
||||
function set_cookie($cookie_name, $value, $expire)
|
||||
function set_cookie($cookie_name, $value, $expire, $path='/', $domain=G5_COOKIE_DOMAIN, $secure=false, $httponly=true)
|
||||
{
|
||||
global $g5;
|
||||
|
||||
$c = run_replace('set_cookie_params', array('path'=>$path, 'domain'=>$domain, 'secure'=>$secure, 'httponly'=>$httponly), $cookie_name);
|
||||
|
||||
setcookie(md5($cookie_name), base64_encode($value), G5_SERVER_TIME + $expire, '/', G5_COOKIE_DOMAIN);
|
||||
setcookie(md5($cookie_name), base64_encode($value), G5_SERVER_TIME + $expire, $c['path'], $c['domain'], $c['secure'], $c['httponly']);
|
||||
}
|
||||
|
||||
|
||||
@@ -269,12 +273,12 @@ function url_auto_link($str)
|
||||
|
||||
|
||||
// url에 http:// 를 붙인다
|
||||
function set_http($url)
|
||||
function set_http($url, $protocol="http://")
|
||||
{
|
||||
if (!trim($url)) return;
|
||||
|
||||
if (!preg_match("/^(http|https|ftp|telnet|news|mms)\:\/\//i", $url))
|
||||
$url = "http://" . $url;
|
||||
$url = $protocol. $url;
|
||||
|
||||
return $url;
|
||||
}
|
||||
@@ -295,6 +299,30 @@ function get_filesize($size)
|
||||
return $size;
|
||||
}
|
||||
|
||||
// 파일다운로드 링크 생성시 nonce 키 추가, 7200은 2시간동안 유효
|
||||
function download_file_nonce_key($bo_table, $wr_id, $timeoutSeconds=7200)
|
||||
{
|
||||
$secret = get_token_encryption_key(sha1($bo_table.session_id().$wr_id));
|
||||
$salt = get_random_token_string(10);
|
||||
$maxTime = G5_SERVER_TIME + $timeoutSeconds;
|
||||
$nonce = $salt . '|' . $maxTime . '|' . sha1($salt . $secret . $maxTime);
|
||||
|
||||
return $nonce;
|
||||
}
|
||||
|
||||
// 파일다운로드시 nonce key를 체크한다.
|
||||
function download_file_nonce_is_valid($nonce, $bo_table, $wr_id)
|
||||
{
|
||||
if (! is_string($nonce)) return false;
|
||||
$secret = get_token_encryption_key(sha1($bo_table.session_id().$wr_id));
|
||||
$a = explode('|', $nonce);
|
||||
if (count($a) !== 3) return false;
|
||||
list($salt, $maxTime, $hash) = $a;
|
||||
if (sha1($salt . $secret . $maxTime) !== $hash) return false;
|
||||
if (G5_SERVER_TIME > (int) $maxTime) return false;
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
// 게시글에 첨부된 파일을 얻는다. (배열로 반환)
|
||||
function get_file($bo_table, $wr_id)
|
||||
@@ -304,11 +332,12 @@ function get_file($bo_table, $wr_id)
|
||||
$file['count'] = 0;
|
||||
$sql = " select * from {$g5['board_file_table']} where bo_table = '$bo_table' and wr_id = '$wr_id' order by bf_no ";
|
||||
$result = sql_query($sql);
|
||||
$nonce = download_file_nonce_key($bo_table, $wr_id);
|
||||
while ($row = sql_fetch_array($result))
|
||||
{
|
||||
$no = (int) $row['bf_no'];
|
||||
$bf_content = $row['bf_content'] ? html_purifier($row['bf_content']) : '';
|
||||
$file[$no]['href'] = G5_BBS_URL."/download.php?bo_table=$bo_table&wr_id=$wr_id&no=$no" . $qstr;
|
||||
$file[$no]['href'] = G5_BBS_URL."/download.php?bo_table=$bo_table&wr_id=$wr_id&no=$no&nonce=$nonce" . $qstr;
|
||||
$file[$no]['download'] = $row['bf_download'];
|
||||
// 4.00.11 - 파일 path 추가
|
||||
$file[$no]['path'] = G5_DATA_URL.'/file/'.$bo_table;
|
||||
@@ -579,6 +608,8 @@ function check_html_link_nofollow($type=''){
|
||||
// Open : HTML Purifier is open-source and highly customizable
|
||||
function html_purifier($html)
|
||||
{
|
||||
global $is_admin, $write;
|
||||
|
||||
$f = file(G5_PLUGIN_PATH.'/htmlpurifier/safeiframe.txt');
|
||||
$domains = array();
|
||||
foreach($f as $domain){
|
||||
@@ -589,9 +620,9 @@ function html_purifier($html)
|
||||
array_push($domains, $domain);
|
||||
}
|
||||
}
|
||||
// 내 도메인도 추가
|
||||
array_push($domains, $_SERVER['HTTP_HOST'].'/');
|
||||
$safeiframe = implode('|', $domains);
|
||||
// 글쓴이가 관리자인 경우에만 현재 사이트 도메인을 허용
|
||||
if (isset($write['mb_id']) && $write['mb_id'] && is_admin($write['mb_id'])) array_push($domains, $_SERVER['HTTP_HOST'].'/');
|
||||
$safeiframe = implode('|', run_replace('html_purifier_safeiframes', $domains, $html));
|
||||
|
||||
include_once(G5_PLUGIN_PATH.'/htmlpurifier/HTMLPurifier.standalone.php');
|
||||
include_once(G5_PLUGIN_PATH.'/htmlpurifier/extend.video.php');
|
||||
@@ -834,7 +865,10 @@ function subject_sort_link($col, $query_string='', $flag='asc')
|
||||
$arr_query[] = 'page='.$page;
|
||||
$qstr = implode("&", $arr_query);
|
||||
|
||||
return "<a href=\"{$_SERVER['SCRIPT_NAME']}?{$qstr}\">";
|
||||
parse_str(html_entity_decode($qstr), $qstr_array);
|
||||
$url = short_url_clean(get_params_merge_url($qstr_array));
|
||||
|
||||
return '<a href="'.$url.'">';
|
||||
}
|
||||
|
||||
|
||||
@@ -1298,87 +1332,138 @@ function get_sideview($mb_id, $name='', $email='', $homepage='')
|
||||
global $g5;
|
||||
global $bo_table, $sca, $is_admin, $member;
|
||||
|
||||
$email = get_string_encrypt($email);
|
||||
$homepage = set_http(clean_xss_tags($homepage));
|
||||
static $cache = array();
|
||||
|
||||
$name = get_text($name, 0, true);
|
||||
$email = get_text($email);
|
||||
$name = get_text($name, 0, true);
|
||||
|
||||
if (isset($cache['id:' . $mb_id]) && $cache['id:' . $mb_id]) {
|
||||
return $cache['id:' . $mb_id];
|
||||
} else if (
|
||||
isset($name)
|
||||
&& isset($cache['name:' . $name])
|
||||
&& $cache['name:' . $name]
|
||||
) {
|
||||
return $cache['name:' . $name];
|
||||
}
|
||||
|
||||
$email = get_string_encrypt($email);
|
||||
$email = get_text($email);
|
||||
|
||||
$homepage = set_http(clean_xss_tags($homepage));
|
||||
$homepage = get_text($homepage);
|
||||
|
||||
$tmp_name = "";
|
||||
$en_mb_id = $mb_id;
|
||||
|
||||
$name_tag = array();
|
||||
$menus = array();
|
||||
|
||||
if ($mb_id) {
|
||||
//$tmp_name = "<a href=\"".G5_BBS_URL."/profile.php?mb_id=".$mb_id."\" class=\"sv_member\" title=\"$name 자기소개\" rel="nofollow" target=\"_blank\" onclick=\"return false;\">$name</a>";
|
||||
$tmp_name = '<a href="'.G5_BBS_URL.'/profile.php?mb_id='.$mb_id.'" class="sv_member" title="'.$name.' 자기소개" target="_blank" rel="nofollow" onclick="return false;">';
|
||||
// $tmp_name = "<a href=\"".G5_BBS_URL."/profile.php?mb_id=".$mb_id."\" class=\"sv_member\" title=\"$name 자기소개\" rel="nofollow" target=\"_blank\" onclick=\"return false;\">$name</a>";
|
||||
$name_tag_open = '<a href="' . G5_BBS_URL . '/profile.php?mb_id=' . $mb_id . '" class="sv_member" title="' . $name . ' 자기소개" target="_blank" rel="nofollow" onclick="return false;">';
|
||||
|
||||
if ($config['cf_use_member_icon']) {
|
||||
$mb_dir = substr($mb_id,0,2);
|
||||
$icon_file = G5_DATA_PATH.'/member/'.$mb_dir.'/'.get_mb_icon_name($mb_id).'.gif';
|
||||
$mb_dir = substr($mb_id, 0, 2);
|
||||
$icon_file = G5_DATA_PATH . '/member/' . $mb_dir . '/' . get_mb_icon_name($mb_id) . '.gif';
|
||||
|
||||
if (file_exists($icon_file)) {
|
||||
$icon_filemtile = (defined('G5_USE_MEMBER_IMAGE_FILETIME') && G5_USE_MEMBER_IMAGE_FILETIME) ? '?'.filemtime($icon_file) : '';
|
||||
$icon_filemtile = (defined('G5_USE_MEMBER_IMAGE_FILETIME') && G5_USE_MEMBER_IMAGE_FILETIME) ? '?' . filemtime($icon_file) : '';
|
||||
$width = $config['cf_member_icon_width'];
|
||||
$height = $config['cf_member_icon_height'];
|
||||
$icon_file_url = G5_DATA_URL.'/member/'.$mb_dir.'/'.get_mb_icon_name($mb_id).'.gif'.$icon_filemtile;
|
||||
$tmp_name .= '<span class="profile_img"><img src="'.$icon_file_url.'" width="'.$width.'" height="'.$height.'" alt=""></span>';
|
||||
$icon_file_url = G5_DATA_URL . '/member/' . $mb_dir . '/' . get_mb_icon_name($mb_id) . '.gif' . $icon_filemtile;
|
||||
$name_tag['profile_image'] = '<span class="profile_img"><img src="' . $icon_file_url . '" width="' . $width . '" height="' . $height . '" alt=""></span>';
|
||||
|
||||
if ($config['cf_use_member_icon'] == 2) // 회원아이콘+이름
|
||||
$tmp_name = $tmp_name.' '.$name;
|
||||
// 회원아이콘+이름
|
||||
if ($config['cf_use_member_icon'] == 2) {
|
||||
$name_tag['name'] = $name;
|
||||
}
|
||||
} else {
|
||||
if( defined('G5_THEME_NO_PROFILE_IMG') ){
|
||||
$tmp_name .= G5_THEME_NO_PROFILE_IMG;
|
||||
} else if( defined('G5_NO_PROFILE_IMG') ){
|
||||
$tmp_name .= G5_NO_PROFILE_IMG;
|
||||
if (defined('G5_THEME_NO_PROFILE_IMG')) {
|
||||
$name_tag['profile_image'] = G5_THEME_NO_PROFILE_IMG;
|
||||
} else if (defined('G5_NO_PROFILE_IMG')) {
|
||||
$name_tag['profile_image'] = G5_NO_PROFILE_IMG;
|
||||
}
|
||||
|
||||
// 회원아이콘+이름
|
||||
if ($config['cf_use_member_icon'] == 2) {
|
||||
$name_tag['name'] = $name;
|
||||
}
|
||||
if ($config['cf_use_member_icon'] == 2) // 회원아이콘+이름
|
||||
$tmp_name = $tmp_name.' '.$name;
|
||||
}
|
||||
} else {
|
||||
$tmp_name = $tmp_name.' '.$name;
|
||||
$name_tag['name'] = $name;
|
||||
}
|
||||
$tmp_name .= '</a>';
|
||||
|
||||
$title_mb_id = '['.$mb_id.']';
|
||||
} else {
|
||||
if(!$bo_table)
|
||||
if (!$bo_table) {
|
||||
return $name;
|
||||
}
|
||||
|
||||
$tmp_name = '<a href="'.get_pretty_url($bo_table, '', 'sca='.$sca.'&sfl=wr_name,1&stx='.$name).'" title="'.$name.' 이름으로 검색" class="sv_guest" rel="nofollow" onclick="return false;">'.$name.'</a>';
|
||||
$title_mb_id = '[비회원]';
|
||||
$name_tag_open = '<a href="' . get_pretty_url($bo_table, '', 'sca=' . $sca . '&sfl=wr_name,1&stx=' . $name) . '" title="' . $name . ' 이름으로 검색" class="sv_guest" rel="nofollow" onclick="return false;">';
|
||||
$name_tag['name'] = $name;
|
||||
}
|
||||
|
||||
$str = "<span class=\"sv_wrap\">\n";
|
||||
$str .= $tmp_name."\n";
|
||||
if ($mb_id) {
|
||||
$menus['memo'] = '<a href="' . G5_BBS_URL . '/memo_form.php?me_recv_mb_id=' . $mb_id . '" rel="nofollow" onclick="win_memo(this.href); return false;">쪽지보내기</a>';
|
||||
}
|
||||
|
||||
$str2 = "<span class=\"sv\">\n";
|
||||
if($mb_id)
|
||||
$str2 .= "<a href=\"".G5_BBS_URL."/memo_form.php?me_recv_mb_id=".$mb_id."\" onclick=\"win_memo(this.href); return false;\">쪽지보내기</a>\n";
|
||||
if($email)
|
||||
$str2 .= "<a href=\"".G5_BBS_URL."/formmail.php?mb_id=".$mb_id."&name=".urlencode($name)."&email=".$email."\" onclick=\"win_email(this.href); return false;\">메일보내기</a>\n";
|
||||
if($homepage)
|
||||
$str2 .= "<a href=\"".$homepage."\" target=\"_blank\">홈페이지</a>\n";
|
||||
if($mb_id)
|
||||
$str2 .= "<a href=\"".G5_BBS_URL."/profile.php?mb_id=".$mb_id."\" onclick=\"win_profile(this.href); return false;\">자기소개</a>\n";
|
||||
if($bo_table) {
|
||||
if($mb_id) {
|
||||
$str2 .= "<a href=\"".get_pretty_url($bo_table, '', "sca=".$sca."&sfl=mb_id,1&stx=".$en_mb_id)."\">아이디로 검색</a>\n";
|
||||
if ($email) {
|
||||
$menus['email'] = '<a href="' . G5_BBS_URL . '/formmail.php?mb_id=' . $mb_id . '&name=' . urlencode($name) . '&email=' . $email . '" onclick="win_email(this.href); return false;" rel="nofollow">메일보내기</a>';
|
||||
}
|
||||
|
||||
if ($homepage) {
|
||||
$menus['homepage'] = '<a href="' . $homepage . '" rel="nofollow noopener" target="_blank">홈페이지</a>';
|
||||
}
|
||||
|
||||
if ($mb_id) {
|
||||
$menus['profile'] = '<a href="' . G5_BBS_URL . '/profile.php?mb_id=' . $mb_id . '" onclick="win_profile(this.href); return false;" rel="nofollow">자기소개</a>';
|
||||
}
|
||||
|
||||
if ($bo_table) {
|
||||
if ($mb_id) {
|
||||
$menus['search_id'] = '<a href="' . get_pretty_url($bo_table, '', 'sca=' . $sca . '&sfl=mb_id,1&stx=' . $en_mb_id) . '" rel="nofollow">아이디로 검색</a>';
|
||||
} else {
|
||||
$str2 .= "<a href=\"".get_pretty_url($bo_table, '', "sca=".$sca."&sfl=wr_name,1&stx=".$name)."\">이름으로 검색</a>\n";
|
||||
$menus['search_name'] = '<a href="' . get_pretty_url($bo_table, '', 'sca=' . $sca . '&sfl=wr_name,1&stx=' . $name) . '" rel="nofollow">이름으로 검색</a>';
|
||||
}
|
||||
}
|
||||
if($mb_id)
|
||||
$str2 .= "<a href=\"".G5_BBS_URL."/new.php?mb_id=".$mb_id."\" class=\"link_new_page\" onclick=\"check_goto_new(this.href, event);\">전체게시물</a>\n";
|
||||
if($is_admin == "super" && $mb_id) {
|
||||
$str2 .= "<a href=\"".G5_ADMIN_URL."/member_form.php?w=u&mb_id=".$mb_id."\" target=\"_blank\">회원정보변경</a>\n";
|
||||
$str2 .= "<a href=\"".G5_ADMIN_URL."/point_list.php?sfl=mb_id&stx=".$mb_id."\" target=\"_blank\">포인트내역</a>\n";
|
||||
}
|
||||
$str2 .= "</span>\n";
|
||||
$str .= $str2;
|
||||
$str .= "\n<noscript class=\"sv_nojs\">".$str2."</noscript>";
|
||||
|
||||
if ($mb_id) {
|
||||
$menus['search_all'] = '<a href="' . G5_BBS_URL . '/new.php?mb_id=' . $mb_id . '" class="link_new_page" onclick="check_goto_new(this.href, event);" rel="nofollow">전체게시물</a>';
|
||||
|
||||
if ($is_admin == 'super') {
|
||||
$menus['admin_member_modify'] = '<a href="' . G5_ADMIN_URL . '/member_form.php?w=u&mb_id=' . $mb_id . '" target="_blank" rel="nofollow">회원정보변경</a>';
|
||||
$menus['admin_member_point'] = '<a href="' . G5_ADMIN_URL . '/point_list.php?sfl=mb_id&stx=' . $mb_id . '" target="_blank" rel="nofollow">포인트내역</a>';
|
||||
}
|
||||
}
|
||||
|
||||
$name_tag_close = '</a>';
|
||||
|
||||
$items = run_replace('member_sideview_items', array(
|
||||
'name_tag_open' => $name_tag_open,
|
||||
'name_tag_close' => $name_tag_close,
|
||||
'name_tag' => $name_tag,
|
||||
'menus' => $menus
|
||||
), array(
|
||||
'mb_id' => $mb_id,
|
||||
'name' => $name,
|
||||
'bo_table' => $bo_table,
|
||||
)
|
||||
);
|
||||
|
||||
$str = '<span class="sv_wrap">';
|
||||
$str .= $items['name_tag_open'] . implode(' ', $items['name_tag']) . $items['name_tag_close'];
|
||||
|
||||
$str2 = '<span class="sv">';
|
||||
$str2 .= implode("\n", $items['menus']);
|
||||
$str2 .= '</span>';
|
||||
|
||||
$str .= $str2;
|
||||
$str .= '<noscript class="sv_nojs">' . $str2 . '</noscript>';
|
||||
$str .= "</span>";
|
||||
|
||||
if ($mb_id) {
|
||||
$cache['id:' . $mb_id] = $str;
|
||||
} else {
|
||||
$cache['name:' . $name] = $str;
|
||||
}
|
||||
|
||||
return $str;
|
||||
}
|
||||
|
||||
@@ -1596,7 +1681,7 @@ function sql_query($sql, $error=G5_DISPLAY_SQL_ERROR, $link=null)
|
||||
|
||||
$is_debug = get_permission_debug_show();
|
||||
|
||||
$start_time = $is_debug ? get_microtime() : 0;
|
||||
$start_time = ($is_debug || G5_COLLECT_QUERY) ? get_microtime() : 0;
|
||||
|
||||
if(function_exists('mysqli_query') && G5_MYSQLI_USE) {
|
||||
if ($error) {
|
||||
@@ -1616,18 +1701,68 @@ function sql_query($sql, $error=G5_DISPLAY_SQL_ERROR, $link=null)
|
||||
}
|
||||
}
|
||||
|
||||
$end_time = $is_debug ? get_microtime() : 0;
|
||||
$end_time = ($is_debug || G5_COLLECT_QUERY) ? get_microtime() : 0;
|
||||
|
||||
$error = null;
|
||||
$source = array();
|
||||
if ($is_debug || G5_COLLECT_QUERY) {
|
||||
if(function_exists('mysqli_error') && G5_MYSQLI_USE) {
|
||||
$error = array(
|
||||
'error_code' => mysqli_errno($link),
|
||||
'error_message' => mysqli_error($link),
|
||||
);
|
||||
} else {
|
||||
$error = array(
|
||||
'error_code' => mysql_errno($link),
|
||||
'error_message' => mysql_error($link),
|
||||
);
|
||||
}
|
||||
|
||||
$stack = debug_backtrace(DEBUG_BACKTRACE_IGNORE_ARGS);
|
||||
$found = false;
|
||||
|
||||
foreach ($stack as $index => $trace) {
|
||||
if ($trace['function'] === 'sql_query') {
|
||||
$found = true;
|
||||
}
|
||||
if (isset($stack[$index + 1]) && $stack[$index + 1]['function'] === 'sql_fetch') {
|
||||
continue;
|
||||
}
|
||||
|
||||
if ($found) {
|
||||
$trace['file'] = str_replace($_SERVER['DOCUMENT_ROOT'], '', $trace['file']);
|
||||
$source['file'] = $trace['file'];
|
||||
$source['line'] = $trace['line'];
|
||||
|
||||
$parent = (isset($stack[$index + 1])) ? $stack[$index + 1] : array();
|
||||
if (isset($parent['function'])) {
|
||||
if (in_array($trace['function'], array('sql_query', 'sql_fetch')) && (isset($parent['function']) && !in_array($parent['function'], array('sql_fetch', 'include', 'include_once', 'require', 'require_once')))) {
|
||||
if (isset($parent['class']) && $parent['class']) {
|
||||
$source['class'] = $parent['class'];
|
||||
$source['function'] = $parent['function'];
|
||||
$source['type'] = $parent['type'];
|
||||
} else {
|
||||
$source['function'] = $parent['function'];
|
||||
}
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if($result && $is_debug) {
|
||||
// 여기에 실행한 sql문을 화면에 표시하는 로직 넣기
|
||||
$g5_debug['sql'][] = array(
|
||||
'sql' => $sql,
|
||||
'result' => $result,
|
||||
'success' => !!$result,
|
||||
'source' => $source,
|
||||
'error_code' => $error['error_code'],
|
||||
'error_message' => $error['error_message'],
|
||||
'start_time' => $start_time,
|
||||
'end_time' => $end_time,
|
||||
);
|
||||
);
|
||||
}
|
||||
|
||||
run_event('sql_query_after', $result, $sql, $start_time, $end_time);
|
||||
run_event('sql_query_after', $result, $sql, $start_time, $end_time, $error, $source);
|
||||
|
||||
return $result;
|
||||
}
|
||||
@@ -2484,37 +2619,61 @@ function get_skin_javascript($skin_path, $dir='')
|
||||
return $str;
|
||||
}
|
||||
|
||||
if (!function_exists('get_called_class')) {
|
||||
function get_called_class() {
|
||||
$bt = debug_backtrace();
|
||||
$lines = file($bt[1]['file']);
|
||||
preg_match(
|
||||
'/([a-zA-Z0-9\_]+)::'.$bt[1]['function'].'/',
|
||||
$lines[$bt[1]['line']-1],
|
||||
$matches
|
||||
);
|
||||
return $matches[1];
|
||||
}
|
||||
}
|
||||
|
||||
function get_html_process_cls() {
|
||||
return html_process::getInstance();
|
||||
}
|
||||
|
||||
// HTML 마지막 처리
|
||||
function html_end()
|
||||
{
|
||||
global $html_process;
|
||||
|
||||
return $html_process->run();
|
||||
return get_html_process_cls()->run();
|
||||
}
|
||||
|
||||
function add_stylesheet($stylesheet, $order=0)
|
||||
{
|
||||
global $html_process;
|
||||
|
||||
if(trim($stylesheet) && method_exists($html_process, 'merge_stylesheet') )
|
||||
$html_process->merge_stylesheet($stylesheet, $order);
|
||||
if(trim($stylesheet))
|
||||
get_html_process_cls()->merge_stylesheet($stylesheet, $order);
|
||||
}
|
||||
|
||||
function add_javascript($javascript, $order=0)
|
||||
{
|
||||
global $html_process;
|
||||
|
||||
if(trim($javascript) && method_exists($html_process, 'merge_javascript') )
|
||||
$html_process->merge_javascript($javascript, $order);
|
||||
if(trim($javascript))
|
||||
get_html_process_cls()->merge_javascript($javascript, $order);
|
||||
}
|
||||
|
||||
class html_process {
|
||||
protected $css = array();
|
||||
protected $js = array();
|
||||
protected static $id = '0';
|
||||
private static $instances = array();
|
||||
protected static $is_end = '0';
|
||||
protected static $css = array();
|
||||
protected static $js = array();
|
||||
|
||||
function merge_stylesheet($stylesheet, $order)
|
||||
public static function getInstance($id = '0')
|
||||
{
|
||||
$links = $this->css;
|
||||
self::$id = $id;
|
||||
if (isset(self::$instances[self::$id])) {
|
||||
return self::$instances[self::$id];
|
||||
}
|
||||
$calledClass = get_called_class();
|
||||
return self::$instances[self::$id] = new $calledClass;
|
||||
}
|
||||
|
||||
public static function merge_stylesheet($stylesheet, $order)
|
||||
{
|
||||
$links = self::$css;
|
||||
$is_merge = true;
|
||||
|
||||
foreach($links as $link) {
|
||||
@@ -2525,12 +2684,12 @@ class html_process {
|
||||
}
|
||||
|
||||
if($is_merge)
|
||||
$this->css[] = array($order, $stylesheet);
|
||||
self::$css[] = array($order, $stylesheet);
|
||||
}
|
||||
|
||||
function merge_javascript($javascript, $order)
|
||||
public static function merge_javascript($javascript, $order)
|
||||
{
|
||||
$scripts = $this->js;
|
||||
$scripts = self::$js;
|
||||
$is_merge = true;
|
||||
|
||||
foreach($scripts as $script) {
|
||||
@@ -2541,13 +2700,17 @@ class html_process {
|
||||
}
|
||||
|
||||
if($is_merge)
|
||||
$this->js[] = array($order, $javascript);
|
||||
self::$js[] = array($order, $javascript);
|
||||
}
|
||||
|
||||
function run()
|
||||
public static function run()
|
||||
{
|
||||
global $config, $g5, $member;
|
||||
|
||||
if (self::$is_end) return; // 여러번 호출해도 한번만 실행되게 합니다.
|
||||
|
||||
self::$is_end = 1;
|
||||
|
||||
// 현재접속자 처리
|
||||
$tmp_sql = " select count(*) as cnt from {$g5['login_table']} where lo_ip = '{$_SERVER['REMOTE_ADDR']}' ";
|
||||
$tmp_row = sql_fetch($tmp_sql);
|
||||
@@ -2572,7 +2735,7 @@ class html_process {
|
||||
ob_end_clean();
|
||||
|
||||
$stylesheet = '';
|
||||
$links = $this->css;
|
||||
$links = self::$css;
|
||||
|
||||
if(!empty($links)) {
|
||||
foreach ($links as $key => $row) {
|
||||
@@ -2596,7 +2759,7 @@ class html_process {
|
||||
}
|
||||
|
||||
$javascript = '';
|
||||
$scripts = $this->js;
|
||||
$scripts = self::$js;
|
||||
$php_eol = '';
|
||||
|
||||
unset($order);
|
||||
@@ -2630,7 +2793,12 @@ class html_process {
|
||||
<link rel="stylesheet" href="default.css">
|
||||
밑으로 스킨의 스타일시트가 위치하도록 하게 한다.
|
||||
*/
|
||||
$buffer = preg_replace('#(</title>[^<]*<link[^>]+>)#', "$1$stylesheet", $buffer);
|
||||
$title_find_pattern = '#(</title>[^<]*<link[^>]+>)#';
|
||||
if (preg_match($title_find_pattern, $buffer)) {
|
||||
$buffer = preg_replace($title_find_pattern, "$1$stylesheet", $buffer);
|
||||
} else { // 패턴이 없다면 자바스크립트 코드 위에 위치하게 합니다.
|
||||
$javascript = $stylesheet. PHP_EOL. $javascript;
|
||||
}
|
||||
|
||||
/*
|
||||
</head>
|
||||
@@ -2653,6 +2821,8 @@ class html_process {
|
||||
$buffer = preg_replace('#(<title[^>]*>.*?</title>)#', "$meta_tag{$nl}$1", $buffer);
|
||||
}
|
||||
|
||||
$buffer = run_replace('html_process_buffer', $buffer);
|
||||
|
||||
return $buffer;
|
||||
}
|
||||
}
|
||||
@@ -3965,7 +4135,7 @@ function get_random_token_string($length=6)
|
||||
}
|
||||
|
||||
function filter_input_include_path($path){
|
||||
return str_replace('//', '/', $path);
|
||||
return str_replace('//', '/', strip_tags($path));
|
||||
}
|
||||
|
||||
function option_array_checked($option, $arr=array()){
|
||||
|
||||
@@ -195,6 +195,7 @@ class LMS {
|
||||
|
||||
foreach($this->Data as $puts) {
|
||||
fputs($fsocket, $puts);
|
||||
$gets = '';
|
||||
while(!$gets) { $gets = fgets($fsocket,32); }
|
||||
$json = json_decode(substr($puts,6), true);
|
||||
|
||||
@@ -206,7 +207,6 @@ class LMS {
|
||||
$this->Result[$dest] = $dest.":Error(".substr($gets,6,2).")";
|
||||
if(substr($gets,6,2) >= "80") break;
|
||||
}
|
||||
$gets = "";
|
||||
}
|
||||
|
||||
fclose($fsocket);
|
||||
@@ -217,6 +217,7 @@ class LMS {
|
||||
|
||||
foreach($this->Data as $puts) {
|
||||
fputs($fsocket, $puts);
|
||||
$gets = '';
|
||||
while(!$gets) { $gets = fgets($fsocket,30); }
|
||||
$dest = substr($puts,26,11);
|
||||
if (substr($gets,0,19) == "0223 00".$dest) {
|
||||
@@ -224,7 +225,6 @@ class LMS {
|
||||
} else {
|
||||
$this->Result[$dest] = $dest.":Error(".substr($gets,6,2).")";
|
||||
}
|
||||
$gets = "";
|
||||
}
|
||||
|
||||
fclose($fsocket);
|
||||
|
||||
@@ -198,6 +198,7 @@ class SMS {
|
||||
|
||||
foreach($this->Data as $puts) {
|
||||
fputs($fsocket, $puts);
|
||||
$gets = '';
|
||||
while(!$gets) { $gets = fgets($fsocket,32); }
|
||||
$json = json_decode(substr($puts,6), true);
|
||||
|
||||
@@ -209,7 +210,6 @@ class SMS {
|
||||
$this->Result[$dest] = $dest.":Error(".substr($gets,6,2).")";
|
||||
if(substr($gets,6,2) >= "80") break;
|
||||
}
|
||||
$gets = "";
|
||||
}
|
||||
fclose($fsocket);
|
||||
|
||||
@@ -226,10 +226,10 @@ class SMS {
|
||||
foreach($this->Data as $puts) {
|
||||
$dest = substr($puts,26,11);
|
||||
fputs($fp,$puts);
|
||||
$gets = '';
|
||||
while(!$gets) { $gets=fgets($fp,30); }
|
||||
if (substr($gets,0,19)=="0223 00".$dest) $this->Result[]=$dest.":".substr($gets,19,10);
|
||||
else $this->Result[$dest]=$dest.":Error";
|
||||
$gets="";
|
||||
}
|
||||
fclose($fp);
|
||||
}
|
||||
|
||||
+3
-3
@@ -8,8 +8,8 @@ function poll($skin_dir='basic', $po_id=false)
|
||||
|
||||
// 투표번호가 넘어오지 않았다면 가장 큰(최근에 등록한) 투표번호를 얻는다
|
||||
if (!$po_id) {
|
||||
$row = sql_fetch(" select MAX(po_id) as max_po_id from {$g5['poll_table']} ");
|
||||
$po_id = $row['max_po_id'];
|
||||
$row = sql_fetch(" select MAX(po_id) as max_po_id from {$g5['poll_table']} where po_use = 1 ", false);
|
||||
$po_id = isset($row['max_po_id']) ? $row['max_po_id'] : 0;
|
||||
}
|
||||
|
||||
if(!$po_id)
|
||||
@@ -36,7 +36,7 @@ function poll($skin_dir='basic', $po_id=false)
|
||||
}
|
||||
}
|
||||
|
||||
$po = sql_fetch(" select * from {$g5['poll_table']} where po_id = '$po_id' ");
|
||||
$po = sql_fetch(" select * from {$g5['poll_table']} where po_id = '$po_id' and po_use = 1 ");
|
||||
|
||||
ob_start();
|
||||
include_once ($poll_skin_path.'/poll.skin.php');
|
||||
|
||||
+4
-5
@@ -1521,9 +1521,6 @@ function get_sns_share_link($sns, $url, $title, $img)
|
||||
case 'twitter':
|
||||
$str = '<a href="https://twitter.com/share?url='.urlencode($url).'&text='.urlencode($title).'" class="share-twitter" target="_blank"><img src="'.$img.'" alt="트위터에 공유"></a>';
|
||||
break;
|
||||
case 'googleplus':
|
||||
$str = '<a href="https://plus.google.com/share?url='.urlencode($url).'" class="share-googleplus" target="_blank"><img src="'.$img.'" alt="구글플러스에 공유"></a>';
|
||||
break;
|
||||
case 'kakaotalk':
|
||||
if($config['cf_kakao_js_apikey'])
|
||||
$str = '<a href="javascript:kakaolink_send(\''.str_replace('+', ' ', urlencode($title)).'\', \''.urlencode($url).'\');" class="share-kakaotalk"><img src="'.$img.'" alt="카카오톡 링크보내기"></a>';
|
||||
@@ -2628,10 +2625,10 @@ function make_order_field($data, $exclude)
|
||||
|
||||
if(is_array($value)) {
|
||||
foreach($value as $k=>$v) {
|
||||
$field .= '<input type="hidden" name="'.$key.'['.$k.']" value="'.$v.'">'.PHP_EOL;
|
||||
$field .= '<input type="hidden" name="'.$key.'['.$k.']" value="'.get_text($v).'">'.PHP_EOL;
|
||||
}
|
||||
} else {
|
||||
$field .= '<input type="hidden" name="'.$key.'" value="'.$value.'">'.PHP_EOL;
|
||||
$field .= '<input type="hidden" name="'.$key.'" value="'.get_text($value).'">'.PHP_EOL;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2772,6 +2769,8 @@ function check_pay_name_replace($payname, $od=array(), $is_client=0){
|
||||
return '네이버페이_NHNKCP'.$add_str;
|
||||
} else if( isset($od['od_other_pay_type']) && ($od['od_other_pay_type'] === 'OT13' || $od['od_other_pay_type'] === 'NHNKCP_KAKAOMONEY') ){
|
||||
return '카카오페이_NHNKCP'.$add_str;
|
||||
} else if( isset($od['od_other_pay_type']) && $od['od_other_pay_type'] === 'OT21' ){
|
||||
return '애플페이_NHNKCP'.$add_str;
|
||||
}
|
||||
|
||||
return 'PAYCO'.$add_str;
|
||||
|
||||
@@ -142,6 +142,7 @@ function shop_short_url_clean($string_url, $url, $page_name, $array_page_names){
|
||||
$add_param .= $add_param ? '&'.$add_qry : '?'.$add_qry;
|
||||
}
|
||||
|
||||
$return_url = '';
|
||||
foreach($s as $k => $v) { $return_url .= '/'.$v; }
|
||||
|
||||
return $host.$return_url.$add_param.$fragment;
|
||||
|
||||
+38
-32
@@ -298,63 +298,69 @@ function seo_title_update($db_table, $pk_id, $type='bbs'){
|
||||
}
|
||||
}
|
||||
|
||||
function get_nginx_conf_rules($return_string=false){
|
||||
|
||||
function get_nginx_conf_rules($return_string = false)
|
||||
{
|
||||
$get_path_url = parse_url(G5_URL);
|
||||
|
||||
$base_path = isset($get_path_url['path']) ? $get_path_url['path'].'/' : '/';
|
||||
$base_path = isset($get_path_url['path']) ? $get_path_url['path'] . '/' : '/';
|
||||
|
||||
$rules = array();
|
||||
|
||||
$rules[] = '#### '.G5_VERSION.' nginx rules BEGIN #####';
|
||||
$rules[] = 'if (!-e $request_filename){';
|
||||
$rules[] = '#### ' . G5_VERSION . ' nginx rules BEGIN #####';
|
||||
|
||||
if( $add_rules = run_replace('add_nginx_conf_rules', '', $get_path_url, $base_path, $return_string) ){
|
||||
if ($add_rules = run_replace('add_nginx_conf_pre_rules', '', $get_path_url, $base_path, $return_string)) {
|
||||
$rules[] = $add_rules;
|
||||
}
|
||||
|
||||
$rules[] = "rewrite ^{$base_path}content/([0-9a-zA-Z_]+)$ {$base_path}".G5_BBS_DIR."/content.php?co_id=$1&rewrite=1 break;";
|
||||
$rules[] = "rewrite ^{$base_path}content/([^/]+)/$ {$base_path}".G5_BBS_DIR."/content.php?co_seo_title=$1&rewrite=1 break;";
|
||||
$rules[] = "rewrite ^{$base_path}rss/([0-9a-zA-Z_]+)$ {$base_path}".G5_BBS_DIR."/rss.php?bo_table=$1 break;";
|
||||
$rules[] = "rewrite ^{$base_path}([0-9a-zA-Z_]+)$ {$base_path}".G5_BBS_DIR."/board.php?bo_table=$1&rewrite=1 break;";
|
||||
$rules[] = "rewrite ^{$base_path}([0-9a-zA-Z_]+)/write$ {$base_path}".G5_BBS_DIR."/write.php?bo_table=$1&rewrite=1 break;";
|
||||
$rules[] = "rewrite ^{$base_path}([0-9a-zA-Z_]+)/([^/]+)/$ {$base_path}".G5_BBS_DIR."/board.php?bo_table=$1&wr_seo_title=$2&rewrite=1 break;";
|
||||
$rules[] = "rewrite ^{$base_path}([0-9a-zA-Z_]+)/([0-9]+)$ {$base_path}".G5_BBS_DIR."/board.php?bo_table=$1&wr_id=$2&rewrite=1 break;";
|
||||
$rules[] = 'if (!-e $request_filename) {';
|
||||
|
||||
if ($add_rules = run_replace('add_nginx_conf_rules', '', $get_path_url, $base_path, $return_string)) {
|
||||
$rules[] = $add_rules;
|
||||
}
|
||||
|
||||
$rules[] = "rewrite ^{$base_path}content/([0-9a-zA-Z_]+)$ {$base_path}" . G5_BBS_DIR . "/content.php?co_id=$1&rewrite=1 break;";
|
||||
$rules[] = "rewrite ^{$base_path}content/([^/]+)/$ {$base_path}" . G5_BBS_DIR . "/content.php?co_seo_title=$1&rewrite=1 break;";
|
||||
$rules[] = "rewrite ^{$base_path}rss/([0-9a-zA-Z_]+)$ {$base_path}" . G5_BBS_DIR . "/rss.php?bo_table=$1 break;";
|
||||
$rules[] = "rewrite ^{$base_path}([0-9a-zA-Z_]+)$ {$base_path}" . G5_BBS_DIR . "/board.php?bo_table=$1&rewrite=1 break;";
|
||||
$rules[] = "rewrite ^{$base_path}([0-9a-zA-Z_]+)/write$ {$base_path}" . G5_BBS_DIR . "/write.php?bo_table=$1&rewrite=1 break;";
|
||||
$rules[] = "rewrite ^{$base_path}([0-9a-zA-Z_]+)/([^/]+)/$ {$base_path}" . G5_BBS_DIR . "/board.php?bo_table=$1&wr_seo_title=$2&rewrite=1 break;";
|
||||
$rules[] = "rewrite ^{$base_path}([0-9a-zA-Z_]+)/([0-9]+)$ {$base_path}" . G5_BBS_DIR . "/board.php?bo_table=$1&wr_id=$2&rewrite=1 break;";
|
||||
$rules[] = '}';
|
||||
$rules[] = '#### '.G5_VERSION.' nginx rules END #####';
|
||||
$rules[] = '#### ' . G5_VERSION . ' nginx rules END #####';
|
||||
|
||||
return $return_string ? implode("\n", $rules) : $rules;
|
||||
}
|
||||
|
||||
function get_mod_rewrite_rules($return_string=false){
|
||||
|
||||
function get_mod_rewrite_rules($return_string = false)
|
||||
{
|
||||
$get_path_url = parse_url(G5_URL);
|
||||
|
||||
$base_path = isset($get_path_url['path']) ? $get_path_url['path'].'/' : '/';
|
||||
$base_path = isset($get_path_url['path']) ? $get_path_url['path'] . '/' : '/';
|
||||
|
||||
$rules = array();
|
||||
|
||||
$rules[] = '#### '.G5_VERSION.' rewrite BEGIN #####';
|
||||
$rules[] = '#### ' . G5_VERSION . ' rewrite BEGIN #####';
|
||||
$rules[] = '<IfModule mod_rewrite.c>';
|
||||
$rules[] = 'RewriteEngine On';
|
||||
$rules[] = 'RewriteBase '.$base_path;
|
||||
$rules[] = 'RewriteBase ' . $base_path;
|
||||
|
||||
if ($add_rules = run_replace('add_mod_rewrite_pre_rules', '', $get_path_url, $base_path, $return_string)) {
|
||||
$rules[] = $add_rules;
|
||||
}
|
||||
|
||||
$rules[] = 'RewriteCond %{REQUEST_FILENAME} -f [OR]';
|
||||
$rules[] = 'RewriteCond %{REQUEST_FILENAME} -d';
|
||||
$rules[] = 'RewriteRule ^ - [L]';
|
||||
|
||||
if( $add_rules = run_replace('add_mod_rewrite_rules', '', $get_path_url, $base_path, $return_string) ){
|
||||
if ($add_rules = run_replace('add_mod_rewrite_rules', '', $get_path_url, $base_path, $return_string)) {
|
||||
$rules[] = $add_rules;
|
||||
}
|
||||
|
||||
$rules[] = 'RewriteRule ^content/([0-9a-zA-Z_]+)$ '.G5_BBS_DIR.'/content.php?co_id=$1&rewrite=1 [QSA,L]';
|
||||
$rules[] = 'RewriteRule ^content/([^/]+)/$ '.G5_BBS_DIR.'/content.php?co_seo_title=$1&rewrite=1 [QSA,L]';
|
||||
$rules[] = 'RewriteRule ^rss/([0-9a-zA-Z_]+)$ '.G5_BBS_DIR.'/rss.php?bo_table=$1 [QSA,L]';
|
||||
$rules[] = 'RewriteRule ^([0-9a-zA-Z_]+)$ '.G5_BBS_DIR.'/board.php?bo_table=$1&rewrite=1 [QSA,L]';
|
||||
$rules[] = 'RewriteRule ^([0-9a-zA-Z_]+)/([^/]+)/$ '.G5_BBS_DIR.'/board.php?bo_table=$1&wr_seo_title=$2&rewrite=1 [QSA,L]';
|
||||
$rules[] = 'RewriteRule ^([0-9a-zA-Z_]+)/write$ '.G5_BBS_DIR.'/write.php?bo_table=$1&rewrite=1 [QSA,L]';
|
||||
$rules[] = 'RewriteRule ^([0-9a-zA-Z_]+)/([0-9]+)$ '.G5_BBS_DIR.'/board.php?bo_table=$1&wr_id=$2&rewrite=1 [QSA,L]';
|
||||
$rules[] = 'RewriteRule ^content/([0-9a-zA-Z_]+)$ ' . G5_BBS_DIR . '/content.php?co_id=$1&rewrite=1 [QSA,L]';
|
||||
$rules[] = 'RewriteRule ^content/([^/]+)/$ ' . G5_BBS_DIR . '/content.php?co_seo_title=$1&rewrite=1 [QSA,L]';
|
||||
$rules[] = 'RewriteRule ^rss/([0-9a-zA-Z_]+)$ ' . G5_BBS_DIR . '/rss.php?bo_table=$1 [QSA,L]';
|
||||
$rules[] = 'RewriteRule ^([0-9a-zA-Z_]+)$ ' . G5_BBS_DIR . '/board.php?bo_table=$1&rewrite=1 [QSA,L]';
|
||||
$rules[] = 'RewriteRule ^([0-9a-zA-Z_]+)/([^/]+)/$ ' . G5_BBS_DIR . '/board.php?bo_table=$1&wr_seo_title=$2&rewrite=1 [QSA,L]';
|
||||
$rules[] = 'RewriteRule ^([0-9a-zA-Z_]+)/write$ ' . G5_BBS_DIR . '/write.php?bo_table=$1&rewrite=1 [QSA,L]';
|
||||
$rules[] = 'RewriteRule ^([0-9a-zA-Z_]+)/([0-9]+)$ ' . G5_BBS_DIR . '/board.php?bo_table=$1&wr_id=$2&rewrite=1 [QSA,L]';
|
||||
$rules[] = '</IfModule>';
|
||||
$rules[] = '#### '.G5_VERSION.' rewrite END #####';
|
||||
$rules[] = '#### ' . G5_VERSION . ' rewrite END #####';
|
||||
|
||||
return $return_string ? implode("\n", $rules) : $rules;
|
||||
}
|
||||
|
||||
+5
-3
@@ -95,7 +95,8 @@ include_once(G5_LIB_PATH.'/popular.lib.php');
|
||||
<script>
|
||||
function fsearchbox_submit(f)
|
||||
{
|
||||
if (f.stx.value.length < 2) {
|
||||
var stx = f.stx.value.trim();
|
||||
if (stx.length < 2) {
|
||||
alert("검색어는 두글자 이상 입력하십시오.");
|
||||
f.stx.select();
|
||||
f.stx.focus();
|
||||
@@ -104,8 +105,8 @@ include_once(G5_LIB_PATH.'/popular.lib.php');
|
||||
|
||||
// 검색에 많은 부하가 걸리는 경우 이 주석을 제거하세요.
|
||||
var cnt = 0;
|
||||
for (var i=0; i<f.stx.value.length; i++) {
|
||||
if (f.stx.value.charAt(i) == ' ')
|
||||
for (var i = 0; i < stx.length; i++) {
|
||||
if (stx.charAt(i) == ' ')
|
||||
cnt++;
|
||||
}
|
||||
|
||||
@@ -115,6 +116,7 @@ include_once(G5_LIB_PATH.'/popular.lib.php');
|
||||
f.stx.focus();
|
||||
return false;
|
||||
}
|
||||
f.stx.value = stx;
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
+23
-23
@@ -156,32 +156,32 @@ $cart_count = sql_num_rows($result);
|
||||
<div class="go_shopping"><a href="<?php echo G5_SHOP_URL; ?>/" class="btn01">쇼핑 계속하기</a></div>
|
||||
<?php } else { ?>
|
||||
<div class="sod_ta_wr">
|
||||
<?php
|
||||
$tot_price = $tot_sell_price + $send_cost; // 총계 = 주문상품금액합계 + 배송비
|
||||
if ($tot_price > 0 || $send_cost > 0) {
|
||||
?>
|
||||
<dl id="m_sod_bsk_tot">
|
||||
<?php if ($send_cost > 0) { // 배송비가 0 보다 크다면 (있다면) ?>
|
||||
<dt class="sod_bsk_dvr">배송비</dt>
|
||||
<dd class="sod_bsk_dvr"><strong><?php echo number_format($send_cost); ?> 원</strong></dd>
|
||||
<?php
|
||||
$tot_price = $tot_sell_price + $send_cost; // 총계 = 주문상품금액합계 + 배송비
|
||||
if ($tot_price > 0 || $send_cost > 0) {
|
||||
?>
|
||||
<dl id="m_sod_bsk_tot">
|
||||
<?php if ($send_cost > 0) { // 배송비가 0 보다 크다면 (있다면) ?>
|
||||
<dt class="sod_bsk_dvr">배송비</dt>
|
||||
<dd class="sod_bsk_dvr"><strong><?php echo number_format($send_cost); ?> 원</strong></dd>
|
||||
<?php } ?>
|
||||
|
||||
<?php if ($tot_price > 0) { ?>
|
||||
<dt>포인트</dt>
|
||||
<dd><strong><?php echo number_format($tot_point); ?> 점</strong></dd>
|
||||
<dt class="sod_bsk_cnt">총계</dt>
|
||||
<dd class="sod_bsk_cnt"><strong><?php echo number_format($tot_price); ?></strong> 원</dd>
|
||||
<?php } ?>
|
||||
</dl>
|
||||
<?php } ?>
|
||||
|
||||
<?php if ($tot_price > 0) { ?>
|
||||
<dt>포인트</dt>
|
||||
<dd><strong><?php echo number_format($tot_point); ?> 점</strong></dd>
|
||||
<dt class="sod_bsk_cnt">총계</dt>
|
||||
<dd class="sod_bsk_cnt"><strong><?php echo number_format($tot_price); ?></strong> 원</dd>
|
||||
<?php } ?>
|
||||
</dl>
|
||||
<?php } ?>
|
||||
|
||||
<div id="sod_bsk_act" class="btn_confirm">
|
||||
<div class="total">총계 <strong class="total_cnt"><?php echo number_format($tot_price); ?>원</strong>
|
||||
<div id="sod_bsk_act" class="btn_confirm">
|
||||
<div class="total">총계 <strong class="total_cnt"><?php echo number_format($tot_price); ?>원</strong></div>
|
||||
<input type="hidden" name="url" value="<?php echo G5_SHOP_URL; ?>/orderform.php">
|
||||
<input type="hidden" name="act" value="">
|
||||
<input type="hidden" name="records" value="<?php echo $i; ?>">
|
||||
<button type="button" onclick="return form_check('buy');" class="btn_submit">주문하기</button>
|
||||
</div>
|
||||
<input type="hidden" name="url" value="<?php echo G5_SHOP_URL; ?>/orderform.php">
|
||||
<input type="hidden" name="act" value="">
|
||||
<input type="hidden" name="records" value="<?php echo $i; ?>">
|
||||
<button type="button" onclick="return form_check('buy');" class="btn_submit">주문하기</button>
|
||||
</div>
|
||||
<?php } ?>
|
||||
<?php if ($naverpay_button_js) { ?>
|
||||
|
||||
@@ -87,7 +87,7 @@ $sql = " select it_id, it_name from {$g5['g5_shop_item_table']}
|
||||
limit 1 ";
|
||||
$row = sql_fetch($sql);
|
||||
if (isset($row['it_id']) && $row['it_id']) {
|
||||
$next_title = '다음 상품 <span>'.$row['it_name'].'</span>';
|
||||
$next_title = '다음상품 <span>'.$row['it_name'].'</span>';
|
||||
$next_href = '<a href="'.shop_item_url($row['it_id']).'" id="siblings_next">';
|
||||
$next_href2 = '</a>';
|
||||
} else {
|
||||
@@ -197,7 +197,7 @@ include_once(G5_MSHOP_PATH.'/_head.php');
|
||||
include_once(G5_SHOP_PATH.'/settle_naverpay.inc.php');
|
||||
|
||||
// 상단 HTML
|
||||
echo '<div id="sit_hhtml">'.conv_content($it['it_mobile_head_html'], 1).'</div>';
|
||||
echo run_replace('shop_it_mobile_head_html', '<div id="sit_hhtml">'.conv_content($it['it_mobile_head_html'], 1).'</div>', $it);
|
||||
?>
|
||||
|
||||
<?php if($is_orderable) { ?>
|
||||
@@ -222,6 +222,6 @@ else
|
||||
|
||||
<?php
|
||||
// 하단 HTML
|
||||
echo conv_content($it['it_mobile_tail_html'], 1);
|
||||
echo run_replace('shop_it_mobile_tail_html', conv_content($it['it_mobile_tail_html'], 1), $it);
|
||||
|
||||
include_once(G5_MSHOP_PATH.'/_tail.php');
|
||||
@@ -29,6 +29,7 @@ $param_opt_3 = isset($_REQUEST['param_opt_3']) ? clean_xss_tags($_REQUEST['param
|
||||
<input type="hidden" name="naverpay_point_direct" value="Y"> <!-- 네이버페이 포인트 결제를 하려면 naverpay_point_direct 를 Y -->
|
||||
<?php } ?>
|
||||
<input type="hidden" name="kakaopay_direct" value="A" > <!-- KAKAOPAY 결제창 호출 -->
|
||||
<input type="hidden" name="applepay_direct" value="A" > <!-- APPLEPAY 결제창 호출 -->
|
||||
<!-- 주문번호 -->
|
||||
<input type="hidden" name="ordr_idxx" value="<?php echo $od_id; ?>">
|
||||
<!-- 인증수단(영문 소문자) * 반드시 대소문자 구분 -->
|
||||
|
||||
@@ -67,6 +67,7 @@ include_once('./_common.php');
|
||||
$payco_direct = isset($_POST["payco_direct"]) ? $_POST["payco_direct"] : ''; // PAYCO 결제창 호출
|
||||
$naverpay_direct = isset($_POST["naverpay_direct"]) ? $_POST["naverpay_direct"] : ''; // NAVERPAY 결제창 호출
|
||||
$kakaopay_direct = isset($_POST["kakaopay_direct"]) ? $_POST["kakaopay_direct"] : ''; // KAKAOPAY 결제창 호출
|
||||
$applepay_direct = isset($_POST["applepay_direct"]) ? $_POST["applepay_direct"] : ''; // APPLEPAY 결제창 호출
|
||||
|
||||
/*
|
||||
* 기타 파라메터 추가 부분 - Start -
|
||||
@@ -157,7 +158,7 @@ include_once('./_common.php');
|
||||
{
|
||||
|
||||
var v_frm = document.sm_form;
|
||||
|
||||
|
||||
layer_cont_obj = document.getElementById("content");
|
||||
layer_receipt_obj = document.getElementById("layer_receipt");
|
||||
|
||||
@@ -165,9 +166,16 @@ include_once('./_common.php');
|
||||
layer_receipt_obj.style.display = "block";
|
||||
|
||||
v_frm.target = "frm_receipt";
|
||||
|
||||
// IOS 환경의 경우 iframe에서 네이버페이와 애플페이의 cors 문제가 일어나므로 iframe으로 열지 않는다.
|
||||
var isIOS = /iPad|iPhone|iPod/.test(navigator.platform) || (navigator.platform === 'MacIntel' && navigator.maxTouchPoints > 1);
|
||||
|
||||
// 네이버페이면 반드시 페이지전환 방식이어야 하며, 그 외에는 iframe 방식으로 한다.
|
||||
if(typeof v_frm.naverpay_direct !== "undefined" && v_frm.naverpay_direct.value == "Y") {
|
||||
if (isIOS) {
|
||||
v_frm.target = "";
|
||||
}
|
||||
|
||||
// 네이버페이 또는 애플페이의 경우 반드시 페이지전환 방식이어야 하며, 그 외에는 iframe 방식으로 한다.
|
||||
if((typeof v_frm.naverpay_direct !== "undefined" && v_frm.naverpay_direct.value == "Y") || (typeof v_frm.applepay_direct !== "undefined" && v_frm.applepay_direct.value == "Y")) {
|
||||
v_frm.target = "";
|
||||
}
|
||||
|
||||
@@ -267,18 +275,20 @@ if($enc_data != '' && $enc_info != '' && $tran_cd != '') {
|
||||
?>
|
||||
|
||||
<?php if($payco_direct){ ?>
|
||||
<input type="hidden" name="payco_direct" value="<?php echo $payco_direct; ?>"> <!-- PAYCO 결제창 호출 -->
|
||||
<input type="hidden" name="payco_direct" value="<?php echo get_text($payco_direct); ?>"> <!-- PAYCO 결제창 호출 -->
|
||||
<?php } ?>
|
||||
<?php if($naverpay_direct){ ?>
|
||||
<input type="hidden" name="naverpay_direct" value="<?php echo $naverpay_direct; ?>"> <!-- 네이버페이 결제창 호출 -->
|
||||
<input type="hidden" name="naverpay_direct" value="<?php echo get_text($naverpay_direct); ?>"> <!-- 네이버페이 결제창 호출 -->
|
||||
<?php if(isset($default['de_easy_pay_services']) && in_array('used_nhnkcp_naverpay_point', explode(',', $default['de_easy_pay_services'])) ){ // 네이버페이 포인트 결제 옵션 ?>
|
||||
<input type="hidden" name="naverpay_point_direct" value="Y"> <!-- 네이버페이 포인트 결제를 하려면 naverpay_point_direct 를 Y -->
|
||||
<?php } ?>
|
||||
<?php } ?>
|
||||
<?php if($applepay_direct === "Y"){ ?>
|
||||
<input type="hidden" name="applepay_direct" value="<?php echo get_text($applepay_direct); ?>"> <!-- 애플페이 결제창 호출 -->
|
||||
<?php } ?>
|
||||
<?php if($kakaopay_direct){ ?>
|
||||
<input type="hidden" name="kakaopay_direct" value="<?php echo $kakaopay_direct; ?>"> <!-- 카카오페이 결제창 호출 -->
|
||||
<input type="hidden" name="kakaopay_direct" value="<?php echo get_text($kakaopay_direct); ?>"> <!-- 카카오페이 결제창 호출 -->
|
||||
<?php } ?>
|
||||
|
||||
<!-- 필수 사항 -->
|
||||
|
||||
<!-- 요청 구분 -->
|
||||
|
||||
@@ -24,6 +24,7 @@ $param_opt_3 = isset($_REQUEST['param_opt_3']) ? clean_xss_tags($_REQUEST['param
|
||||
<input type="hidden" name="payco_direct" value=""> <!-- PAYCO 결제창 호출 -->
|
||||
<input type="hidden" name="naverpay_direct" value="A" > <!-- NAVERPAY 결제창 호출 -->
|
||||
<input type="hidden" name="kakaopay_direct" value="A" > <!-- KAKAOPAY 결제창 호출 -->
|
||||
<input type="hidden" name="applepay_direct" value="A" > <!-- APPLEPAY 결제창 호출 -->
|
||||
<!-- 주문번호 -->
|
||||
<input type="hidden" name="ordr_idxx" value="<?php echo $od_id; ?>">
|
||||
<!-- 인증수단(영문 소문자) * 반드시 대소문자 구분 -->
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
include_once('./_common.php');
|
||||
|
||||
// 상품 리스트에서 다른 필드로 정렬을 하려면 아래의 배열 코드에서 해당 필드를 추가하세요.
|
||||
if( isset($sort) && ! in_array($sort, array('it_sum_qty', 'it_price', 'it_use_avg', 'it_use_cnt', 'it_update_time')) ){
|
||||
if( isset($sort) && ! in_array($sort, array('it_name', 'it_sum_qty', 'it_price', 'it_use_avg', 'it_use_cnt', 'it_update_time')) ){
|
||||
$sort='';
|
||||
}
|
||||
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
<?php
|
||||
include_once('./_common.php');
|
||||
|
||||
$type = isset($_REQUEST['type']) ? preg_replace("/[\<\>\'\"\\\'\\\"\%\=\(\)\s]/", "", $_REQUEST['type']) : '';
|
||||
if ($type == 1) $g5['title'] = '히트상품';
|
||||
else if ($type == 2) $g5['title'] = '추천상품';
|
||||
else if ($type == 3) $g5['title'] = '최신상품';
|
||||
else if ($type == 4) $g5['title'] = '인기상품';
|
||||
else if ($type == 5) $g5['title'] = '세일상품';
|
||||
$type = isset($_REQUEST['type']) ? (int) preg_replace("/[^0-9]/", "", $_REQUEST['type']) : 1;
|
||||
if ($type === 1) $g5['title'] = '히트상품';
|
||||
else if ($type === 2) $g5['title'] = '추천상품';
|
||||
else if ($type === 3) $g5['title'] = '최신상품';
|
||||
else if ($type === 4) $g5['title'] = '인기상품';
|
||||
else if ($type === 5) $g5['title'] = '세일상품';
|
||||
else
|
||||
alert('상품유형이 아닙니다.');
|
||||
|
||||
|
||||
@@ -111,7 +111,7 @@ $cp_count = get_shop_member_coupon_count($member['mb_id'], true);
|
||||
<li>
|
||||
<div class="wish_img"><?php echo $image; ?></div>
|
||||
<div class="wish_info">
|
||||
<a href="<?php echo get_shop_item($row['it_id'], true); ?>" class="info_link"><?php echo stripslashes($row['it_name']); ?></a>
|
||||
<a href="<?php echo shop_item_url($row['it_id']); ?>" class="info_link"><?php echo stripslashes($row['it_name']); ?></a>
|
||||
<span class="info_date"><?php echo substr($row['wi_time'], 2, 8); ?></span>
|
||||
</div>
|
||||
</li>
|
||||
|
||||
@@ -624,6 +624,9 @@ if($is_kakaopay_use) {
|
||||
if( in_array('nhnkcp_kakaopay', $de_easy_pay_service_array) ){
|
||||
$easypay_prints['nhnkcp_kakaopay'] = '<li><input type="radio" id="od_settle_nhnkcp_kakaopay" name="od_settle_case" data-pay="kakaopay" value="간편결제" > <label for="od_settle_nhnkcp_kakaopay" class="kakaopay_icon nhnkcp_kakaopay lb_icon" title="NHN_KCP - 카카오페이">카카오페이</label></li>';
|
||||
}
|
||||
if( in_array('nhnkcp_applepay', $de_easy_pay_service_array) && preg_match('~^(?:(?:(?:Mozilla/\d\.\d\s*\()+|Mobile\s*Safari\s*\d+\.\d+(\.\d+)?\s*)(?:iPhone(?:\s+Simulator)?|iPad|iPod);\s*(?:U;\s*)?(?:[a-z]+(?:-[a-z]+)?;\s*)?CPU\s*(?:iPhone\s*)?(?:OS\s*\d+_\d+(?:_\d+)?\s*)?(?:like|comme)\s*Mac\s*O?S?\s*X(?:;\s*[a-z]+(?:-[a-z]+)?)?\)\s*)?(?:AppleWebKit/\d+(?:\.\d+(?:\.\d+)?|\s*\+)?\s*)?(?:\(KHTML,\s*(?:like|comme)\s*Gecko\s*\)\s*)?(?:Version/\d+\.\d+(?:\.\d+)?\s*)?(?:Mobile/\w+\s*)?(?:Safari/\d+\.\d+(?:\.\d+)?.*)?$~', $_SERVER['HTTP_USER_AGENT']) ){
|
||||
$easypay_prints['nhnkcp_applepay'] = '<li><input type="radio" id="od_settle_nhnkcp_applepay" name="od_settle_case" data-pay="applepay" value="간편결제" > <label for="od_settle_nhnkcp_applepay" class="applepay_icon nhnkcp_applepay lb_icon" title="NHN_KCP - 애플페이">애플페이</label></li>';
|
||||
}
|
||||
} else {
|
||||
$easypay_prints[strtolower($pg_easy_pay_name)] = '<li><input type="radio" id="od_settle_easy_pay" name="od_settle_case" value="간편결제" '.$checked.'> <label for="od_settle_easy_pay" class="'.$pg_easy_pay_name.' lb_icon">'.$pg_easy_pay_name.'</label></li>';
|
||||
}
|
||||
@@ -922,7 +925,7 @@ $(function() {
|
||||
$("#od_coupon_frm").remove();
|
||||
$("#od_coupon_btn").text("변경").focus();
|
||||
if(!$("#od_coupon_cancel").length)
|
||||
$("#od_coupon_btn").after("<button type=\"button\" id=\"od_coupon_cancel\" class=\"cp_cancel1\">취소</button>");
|
||||
$("#od_coupon_btn").after("<button type=\"button\" id=\"od_coupon_cancel\" class=\"cp_cancel cp_cancel1\">취소</button>");
|
||||
});
|
||||
|
||||
$(document).on("click", "#od_coupon_close", function() {
|
||||
@@ -1233,6 +1236,7 @@ var temp_point = 0;
|
||||
|
||||
function pay_approval()
|
||||
{
|
||||
// 무통장 아닌 가상계좌, 계좌이체, 휴대폰, 신용카드, 기타 등등 을 처리한다.
|
||||
// 재고체크
|
||||
var stock_msg = order_stock_check();
|
||||
if(stock_msg != "") {
|
||||
@@ -1299,6 +1303,7 @@ function pay_approval()
|
||||
if(typeof f.payco_direct !== "undefined") f.payco_direct.value = "";
|
||||
if(typeof f.naverpay_direct !== "undefined") f.naverpay_direct.value = "A";
|
||||
if(typeof f.kakaopay_direct !== "undefined") f.kakaopay_direct.value = "A";
|
||||
if(typeof f.applepay_direct !== "undefined") f.applepay_direct.value = "A";
|
||||
if(typeof f.ActionResult !== "undefined") f.ActionResult.value = "";
|
||||
if(typeof f.pay_method !== "undefined") f.pay_method.value = "";
|
||||
|
||||
@@ -1311,6 +1316,8 @@ function pay_approval()
|
||||
}
|
||||
} else if(nhnkcp_easy_pay === "kakaopay"){
|
||||
if(typeof f.kakaopay_direct !== "undefined") f.kakaopay_direct.value = "Y";
|
||||
} else if(nhnkcp_easy_pay === "applepay"){
|
||||
if(typeof f.applepay_direct !== "undefined") f.applepay_direct.value = "Y";
|
||||
} else {
|
||||
if(typeof f.payco_direct !== "undefined") f.payco_direct.value = "Y";
|
||||
}
|
||||
@@ -1318,6 +1325,10 @@ function pay_approval()
|
||||
if(typeof f.ActionResult !== "undefined") f.ActionResult.value = "CARD"; // 대소문자 구분
|
||||
if(typeof f.pay_method !== "undefined") f.pay_method.value = "card"; // 대소문자 구분
|
||||
|
||||
//if(nhnkcp_easy_pay === "applepay"){
|
||||
// if(typeof f.ActionResult !== "undefined") f.ActionResult.value = "card";
|
||||
// if(typeof f.pay_method !== "undefined") f.pay_method.value = "CARD";
|
||||
//}
|
||||
}
|
||||
|
||||
<?php } else if($default['de_pg_service'] == 'lg') { ?>
|
||||
@@ -1435,6 +1446,14 @@ function pay_approval()
|
||||
|
||||
function forderform_check()
|
||||
{
|
||||
// 무통장만 여기에처 처리한다.
|
||||
// 재고체크
|
||||
var stock_msg = order_stock_check();
|
||||
if(stock_msg != "") {
|
||||
alert(stock_msg);
|
||||
return false;
|
||||
}
|
||||
|
||||
var f = document.forderform;
|
||||
|
||||
// 필드체크
|
||||
|
||||
@@ -12,6 +12,7 @@ if($config['cf_cert_use'] && ($config['cf_cert_simple'] || $config['cf_cert_ipin
|
||||
<div id="find_info" class="new_win<?php if($config['cf_cert_use'] != 0 && $config['cf_cert_find'] != 0) { ?> cert<?php } ?>">
|
||||
<div class="new_win_con">
|
||||
<form name="fpasswordlost" action="<?php echo $action_url ?>" onsubmit="return fpasswordlost_submit(this);" method="post" autocomplete="off">
|
||||
<input type="hidden" name="cert_no" value="">
|
||||
<h3>이메일로 찾기</h3>
|
||||
<fieldset id="info_fs">
|
||||
<p>
|
||||
|
||||
@@ -149,9 +149,9 @@
|
||||
#bo_w .bo_w_select select {border:1px solid #d0d3db;background:#fff;width:100%}
|
||||
#bo_w .bo_w_link label {position:absolute;top:1px;left:1px;border-radius:3px 0 0 3px;width:45px;height:43px;line-height:43px;font-size:1.2em;text-align:center;color:#b2b2b2}
|
||||
#bo_w .bo_w_link .frm_input {padding-left:50px}
|
||||
#bo_w .bo_w_flie .lb_icon {position:absolute;top:0px;left:0px;border-radius:3px 0 0 3px;width:45px;height:43px;line-height:43px;font-size:1.2em;text-align:center;color:#b2b2b2}
|
||||
#bo_w .bo_w_flie .frm_file {padding-left:50px}
|
||||
#bo_w .bo_w_flie .file_wr {position:relative;color:#000;vertical-align:middle;margin:0}
|
||||
#bo_w .bo_w_flie .lb_icon, .form_01 .bo_w_flie .lb_icon {position:absolute;top:0px;left:0px;border-radius:3px 0 0 3px;width:45px;height:43px;line-height:43px;font-size:1.2em;text-align:center;color:#b2b2b2}
|
||||
#bo_w .bo_w_flie .frm_file, .form_01 .bo_w_flie .frm_file {padding-left:50px}
|
||||
#bo_w .bo_w_flie .file_wr, .form_01 .bo_w_flie .file_wr {position:relative;color:#000;vertical-align:middle;margin:0}
|
||||
#bo_w .bo_w_flie .frm_input {margin:5px 0 0}
|
||||
|
||||
.filebox .btn_file {display:inline-block;position:absolute;right:8px;top:8px;border:1px solid #3a8afd;border-radius:3px;width:60px;height:30px;color:#3a8afd;font-size:1em;line-height:30px;font-weight:bold;background:#fff;text-align:center;vertical-align:middle;cursor:pointer}
|
||||
|
||||
@@ -11,7 +11,43 @@ if (!defined("_GNUBOARD_")) exit; // 개별 페이지 접근 불가
|
||||
</div>
|
||||
</h2>
|
||||
<div id="ans_con">
|
||||
<?php
|
||||
// 파일 출력
|
||||
if(isset($answer['img_count']) && $answer['img_count']) {
|
||||
echo "<div id=\"bo_v_img\">\n";
|
||||
|
||||
for ($i=0; $i<$answer['img_count']; $i++) {
|
||||
echo get_view_thumbnail($answer['img_file'][$i], $qaconfig['qa_image_width']);
|
||||
}
|
||||
|
||||
echo "</div>\n";
|
||||
}
|
||||
?>
|
||||
|
||||
<?php echo get_view_thumbnail(conv_content($answer['qa_content'], $answer['qa_html']), $qaconfig['qa_image_width']); ?>
|
||||
|
||||
<?php if(isset($answer['download_count']) && $answer['download_count']) { ?>
|
||||
<!-- 첨부파일 시작 { -->
|
||||
<section id="bo_v_file">
|
||||
<h2>첨부파일</h2>
|
||||
<ul>
|
||||
<?php
|
||||
// 가변 파일
|
||||
for ($i=0; $i<$answer['download_count']; $i++) {
|
||||
?>
|
||||
<li>
|
||||
<i class="fa fa-download" aria-hidden="true"></i>
|
||||
<a href="<?php echo $answer['download_href'][$i]; ?>" class="view_file_download" download>
|
||||
<strong><?php echo $answer['download_source'][$i] ?></strong>
|
||||
</a>
|
||||
</li>
|
||||
<?php
|
||||
}
|
||||
?>
|
||||
</ul>
|
||||
</section>
|
||||
<!-- } 첨부파일 끝 -->
|
||||
<?php } ?>
|
||||
</div>
|
||||
|
||||
<button id="btn_ans_btn" class="btn_b03 btn"><i class="fa fa-ellipsis-v" aria-hidden="true"></i><span class="sound_only">게시판 리스트 옵션</span></button>
|
||||
|
||||
@@ -9,7 +9,7 @@ if (!defined("_GNUBOARD_")) exit; // 개별 페이지 접근 불가
|
||||
?>
|
||||
<h2>답변등록</h2>
|
||||
|
||||
<form name="fanswer" method="post" action="./qawrite_update.php" onsubmit="return fwrite_submit(this);" autocomplete="off">
|
||||
<form name="fanswer" method="post" action="./qawrite_update.php" onsubmit="return fwrite_submit(this);" enctype="multipart/form-data" autocomplete="off">
|
||||
<input type="hidden" name="qa_id" value="<?php echo $view['qa_id']; ?>">
|
||||
<input type="hidden" name="w" value="a">
|
||||
<input type="hidden" name="sca" value="<?php echo $sca ?>">
|
||||
@@ -46,6 +46,21 @@ if (!defined("_GNUBOARD_")) exit; // 개별 페이지 접근 불가
|
||||
<label for="qa_content" class="sound_only">내용<strong>필수</strong></label>
|
||||
<?php echo $editor_html; // 에디터 사용시는 에디터로, 아니면 textarea 로 노출 ?>
|
||||
</li>
|
||||
|
||||
<li class="bo_w_flie">
|
||||
<div class="file_wr filebox">
|
||||
<input type="text" class="fileName" readonly="readonly" placeholder="파일을 첨부하세요">
|
||||
<label for="bf_file[1]"><i class="fa fa-download lb_icon" aria-hidden="true"></i><span class="sound_only">파일 #1</span><span class="btn_file">파일첨부</span></label>
|
||||
<input type="file" name="bf_file[1]" id="bf_file[1]" title="파일첨부 1 : 용량 <?php echo $upload_max_filesize; ?> 이하만 업로드 가능" class="frm_file uploadBtn">
|
||||
</div>
|
||||
<br>
|
||||
<div class="file_wr filebox">
|
||||
<input type="text" class="fileName" readonly="readonly" placeholder="파일을 첨부하세요">
|
||||
<label for="bf_file[2]"><i class="fa fa-download lb_icon" aria-hidden="true"></i><span class="sound_only">파일 #2</span><span class="btn_file">파일첨부</span></label>
|
||||
<input type="file" name="bf_file[2]" id="bf_file[2]" title="파일첨부 2 : 용량 <?php echo $upload_max_filesize; ?> 이하만 업로드 가능" class="frm_file uploadBtn">
|
||||
</div>
|
||||
</li>
|
||||
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
|
||||
@@ -45,7 +45,8 @@ if ($stx) {
|
||||
<script>
|
||||
function fsearch_submit(f)
|
||||
{
|
||||
if (f.stx.value.length < 2) {
|
||||
var stx = f.stx.value.trim();
|
||||
if (stx.length < 2) {
|
||||
alert("검색어는 두글자 이상 입력하십시오.");
|
||||
f.stx.select();
|
||||
f.stx.focus();
|
||||
@@ -54,8 +55,8 @@ if ($stx) {
|
||||
|
||||
// 검색에 많은 부하가 걸리는 경우 이 주석을 제거하세요.
|
||||
var cnt = 0;
|
||||
for (var i=0; i<f.stx.value.length; i++) {
|
||||
if (f.stx.value.charAt(i) == ' ')
|
||||
for (var i = 0; i < stx.length; i++) {
|
||||
if (stx.charAt(i) == ' ')
|
||||
cnt++;
|
||||
}
|
||||
|
||||
@@ -65,6 +66,7 @@ if ($stx) {
|
||||
f.stx.focus();
|
||||
return false;
|
||||
}
|
||||
f.stx.value = stx;
|
||||
|
||||
f.action = "";
|
||||
return true;
|
||||
|
||||
@@ -7,7 +7,7 @@ add_javascript('<script src="'.G5_JS_URL.'/jquery.bxslider.js"></script>', 10);
|
||||
?>
|
||||
|
||||
<?php if($config['cf_kakao_js_apikey']) { ?>
|
||||
<script src="https://developers.kakao.com/sdk/js/kakao.min.js"></script>
|
||||
<script src="https://developers.kakao.com/sdk/js/kakao.min.js" async></script>
|
||||
<script src="<?php echo G5_JS_URL; ?>/kakaolink.js"></script>
|
||||
<script>
|
||||
// 사용할 앱의 Javascript 키를 설정해 주세요.
|
||||
@@ -77,7 +77,6 @@ add_javascript('<script src="'.G5_JS_URL.'/jquery.bxslider.js"></script>', 10);
|
||||
<div class="sns_area">
|
||||
<?php echo get_sns_share_link('facebook', $sns_url, $sns_title, G5_MSHOP_SKIN_URL.'/img/facebook.png'); ?>
|
||||
<?php echo get_sns_share_link('twitter', $sns_url, $sns_title, G5_MSHOP_SKIN_URL.'/img/twitter.png'); ?>
|
||||
<?php echo get_sns_share_link('googleplus', $sns_url, $sns_title, G5_MSHOP_SKIN_URL.'/img/gplus.png'); ?>
|
||||
<?php echo get_sns_share_link('kakaotalk', $sns_url, $sns_title, G5_MSHOP_SKIN_URL.'/img/sns_kakao.png'); ?>
|
||||
<?php
|
||||
$href = G5_SHOP_URL.'/iteminfo.php?it_id='.$it_id;
|
||||
|
||||
@@ -9,7 +9,7 @@ add_javascript('<script src="'.G5_JS_URL.'/shop.list.action.js"></script>', 10);
|
||||
?>
|
||||
|
||||
<?php if(!defined('G5_IS_SHOP_AJAX_LIST') && $config['cf_kakao_js_apikey']) { ?>
|
||||
<script src="https://developers.kakao.com/sdk/js/kakao.min.js"></script>
|
||||
<script src="https://developers.kakao.com/sdk/js/kakao.min.js" async></script>
|
||||
<script src="<?php echo G5_JS_URL; ?>/kakaolink.js"></script>
|
||||
<script>
|
||||
// 사용할 앱의 Javascript 키를 설정해 주세요.
|
||||
@@ -116,7 +116,6 @@ foreach((array) $list as $row){
|
||||
echo "<h3>SNS 공유</h3>";
|
||||
echo get_sns_share_link('facebook', $sns_url, $sns_title, G5_MSHOP_SKIN_URL.'/img/facebook.png');
|
||||
echo get_sns_share_link('twitter', $sns_url, $sns_title, G5_MSHOP_SKIN_URL.'/img/twitter.png');
|
||||
echo get_sns_share_link('googleplus', $sns_url, $sns_title, G5_MSHOP_SKIN_URL.'/img/gplus.png');
|
||||
echo get_sns_share_link('kakaotalk', $sns_url, $sns_title, G5_MSHOP_SKIN_URL.'/img/sns_kakao.png');
|
||||
echo "<button type=\"button\" class=\"sct_sns_cls\"><span class=\"sound_only\">닫기</span><i class=\"fa fa-times\" aria-hidden=\"true\"></i></button>";
|
||||
echo "</div>\n";
|
||||
|
||||
@@ -9,7 +9,7 @@ add_javascript('<script src="'.G5_JS_URL.'/shop.list.action.js"></script>', 10);
|
||||
?>
|
||||
|
||||
<?php if($config['cf_kakao_js_apikey']) { ?>
|
||||
<script src="https://developers.kakao.com/sdk/js/kakao.min.js"></script>
|
||||
<script src="https://developers.kakao.com/sdk/js/kakao.min.js" async></script>
|
||||
<script src="<?php echo G5_JS_URL; ?>/kakaolink.js"></script>
|
||||
<script>
|
||||
// 사용할 앱의 Javascript 키를 설정해 주세요.
|
||||
@@ -108,7 +108,6 @@ foreach((array) $list as $row){
|
||||
echo "<h3>SNS 공유</h3>";
|
||||
echo get_sns_share_link('facebook', $sns_url, $sns_title, G5_MSHOP_SKIN_URL.'/img/facebook.png');
|
||||
echo get_sns_share_link('twitter', $sns_url, $sns_title, G5_MSHOP_SKIN_URL.'/img/twitter.png');
|
||||
echo get_sns_share_link('googleplus', $sns_url, $sns_title, G5_MSHOP_SKIN_URL.'/img/gplus.png');
|
||||
echo get_sns_share_link('kakaotalk', $sns_url, $sns_title, G5_MSHOP_SKIN_URL.'/img/sns_kakao.png');
|
||||
echo "<button type=\"button\" class=\"sct_sns_cls\"><span class=\"sound_only\">닫기</span><i class=\"fa fa-times\" aria-hidden=\"true\"></i></button>";
|
||||
echo "</div>\n";
|
||||
|
||||
@@ -10,7 +10,7 @@ add_javascript('<script src="'.G5_JS_URL.'/shop.list.action.js"></script>', 10);
|
||||
|
||||
<script src="<?php echo G5_JS_URL ?>/jquery.fancylist.js"></script>
|
||||
<?php if($config['cf_kakao_js_apikey']) { ?>
|
||||
<script src="https://developers.kakao.com/sdk/js/kakao.min.js"></script>
|
||||
<script src="https://developers.kakao.com/sdk/js/kakao.min.js" async></script>
|
||||
<script src="<?php echo G5_JS_URL; ?>/kakaolink.js"></script>
|
||||
<script>
|
||||
// 사용할 앱의 Javascript 키를 설정해 주세요.
|
||||
@@ -104,7 +104,6 @@ foreach((array) $list as $row){
|
||||
echo "<div class=\"sct_sns\" style=\"top:{$sns_top}px\">";
|
||||
echo get_sns_share_link('facebook', $sns_url, $sns_title, G5_MSHOP_SKIN_URL.'/img/facebook.png');
|
||||
echo get_sns_share_link('twitter', $sns_url, $sns_title, G5_MSHOP_SKIN_URL.'/img/twitter.png');
|
||||
echo get_sns_share_link('googleplus', $sns_url, $sns_title, G5_MSHOP_SKIN_URL.'/img/gplus.png');
|
||||
echo get_sns_share_link('kakaotalk', $sns_url, $sns_title, G5_MSHOP_SKIN_URL.'/img/sns_kakao.png');
|
||||
echo "</div>\n";
|
||||
}
|
||||
|
||||
@@ -10,7 +10,7 @@ add_javascript('<script src="'.G5_JS_URL.'/shop.list.action.js"></script>', 10);
|
||||
?>
|
||||
|
||||
<?php if($config['cf_kakao_js_apikey']) { ?>
|
||||
<script src="https://developers.kakao.com/sdk/js/kakao.min.js"></script>
|
||||
<script src="https://developers.kakao.com/sdk/js/kakao.min.js" async></script>
|
||||
<script src="<?php echo G5_JS_URL; ?>/kakaolink.js"></script>
|
||||
<script>
|
||||
// 사용할 앱의 Javascript 키를 설정해 주세요.
|
||||
@@ -104,7 +104,6 @@ foreach((array) $list as $row){
|
||||
echo "<div class=\"sct_sns\" style=\"top:{$sns_top}px\">";
|
||||
echo get_sns_share_link('facebook', $sns_url, $sns_title, G5_MSHOP_SKIN_URL.'/img/facebook.png');
|
||||
echo get_sns_share_link('twitter', $sns_url, $sns_title, G5_MSHOP_SKIN_URL.'/img/twitter.png');
|
||||
echo get_sns_share_link('googleplus', $sns_url, $sns_title, G5_MSHOP_SKIN_URL.'/img/gplus.png');
|
||||
echo get_sns_share_link('kakaotalk', $sns_url, $sns_title, G5_MSHOP_SKIN_URL.'/img/sns_kakao.png');
|
||||
echo "</div>\n";
|
||||
}
|
||||
|
||||
@@ -7,7 +7,7 @@ add_stylesheet('<link rel="stylesheet" href="'.G5_MSHOP_SKIN_URL.'/style.css">',
|
||||
|
||||
<script src="<?php echo G5_JS_URL ?>/jquery.fancylist.js"></script>
|
||||
<?php if($config['cf_kakao_js_apikey']) { ?>
|
||||
<script src="https://developers.kakao.com/sdk/js/kakao.min.js"></script>
|
||||
<script src="https://developers.kakao.com/sdk/js/kakao.min.js" async></script>
|
||||
<script src="<?php echo G5_JS_URL; ?>/kakaolink.js"></script>
|
||||
<script>
|
||||
// 사용할 앱의 Javascript 키를 설정해 주세요.
|
||||
|
||||
@@ -69,7 +69,6 @@
|
||||
.sct_sns a {display:inline-block;margin:0 2px;width:28px;height:28px;line-height:28px;border-radius:3px;font-size:0;text-align:center}
|
||||
.share-facebook {background:#415b92}
|
||||
.share-twitter {background:#35b3dc}
|
||||
.share-googleplus {background:#d5503a}
|
||||
.share-kakaotalk {background:#ffeb00}
|
||||
.sct_sns img {width:20px;height:auto;vertical-align:middle}
|
||||
.sct_sns button {margin:0 4px 0 0;padding:0;border:0}
|
||||
@@ -103,7 +102,6 @@
|
||||
.sct_10 .sct_sns a {display:inline-block;border-radius:50%;width:50px;height:50px;line-height:25px;text-align:center;padding:13px 0;margin:20px 5px}
|
||||
.sct_10 .sct_sns .share-facebook {background:#415b92}
|
||||
.sct_10 .sct_sns .share-twitter {background:#35b3dc}
|
||||
.sct_10 .sct_sns .share-googleplus {background:#ea3838}
|
||||
.sct_10 .sct_sns img {width:24px}
|
||||
.sct_10 .sct_sns_bg {background:rgba(0,0,0,0.1);width:100%;height:100%}
|
||||
.sct_10 .sct_sns_cls {position:absolute;right:0;top:0;color:#b5b8bb;border:0;padding:12px 15px;font-size:16px;background:#fff;margin:0;height:50px}
|
||||
@@ -129,7 +127,6 @@
|
||||
.sct_10_list .sct_sns a {display:inline-block;border-radius:50%;width:50px;height:50px;line-height:25px;text-align:center;padding:13px 0;margin:20px 5px}
|
||||
.sct_10_list .sct_sns .share-facebook {background:#415b92}
|
||||
.sct_10_list .sct_sns .share-twitter {background:#35b3dc}
|
||||
.sct_10_list .sct_sns .share-googleplus {background:#ea3838}
|
||||
.sct_10_list .sct_sns img {width:24px}
|
||||
.sct_10_list .sct_sns_bg {background:rgba(0,0,0,0.1);width:100%;height:100%}
|
||||
.sct_10_list .sct_sns_cls {position:absolute;right:0;top:0;color:#b5b8bb;border:0;padding:12px 15px;font-size:16px;background:#fff}
|
||||
@@ -332,7 +329,6 @@
|
||||
#sit_star_sns .sns_area a {display:inline-block;width:35px;height:35px;line-height:35px;background:#eee;text-align:center;border-radius:50%;padding-top:5px}
|
||||
#sit_star_sns .sns_area a img {width:24px;height:auto}
|
||||
#sit_star_sns .sns_area #sit_btn_rec {font-size:15px;padding-top:0}
|
||||
#sit_star_sns .sns_area .share-googleplus {background:#ea3838}
|
||||
#sit_star_sns .sns_area .share-facebook {background:#415b92}
|
||||
#sit_star_sns .sns_area .share-twitter {background:#35b3dc}
|
||||
|
||||
|
||||
@@ -54,7 +54,27 @@ add_stylesheet('<link rel="stylesheet" href="'.G5_PLUGIN_URL.'/debugbar/style.cs
|
||||
?>
|
||||
<tr>
|
||||
<td scope="row" data-label="실행순서"><?php echo $key; ?></td>
|
||||
<td class="left" data-label="쿼리문"><?php echo $query['sql']; ?></td>
|
||||
<td class="left" data-label="쿼리문">
|
||||
<?php
|
||||
if(isset($query['source']['class'])) {
|
||||
$function = "{$query['source']['class']}{$query['source']['type']}{$query['source']['function']}()";
|
||||
} else if (isset($query['source']['function'])) {
|
||||
$function = "{$query['source']['function']}()";
|
||||
} else {
|
||||
$function = null;
|
||||
}
|
||||
?>
|
||||
<p class="query_source">
|
||||
<em><?php echo "{$query['source']['file']}:{$query['source']['line']}" ?></em><br>
|
||||
<?php if($function) { echo "<em>{$function}</em><br>"; } ?>
|
||||
</p>
|
||||
<?php
|
||||
echo "<p class=\"query_sql\">{$query['sql']}</p>";
|
||||
if(!$query['success']) {
|
||||
echo '<p class="query_error_message">오류: [' . $query['error_code'] . '] ' . $query['error_message'] . '</p>';
|
||||
}
|
||||
?>
|
||||
</td>
|
||||
<td data-label="실행시간"><?php echo $show_excuted_time.' ms'; ?></td>
|
||||
</tr>
|
||||
<?php } ?>
|
||||
|
||||
@@ -23,12 +23,14 @@
|
||||
.debug_table{border:1px solid #ccc;border-collapse:collapse;margin:0;padding:0;width:100%}
|
||||
.debug_table caption{display:none}
|
||||
.debug_table tr{background:#f8f8f8;border:1px solid #ddd;padding:.35em}
|
||||
.debug_table th,.debug_table td{padding:.625em;text-align:center}
|
||||
.debug_table th,.debug_table td{padding:.625em;text-align:center;white-space:nowrap;}
|
||||
.debug_table tbody tr:hover td{background:#c7d4dd!important}
|
||||
.debug_table tbody tr:nth-child(even){background-color:#fff}
|
||||
.debug_table td.left{text-align:left}
|
||||
.debug_table td.left{text-align:left;font-family:monospace;white-space:initial}
|
||||
.debug_table th{font-size:.85em;letter-spacing:.1em;text-transform:uppercase}
|
||||
.debug_table td img{text-align:center}
|
||||
.debug_table .query_sql {font-weight:bold;margin:.5em 0}
|
||||
.debug_table .query_error_message {color:red;margin:.5em 0}
|
||||
|
||||
.debug_table.hook_table th, .debug_table.hook_table td {text-align:left;border:1px solid #ddd;}
|
||||
.hook_table .hook_count{margin-left:3px;font-size:0.9em;color:#7cbc0a}
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
// ================================================================
|
||||
// CHEditor 5.1.9.3-p4
|
||||
// CHEditor 5.1.9.4
|
||||
// ----------------------------------------------------------------
|
||||
// Homepage: http://www.chcode.com
|
||||
// EMail: support@chcode.com
|
||||
// Copyright (c) 1997-2020 CHSOFT
|
||||
// Copyright (c) 1997-2021 CHSOFT
|
||||
// ================================================================
|
||||
var GB = {
|
||||
colors: ['#000000','#313131','#434343','#535353','#666666','#999999','#a0a0a0','#b5b5b5','#c0c0c0','#dcdcdc','#eeeeee','#ffffff',
|
||||
@@ -568,6 +568,7 @@ function setConfig() {
|
||||
this.cheditor.tabSpaces = '';
|
||||
this.cheditor.modifyState = false;
|
||||
this.cheditor.tabSpaces = new Array(this.config.tabIndent + 1).join(' ');
|
||||
this.URI = URI;
|
||||
}
|
||||
|
||||
function cheditor() {
|
||||
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 16 KiB |
@@ -1,15 +1,15 @@
|
||||
<?php
|
||||
include_once("_common.php");
|
||||
|
||||
define("CHE_UPLOAD_IMG_CHECK", 1); // 이미지 파일을 썸네일 할수 있는지 여부를 체크합니다. ( 해당 파일이 이미지 파일인지 체크합니다. 1이면 사용, 0이면 사용 안함 )
|
||||
define("CHE_UPLOAD_IMG_CHECK", 1); // 이미지 파일을 썸네일 할수 있는지 여부를 체크합니다. ( 해당 파일이 이미지 파일인지 체크합니다. 1이면 사용, 0이면 사용 안함 )
|
||||
|
||||
// ---------------------------------------------------------------------------
|
||||
|
||||
# 이미지가 저장될 디렉토리의 전체 경로를 설정합니다.
|
||||
# 끝에 슬래쉬(/)는 붙이지 않습니다.
|
||||
# 주의: 이 경로의 접근 권한은 쓰기, 읽기가 가능하도록 설정해 주십시오.
|
||||
# 이미지가 저장될 디렉토리의 전체 경로를 설정합니다.
|
||||
# 끝에 슬래쉬(/)는 붙이지 않습니다.
|
||||
# 주의: 이 경로의 접근 권한은 쓰기, 읽기가 가능하도록 설정해 주십시오.
|
||||
|
||||
# data/editor 디렉토리가 없는 경우가 있을수 있으므로 디렉토리를 생성하는 코드를 추가함. kagla 140305
|
||||
# data/editor 디렉토리가 없는 경우가 있을수 있으므로 디렉토리를 생성하는 코드를 추가함. kagla 140305
|
||||
|
||||
@mkdir(G5_DATA_PATH.'/'.G5_EDITOR_DIR, G5_DIR_PERMISSION);
|
||||
@chmod(G5_DATA_PATH.'/'.G5_EDITOR_DIR, G5_DIR_PERMISSION);
|
||||
@@ -24,8 +24,8 @@ define("SAVE_DIR", $data_dir);
|
||||
@mkdir(SAVE_DIR, G5_DIR_PERMISSION);
|
||||
@chmod(SAVE_DIR, G5_DIR_PERMISSION);
|
||||
|
||||
# 위에서 설정한 'SAVE_DIR'의 URL을 설정합니다.
|
||||
# 끝에 슬래쉬(/)는 붙이지 않습니다.
|
||||
# 위에서 설정한 'SAVE_DIR'의 URL을 설정합니다.
|
||||
# 끝에 슬래쉬(/)는 붙이지 않습니다.
|
||||
|
||||
define("SAVE_URL", $data_url);
|
||||
|
||||
|
||||
@@ -93,9 +93,9 @@ if ($found != true || $filename_len != 23) {
|
||||
exit;
|
||||
}
|
||||
|
||||
// 저장 파일 이름: 년월일시분초_렌덤문자8자
|
||||
// 저장 파일 이름: 년월일시분초_렌덤문자8자
|
||||
// 20140327125959_abcdefghi.jpg
|
||||
// 원본 파일 이름: $_POST["origname"]
|
||||
// 원본 파일 이름: $_POST["origname"]
|
||||
|
||||
$filename = che_replace_filename($filename);
|
||||
$savefile = SAVE_DIR . '/' . $filename;
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<!DOCTYPE html>
|
||||
<html lang="ko">
|
||||
<head>
|
||||
<title>CHEditor</title>
|
||||
<meta name="robots" content="noindex, nofollow" />
|
||||
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
|
||||
<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
|
||||
<link rel="stylesheet" type="text/css" href="../css/dialog.css" />
|
||||
<script src="js/dialog.js" type="text/javascript"></script>
|
||||
<script src="js/flash.js" type="text/javascript"></script>
|
||||
@@ -11,12 +11,12 @@
|
||||
<body>
|
||||
<div class="flash-movie-source">
|
||||
<div style="margin-bottom: 10px;width: 562px">
|
||||
<span class="font-normal"><동영상 소스 코드> iframe 또는 object 태그를 입력하세요.</span>
|
||||
<span class="font-normal">동영상 링크 URL 또는 IFRAME이나 EMBED 소스 코드를 붙여 넣거나 입력하세요.</span>
|
||||
</div>
|
||||
<textarea name="embed" id="fm_embed" style="height:40px;width:99%"></textarea>
|
||||
<textarea name="source" id="fm_source" style="height:40px;width:99%"></textarea>
|
||||
</div>
|
||||
<div class="spacer"></div>
|
||||
<div class="flash-player-wrapper" id="fm_player"></div>
|
||||
<div class="bottom-status" id="buttonWrapper"></div>
|
||||
</body>
|
||||
</html>
|
||||
</html>
|
||||
|
||||
@@ -6,13 +6,13 @@
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||
<link rel="stylesheet" type="text/css" href="../css/dialog.css" />
|
||||
<script src="js/dialog.js" type="text/javascript"></script>
|
||||
<script src="https://maps.google.com/maps/api/js?V=3&language=ko®ion=KR" type="text/javascript"></script>
|
||||
<script src="https://maps.google.com/maps/api/js?V=3&language=ko®ion=KR&key=JS_MAPS_API_KEY" type="text/javascript"></script>
|
||||
<script src="js/google_map.js" type="text/javascript"></script>
|
||||
</head>
|
||||
<body onload="initMap(5)">
|
||||
<div style="padding-left:10px">
|
||||
<span class="font-normal">찾을 주소: </span>
|
||||
<input type="text" name="address" id="fm_address" value="서울" />
|
||||
<input type="text" name="address" id="fm_address" title="찾을 주소" value="서울" />
|
||||
<span id="map_search"></span>
|
||||
<div class="font-normal" style="margin: 5px 0px 0px 58px;color:#666">찾으실 도로명 주소, 지번 또는 건물명을 입력하세요.</div>
|
||||
</div>
|
||||
|
||||
@@ -64,6 +64,7 @@
|
||||
<div style="margin-top:5px;font-size: 12px">
|
||||
<input type="checkbox" name="use_spacer" value="1" checked="checked" />사진 여백 넣기
|
||||
</div>
|
||||
<div id="webgl_logo_wrapper" class="webgl_logo_wrapper" style="text-align: center;"></div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
// ================================================================
|
||||
// CHEditor 5
|
||||
// Movie
|
||||
// ================================================================
|
||||
var button = [
|
||||
{ alt : '', img : 'play.gif', cmd : doPlay },
|
||||
@@ -7,7 +7,10 @@ var button = [
|
||||
{ alt : '', img : 'cancel.gif', cmd : popupClose }
|
||||
],
|
||||
oEditor = null,
|
||||
iframeSource = false;
|
||||
iframeSource = null,
|
||||
showMovie = false,
|
||||
defaultMovieWidth = 640,
|
||||
defaultMovieHeight = 360;
|
||||
|
||||
function init(dialog) {
|
||||
var dlg = new Dialog(this);
|
||||
@@ -17,52 +20,65 @@ function init(dialog) {
|
||||
dlg.setDialogHeight();
|
||||
}
|
||||
|
||||
function doPlay()
|
||||
{
|
||||
var elem = oEditor.trimSpace(document.getElementById("fm_embed").value),
|
||||
embed = null, div = document.createElement('div'),
|
||||
pos, str, object, child, movieHeight, movieWidth, i, params = [];
|
||||
function getSource() {
|
||||
return oEditor.trimSpace(document.getElementById("fm_source").value);
|
||||
}
|
||||
|
||||
elem = oEditor.trimSpace(elem);
|
||||
if (elem == '') {
|
||||
function doPlay() {
|
||||
var embed = null,
|
||||
div = document.createElement('div'),
|
||||
pos, str, object, child, movieHeight, movieWidth, params = [], showWrapper,
|
||||
source = getSource(), iframe;
|
||||
|
||||
showMovie = true;
|
||||
if (source === '') {
|
||||
return;
|
||||
}
|
||||
|
||||
if (elem.toLowerCase().indexOf("iframe") !== -1) {
|
||||
document.getElementById('fm_player').innerHTML = elem;
|
||||
iframeSource = true;
|
||||
showWrapper = document.getElementById('fm_player');
|
||||
if (source.toLowerCase().indexOf("iframe") !== -1) {
|
||||
showWrapper.innerHTML = source;
|
||||
iframeSource = source;
|
||||
return;
|
||||
}
|
||||
|
||||
pos = elem.toLowerCase().indexOf("embed");
|
||||
if (/https?:\/\//.test(source)) {
|
||||
iframe = createIframeElement(defaultMovieWidth, defaultMovieHeight, source);
|
||||
if (iframe) {
|
||||
showWrapper.innerHTML = '';
|
||||
showWrapper.appendChild(iframe);
|
||||
iframeSource = iframe;
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
pos = source.toLowerCase().indexOf("embed");
|
||||
if (pos !== -1) {
|
||||
str = elem.substr(pos);
|
||||
str = source.substr(pos);
|
||||
pos = str.indexOf(">");
|
||||
div.innerHTML = "<" + str.substr(0, pos) + ">";
|
||||
embed = div.firstChild;
|
||||
} else {
|
||||
div.innerHTML = elem;
|
||||
div.innerHTML = source;
|
||||
object = div.getElementsByTagName('OBJECT')[0];
|
||||
if (object && object.hasChildNodes()) {
|
||||
child = object.firstChild;
|
||||
movieWidth = (isNaN(object.width) !== true) ? object.width : 320;
|
||||
movieHeight = (isNaN(object.height) !== true) ? object.height : 240;
|
||||
movieWidth = (isNaN(object.width) !== true) ? object.width : defaultMovieWidth;
|
||||
movieHeight = (isNaN(object.height) !== true) ? object.height : defaultMovieHeight;
|
||||
|
||||
do {
|
||||
if ((child.nodeName === 'PARAM') && (typeof child.name !== 'undefined') && (typeof child.value !== 'undefined')) {
|
||||
params.push({key: (child.name == 'movie') ? 'src' : child.name, val: child.value});
|
||||
if (child.nodeName === 'PARAM' && typeof child.name !== 'undefined' && typeof child.value !== 'undefined')
|
||||
{
|
||||
params.push({
|
||||
key: child.name === 'movie' ? 'src' : child.name,
|
||||
val: child.value
|
||||
});
|
||||
}
|
||||
child = child.nextSibling;
|
||||
} while (child);
|
||||
|
||||
if (params.length > 0) {
|
||||
embed = document.createElement('embed');
|
||||
embed.setAttribute("width", movieWidth);
|
||||
embed.setAttribute("height", movieHeight);
|
||||
for (i = 0; i < params.length; i++) {
|
||||
embed.setAttribute(params[i].key, params[i].val);
|
||||
}
|
||||
embed.setAttribute("type", "application/x-shockwave-flash");
|
||||
embed = createEmbedElement(movieWidth, movieHeight, params, null);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -72,6 +88,89 @@ function doPlay()
|
||||
}
|
||||
}
|
||||
|
||||
function createIframeElement(width, height, src) {
|
||||
var iframe = document.createElement('iframe'), uri, query, id, movie = null;
|
||||
|
||||
uri = new oEditor.URI(src);
|
||||
if (uri.path && uri.path.charAt(0) !== '/') {
|
||||
uri.path = '/' + uri.path;
|
||||
}
|
||||
|
||||
switch (uri.authority) {
|
||||
case 'youtu.be' :
|
||||
case 'youtube.com':
|
||||
case 'www.youtube.com':
|
||||
if (uri.path === '/watch' && uri.query) {
|
||||
query = uri.query.split('=');
|
||||
if (query[0] === 'v') {
|
||||
movie = '/' + query[1];
|
||||
}
|
||||
}
|
||||
if (!movie && uri.path) {
|
||||
movie = uri.path;
|
||||
if (uri.query) {
|
||||
movie += '?' + uri.query;
|
||||
}
|
||||
}
|
||||
if (movie) {
|
||||
movie = 'https://www.youtube.com/embed' + movie;
|
||||
}
|
||||
break;
|
||||
case 'vimeo.com' :
|
||||
if (uri.path) {
|
||||
movie = 'https://player.vimeo.com/video' + uri.path;
|
||||
}
|
||||
break;
|
||||
case 'afree.ca' :
|
||||
if (uri.path) {
|
||||
movie = 'http://play.afreecatv.com' + uri.path + '/embed';
|
||||
}
|
||||
break;
|
||||
case 'tv.naver.com' :
|
||||
if (uri.path) {
|
||||
id = uri.path.substring(uri.path.lastIndexOf('/'));
|
||||
movie = 'https://tv.naver.com/embed' + id + '?autoPlay=true';
|
||||
}
|
||||
break;
|
||||
case 'tv.kakao.com' :
|
||||
if (uri.path) {
|
||||
id = uri.path.substring(uri.path.lastIndexOf('/'));
|
||||
movie = 'https://tv.kakao.com/embed/player/cliplink' + id;
|
||||
}
|
||||
break;
|
||||
default :
|
||||
movie = null;
|
||||
}
|
||||
if (!movie) {
|
||||
return null;
|
||||
}
|
||||
|
||||
iframe.setAttribute('width', width);
|
||||
iframe.setAttribute('height', height);
|
||||
iframe.setAttribute('frameborder', "0");
|
||||
iframe.setAttribute('allowfullscreen', "true");
|
||||
iframe.setAttribute('src', movie);
|
||||
return iframe;
|
||||
}
|
||||
|
||||
function createEmbedElement(width, height, params, src) {
|
||||
var embed = document.createElement('embed'), i;
|
||||
|
||||
embed.setAttribute("type", "application/x-shockwave-flash");
|
||||
embed.setAttribute('width', width);
|
||||
embed.setAttribute('height', height);
|
||||
|
||||
if (src) {
|
||||
embed.setAttribute('src', src);
|
||||
}
|
||||
|
||||
for (i = 0; i < params.length; i++) {
|
||||
embed.setAttribute(params[i].key, params[i].val);
|
||||
}
|
||||
|
||||
return embed;
|
||||
}
|
||||
|
||||
function popupClose() {
|
||||
document.getElementById('fm_player').innerHTML = '';
|
||||
oEditor.popupWinCancel();
|
||||
@@ -79,13 +178,17 @@ function popupClose() {
|
||||
|
||||
function doSubmit()
|
||||
{
|
||||
var source = String(oEditor.trimSpace(document.getElementById("fm_embed").value));
|
||||
var source = getSource();
|
||||
if (source === '') {
|
||||
popupClose();
|
||||
}
|
||||
if (!showMovie) {
|
||||
document.getElementById('fm_player').style.visibility = 'hidden';
|
||||
doPlay();
|
||||
}
|
||||
|
||||
if (iframeSource || source.indexOf("iframe") !== -1) {
|
||||
oEditor.insertHtmlPopup(source);
|
||||
if (iframeSource) {
|
||||
oEditor.insertHtmlPopup(iframeSource);
|
||||
} else {
|
||||
oEditor.insertFlash(source);
|
||||
}
|
||||
@@ -93,3 +196,4 @@ function doSubmit()
|
||||
document.getElementById('fm_player').innerHTML = '';
|
||||
oEditor.popupWinClose();
|
||||
}
|
||||
|
||||
|
||||
@@ -13,7 +13,9 @@ var oEditor = null,
|
||||
mapWidth = 512,
|
||||
mapHeight = 320,
|
||||
panorama,
|
||||
panoramaVisible = false;
|
||||
panoramaVisible = false,
|
||||
marker,
|
||||
staticMapsAPI = 'STATIC_MAPS_API_KEY';
|
||||
|
||||
function doSubmit() {
|
||||
var mapImg = document.createElement("img"),
|
||||
@@ -29,10 +31,9 @@ function doSubmit() {
|
||||
mapImg.style.width = mapWidth + 'px';
|
||||
mapImg.style.height = mapHeight + 'px';
|
||||
mapImg.style.border = '1px #000 solid';
|
||||
mapImg.setAttribute("alt", "Google Map");
|
||||
mapImg.setAttribute('alt', 'Google Map');
|
||||
mapImg.onload = function () {
|
||||
oEditor.insertHtmlPopup(mapImg);
|
||||
oEditor.setImageEvent(true);
|
||||
oEditor.popupWinClose();
|
||||
};
|
||||
|
||||
@@ -41,42 +42,46 @@ function doSubmit() {
|
||||
panoramaHeading = panorama.getPov().heading;
|
||||
panoramaZoom = panorama.getPov().zoom;
|
||||
panoramaPosition = panorama.getPosition();
|
||||
|
||||
mapImg.src = "http://maps.googleapis.com/maps/api/streetview?location=" + panoramaPosition +
|
||||
mapImg.src = "http://maps.googleapis.com/maps/api/streetview?" +
|
||||
"location=" + panoramaPosition.lat() + ',' + panoramaPosition.lng() +
|
||||
"&pitch=" + panoramaPitch +
|
||||
"&heading=" + panoramaHeading +
|
||||
"&size=" + mapWidth + 'x' + mapHeight +
|
||||
"&zoom=" + panoramaZoom +
|
||||
"&sensor=false" +
|
||||
"®ion=KR";
|
||||
"®ion=KR" +
|
||||
"&key=" + staticMapsAPI;
|
||||
} else {
|
||||
mapImg.src = "http://maps.google.com/maps/api/staticmap?center=" + centerLat + ',' + centerLng +
|
||||
mapImg.src = "http://maps.google.com/maps/api/staticmap?" +
|
||||
"center=" + centerLat + ',' + centerLng +
|
||||
"&zoom=" + setZoom +
|
||||
"&size=" + mapWidth + 'x' + mapHeight +
|
||||
"&maptype=" + mapType +
|
||||
//"&markers=" + marker_lat + ',' + marker_lng +
|
||||
"&markers=" + marker_lat + ',' + marker_lng +
|
||||
"&sensor=false" +
|
||||
"&language=ko" +
|
||||
"®ion=KR";
|
||||
"®ion=KR" +
|
||||
"&key=" + staticMapsAPI;
|
||||
}
|
||||
}
|
||||
|
||||
function searchAddress() {
|
||||
var address = document.getElementById('fm_address').value,
|
||||
geocoder = new google.maps.Geocoder();
|
||||
//var results, status;
|
||||
//var marker = new google.maps.Marker({ 'map': map, 'draggable': true });
|
||||
|
||||
geocoder.geocode({'address' : address},
|
||||
function (results, status) {
|
||||
if (status === google.maps.GeocoderStatus.OK) {
|
||||
centerLat = results[0].geometry.location.lat();
|
||||
centerLng = results[0].geometry.location.lng();
|
||||
latlng = new google.maps.LatLng(centerLat, centerLng);
|
||||
map.setCenter(latlng);
|
||||
map.setZoom(setZoom);
|
||||
}
|
||||
});
|
||||
function (results, status) {
|
||||
if (status === google.maps.GeocoderStatus.OK) {
|
||||
centerLat = results[0].geometry.location.lat();
|
||||
centerLng = results[0].geometry.location.lng();
|
||||
latlng = new google.maps.LatLng(centerLat, centerLng);
|
||||
map.setCenter(latlng);
|
||||
map.setZoom(setZoom);
|
||||
marker = new google.maps.Marker({ 'map': map, 'draggable': true, 'position': latlng,
|
||||
animation: google.maps.Animation.DROP});
|
||||
marker.setMap(map);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
function initMap(zoom) {
|
||||
|
||||
@@ -36,7 +36,8 @@ var activeImage = null,
|
||||
uploadImagePath = '',
|
||||
uploadMaxNumber = 12,
|
||||
uploadScript,
|
||||
useWebGL = false;
|
||||
useWebGL = false,
|
||||
supportImageOrientation;
|
||||
|
||||
if (ArrayBuffer && !ArrayBuffer.prototype.slice) {
|
||||
ArrayBuffer.prototype.slice = function (start, end) {
|
||||
@@ -437,11 +438,6 @@ function fileFilterError(file) {
|
||||
"gif, png, jpg, webp 사진 파일만 전송할 수 있습니다.");
|
||||
}
|
||||
|
||||
function explorerFileFilterError(file) {
|
||||
alert("선택하신 '" + file + "' 파일은 전송할 수 없습니다.\n" +
|
||||
"익스플로러 환경에서는 gif, png, jpg 사진 파일만 \n전송할 수 있습니다.");
|
||||
}
|
||||
|
||||
function imgComplete(img, imgSize, boxId) {
|
||||
var resizeW, resizeH, M, elem;
|
||||
img.setAttribute("border", '0');
|
||||
@@ -929,7 +925,7 @@ function DoUpload() {
|
||||
|
||||
blob = new Blob();
|
||||
for (key in blob) {
|
||||
if (blob.hasOwnProperty(key)) {
|
||||
if ({}.hasOwnProperty.call(blob, key)) {
|
||||
(function (key) {
|
||||
Object.defineProperty(MYBLOB.prototype,
|
||||
key,
|
||||
@@ -967,13 +963,7 @@ DoUpload.prototype = {
|
||||
file = files[i];
|
||||
|
||||
if (!file.type.match(fileTypeRe)) {
|
||||
// 엣지를 제외한 ie브라우저인지 체크
|
||||
var agent = navigator.userAgent.toLowerCase();
|
||||
if (agent.indexOf('trident') != -1 || agent.indexOf("msie") != -1) {
|
||||
explorerFileFilterError(file.name);
|
||||
} else {
|
||||
FileFilterError(file.name);
|
||||
}
|
||||
fileFilterError(file.name);
|
||||
continue;
|
||||
}
|
||||
this.list.push(file);
|
||||
@@ -1032,15 +1022,22 @@ DoUpload.prototype = {
|
||||
offset = 2,
|
||||
marker, little, tags, i;
|
||||
|
||||
// JPEG가 아닌 경우, 알 수 없음
|
||||
if (view.getUint16(0, false) !== 0xffd8) {
|
||||
return -2;
|
||||
}
|
||||
|
||||
while (offset < length) {
|
||||
// 알 수 없음
|
||||
if (view.getUint16(offset + 2, false) <= 8) {
|
||||
return -1;
|
||||
}
|
||||
|
||||
marker = view.getUint16(offset, false);
|
||||
offset += 2;
|
||||
|
||||
if (marker === 0xffe1) {
|
||||
// 알 수 없음
|
||||
if (view.getUint32(offset += 2, false) !== 0x45786966) {
|
||||
return -1;
|
||||
}
|
||||
@@ -1061,7 +1058,7 @@ DoUpload.prototype = {
|
||||
offset += view.getUint16(offset, false);
|
||||
}
|
||||
}
|
||||
|
||||
// 알 수 없음
|
||||
return -1;
|
||||
},
|
||||
|
||||
@@ -1076,7 +1073,7 @@ DoUpload.prototype = {
|
||||
|| window.MSBlobBuilder;
|
||||
|
||||
if (e.name === 'TypeError' && window.BlobBuilder) {
|
||||
blobb = new BlobBuilder();
|
||||
// eslint-disable-next-line no-undef
|
||||
blobb.append(data);
|
||||
blob = blobb.getBlob(datatype);
|
||||
console.log("TypeError");
|
||||
@@ -1089,50 +1086,46 @@ DoUpload.prototype = {
|
||||
return blob;
|
||||
},
|
||||
|
||||
imageResize : function (image, filetype, resizeWidth, orientation, addWaterMark) {
|
||||
var canvas, source_w = image.width, source_h = image.height,
|
||||
resize_h, resize_w, ratio_w, ratio_h, ratio_w_half, ratio_h_half,
|
||||
imageResize : function (image, filetype, resize_w, orientation, addWaterMark) {
|
||||
var canvas = document.createElement("canvas"),
|
||||
ctx = canvas.getContext("2d"),
|
||||
source_w = image.width,
|
||||
source_h = image.height,
|
||||
resize_h, ratio_w, ratio_h, ratio_w_half, ratio_h_half,
|
||||
source_img, resize_img, source_data, resize_data, j, i,
|
||||
x2, weight, weights, weights_alpha, gx_a, gx_b, gx_g, gx_r, center_x, center_y, x_start, x_stop,
|
||||
y_start, y_stop, y, dy, part_w, x, dx, w, pos_x,
|
||||
ctx, gl, imageData = null;
|
||||
x2, weight, weights, weights_alpha, gx_a, gx_b, gx_g, gx_r,
|
||||
center_x, center_y, x_start, x_stop,
|
||||
y_start, y_stop, y, dy, part_w, x, dx, w, pos_x, gl, imageData = null;
|
||||
|
||||
// 카메라 로테이션 보정
|
||||
if (orientation > 0) {
|
||||
canvas = document.createElement("canvas");
|
||||
canvas.width = source_w;
|
||||
canvas.height = source_h;
|
||||
ctx = canvas.getContext("2d");
|
||||
ctx.clearRect(0, 0, canvas.width, canvas.height);
|
||||
ctx.save();
|
||||
if (orientation > 0 && !supportImageOrientation) {
|
||||
if ([5,6,7,8].indexOf(orientation) > -1) {
|
||||
canvas.width = source_h;
|
||||
canvas.height = source_w;
|
||||
} else {
|
||||
canvas.width = source_w;
|
||||
canvas.height = source_h;
|
||||
}
|
||||
|
||||
switch (orientation) {
|
||||
case 2 :
|
||||
ctx.translate(-1, 0, 0, 1, canvas.width, 0); break;
|
||||
case 3 :
|
||||
ctx.translate(-1, 0, 0, -1, canvas.width, canvas.height); break;
|
||||
case 4 :
|
||||
ctx.translate(1, 0, 0, -1, 0, canvas.height); break;
|
||||
case 5 :
|
||||
ctx.translate(0, 1, 1, 0, 0, 0); break;
|
||||
case 6 :
|
||||
ctx.translate(0, 1, -1, 0, canvas.height, 0); break;
|
||||
case 7 :
|
||||
ctx.translate(0, -1, -1, 0, canvas.height, canvas.width); break;
|
||||
case 8 :
|
||||
ctx.translate(0, -1, 1, 0, 0, canvas.width); break;
|
||||
case 2 : ctx.transform(-1, 0, 0, 1, source_w, 0); break;
|
||||
case 3 : ctx.transform(-1, 0, 0, -1, source_w, source_h); break;
|
||||
case 4 : ctx.transform(1, 0, 0, -1, 0, source_h); break;
|
||||
case 5 : ctx.transform(0, 1, 1, 0, 0, 0); break;
|
||||
case 6 : ctx.transform(0, 1, -1, 0, source_h, 0); break;
|
||||
case 7 : ctx.transform(0, -1, -1, 0, source_h, source_w); break;
|
||||
case 8 : ctx.transform(0, -1, 1, 0, 0, source_w); break;
|
||||
default: break;
|
||||
}
|
||||
|
||||
ctx.drawImage(image, 0, 0);
|
||||
ctx.drawImage(image, 0, 0, source_w, source_h);
|
||||
imageData = ctx.getImageData(0, 0, canvas.width, canvas.height);
|
||||
ctx.restore();
|
||||
source_w = canvas.width;
|
||||
source_h = canvas.height;
|
||||
}
|
||||
|
||||
if (source_w > resizeWidth) {
|
||||
resize_w = resizeWidth;
|
||||
if (source_w > resize_w) {
|
||||
resize_h = Math.ceil(resize_w / source_w * source_h);
|
||||
|
||||
try {
|
||||
@@ -1143,8 +1136,6 @@ DoUpload.prototype = {
|
||||
canvas = gl_canvas;
|
||||
});
|
||||
} catch (ignore) {
|
||||
canvas = document.createElement("canvas");
|
||||
ctx = canvas.getContext("2d");
|
||||
canvas.width = source_w;
|
||||
canvas.height = source_h;
|
||||
|
||||
@@ -1216,14 +1207,10 @@ DoUpload.prototype = {
|
||||
canvas.height = resize_h;
|
||||
ctx.putImageData(resize_img, 0, 0);
|
||||
}
|
||||
|
||||
} else {
|
||||
canvas = document.createElement("canvas"),
|
||||
canvas.width = source_w; canvas.height = source_h;
|
||||
ctx = canvas.getContext("2d");
|
||||
canvas.width = source_w;
|
||||
canvas.height = source_h;
|
||||
ctx.drawImage(image, 0, 0);
|
||||
resize_h = source_h;
|
||||
resize_w = source_w;
|
||||
}
|
||||
|
||||
if (this.reader.watermark && addWaterMark) {
|
||||
@@ -1276,7 +1263,8 @@ DoUpload.prototype = {
|
||||
filename = evt.target.file.name,
|
||||
filetype = evt.target.file.type,
|
||||
file = evt.target.file,
|
||||
blob, image, orientation = 1, slice = 64 * 1024;
|
||||
blob, image, orientation = 1,
|
||||
slice = 64 * 1024;
|
||||
|
||||
if (slice > file.size - 1) {
|
||||
slice = file.size;
|
||||
@@ -1298,12 +1286,12 @@ DoUpload.prototype = {
|
||||
|
||||
xhr.open('POST', uploadScript, true);
|
||||
|
||||
if (imageResizeWidth > 0) {
|
||||
fileFormat = filename.substring(filename.lastIndexOf('.'));
|
||||
if (imageResizeWidth > 0 && fileFormat !== '.gif') {
|
||||
bitmapData = self.imageResize(this, filetype, imageResizeWidth, orientation, true);
|
||||
file = self.canvasToBlob(bitmapData, filetype);
|
||||
}
|
||||
|
||||
fileFormat = filename.substring(filename.lastIndexOf('.'));
|
||||
randomName = self.makeFilename(fileFormat);
|
||||
|
||||
data.append('origname', filename);
|
||||
@@ -1375,7 +1363,6 @@ DoUpload.prototype = {
|
||||
blob = null;
|
||||
xhr.send(data);
|
||||
};
|
||||
|
||||
image.src = blob.getURL();
|
||||
}
|
||||
},
|
||||
@@ -1484,7 +1471,7 @@ function setResizeWidth() {
|
||||
}
|
||||
|
||||
function init(dialog) {
|
||||
var dlg, i, elem, input, select, value, name, xhr_f, xhr_v, tmpcanvas, glicon;
|
||||
var dlg, i, elem, input, select, value, name, xhr_f, xhr_v, tmpcanvas, glicon, testImg;
|
||||
|
||||
oEditor = this;
|
||||
oEditor.dialog = dialog;
|
||||
@@ -1588,8 +1575,24 @@ function init(dialog) {
|
||||
xhr_f.send();
|
||||
xhr_v.send();
|
||||
}
|
||||
|
||||
glicon = new Image();
|
||||
glicon.className = 'webgl_logo';
|
||||
glicon.src = uploadImagePath + (useWebGL ? "/webgl.png" : "/webgl-off.png");
|
||||
document.getElementById('webgl_logo_wrapper').appendChild(glicon);
|
||||
|
||||
// 브라우저가 사진 Orientation 보정을 자동으로 지원하지는지 확인
|
||||
testImg = new Image();
|
||||
testImg.onload = function () {
|
||||
supportImageOrientation = testImg.width === 2 && testImg.height === 3;
|
||||
};
|
||||
testImg.src =
|
||||
'data:image/jpeg;base64,/9j/4QAiRXhpZgAATU0AKgAAAAgAAQESAAMAAAABAAYAAAA' +
|
||||
'AAAD/2wCEAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBA' +
|
||||
'QEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQE' +
|
||||
'BAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAf/AABEIAAIAAwMBEQACEQEDEQH/x' +
|
||||
'ABRAAEAAAAAAAAAAAAAAAAAAAAKEAEBAQADAQEAAAAAAAAAAAAGBQQDCAkCBwEBAAAAAAA' +
|
||||
'AAAAAAAAAAAAAABEBAAAAAAAAAAAAAAAAAAAAAP/aAAwDAQACEQMRAD8AG8T9NfSMEVMhQ' +
|
||||
'voP3fFiRZ+MTHDifa/95OFSZU5OzRzxkyejv8ciEfhSceSXGjS8eSdLnZc2HDm4M3BxcXw' +
|
||||
'H/9k=';
|
||||
}
|
||||
|
||||
@@ -35,8 +35,9 @@ var activeImage = null,
|
||||
tmpTop = 0,
|
||||
uploadImagePath = '',
|
||||
uploadMaxNumber = 12,
|
||||
uploadScript;
|
||||
useWebGL = false;
|
||||
uploadScript,
|
||||
useWebGL = false,
|
||||
supportImageOrientation;
|
||||
|
||||
if (ArrayBuffer && !ArrayBuffer.prototype.slice) {
|
||||
ArrayBuffer.prototype.slice = function (start, end) {
|
||||
@@ -434,12 +435,7 @@ function startUpload(list) {
|
||||
|
||||
function fileFilterError(file) {
|
||||
alert("선택하신 '" + file + "' 파일은 전송할 수 없습니다.\n" +
|
||||
"gif, png, jpg, webp 사진 파일만 전송할 수 있습니다.");
|
||||
}
|
||||
|
||||
function explorerFileFilterError(file) {
|
||||
alert("선택하신 '" + file + "' 파일은 전송할 수 없습니다.\n" +
|
||||
"익스플로러 환경에서는 gif, png, jpg 사진 파일만 \n전송할 수 있습니다.");
|
||||
"gif, png, jpg 사진 파일만 전송할 수 있습니다.");
|
||||
}
|
||||
|
||||
function imgComplete(img, imgSize, boxId) {
|
||||
@@ -967,16 +963,10 @@ DoUpload.prototype = {
|
||||
file = files[i];
|
||||
|
||||
if (!file.type.match(fileTypeRe)) {
|
||||
// 엣지를 제외한 ie브라우저인지 체크
|
||||
var agent = navigator.userAgent.toLowerCase();
|
||||
if (agent.indexOf('trident') != -1 || agent.indexOf("msie") != -1) {
|
||||
explorerFileFilterError(file.name);
|
||||
} else {
|
||||
FileFilterError(file.name);
|
||||
}
|
||||
fileFilterError(file.name);
|
||||
continue;
|
||||
}
|
||||
this.list.push(file);
|
||||
this.list.push(file);
|
||||
}
|
||||
|
||||
if (this.list.length < 1) {
|
||||
@@ -1089,50 +1079,46 @@ DoUpload.prototype = {
|
||||
return blob;
|
||||
},
|
||||
|
||||
imageResize : function (image, filetype, resizeWidth, orientation, addWaterMark) {
|
||||
var canvas, source_w = image.width, source_h = image.height,
|
||||
resize_h, resize_w, ratio_w, ratio_h, ratio_w_half, ratio_h_half,
|
||||
imageResize : function (image, filetype, resize_w, orientation, addWaterMark) {
|
||||
var canvas = document.createElement("canvas"),
|
||||
ctx = canvas.getContext("2d"),
|
||||
source_w = image.width,
|
||||
source_h = image.height,
|
||||
resize_h, ratio_w, ratio_h, ratio_w_half, ratio_h_half,
|
||||
source_img, resize_img, source_data, resize_data, j, i,
|
||||
x2, weight, weights, weights_alpha, gx_a, gx_b, gx_g, gx_r, center_x, center_y, x_start, x_stop,
|
||||
y_start, y_stop, y, dy, part_w, x, dx, w, pos_x,
|
||||
ctx, gl, imageData = null;
|
||||
x2, weight, weights, weights_alpha, gx_a, gx_b, gx_g, gx_r,
|
||||
center_x, center_y, x_start, x_stop,
|
||||
y_start, y_stop, y, dy, part_w, x, dx, w, pos_x, gl, imageData = null;
|
||||
|
||||
// 카메라 로테이션 보정
|
||||
if (orientation > 0) {
|
||||
canvas = document.createElement("canvas");
|
||||
canvas.width = source_w;
|
||||
canvas.height = source_h;
|
||||
ctx = canvas.getContext("2d");
|
||||
ctx.clearRect(0, 0, canvas.width, canvas.height);
|
||||
ctx.save();
|
||||
if (orientation > 0 && !supportImageOrientation) {
|
||||
if ([5,6,7,8].indexOf(orientation) > -1) {
|
||||
canvas.width = source_h;
|
||||
canvas.height = source_w;
|
||||
} else {
|
||||
canvas.width = source_w;
|
||||
canvas.height = source_h;
|
||||
}
|
||||
|
||||
switch (orientation) {
|
||||
case 2 :
|
||||
ctx.translate(-1, 0, 0, 1, canvas.width, 0); break;
|
||||
case 3 :
|
||||
ctx.translate(-1, 0, 0, -1, canvas.width, canvas.height); break;
|
||||
case 4 :
|
||||
ctx.translate(1, 0, 0, -1, 0, canvas.height); break;
|
||||
case 5 :
|
||||
ctx.translate(0, 1, 1, 0, 0, 0); break;
|
||||
case 6 :
|
||||
ctx.translate(0, 1, -1, 0, canvas.height, 0); break;
|
||||
case 7 :
|
||||
ctx.translate(0, -1, -1, 0, canvas.height, canvas.width); break;
|
||||
case 8 :
|
||||
ctx.translate(0, -1, 1, 0, 0, canvas.width); break;
|
||||
case 2 : ctx.transform(-1, 0, 0, 1, source_w, 0); break;
|
||||
case 3 : ctx.transform(-1, 0, 0, -1, source_w, source_h); break;
|
||||
case 4 : ctx.transform(1, 0, 0, -1, 0, source_h); break;
|
||||
case 5 : ctx.transform(0, 1, 1, 0, 0, 0); break;
|
||||
case 6 : ctx.transform(0, 1, -1, 0, source_h, 0); break;
|
||||
case 7 : ctx.transform(0, -1, -1, 0, source_h, source_w); break;
|
||||
case 8 : ctx.transform(0, -1, 1, 0, 0, source_w); break;
|
||||
default: break;
|
||||
}
|
||||
|
||||
ctx.drawImage(image, 0, 0);
|
||||
ctx.drawImage(image, 0, 0, source_w, source_h);
|
||||
imageData = ctx.getImageData(0, 0, canvas.width, canvas.height);
|
||||
ctx.restore();
|
||||
source_w = canvas.width;
|
||||
source_h = canvas.height;
|
||||
}
|
||||
|
||||
if (source_w > resizeWidth) {
|
||||
resize_w = resizeWidth;
|
||||
if (source_w > resize_w) {
|
||||
resize_h = Math.ceil(resize_w / source_w * source_h);
|
||||
|
||||
try {
|
||||
@@ -1143,8 +1129,6 @@ DoUpload.prototype = {
|
||||
canvas = gl_canvas;
|
||||
});
|
||||
} catch (ignore) {
|
||||
canvas = document.createElement("canvas");
|
||||
ctx = canvas.getContext("2d");
|
||||
canvas.width = source_w;
|
||||
canvas.height = source_h;
|
||||
|
||||
@@ -1216,14 +1200,10 @@ DoUpload.prototype = {
|
||||
canvas.height = resize_h;
|
||||
ctx.putImageData(resize_img, 0, 0);
|
||||
}
|
||||
|
||||
} else {
|
||||
canvas = document.createElement("canvas"),
|
||||
canvas.width = source_w; canvas.height = source_h;
|
||||
ctx = canvas.getContext("2d");
|
||||
canvas.width = source_w;
|
||||
canvas.height = source_h;
|
||||
ctx.drawImage(image, 0, 0);
|
||||
resize_h = source_h;
|
||||
resize_w = source_w;
|
||||
}
|
||||
|
||||
if (this.reader.watermark && addWaterMark) {
|
||||
@@ -1484,7 +1464,7 @@ function setResizeWidth() {
|
||||
}
|
||||
|
||||
function init(dialog) {
|
||||
var dlg, i, elem, input, select, value, name, xhr_f, xhr_v, tmpcanvas, glicon;
|
||||
var dlg, i, elem, input, select, value, name, xhr_f, xhr_v, tmpcanvas, glicon, testImg;
|
||||
|
||||
oEditor = this;
|
||||
oEditor.dialog = dialog;
|
||||
@@ -1556,11 +1536,6 @@ function init(dialog) {
|
||||
}
|
||||
}
|
||||
|
||||
if (browser.mobile) {
|
||||
input = document.getElementById('inputImageUpload');
|
||||
input.setAttribute('capture', 'filesystem');
|
||||
}
|
||||
|
||||
tmpcanvas = document.createElement('canvas');
|
||||
if (tmpcanvas.getContext('webgl', {preserveDrawingBuffer: true}) ||
|
||||
tmpcanvas.getContext('experimental-webgl', {preserveDrawingBuffer: true}))
|
||||
@@ -1588,8 +1563,24 @@ function init(dialog) {
|
||||
xhr_f.send();
|
||||
xhr_v.send();
|
||||
}
|
||||
|
||||
glicon = new Image();
|
||||
glicon.className = 'webgl_logo';
|
||||
glicon.src = uploadImagePath + (useWebGL ? "/webgl.png" : "/webgl-off.png");
|
||||
document.getElementById('webgl_logo_wrapper').appendChild(glicon);
|
||||
|
||||
// 브라우저가 사진 Orientation 보정을 자동으로 지원하지는지 확인
|
||||
testImg = new Image();
|
||||
testImg.onload = function () {
|
||||
supportImageOrientation = testImg.width === 2 && testImg.height === 3;
|
||||
};
|
||||
testImg.src =
|
||||
'data:image/jpeg;base64,/9j/4QAiRXhpZgAATU0AKgAAAAgAAQESAAMAAAABAAYAAAA' +
|
||||
'AAAD/2wCEAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBA' +
|
||||
'QEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQE' +
|
||||
'BAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAf/AABEIAAIAAwMBEQACEQEDEQH/x' +
|
||||
'ABRAAEAAAAAAAAAAAAAAAAAAAAKEAEBAQADAQEAAAAAAAAAAAAGBQQDCAkCBwEBAAAAAAA' +
|
||||
'AAAAAAAAAAAAAABEBAAAAAAAAAAAAAAAAAAAAAP/aAAwDAQACEQMRAD8AG8T9NfSMEVMhQ' +
|
||||
'voP3fFiRZ+MTHDifa/95OFSZU5OzRzxkyejv8ciEfhSceSXGjS8eSdLnZc2HDm4M3BxcXw' +
|
||||
'H/9k=';
|
||||
}
|
||||
|
||||
@@ -0,0 +1,43 @@
|
||||
<?xml version='1.0' encoding='UTF-8'?>
|
||||
<!ELEMENT Template (Container|PopupWindow|Toolbar)*>
|
||||
<!ELEMENT Container (Html)*>
|
||||
<!ELEMENT Html (#PCDATA)>
|
||||
<!ELEMENT PopupWindow (Html)*>
|
||||
<!ELEMENT Toolbar (Image|Group)*>
|
||||
<!ELEMENT Image EMPTY>
|
||||
<!ATTLIST Image
|
||||
file CDATA #IMPLIED
|
||||
>
|
||||
<!ELEMENT Group (Button)*>
|
||||
<!ATTLIST Group
|
||||
name CDATA #IMPLIED
|
||||
>
|
||||
<!ELEMENT Button (Attribute)*>
|
||||
<!ATTLIST Button
|
||||
name CDATA #IMPLIED
|
||||
tooltip CDATA #IMPLIED
|
||||
>
|
||||
<!ELEMENT Attribute (Icon|Execution)*>
|
||||
<!ATTLIST Attribute
|
||||
class CDATA #IMPLIED
|
||||
width CDATA #IMPLIED
|
||||
height CDATA #IMPLIED
|
||||
check CDATA #IMPLIED
|
||||
default CDATA #IMPLIED
|
||||
use CDATA #IMPLIED
|
||||
type CDATA #IMPLIED
|
||||
node CDATA #IMPLIED
|
||||
>
|
||||
<!ELEMENT Icon EMPTY>
|
||||
<!ATTLIST Icon
|
||||
position CDATA #IMPLIED
|
||||
width CDATA #IMPLIED
|
||||
class CDATA #IMPLIED
|
||||
margin CDATA #IMPLIED
|
||||
alt CDATA #IMPLIED
|
||||
>
|
||||
<!ELEMENT Execution EMPTY>
|
||||
<!ATTLIST Execution
|
||||
method CDATA #IMPLIED
|
||||
value CDATA #IMPLIED
|
||||
>
|
||||
@@ -18,6 +18,8 @@
|
||||
|
||||
class KCAPTCHA{
|
||||
|
||||
private $keystring;
|
||||
|
||||
// generates keystring and image
|
||||
function image(){
|
||||
require(dirname(__FILE__).'/kcaptcha_config.php');
|
||||
|
||||
@@ -4,10 +4,13 @@ include_once('captcha.lib.php');
|
||||
|
||||
$captcha = new KCAPTCHA();
|
||||
$ss_captcha_key = get_session("ss_captcha_key");
|
||||
$ss_captcha_key_decrypt = '';
|
||||
if( $ss_captcha_key && !preg_match('/^[0-9]/', $ss_captcha_key) && function_exists('get_string_decrypt') ){
|
||||
$ip = md5(sha1($_SERVER['REMOTE_ADDR']));
|
||||
$ss_captcha_key = str_replace($ip, '', get_string_decrypt($ss_captcha_key));
|
||||
$ss_captcha_key_decrypt = str_replace($ip, '', get_string_decrypt($ss_captcha_key));
|
||||
}
|
||||
$captcha->setKeyString($ss_captcha_key);
|
||||
# php 5.2 또는 5.3 버전에서 포인터처럼 해당 세션값이 변경되는 버그가 있어서 아래와 같이 조치함
|
||||
if(! $ss_captcha_key_decrypt) $ss_captcha_key_decrypt = $ss_captcha_key;
|
||||
$captcha->setKeyString($ss_captcha_key_decrypt);
|
||||
$captcha->getKeyString();
|
||||
$captcha->image();
|
||||
@@ -211,14 +211,17 @@ $ct_cert->mf_clear();
|
||||
|
||||
var $opener = window.opener;
|
||||
var is_mobile = false;
|
||||
$opener.name="parentPage";
|
||||
$opener.name="parentPage";
|
||||
|
||||
// 안드로이드 웹뷰에서 거의 다 새창을 지원하므로 더 이상 iframe 을 사용하지 않습니다.
|
||||
/*
|
||||
if (typeof g5_is_mobile != "undefined" && g5_is_mobile ) {
|
||||
$opener = window.parent;
|
||||
is_mobile = true;
|
||||
} else {
|
||||
$opener = window.opener;
|
||||
}
|
||||
*/
|
||||
|
||||
// up_hash 검증
|
||||
if( document.mbFindForm.up_hash.value != $opener.$("input[name=veri_up_hash]").val() ) {
|
||||
|
||||
@@ -116,17 +116,17 @@ window.onload = function() {
|
||||
function cert_page()
|
||||
{
|
||||
var frm = document.form_auth;
|
||||
// iframe에서 세션공유 문제가 있어서 더 이상 iframe 을 사용하지 않습니다.
|
||||
var use_iframe = false;
|
||||
|
||||
if ( ( frm.req_tx.value == "auth" || frm.req_tx.value == "otp_auth" ) )
|
||||
{
|
||||
frm.action=".<?php echo $resultPage; ?>";
|
||||
|
||||
// MOBILE
|
||||
if( ( navigator.userAgent.indexOf("Android") > - 1 || navigator.userAgent.indexOf("iPhone") > - 1 ) )
|
||||
if(use_iframe && ( navigator.userAgent.indexOf("Android") > - 1 || navigator.userAgent.indexOf("iPhone") > - 1 ) )
|
||||
{
|
||||
self.name="kcp_cert";
|
||||
}
|
||||
// PC
|
||||
else
|
||||
{
|
||||
frm.target="kcp_cert";
|
||||
@@ -139,12 +139,12 @@ function cert_page()
|
||||
|
||||
else if ( frm.req_tx.value == "cert" )
|
||||
{
|
||||
if( ( navigator.userAgent.indexOf("Android") > - 1 || navigator.userAgent.indexOf("iPhone") > - 1 ) ) // 스마트폰인 경우
|
||||
if(use_iframe && ( navigator.userAgent.indexOf("Android") > - 1 || navigator.userAgent.indexOf("iPhone") > - 1 ) )
|
||||
{
|
||||
window.parent.$("input[name=veri_up_hash]").val(frm.up_hash.value); // up_hash 데이터 검증을 위한 필드
|
||||
self.name="auth_popup";
|
||||
}
|
||||
else // 스마트폰 아닐때
|
||||
else
|
||||
{
|
||||
window.opener.$("input[name=veri_up_hash]").val(frm.up_hash.value); // up_hash 데이터 검증을 위한 필드
|
||||
frm.target = "auth_popup";
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user