Merge pull request #383 from gnuboard/promote/v5.6.36
release: 그누보드 5.6.36 배포
This commit is contained in:
@@ -35,9 +35,16 @@
|
||||
- `chore`: 기능과 직접 관련 없는 유지보수 작업
|
||||
- `revert`: 이전 변경 되돌리기
|
||||
|
||||
### 보안 이슈 식별자
|
||||
|
||||
- KVE, CVE 등 식별자가 부여된 보안 이슈를 조치하는 커밋은 제목에 관련 식별자를 반드시 병기한다.
|
||||
- 식별자는 `security:` 접두어 바로 뒤에 원문 그대로 작성한다.
|
||||
- 하나의 커밋이 여러 보안 이슈를 함께 조치하면 관련 식별자를 모두 병기한다.
|
||||
- 예: `security: KVE-2026-1909 모바일 KCP Windows 명령 인자 주입 차단`
|
||||
|
||||
### 작성 예시
|
||||
|
||||
- `docs: Git과 압축파일 설치 절차를 구분해 README에 안내`
|
||||
- `fix: 품목 일부 취소 시 PG 취소금액 불일치 수정`
|
||||
- `security: 상품 정렬값 화이트리스트 검증으로 SQL 삽입 차단`
|
||||
- `security: KVE-2026-1899 상품 정렬값 화이트리스트 검증으로 SQL 삽입 차단`
|
||||
- `refactor: 객체 캐시의 유형별 저장 키 생성 로직 분리`
|
||||
|
||||
+2
-2
@@ -52,8 +52,8 @@ $print_version = ($is_admin == 'super') ? 'Version ' . G5_GNUBOARD_VER : '';
|
||||
|
||||
<!-- <p>실행시간 : <?php echo get_microtime() - $begin_time; ?> -->
|
||||
|
||||
<script src="<?php echo G5_ADMIN_URL ?>/admin.js?ver=<?php echo G5_JS_VER; ?>"></script>
|
||||
<script src="<?php echo G5_JS_URL ?>/jquery.anchorScroll.js?ver=<?php echo G5_JS_VER; ?>"></script>
|
||||
<script src="<?php echo get_versioned_asset_url(G5_ADMIN_URL.'/admin.js'); ?>"></script>
|
||||
<script src="<?php echo get_versioned_asset_url(G5_JS_URL.'/jquery.anchorScroll.js'); ?>"></script>
|
||||
<script>
|
||||
$(function() {
|
||||
|
||||
|
||||
+1
-1
@@ -14,7 +14,7 @@ if (empty($bo_table)) {
|
||||
<script>
|
||||
var g5_admin_csrf_token_key = "<?php echo (function_exists('admin_csrf_token_key')) ? admin_csrf_token_key() : ''; ?>";
|
||||
</script>
|
||||
<script src="<?php echo G5_ADMIN_URL ?>/admin.js?ver=<?php echo G5_JS_VER; ?>"></script>
|
||||
<script src="<?php echo get_versioned_asset_url(G5_ADMIN_URL.'/admin.js'); ?>"></script>
|
||||
|
||||
<div class="new_win">
|
||||
<h1><?php echo $g5['title']; ?></h1>
|
||||
|
||||
+2
-11
@@ -354,16 +354,7 @@ border-bottom: 5px solid black;}
|
||||
.excel-download-progress .progress-download-box a:hover { border-color: #6f809a; box-shadow: 0 2px 4px rgba(111, 128, 154, 0.15); }
|
||||
.excel-download-progress .progress-download-box a:active { box-shadow: inset 0 1px 2px rgba(0,0,0,0.1); }
|
||||
|
||||
.field-select-form { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); margin-top: 15px; gap: 0px 10px; padding: 10px; background-color: #f9fafb; border: 1px solid #e5e7eb; border-radius: 8px; color: #374151; }
|
||||
.field-select-form label { display: flex; align-items: center; cursor: pointer; padding: 6px 10px; border-radius: 4px; }
|
||||
.field-select-form label:hover { background-color: #f3f4f6; }
|
||||
.field-select-form input[type="checkbox"] { margin-right: 8px; transform: scale(1.2); }
|
||||
.field-separator { grid-column: 1 / -1; border-top: 1px solid #d1d5db; margin: 8px 0; }
|
||||
.selected-fields-preview { padding: 8px; background-color: #eef2f7; border: 1px solid #d1d5db; border-radius: 6px; margin: 10px 0px; color: #1f2937; display: flex; align-items: center; flex-wrap: wrap; gap: 8px; }
|
||||
.selected-fields-preview strong { padding: 4px 8px; }
|
||||
.selected-fields-preview .field-tag { background-color: #dbeafe; color: #1e40af; padding: 4px 8px; border-radius: 4px; }
|
||||
|
||||
/* 페이지 내 실행 */
|
||||
/* 페이지 내 실행 */
|
||||
.local_cmd {min-width:960px}
|
||||
.local_cmd01 {margin:0 0 10px;padding:0 }
|
||||
.local_cmd01 .cmd_tit {font-weight:bold}
|
||||
@@ -1217,4 +1208,4 @@ input[type="text"]{max-width:200px}
|
||||
@media only screen and (max-device-width : 480px) and (orientation : portrait){
|
||||
/* Styles */
|
||||
input[type="text"]{max-width:200px}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -59,18 +59,8 @@ function get_export_config($type = null)
|
||||
*/
|
||||
function get_member_export_params()
|
||||
{
|
||||
// 친구톡 양식 - 엑셀 양식에 포함할 항목
|
||||
$fieldArray = array_map('trim', explode(',', isset($_GET['fields']) ? $_GET['fields'] : ''));
|
||||
$vars = array();
|
||||
foreach ($fieldArray as $index => $field) {
|
||||
if(!empty($field)){
|
||||
$vars['var' . ($index + 1)] = $field;
|
||||
}
|
||||
}
|
||||
|
||||
$params = array(
|
||||
'page' => 1,
|
||||
'formatType' => (int)(isset($_GET['formatType']) ? $_GET['formatType'] : 1),
|
||||
'use_stx' => isset($_GET['use_stx']) ? $_GET['use_stx'] : 0,
|
||||
'stx_cond' => clean_xss_tags(isset($_GET['stx_cond']) ? $_GET['stx_cond'] : 'like'),
|
||||
'sfl' => clean_xss_tags(isset($_GET['sfl']) ? $_GET['sfl'] : ''),
|
||||
@@ -93,7 +83,6 @@ function get_member_export_params()
|
||||
'agree_date_end' => clean_xss_tags(isset($_GET['agree_date_end']) ? $_GET['agree_date_end'] : ''),
|
||||
'use_intercept' => isset($_GET['use_intercept']) ? $_GET['use_intercept'] : 0,
|
||||
'intercept' => clean_xss_tags(isset($_GET['intercept']) ? $_GET['intercept'] : 'exclude'),
|
||||
'vars' => $vars,
|
||||
);
|
||||
|
||||
// 레벨 범위 검증
|
||||
|
||||
@@ -271,7 +271,7 @@ function closePreviousEventSource() {
|
||||
}
|
||||
|
||||
// 2. FormData QueryString 변환
|
||||
function buildDownloadParams(selectedFields = []) {
|
||||
function buildDownloadParams() {
|
||||
const formData = new FormData(document.getElementById('fsearch'));
|
||||
const params = new URLSearchParams(formData);
|
||||
|
||||
@@ -281,10 +281,10 @@ function buildDownloadParams(selectedFields = []) {
|
||||
}
|
||||
|
||||
// 3. 메인 함수
|
||||
function startExcelDownload(selectedFields = []) {
|
||||
function startExcelDownload() {
|
||||
closePreviousEventSource();
|
||||
|
||||
const query = buildDownloadParams(selectedFields);
|
||||
const query = buildDownloadParams();
|
||||
showDownloadPopup();
|
||||
|
||||
eventSource = new EventSource(`member_list_exel_export.php?${query}`);
|
||||
@@ -340,32 +340,6 @@ function handlePopupCloseWithConfirm(e) {
|
||||
PopupManager.close('popupOverlay');
|
||||
}
|
||||
|
||||
// 체크박스 선택 시 최대 3개 제한 및 선택된 항목 미리보기 표시
|
||||
function bindFieldSelectEvents() {
|
||||
const fieldSelectForm = document.getElementById('fieldSelectForm');
|
||||
if (!fieldSelectForm) return;
|
||||
|
||||
fieldSelectForm.addEventListener('change', function (e) {
|
||||
if (e.target.name === 'fields') {
|
||||
const selected = fieldSelectForm.querySelectorAll('input[name="fields"]:checked');
|
||||
if (selected.length > 3) {
|
||||
alert("최대 3개까지 선택 가능합니다.");
|
||||
e.target.checked = false;
|
||||
return;
|
||||
}
|
||||
|
||||
// 선택된 항목 표시
|
||||
const previewContainer = document.getElementById('selectedFieldsPreview');
|
||||
let spans = '<strong>선택된 항목:</strong>';
|
||||
selected.forEach(field => {
|
||||
const label = field.parentElement.textContent.trim();
|
||||
spans += `<span class="field-tag">${label}</span>`;
|
||||
});
|
||||
previewContainer.innerHTML = spans;
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
// 엑셀 생성 및 다운로드 실행
|
||||
function handleProgressUpdate() {
|
||||
return function(e) {
|
||||
|
||||
@@ -15,6 +15,16 @@ if(! (isset($_POST['de_admin_company_tel']) && check_vaild_callback($_POST['de_a
|
||||
// 로그인을 바로 이 주소로 하는 경우 쇼핑몰설정값이 사라지는 현상을 방지
|
||||
if (!$_POST['de_admin_company_owner']) goto_url("./configform.php");
|
||||
|
||||
$logo_img_fields = array('logo_img', 'logo_img2', 'mobile_logo_img', 'mobile_logo_img2');
|
||||
foreach ($logo_img_fields as $logo_img_field) {
|
||||
if (isset($_FILES[$logo_img_field]['name']) && $_FILES[$logo_img_field]['name']) {
|
||||
$filename = get_safe_filename($_FILES[$logo_img_field]['name']);
|
||||
if (is_disallowed_svg_filename($filename)) {
|
||||
alert('허용되지 않는 파일 확장자입니다. (svg, svgz)');
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (! empty($_POST['logo_img_del'])) @unlink(G5_DATA_PATH."/common/logo_img");
|
||||
if (! empty($_POST['logo_img_del2'])) @unlink(G5_DATA_PATH."/common/logo_img2");
|
||||
if (! empty($_POST['mobile_logo_img_del'])) @unlink(G5_DATA_PATH."/common/mobile_logo_img");
|
||||
|
||||
+16
-3
@@ -28,9 +28,22 @@ if (!preg_match("/([0-9a-zA-Z_-]+)@([0-9a-zA-Z_-]+)\.([0-9a-zA-Z_-]+)/", $to)){
|
||||
}
|
||||
|
||||
$file = array();
|
||||
|
||||
// 첨부파일을 이동하기 전에 모든 파일명을 먼저 확인한다.
|
||||
for ($i=1; $i<=$attach; $i++) {
|
||||
if ($_FILES['file'.$i]['name'])
|
||||
$file[] = attach_file($_FILES['file'.$i]['name'], $_FILES['file'.$i]['tmp_name']);
|
||||
$file_key = 'file'.$i;
|
||||
if (isset($_FILES[$file_key]['name']) && $_FILES[$file_key]['name']) {
|
||||
$filename = get_safe_filename($_FILES[$file_key]['name']);
|
||||
if (is_disallowed_svg_filename($filename)) {
|
||||
alert_close('허용되지 않는 파일 확장자입니다. (svg, svgz)');
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
for ($i=1; $i<=$attach; $i++) {
|
||||
$file_key = 'file'.$i;
|
||||
if (isset($_FILES[$file_key]['name']) && $_FILES[$file_key]['name'])
|
||||
$file[] = attach_file($_FILES[$file_key]['name'], $_FILES[$file_key]['tmp_name']);
|
||||
}
|
||||
|
||||
$content = stripslashes($content);
|
||||
@@ -78,4 +91,4 @@ include_once(G5_PATH.'/head.sub.php');
|
||||
|
||||
alert_close('메일을 정상적으로 발송하였습니다.');
|
||||
|
||||
include_once(G5_PATH.'/tail.sub.php');
|
||||
include_once(G5_PATH.'/tail.sub.php');
|
||||
|
||||
+3
-1
@@ -1,6 +1,8 @@
|
||||
<?php
|
||||
include_once('./_common.php');
|
||||
|
||||
$is_admin = get_super_admin_type($is_admin);
|
||||
|
||||
if($is_guest)
|
||||
alert('회원이시라면 로그인 후 이용해 주십시오.', G5_URL);
|
||||
|
||||
@@ -93,4 +95,4 @@ for($i=0; $i<$count; $i++) {
|
||||
*/
|
||||
run_event('qa_delete', $tmp_array, $deleted);
|
||||
|
||||
goto_url(G5_BBS_URL.'/qalist.php'.preg_replace('/^&/', '?', $qstr));
|
||||
goto_url(G5_BBS_URL.'/qalist.php'.preg_replace('/^&/', '?', $qstr));
|
||||
|
||||
+3
-1
@@ -1,6 +1,8 @@
|
||||
<?php
|
||||
include_once('./_common.php');
|
||||
|
||||
$is_admin = get_super_admin_type($is_admin);
|
||||
|
||||
// clean the output buffer
|
||||
ob_end_clean();
|
||||
|
||||
@@ -85,4 +87,4 @@ while(!feof($fp)) {
|
||||
usleep(1000);
|
||||
}
|
||||
fclose ($fp);
|
||||
flush();
|
||||
flush();
|
||||
|
||||
+6
-4
@@ -1,13 +1,15 @@
|
||||
<?php
|
||||
include_once('./_common.php');
|
||||
|
||||
$is_admin = get_super_admin_type($is_admin);
|
||||
|
||||
if($is_guest)
|
||||
alert('회원이시라면 로그인 후 이용해 보십시오.', './login.php?url='.urlencode(G5_BBS_URL.'/qalist.php'));
|
||||
|
||||
$qaconfig = get_qa_config();
|
||||
|
||||
$token = '';
|
||||
if( $is_admin ){
|
||||
if($is_admin === 'super') {
|
||||
$token = _token();
|
||||
set_session('ss_qa_delete_token', $token);
|
||||
}
|
||||
@@ -16,7 +18,7 @@ $g5['title'] = $qaconfig['qa_title'];
|
||||
include_once('./qahead.php');
|
||||
|
||||
$skin_file = $qa_skin_path.'/list.skin.php';
|
||||
$is_auth = $is_admin ? true : false;
|
||||
$is_auth = ($is_admin === 'super');
|
||||
|
||||
$category_option = '';
|
||||
|
||||
@@ -132,7 +134,7 @@ if(is_file($skin_file)) {
|
||||
|
||||
$is_checkbox = false;
|
||||
$admin_href = '';
|
||||
if($is_admin) {
|
||||
if($is_admin === 'super') {
|
||||
$is_checkbox = true;
|
||||
$admin_href = G5_ADMIN_URL.'/qa_config.php';
|
||||
}
|
||||
@@ -148,4 +150,4 @@ if(is_file($skin_file)) {
|
||||
echo '<div>'.str_replace(G5_PATH.'/', '', $skin_file).'이 존재하지 않습니다.</div>';
|
||||
}
|
||||
|
||||
include_once('./qatail.php');
|
||||
include_once('./qatail.php');
|
||||
|
||||
+5
-3
@@ -2,6 +2,8 @@
|
||||
include_once('./_common.php');
|
||||
include_once(G5_EDITOR_LIB);
|
||||
|
||||
$is_admin = get_super_admin_type($is_admin);
|
||||
|
||||
$qa_id = isset($_REQUEST['qa_id']) ? (int) $_REQUEST['qa_id'] : 0;
|
||||
|
||||
if($is_guest)
|
||||
@@ -115,7 +117,7 @@ if(is_file($skin_file)) {
|
||||
}
|
||||
*/
|
||||
|
||||
if(($view['qa_type'] && $is_admin) || (!$view['qa_type'] && $view['qa_status'] == 0)) {
|
||||
if(($view['qa_type'] && $is_admin === 'super') || (!$view['qa_type'] && $view['qa_status'] == 0)) {
|
||||
$update_href = G5_BBS_URL.'/qawrite.php?w=u&qa_id='.$view['qa_id'].$qstr;
|
||||
$delete_href = G5_BBS_URL.'/qadelete.php?qa_id='.$view['qa_id'].'&token='.$token.$qstr;
|
||||
}
|
||||
@@ -131,7 +133,7 @@ if(is_file($skin_file)) {
|
||||
and qa_parent = '{$view['qa_id']}' ";
|
||||
$answer = sql_fetch($sql);
|
||||
|
||||
if($is_admin) {
|
||||
if($is_admin === 'super') {
|
||||
$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;
|
||||
}
|
||||
@@ -216,4 +218,4 @@ if(is_file($skin_file)) {
|
||||
echo '<div>'.str_replace(G5_PATH.'/', '', $skin_file).'이 존재하지 않습니다.</div>';
|
||||
}
|
||||
|
||||
include_once('./qatail.php');
|
||||
include_once('./qatail.php');
|
||||
|
||||
+7
-5
@@ -2,6 +2,8 @@
|
||||
include_once('./_common.php');
|
||||
include_once(G5_EDITOR_LIB);
|
||||
|
||||
$is_admin = get_super_admin_type($is_admin);
|
||||
|
||||
if($w != '' && $w != 'u' && $w != 'r') {
|
||||
alert('올바른 방법으로 이용해 주십시오.');
|
||||
}
|
||||
@@ -30,7 +32,7 @@ if(is_file($skin_file)) {
|
||||
|
||||
if($w == 'u' || $w == 'r') {
|
||||
$sql = " select * from {$g5['qa_content_table']} where qa_id = '$qa_id' ";
|
||||
if(!$is_admin) {
|
||||
if($is_admin !== 'super') {
|
||||
$sql .= " and mb_id = '{$member['mb_id']}' ";
|
||||
}
|
||||
|
||||
@@ -40,7 +42,7 @@ if(is_file($skin_file)) {
|
||||
if(!$write['qa_id'])
|
||||
alert('게시글이 존재하지 않습니다.\\n삭제되었거나 자신의 글이 아닌 경우입니다.');
|
||||
|
||||
if(!$is_admin) {
|
||||
if($is_admin !== 'super') {
|
||||
if($write['qa_type'] == 0 && $write['qa_status'] == 1)
|
||||
alert('답변이 등록된 문의글은 수정할 수 없습니다.');
|
||||
|
||||
@@ -117,7 +119,7 @@ if(is_file($skin_file)) {
|
||||
if($w == '' || $w == 'r')
|
||||
$write['qa_email'] = $member['mb_email'];
|
||||
|
||||
if($w == 'u' && $is_admin && $write['qa_type'])
|
||||
if($w == 'u' && $is_admin === 'super' && $write['qa_type'])
|
||||
$is_email = false;
|
||||
}
|
||||
|
||||
@@ -132,7 +134,7 @@ if(is_file($skin_file)) {
|
||||
if($w == '' || $w == 'r')
|
||||
$write['qa_hp'] = $member['mb_hp'];
|
||||
|
||||
if($w == 'u' && $is_admin && $write['qa_type'])
|
||||
if($w == 'u' && $is_admin === 'super' && $write['qa_type'])
|
||||
$is_hp = false;
|
||||
}
|
||||
|
||||
@@ -145,4 +147,4 @@ if(is_file($skin_file)) {
|
||||
echo '<div>'.str_replace(G5_PATH.'/', '', $skin_file).'이 존재하지 않습니다.</div>';
|
||||
}
|
||||
|
||||
include_once('./qatail.php');
|
||||
include_once('./qatail.php');
|
||||
|
||||
+13
-2
@@ -1,6 +1,8 @@
|
||||
<?php
|
||||
include_once('./_common.php');
|
||||
|
||||
$is_admin = get_super_admin_type($is_admin);
|
||||
|
||||
/*==========================
|
||||
$w == a : 답변
|
||||
$w == r : 추가질문
|
||||
@@ -131,6 +133,15 @@ if($w == 'u' || $w == 'a' || $w == 'r') {
|
||||
}
|
||||
}
|
||||
|
||||
if (isset($_FILES['bf_file']['name']) && is_array($_FILES['bf_file']['name'])) {
|
||||
foreach ($_FILES['bf_file']['name'] as $filename) {
|
||||
$filename = get_safe_filename($filename);
|
||||
if (is_disallowed_svg_filename($filename)) {
|
||||
alert('허용되지 않는 파일 확장자입니다. (svg, svgz)');
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// 파일개수 체크
|
||||
$file_count = 0;
|
||||
$upload_count = isset($_FILES['bf_file']['name']) ? count($_FILES['bf_file']['name']) : 0;
|
||||
@@ -185,8 +196,8 @@ for ($i=1; $i<=$upload_count; $i++) {
|
||||
}
|
||||
|
||||
if (is_uploaded_file($tmp_file)) {
|
||||
// 관리자가 아니면서 설정한 업로드 사이즈보다 크다면 건너뜀
|
||||
if (!$is_admin && $filesize > $qaconfig['qa_upload_size']) {
|
||||
// 최고관리자가 아니면서 설정한 업로드 사이즈보다 크다면 건너뜀
|
||||
if ($is_admin !== 'super' && $filesize > $qaconfig['qa_upload_size']) {
|
||||
$file_upload_msg .= '"'.$filename.'" 파일의 용량('.number_format($filesize).' 바이트)이 게시판에 설정('.number_format($qaconfig['qa_upload_size']).' 바이트)된 값보다 크므로 업로드 하지 않습니다.\\n';
|
||||
continue;
|
||||
}
|
||||
|
||||
@@ -137,6 +137,15 @@ for ($i=1; $i<=10; $i++) {
|
||||
}
|
||||
}
|
||||
|
||||
if (isset($_FILES['bf_file']['name']) && is_array($_FILES['bf_file']['name'])) {
|
||||
foreach ($_FILES['bf_file']['name'] as $filename) {
|
||||
$filename = get_safe_filename($filename);
|
||||
if (is_disallowed_svg_filename($filename)) {
|
||||
alert('허용되지 않는 파일 확장자입니다. (svg, svgz)');
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@include_once($board_skin_path.'/write_update.head.skin.php');
|
||||
|
||||
run_event('write_update_before', $board, $wr_id, $w, $qstr);
|
||||
|
||||
@@ -1,8 +0,0 @@
|
||||
<?php
|
||||
if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가
|
||||
|
||||
// 자바스크립트와 CSS 파일을 새로 다운로드 하도록 파일의 끝에 년월일 지정
|
||||
// 예) https://도메인/css/default.css?ver=220620
|
||||
// 예) https://도메인/js/common.js?ver=220620
|
||||
define('G5_CSS_VER', '2303229');
|
||||
define('G5_JS_VER', '2605291');
|
||||
+6
-6
@@ -58,11 +58,11 @@ if($config['cf_add_meta'])
|
||||
<?php
|
||||
if (defined('G5_IS_ADMIN')) {
|
||||
if(!defined('_THEME_PREVIEW_'))
|
||||
echo '<link rel="stylesheet" href="'.run_replace('head_css_url', G5_ADMIN_URL.'/css/admin.css?ver='.G5_CSS_VER, G5_URL).'">'.PHP_EOL;
|
||||
echo '<link rel="stylesheet" href="'.get_versioned_asset_url(run_replace('head_css_url', G5_ADMIN_URL.'/css/admin.css', G5_URL)).'">'.PHP_EOL;
|
||||
} else {
|
||||
$shop_css = '';
|
||||
if (defined('_SHOP_')) $shop_css = '_shop';
|
||||
echo '<link rel="stylesheet" href="'.run_replace('head_css_url', G5_CSS_URL.'/'.(G5_IS_MOBILE?'mobile':'default').$shop_css.'.css?ver='.G5_CSS_VER, G5_URL).'">'.PHP_EOL;
|
||||
echo '<link rel="stylesheet" href="'.get_versioned_asset_url(run_replace('head_css_url', G5_CSS_URL.'/'.(G5_IS_MOBILE?'mobile':'default').$shop_css.'.css', G5_URL)).'">'.PHP_EOL;
|
||||
}
|
||||
?>
|
||||
<!--[if lte IE 8]>
|
||||
@@ -91,13 +91,13 @@ add_javascript('<script src="'.G5_JS_URL.'/jquery-1.12.4.min.js"></script>', 0);
|
||||
add_javascript('<script src="'.G5_JS_URL.'/jquery-migrate-1.4.1.min.js"></script>', 0);
|
||||
if (defined('_SHOP_')) {
|
||||
if(!G5_IS_MOBILE) {
|
||||
add_javascript('<script src="'.G5_JS_URL.'/jquery.shop.menu.js?ver='.G5_JS_VER.'"></script>', 0);
|
||||
add_javascript('<script src="'.G5_JS_URL.'/jquery.shop.menu.js"></script>', 0);
|
||||
}
|
||||
} else {
|
||||
add_javascript('<script src="'.G5_JS_URL.'/jquery.menu.js?ver='.G5_JS_VER.'"></script>', 0);
|
||||
add_javascript('<script src="'.G5_JS_URL.'/jquery.menu.js"></script>', 0);
|
||||
}
|
||||
add_javascript('<script src="'.G5_JS_URL.'/common.js?ver='.G5_JS_VER.'"></script>', 0);
|
||||
add_javascript('<script src="'.G5_JS_URL.'/wrest.js?ver='.G5_JS_VER.'"></script>', 0);
|
||||
add_javascript('<script src="'.G5_JS_URL.'/common.js"></script>', 0);
|
||||
add_javascript('<script src="'.G5_JS_URL.'/wrest.js"></script>', 0);
|
||||
add_javascript('<script src="'.G5_JS_URL.'/placeholders.min.js"></script>', 0);
|
||||
add_stylesheet('<link rel="stylesheet" href="'.G5_JS_URL.'/font-awesome/css/font-awesome.min.css">', 0);
|
||||
|
||||
|
||||
+91
-1
@@ -59,6 +59,72 @@ function trim(s)
|
||||
return t;
|
||||
}
|
||||
|
||||
// SVG/SVGZ 업로드 파일 차단
|
||||
function is_disallowed_svg_filename(filename)
|
||||
{
|
||||
// 서버의 파일명 정규화와 동일하게 특수문자를 제거
|
||||
filename = (filename || "").replace(/[\0"'<>=#&!%\\()*+?]/g, "");
|
||||
filename = filename.substring(filename.lastIndexOf("/") + 1);
|
||||
filename = filename.replace(/[ .\t\n\r\v]+$/, "");
|
||||
|
||||
return /\.(svg|svgz)$/i.test(filename);
|
||||
}
|
||||
|
||||
function is_svg_upload_target(input)
|
||||
{
|
||||
var name = input.name || "";
|
||||
|
||||
if (name.indexOf("bf_file[") === 0) {
|
||||
return true;
|
||||
}
|
||||
|
||||
if (input.form && input.form.name == "fformmail" && (name == "file1" || name == "file2")) {
|
||||
return true;
|
||||
}
|
||||
|
||||
return input.form && input.form.name == "fconfig" &&
|
||||
(name == "logo_img" || name == "logo_img2" || name == "mobile_logo_img" || name == "mobile_logo_img2");
|
||||
}
|
||||
|
||||
function has_disallowed_svg_file(input)
|
||||
{
|
||||
var i;
|
||||
|
||||
if (input.files && input.files.length) {
|
||||
for (i=0; i<input.files.length; i++) {
|
||||
if (is_disallowed_svg_filename(input.files[i].name)) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
return is_disallowed_svg_filename(input.value);
|
||||
}
|
||||
|
||||
function check_disallowed_svg_upload(form)
|
||||
{
|
||||
var invalid_file = null;
|
||||
|
||||
$(form).find("input[type=file]").each(function() {
|
||||
if (is_svg_upload_target(this) && has_disallowed_svg_file(this)) {
|
||||
invalid_file = this;
|
||||
return false;
|
||||
}
|
||||
});
|
||||
|
||||
if (!invalid_file) {
|
||||
return true;
|
||||
}
|
||||
|
||||
alert("허용되지 않는 파일 확장자입니다. (svg, svgz)");
|
||||
$(form).find("input:submit, button:submit, input:image").prop("disabled", false);
|
||||
invalid_file.focus();
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
// 자바스크립트로 PHP의 number_format 흉내를 냄
|
||||
// 숫자에 , 를 출력
|
||||
function number_format(data)
|
||||
@@ -728,6 +794,30 @@ function get_write_token(bo_table)
|
||||
}
|
||||
|
||||
$(function() {
|
||||
$(document).on("change", "input[type=file]", function() {
|
||||
if (!is_svg_upload_target(this) || !has_disallowed_svg_file(this)) {
|
||||
return true;
|
||||
}
|
||||
|
||||
alert("허용되지 않는 파일 확장자입니다. (svg, svgz)");
|
||||
this.value = "";
|
||||
|
||||
return false;
|
||||
});
|
||||
|
||||
if (document.addEventListener) {
|
||||
document.addEventListener("submit", function(event) {
|
||||
if (!check_disallowed_svg_upload(event.target)) {
|
||||
event.preventDefault();
|
||||
event.stopPropagation();
|
||||
}
|
||||
}, true);
|
||||
} else {
|
||||
$(document).on("submit", "form", function() {
|
||||
return check_disallowed_svg_upload(this);
|
||||
});
|
||||
}
|
||||
|
||||
$(document).on("click", "form[name=fwrite] input:submit, form[name=fwrite] button:submit, form[name=fwrite] input:image", function() {
|
||||
var f = this.form;
|
||||
|
||||
@@ -752,4 +842,4 @@ $(function() {
|
||||
|
||||
return true;
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
+114
-6
@@ -20,6 +20,13 @@ function get_microtime()
|
||||
}
|
||||
|
||||
|
||||
// 게시판/그룹 관리자 문맥을 제외하고 최고관리자 권한만 반환
|
||||
function get_super_admin_type($admin_type)
|
||||
{
|
||||
return $admin_type === 'super' ? 'super' : '';
|
||||
}
|
||||
|
||||
|
||||
// 한페이지에 보여줄 행, 현재페이지, 총페이지수, URL
|
||||
function get_paging($write_pages, $cur_page, $total_page, $url, $add="")
|
||||
{
|
||||
@@ -3241,6 +3248,90 @@ function add_javascript($javascript, $order=0)
|
||||
get_html_process_cls()->merge_javascript($javascript, $order);
|
||||
}
|
||||
|
||||
// 로컬 정적 자산 URL에 파일 수정시간을 버전으로 추가
|
||||
function get_versioned_asset_url($url)
|
||||
{
|
||||
if (!is_string($url) || $url === '' || !defined('G5_PATH') || G5_PATH === '') {
|
||||
return $url;
|
||||
}
|
||||
|
||||
$asset_url = preg_replace('/[?#].*$/', '', $url);
|
||||
$g5_url = defined('G5_URL') ? rtrim(G5_URL, '/') : '';
|
||||
$relative_path = '';
|
||||
|
||||
if ($g5_url !== '' && strpos($asset_url, $g5_url.'/') === 0) {
|
||||
$relative_path = substr($asset_url, strlen($g5_url) + 1);
|
||||
} else {
|
||||
if (preg_match('#^[a-z][a-z0-9+.-]*://#i', $asset_url) || strpos($asset_url, '//') === 0 || substr($asset_url, 0, 1) !== '/') {
|
||||
return $url;
|
||||
}
|
||||
|
||||
$g5_url_path = $g5_url !== '' ? parse_url($g5_url, PHP_URL_PATH) : '';
|
||||
$g5_url_path = rtrim((string) $g5_url_path, '/');
|
||||
|
||||
if ($g5_url_path !== '') {
|
||||
if (strpos($asset_url, $g5_url_path.'/') !== 0) {
|
||||
return $url;
|
||||
}
|
||||
|
||||
$relative_path = substr($asset_url, strlen($g5_url_path) + 1);
|
||||
} else {
|
||||
$relative_path = ltrim($asset_url, '/');
|
||||
}
|
||||
}
|
||||
|
||||
$relative_path = str_replace('\\', '/', rawurldecode($relative_path));
|
||||
if ($relative_path === '' || strpos($relative_path, "\0") !== false) {
|
||||
return $url;
|
||||
}
|
||||
|
||||
$root_path = @realpath(G5_PATH);
|
||||
$file_path = @realpath(G5_PATH.'/'.$relative_path);
|
||||
if ($root_path === false || $file_path === false || !is_file($file_path)) {
|
||||
return $url;
|
||||
}
|
||||
|
||||
$root_path = rtrim(str_replace('\\', '/', $root_path), '/');
|
||||
$file_path = str_replace('\\', '/', $file_path);
|
||||
if (strpos($file_path, $root_path.'/') !== 0) {
|
||||
return $url;
|
||||
}
|
||||
|
||||
$filetime = @filemtime($file_path);
|
||||
if ($filetime === false) {
|
||||
return $url;
|
||||
}
|
||||
|
||||
$fragment = '';
|
||||
$fragment_pos = strpos($url, '#');
|
||||
if ($fragment_pos !== false) {
|
||||
$fragment = substr($url, $fragment_pos);
|
||||
$url = substr($url, 0, $fragment_pos);
|
||||
}
|
||||
|
||||
if (preg_match('/([?&](?:amp;)?)ver=[^&#]*/i', $url)) {
|
||||
$url = preg_replace('/([?&](?:amp;)?)ver=[^&#]*/i', '${1}ver='.$filetime, $url, 1);
|
||||
} else {
|
||||
$url .= (strpos($url, '?') === false ? '?' : '&').'ver='.$filetime;
|
||||
}
|
||||
|
||||
return $url.$fragment;
|
||||
}
|
||||
|
||||
function _callback_version_asset_url($matches)
|
||||
{
|
||||
return $matches[1].get_versioned_asset_url($matches[2]).$matches[3];
|
||||
}
|
||||
|
||||
function add_filetime_version_to_html($html)
|
||||
{
|
||||
return preg_replace_callback(
|
||||
'~(<(?:script|link)\b[^>]*\b(?:src|href)\s*=\s*[\'"])([^\'"]+?\.(?:js|css)(?:[?#][^\'"]*)?)([\'"])~i',
|
||||
'_callback_version_asset_url',
|
||||
$html
|
||||
);
|
||||
}
|
||||
|
||||
class html_process {
|
||||
protected static $id = '0';
|
||||
private static $instances = array();
|
||||
@@ -3300,8 +3391,6 @@ class html_process {
|
||||
// 현재접속자 처리
|
||||
$tmp_sql = " select count(*) as cnt from {$g5['login_table']} where lo_ip = '{$_SERVER['REMOTE_ADDR']}' ";
|
||||
$tmp_row = sql_fetch($tmp_sql);
|
||||
$http_host = isset($_SERVER['HTTP_HOST']) ? $_SERVER['HTTP_HOST'] : $_SERVER['SERVER_NAME'];
|
||||
|
||||
if (!isset($member['mb_id'])) {
|
||||
$member['mb_id'] = '';
|
||||
}
|
||||
@@ -3342,7 +3431,7 @@ class html_process {
|
||||
if(!trim($link[1]))
|
||||
continue;
|
||||
|
||||
$link[1] = preg_replace('#\.css([\'\"]?>)$#i', '.css?ver='.G5_CSS_VER.'$1', $link[1]);
|
||||
$link[1] = add_filetime_version_to_html($link[1]);
|
||||
|
||||
$stylesheet .= PHP_EOL.$link[1];
|
||||
}
|
||||
@@ -3369,9 +3458,8 @@ class html_process {
|
||||
foreach($scripts as $js) {
|
||||
if(!trim($js[1]))
|
||||
continue;
|
||||
|
||||
$add_version_str = (stripos($js[1], $http_host) !== false) ? '?ver='.G5_JS_VER : '';
|
||||
$js[1] = preg_replace('#\.js([\'\"]?>)<\/script>$#i', '.js'.$add_version_str.'$1</script>', $js[1]);
|
||||
|
||||
$js[1] = add_filetime_version_to_html($js[1]);
|
||||
|
||||
$javascript .= $php_eol.$js[1];
|
||||
$php_eol = PHP_EOL;
|
||||
@@ -4004,6 +4092,26 @@ function get_safe_filename($name)
|
||||
return $name;
|
||||
}
|
||||
|
||||
// 업로드 파일명이 SVG 또는 SVGZ 확장자인지 확인
|
||||
function is_disallowed_svg_filename($filename)
|
||||
{
|
||||
if (!is_string($filename) || $filename === '') {
|
||||
return false;
|
||||
}
|
||||
|
||||
$filename = str_replace(array("\0", '\\'), array('', '/'), $filename);
|
||||
$filename = basename($filename);
|
||||
$filename = rtrim($filename, " .\t\n\r\0\x0B");
|
||||
|
||||
if ($filename === '') {
|
||||
return false;
|
||||
}
|
||||
|
||||
$extension = strtolower(pathinfo($filename, PATHINFO_EXTENSION));
|
||||
|
||||
return in_array($extension, array('svg', 'svgz'), true);
|
||||
}
|
||||
|
||||
// 파일명 치환
|
||||
function replace_filename($name)
|
||||
{
|
||||
|
||||
+41
-1
@@ -26,6 +26,46 @@ function get_shop_uid($type, $id, $time, $ip)
|
||||
return hash_hmac('sha256', $payload, $key);
|
||||
}
|
||||
|
||||
/**
|
||||
* 상품 목록 정렬 요청을 허용된 DB 컬럼과 방향으로 변환한다.
|
||||
*
|
||||
* @param mixed $sort 외부 정렬 키
|
||||
* @param mixed $sortodr 외부 정렬 방향
|
||||
* @return array 검증된 정렬 컬럼과 방향. 잘못된 입력이면 모두 빈 문자열
|
||||
*/
|
||||
function get_shop_item_sort($sort, $sortodr)
|
||||
{
|
||||
$sort_columns = array(
|
||||
'it_name' => 'it_name',
|
||||
'it_sum_qty' => 'it_sum_qty',
|
||||
'it_price' => 'it_price',
|
||||
'it_use_avg' => 'it_use_avg',
|
||||
'it_use_cnt' => 'it_use_cnt',
|
||||
'it_update_time' => 'it_update_time',
|
||||
);
|
||||
|
||||
if (!is_string($sort) || !isset($sort_columns[$sort])) {
|
||||
return array('', '');
|
||||
}
|
||||
|
||||
if (!is_string($sortodr)) {
|
||||
return array('', '');
|
||||
}
|
||||
|
||||
$sortodr = strtolower($sortodr);
|
||||
if (!in_array($sortodr, array('asc', 'desc'), true)) {
|
||||
return array('', '');
|
||||
}
|
||||
|
||||
return array($sort_columns[$sort], $sortodr);
|
||||
}
|
||||
|
||||
// 쇼핑몰 리소스 소유자 또는 최고관리자인지 확인
|
||||
function is_shop_resource_owner_or_super_admin($owner_id, $member_id, $admin_type)
|
||||
{
|
||||
return $admin_type === 'super' || ($member_id !== '' && $owner_id === $member_id);
|
||||
}
|
||||
|
||||
/**
|
||||
* 현금영수증 발급 또는 조회에 대한 검증
|
||||
*
|
||||
@@ -2094,7 +2134,7 @@ function check_itemuse_write($it_id, $mb_id, $close=true)
|
||||
{
|
||||
global $g5, $default, $is_admin;
|
||||
|
||||
if(!$is_admin && $default['de_item_use_write'])
|
||||
if($is_admin !== 'super' && $default['de_item_use_write'])
|
||||
{
|
||||
$sql = " select count(*) as cnt
|
||||
from {$g5['g5_shop_cart_table']}
|
||||
|
||||
+9
-15
@@ -1,20 +1,14 @@
|
||||
<?php
|
||||
include_once('../../common.php');
|
||||
|
||||
// SQL 주석 토큰 차단 추가 — 데스크톱 shop/_common.php 와 동일 패턴
|
||||
if (isset($_REQUEST['sort']) && !preg_match("/(--|#|\/\*|\*\/)/", $_REQUEST['sort'])) {
|
||||
$sort = trim($_REQUEST['sort']);
|
||||
$sort = preg_replace("/[\<\>\'\"\\\'\\\"\%\=\(\)\s]/", "", $sort);
|
||||
} else {
|
||||
$sort = '';
|
||||
}
|
||||
|
||||
if (isset($_REQUEST['sortodr'])) {
|
||||
$sortodr = preg_match("/^(asc|desc)$/i", $sortodr) ? $sortodr : '';
|
||||
} else {
|
||||
$sortodr = '';
|
||||
}
|
||||
|
||||
if (!defined('G5_USE_SHOP') || !G5_USE_SHOP)
|
||||
die('<p>쇼핑몰 설치 후 이용해 주십시오.</p>');
|
||||
define('_SHOP_', true);
|
||||
|
||||
$is_admin = get_super_admin_type($is_admin);
|
||||
|
||||
$request_sort = (isset($_REQUEST['sort']) && is_string($_REQUEST['sort'])) ? $_REQUEST['sort'] : '';
|
||||
$request_sortodr = (isset($_REQUEST['sortodr']) && is_string($_REQUEST['sortodr'])) ? $_REQUEST['sortodr'] : '';
|
||||
list($sort, $sortodr) = get_shop_item_sort($request_sort, $request_sortodr);
|
||||
unset($request_sort, $request_sortodr);
|
||||
|
||||
define('_SHOP_', true);
|
||||
|
||||
@@ -36,8 +36,8 @@ $result = sql_query($sql);
|
||||
$cart_count = sql_num_rows($result);
|
||||
?>
|
||||
|
||||
<script src="<?php echo G5_JS_URL; ?>/shop.js?ver=<?php echo G5_JS_VER; ?>"></script>
|
||||
<script src="<?php echo G5_JS_URL; ?>/shop.override.js?ver=<?php echo G5_JS_VER; ?>"></script>
|
||||
<script src="<?php echo get_versioned_asset_url(G5_JS_URL.'/shop.js'); ?>"></script>
|
||||
<script src="<?php echo get_versioned_asset_url(G5_JS_URL.'/shop.override.js'); ?>"></script>
|
||||
|
||||
<div id="sod_bsk">
|
||||
|
||||
|
||||
@@ -93,4 +93,4 @@ echo '<div id="sev_thtml">'.conv_content($ev['ev_tail_html'], 1).'</div>';
|
||||
</div>
|
||||
|
||||
<?php
|
||||
include_once(G5_MSHOP_PATH.'/_tail.php');
|
||||
include_once(G5_MSHOP_PATH.'/_tail.php');
|
||||
|
||||
@@ -203,7 +203,7 @@ echo run_replace('shop_it_mobile_head_html', '<div id="sit_hhtml">'.conv_content
|
||||
?>
|
||||
|
||||
<?php if($is_orderable) { ?>
|
||||
<script src="<?php echo G5_JS_URL; ?>/shop.js?ver=<?php echo G5_JS_VER; ?>"></script>
|
||||
<script src="<?php echo get_versioned_asset_url(G5_JS_URL.'/shop.js'); ?>"></script>
|
||||
<?php } ?>
|
||||
|
||||
<?php
|
||||
|
||||
@@ -31,7 +31,7 @@ if ($w == "u")
|
||||
|
||||
$it_id = $qa['it_id'];
|
||||
|
||||
if (!$is_admin && $qa['mb_id'] != $member['mb_id']) {
|
||||
if (!is_shop_resource_owner_or_super_admin($qa['mb_id'], $member['mb_id'], $is_admin)) {
|
||||
alert_close("자신의 상품문의만 수정이 가능합니다.");
|
||||
}
|
||||
|
||||
@@ -59,4 +59,4 @@ if(!file_exists($itemqaform_skin)) {
|
||||
include_once($itemqaform_skin);
|
||||
}
|
||||
|
||||
include_once(G5_PATH.'/tail.sub.php');
|
||||
include_once(G5_PATH.'/tail.sub.php');
|
||||
|
||||
@@ -29,7 +29,7 @@ if ($w == "") {
|
||||
$it_id = $use['it_id'];
|
||||
$is_score = $use['is_score'];
|
||||
|
||||
if (!$is_admin && $use['mb_id'] != $member['mb_id']) {
|
||||
if (!is_shop_resource_owner_or_super_admin($use['mb_id'], $member['mb_id'], $is_admin)) {
|
||||
alert_close("자신의 사용후기만 수정이 가능합니다.");
|
||||
}
|
||||
}
|
||||
@@ -54,4 +54,4 @@ if(!file_exists($itemuseform_skin)) {
|
||||
include_once($itemuseform_skin);
|
||||
}
|
||||
|
||||
include_once(G5_PATH.'/tail.sub.php');
|
||||
include_once(G5_PATH.'/tail.sub.php');
|
||||
|
||||
@@ -168,9 +168,10 @@
|
||||
{
|
||||
if (strtoupper(substr(PHP_OS, 0, 3)) === 'WIN')
|
||||
{
|
||||
$bin_exe = $home_dir.'/bin/pp_cli_exe ';
|
||||
// 실행 파일 경로와 인자를 분리하여 mf_exec 호출 → escapeshellarg 자동 적용
|
||||
$bin_exe = $home_dir.'/bin/pp_cli_exe';
|
||||
|
||||
$res_data = $this->mf_exec($bin_exe . "\"".
|
||||
$res_data = $this->mf_exec($bin_exe,
|
||||
"site_cd=" . $site_cd . "," .
|
||||
"site_key=" . $site_key . "," .
|
||||
"tx_cd=" . $tx_cd . "," .
|
||||
@@ -188,8 +189,7 @@
|
||||
$ordr_data .
|
||||
$rcvr_data .
|
||||
$escw_data .
|
||||
$modx_data .
|
||||
"\"") ;
|
||||
$modx_data) ;
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -276,21 +276,27 @@
|
||||
return $my_data;
|
||||
}
|
||||
|
||||
function mf_exec()
|
||||
function mf_build_exec_cmd( $arg )
|
||||
{
|
||||
$arg = func_get_args();
|
||||
|
||||
if ( is_array( $arg[0] ) ) $arg = $arg[0];
|
||||
|
||||
$exec_cmd = array_shift( $arg );
|
||||
|
||||
foreach($arg as $i)
|
||||
foreach((array) $arg as $key=>$i)
|
||||
{
|
||||
$exec_cmd .= " " . escapeshellarg( $i );
|
||||
}
|
||||
|
||||
return $exec_cmd;
|
||||
}
|
||||
|
||||
function mf_exec()
|
||||
{
|
||||
$arg = func_get_args();
|
||||
$exec_cmd = $this->mf_build_exec_cmd( $arg );
|
||||
|
||||
$rt = exec( $exec_cmd );
|
||||
|
||||
return $rt;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -11,11 +11,6 @@ if(defined('G5_THEME_MSHOP_PATH')) {
|
||||
unset($theme_list_file);
|
||||
}
|
||||
|
||||
// 상품 리스트에서 다른 필드로 정렬을 하려면 아래의 배열 코드에서 해당 필드를 추가하세요.
|
||||
if( isset($sort) && ! in_array($sort, array('it_name', 'it_sum_qty', 'it_price', 'it_use_avg', 'it_use_cnt', 'it_update_time')) ){
|
||||
$sort='';
|
||||
}
|
||||
|
||||
$sql = " select *
|
||||
from {$g5['g5_shop_category_table']}
|
||||
where ca_id = '$ca_id'
|
||||
@@ -200,4 +195,4 @@ var g5_shop_url = "<?php echo G5_SHOP_URL; ?>";
|
||||
<?php
|
||||
include_once(G5_MSHOP_PATH.'/_tail.php');
|
||||
|
||||
echo "\n<!-- {$ca['ca_mobile_skin']} -->\n";
|
||||
echo "\n<!-- {$ca['ca_mobile_skin']} -->\n";
|
||||
|
||||
@@ -1,9 +1,6 @@
|
||||
<?php
|
||||
include_once('./_common.php');
|
||||
|
||||
// 상품 정렬 컬럼 화이트리스트 — 데스크톱 shop/listtype.php 와 동일 패턴
|
||||
$sort = (isset($_REQUEST['sort']) && in_array($_REQUEST['sort'], array('it_name', 'it_sum_qty', 'it_price', 'it_use_avg', 'it_use_cnt', 'it_update_time'))) ? $_REQUEST['sort'] : '';
|
||||
|
||||
$type = isset($_REQUEST['type']) ? (int) preg_replace("/[^0-9]/", "", $_REQUEST['type']) : 1;
|
||||
if ($type === 1) $g5['title'] = '히트상품';
|
||||
else if ($type === 2) $g5['title'] = '추천상품';
|
||||
@@ -78,4 +75,4 @@ echo get_paging($config['cf_mobile_pages'], $page, $total_page, "{$_SERVER['SCRI
|
||||
?>
|
||||
|
||||
<?php
|
||||
include_once(G5_MSHOP_PATH.'/_tail.php');
|
||||
include_once(G5_MSHOP_PATH.'/_tail.php');
|
||||
|
||||
@@ -4,7 +4,7 @@ if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가
|
||||
// add_stylesheet('css 구문', 출력순서); 숫자가 작을 수록 먼저 출력됨
|
||||
add_stylesheet('<link rel="stylesheet" href="' . $member_skin_url . '/style.css">', 0);
|
||||
if ($config['cf_cert_use'] && ($config['cf_cert_simple'] || $config['cf_cert_ipin'] || $config['cf_cert_hp']))
|
||||
add_javascript('<script src="'.G5_JS_URL.'/certify.js?v='.G5_JS_VER.'"></script>', 0);
|
||||
add_javascript('<script src="'.G5_JS_URL.'/certify.js"></script>', 0);
|
||||
?>
|
||||
<!-- 기존 회원 본인인증 시작 { -->
|
||||
<div class="member_cert_refresh">
|
||||
|
||||
@@ -5,7 +5,7 @@ if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가
|
||||
add_stylesheet('<link rel="stylesheet" href="'.$member_skin_url.'/style.css">', 0);
|
||||
|
||||
if($config['cf_cert_use'] && ($config['cf_cert_simple'] || $config['cf_cert_ipin'] || $config['cf_cert_hp'])) { ?>
|
||||
<script src="<?php echo G5_JS_URL ?>/certify.js?v=<?php echo G5_JS_VER; ?>"></script>
|
||||
<script src="<?php echo get_versioned_asset_url(G5_JS_URL.'/certify.js'); ?>"></script>
|
||||
<?php } ?>
|
||||
|
||||
<!-- 회원정보 찾기 시작 { -->
|
||||
|
||||
@@ -5,7 +5,7 @@ if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가
|
||||
add_stylesheet('<link rel="stylesheet" href="'.$member_skin_url.'/style.css">', 0);
|
||||
add_javascript('<script src="'.G5_JS_URL.'/jquery.register_form.js"></script>', 0);
|
||||
if ($config['cf_cert_use'] && ($config['cf_cert_simple'] || $config['cf_cert_ipin'] || $config['cf_cert_hp']))
|
||||
add_javascript('<script src="'.G5_JS_URL.'/certify.js?v='.G5_JS_VER.'"></script>', 0);
|
||||
add_javascript('<script src="'.G5_JS_URL.'/certify.js"></script>', 0);
|
||||
?>
|
||||
|
||||
<div class="register">
|
||||
|
||||
@@ -4,7 +4,7 @@ if (!defined("_GNUBOARD_")) exit; // 개별 페이지 접근 불가
|
||||
|
||||
<section id="bo_v_ans">
|
||||
<?php
|
||||
if($is_admin) // 관리자이면 답변등록
|
||||
if($is_admin === 'super') // 최고관리자이면 답변등록
|
||||
{
|
||||
?>
|
||||
<h2>답변등록</h2>
|
||||
@@ -151,4 +151,4 @@ if (!defined("_GNUBOARD_")) exit; // 개별 페이지 접근 불가
|
||||
<?php
|
||||
}
|
||||
?>
|
||||
</section>
|
||||
</section>
|
||||
|
||||
@@ -11,7 +11,7 @@ add_javascript('<script src="'.G5_JS_URL.'/jquery.bxslider.js"></script>', 10);
|
||||
<script>
|
||||
var kakao_javascript_apikey = "<?php echo $config['cf_kakao_js_apikey']; ?>";
|
||||
</script>
|
||||
<script src="<?php echo G5_JS_URL; ?>/kakaolink.js?ver=<?php echo G5_JS_VER; ?>"></script>
|
||||
<script src="<?php echo get_versioned_asset_url(G5_JS_URL.'/kakaolink.js'); ?>"></script>
|
||||
<?php } ?>
|
||||
|
||||
<form name="fitem" action="<?php echo $action_url; ?>" method="post" onsubmit="return fitem_submit(this);">
|
||||
|
||||
@@ -27,7 +27,7 @@ add_stylesheet('<link rel="stylesheet" href="'.G5_MSHOP_SKIN_URL.'/style.css">',
|
||||
if($row['iq_secret']) {
|
||||
$iq_subject .= ' <img src="'.G5_MSHOP_SKIN_URL.'/img/icon_secret.gif" alt="비밀글">';
|
||||
|
||||
if($is_admin || $member['mb_id' ] == $row['mb_id']) {
|
||||
if(is_shop_resource_owner_or_super_admin($row['mb_id'], $member['mb_id'], $is_admin)) {
|
||||
$iq_question = get_view_thumbnail(conv_content($row['iq_question'], 1), $thumbnail_width);
|
||||
} else {
|
||||
$iq_question = '비밀글로 보호된 문의입니다.';
|
||||
@@ -87,7 +87,7 @@ add_stylesheet('<link rel="stylesheet" href="'.G5_MSHOP_SKIN_URL.'/style.css">',
|
||||
<?php } ?>
|
||||
</div>
|
||||
|
||||
<?php if ($is_admin || ($row['mb_id'] == $member['mb_id'] && !$is_answer)) { ?>
|
||||
<?php if ($is_admin === 'super' || ($row['mb_id'] == $member['mb_id'] && !$is_answer)) { ?>
|
||||
<div class="sit_qa_cmd">
|
||||
<a href="<?php echo $itemqa_form."&iq_id={$row['iq_id']}&w=u"; ?>" class="itemqa_form btn01" onclick="return false;">수정</a>
|
||||
<a href="<?php echo $itemqa_formupdate."&iq_id={$row['iq_id']}&w=d&hash={$hash}"; ?>" class="itemqa_delete btn01">삭제</a>
|
||||
@@ -148,4 +148,4 @@ $(function(){
|
||||
});
|
||||
});
|
||||
</script>
|
||||
<!-- } 상품문의 목록 끝 -->
|
||||
<!-- } 상품문의 목록 끝 -->
|
||||
|
||||
@@ -46,7 +46,7 @@ add_stylesheet('<link rel="stylesheet" href="'.G5_MSHOP_SKIN_URL.'/style.css">',
|
||||
if($row['iq_secret']) {
|
||||
$iq_subject .= ' <i class="fa fa-lock" aria-hidden="true"></i>';
|
||||
|
||||
if($is_admin || $member['mb_id' ] == $row['mb_id']) {
|
||||
if(is_shop_resource_owner_or_super_admin($row['mb_id'], $member['mb_id'], $is_admin)) {
|
||||
$iq_question = get_view_thumbnail(conv_content($row['iq_question'], 1), $thumbnail_width);
|
||||
} else {
|
||||
$iq_question = '비밀글로 보호된 문의입니다.';
|
||||
@@ -141,4 +141,4 @@ $(function(){
|
||||
});
|
||||
});
|
||||
</script>
|
||||
<!-- } 전체 상품 사용후기 목록 끝 -->
|
||||
<!-- } 전체 상품 사용후기 목록 끝 -->
|
||||
|
||||
@@ -52,7 +52,7 @@ add_stylesheet('<link rel="stylesheet" href="'.G5_MSHOP_SKIN_URL.'/style.css">',
|
||||
<?php echo $is_content; // 사용후기 내용 ?>
|
||||
</div>
|
||||
|
||||
<?php if ($is_admin || $row['mb_id'] == $member['mb_id']) { ?>
|
||||
<?php if (is_shop_resource_owner_or_super_admin($row['mb_id'], $member['mb_id'], $is_admin)) { ?>
|
||||
<div class="sit_use_cmd">
|
||||
<a href="<?php echo $itemuse_form."&is_id={$row['is_id']}&w=u"; ?>" class="itemuse_form btn01" onclick="return false;">수정</a>
|
||||
<a href="<?php echo $itemuse_formupdate."&is_id={$row['is_id']}&w=d&hash={$hash}"; ?>" class="itemuse_delete btn01">삭제</a>
|
||||
@@ -130,4 +130,4 @@ $(function(){
|
||||
});
|
||||
});
|
||||
</script>
|
||||
<!-- } 상품 사용후기 끝 -->
|
||||
<!-- } 상품 사용후기 끝 -->
|
||||
|
||||
@@ -13,7 +13,7 @@ add_javascript('<script src="'.G5_JS_URL.'/shop.list.action.js"></script>', 10);
|
||||
<script>
|
||||
var kakao_javascript_apikey = "<?php echo $config['cf_kakao_js_apikey']; ?>";
|
||||
</script>
|
||||
<script src="<?php echo G5_JS_URL; ?>/kakaolink.js?ver=<?php echo G5_JS_VER; ?>"></script>
|
||||
<script src="<?php echo get_versioned_asset_url(G5_JS_URL.'/kakaolink.js'); ?>"></script>
|
||||
<?php } ?>
|
||||
|
||||
<!-- 메인상품진열 10 시작 { -->
|
||||
|
||||
@@ -13,7 +13,7 @@ add_javascript('<script src="'.G5_JS_URL.'/shop.list.action.js"></script>', 10);
|
||||
<script>
|
||||
var kakao_javascript_apikey = "<?php echo $config['cf_kakao_js_apikey']; ?>";
|
||||
</script>
|
||||
<script src="<?php echo G5_JS_URL; ?>/kakaolink.js?ver=<?php echo G5_JS_VER; ?>"></script>
|
||||
<script src="<?php echo get_versioned_asset_url(G5_JS_URL.'/kakaolink.js'); ?>"></script>
|
||||
<?php } ?>
|
||||
|
||||
<!-- 메인상품진열 10 시작 { -->
|
||||
|
||||
@@ -14,7 +14,7 @@ add_javascript('<script src="'.G5_JS_URL.'/shop.list.action.js"></script>', 10);
|
||||
<script>
|
||||
var kakao_javascript_apikey = "<?php echo $config['cf_kakao_js_apikey']; ?>";
|
||||
</script>
|
||||
<script src="<?php echo G5_JS_URL; ?>/kakaolink.js?ver=<?php echo G5_JS_VER; ?>"></script>
|
||||
<script src="<?php echo get_versioned_asset_url(G5_JS_URL.'/kakaolink.js'); ?>"></script>
|
||||
<?php } ?>
|
||||
|
||||
<!-- 메인상품진열 20 시작 { -->
|
||||
|
||||
@@ -14,7 +14,7 @@ add_javascript('<script src="'.G5_JS_URL.'/shop.list.action.js"></script>', 10);
|
||||
<script>
|
||||
var kakao_javascript_apikey = "<?php echo $config['cf_kakao_js_apikey']; ?>";
|
||||
</script>
|
||||
<script src="<?php echo G5_JS_URL; ?>/kakaolink.js?ver=<?php echo G5_JS_VER; ?>"></script>
|
||||
<script src="<?php echo get_versioned_asset_url(G5_JS_URL.'/kakaolink.js'); ?>"></script>
|
||||
<?php } ?>
|
||||
<div class="st_30_wr">
|
||||
<!-- 메인상품진열 30 시작 { -->
|
||||
|
||||
@@ -11,7 +11,7 @@ add_stylesheet('<link rel="stylesheet" href="'.G5_MSHOP_SKIN_URL.'/style.css">',
|
||||
<script>
|
||||
var kakao_javascript_apikey = "<?php echo $config['cf_kakao_js_apikey']; ?>";
|
||||
</script>
|
||||
<script src="<?php echo G5_JS_URL; ?>/kakaolink.js?ver=<?php echo G5_JS_VER; ?>"></script>
|
||||
<script src="<?php echo get_versioned_asset_url(G5_JS_URL.'/kakaolink.js'); ?>"></script>
|
||||
<?php } ?>
|
||||
|
||||
<!-- 상품진열 10 시작 { -->
|
||||
|
||||
@@ -14,7 +14,7 @@ if( G5_SOCIAL_USE_POPUP ) {
|
||||
$self_url = G5_SOCIAL_LOGIN_URL.'/popup.php';
|
||||
}
|
||||
|
||||
add_stylesheet('<link rel="stylesheet" href="'.get_social_skin_url().'/style.css?ver='.G5_CSS_VER.'">', 10);
|
||||
add_stylesheet('<link rel="stylesheet" href="'.get_social_skin_url().'/style.css">', 10);
|
||||
?>
|
||||
|
||||
<div class="login-sns sns-wrap-32 sns-wrap-over" id="sns_login">
|
||||
|
||||
@@ -14,7 +14,7 @@ if( G5_SOCIAL_USE_POPUP ) {
|
||||
$self_url = G5_SOCIAL_LOGIN_URL.'/popup.php';
|
||||
}
|
||||
|
||||
add_stylesheet('<link rel="stylesheet" href="'.get_social_skin_url().'/style.css?ver='.G5_CSS_VER.'">', 10);
|
||||
add_stylesheet('<link rel="stylesheet" href="'.get_social_skin_url().'/style.css">', 10);
|
||||
?>
|
||||
|
||||
<div class="login-sns sns-wrap-32 sns-wrap-over" id="sns_outlogin">
|
||||
|
||||
@@ -15,7 +15,7 @@ if( G5_SOCIAL_USE_POPUP ) {
|
||||
}
|
||||
|
||||
// add_stylesheet('css 구문', 출력순서); 숫자가 작을 수록 먼저 출력됨
|
||||
add_stylesheet('<link rel="stylesheet" href="'.get_social_skin_url().'/style.css?ver='.G5_CSS_VER.'">', 10);
|
||||
add_stylesheet('<link rel="stylesheet" href="'.get_social_skin_url().'/style.css">', 10);
|
||||
?>
|
||||
<div>
|
||||
<div class="login-sns sns-wrap-32 sns-wrap-over" id="sns_register">
|
||||
|
||||
@@ -8,11 +8,11 @@ if (!$config['cf_social_login_use']) { //소셜 로그인을 사용하지
|
||||
// add_stylesheet('css 구문', 출력순서); 숫자가 작을 수록 먼저 출력됨
|
||||
add_stylesheet('<link rel="stylesheet" href="'.G5_JS_URL.'/remodal/remodal.css">', 11);
|
||||
add_stylesheet('<link rel="stylesheet" href="'.G5_JS_URL.'/remodal/remodal-default-theme.css">', 12);
|
||||
add_stylesheet('<link rel="stylesheet" href="'.get_social_skin_url().'/style.css?ver='.G5_CSS_VER.'">', 13);
|
||||
add_stylesheet('<link rel="stylesheet" href="'.get_social_skin_url().'/style.css">', 13);
|
||||
add_javascript('<script src="'.G5_JS_URL.'/remodal/remodal.js"></script>', 10);
|
||||
add_javascript('<script src="<?php echo G5_JS_URL ?>/jquery.register_form.js"></script>', 14);
|
||||
if ($config['cf_cert_use'] && ($config['cf_cert_simple'] || $config['cf_cert_ipin'] || $config['cf_cert_hp']))
|
||||
add_javascript('<script src="'.G5_JS_URL.'/certify.js?v='.G5_JS_VER.'"></script>', 15);
|
||||
add_javascript('<script src="'.G5_JS_URL.'/certify.js"></script>', 15);
|
||||
|
||||
$email_msg = $is_exists_email ? '등록할 이메일이 중복되었습니다.다른 이메일을 입력해 주세요.' : '';
|
||||
?>
|
||||
|
||||
@@ -9,7 +9,7 @@ $socials = social_get_provider_service_name('', 'all');
|
||||
|
||||
$session_id = session_id();
|
||||
|
||||
add_stylesheet('<link rel="stylesheet" href="'.get_social_skin_url().'/style.css?ver='.G5_CSS_VER.'">', 10);
|
||||
add_stylesheet('<link rel="stylesheet" href="'.get_social_skin_url().'/style.css">', 10);
|
||||
?>
|
||||
|
||||
<li>
|
||||
|
||||
@@ -25,7 +25,7 @@ $bo_v_sns_class = $config['cf_kakao_js_apikey'] ? 'show_kakao' : '';
|
||||
|
||||
<?php if($config['cf_kakao_js_apikey']) { ?>
|
||||
<script src="//developers.kakao.com/sdk/js/kakao.min.js" async charset="utf-8"></script>
|
||||
<script src="<?php echo G5_JS_URL; ?>/kakaolink.js?ver=<?php echo G5_JS_VER; ?>" charset="utf-8"></script>
|
||||
<script src="<?php echo get_versioned_asset_url(G5_JS_URL.'/kakaolink.js'); ?>" charset="utf-8"></script>
|
||||
<script type='text/javascript'>
|
||||
//<![CDATA[
|
||||
var kakao_javascript_apikey = "<?php echo $config['cf_kakao_js_apikey']; ?>";
|
||||
|
||||
+8
-14
@@ -1,22 +1,16 @@
|
||||
<?php
|
||||
include_once('../common.php');
|
||||
|
||||
if (isset($_REQUEST['sort']) && !preg_match("/(--|#|\/\*|\*\/)/", $_REQUEST['sort'])) {
|
||||
$sort = trim($_REQUEST['sort']);
|
||||
$sort = preg_replace("/[\<\>\'\"\\\'\\\"\%\=\(\)\s]/", "", $sort);
|
||||
} else {
|
||||
$sort = '';
|
||||
}
|
||||
|
||||
if (isset($_REQUEST['sortodr'])) {
|
||||
$sortodr = preg_match("/^(asc|desc)$/i", $sortodr) ? $sortodr : '';
|
||||
} else {
|
||||
$sortodr = '';
|
||||
}
|
||||
|
||||
if (!defined('G5_USE_SHOP') || !G5_USE_SHOP)
|
||||
die('<p>쇼핑몰 설치 후 이용해 주십시오.</p>');
|
||||
|
||||
$is_admin = get_super_admin_type($is_admin);
|
||||
|
||||
$request_sort = (isset($_REQUEST['sort']) && is_string($_REQUEST['sort'])) ? $_REQUEST['sort'] : '';
|
||||
$request_sortodr = (isset($_REQUEST['sortodr']) && is_string($_REQUEST['sortodr'])) ? $_REQUEST['sortodr'] : '';
|
||||
list($sort, $sortodr) = get_shop_item_sort($request_sort, $request_sortodr);
|
||||
unset($request_sort, $request_sortodr);
|
||||
|
||||
define('_SHOP_', true);
|
||||
define('_SHOP_COMMON_', true); // 모바일 페이지의 직접 접근을 막는 경우에 사용
|
||||
?>
|
||||
?>
|
||||
|
||||
+2
-2
@@ -42,8 +42,8 @@ include_once('./_head.php');
|
||||
?>
|
||||
|
||||
<!-- 장바구니 시작 { -->
|
||||
<script src="<?php echo G5_JS_URL; ?>/shop.js?ver=<?php echo G5_JS_VER; ?>"></script>
|
||||
<script src="<?php echo G5_JS_URL; ?>/shop.override.js?ver=<?php echo G5_JS_VER; ?>"></script>
|
||||
<script src="<?php echo get_versioned_asset_url(G5_JS_URL.'/shop.js'); ?>"></script>
|
||||
<script src="<?php echo get_versioned_asset_url(G5_JS_URL.'/shop.override.js'); ?>"></script>
|
||||
|
||||
<div id="sod_bsk" class="od_prd_list">
|
||||
|
||||
|
||||
+1
-6
@@ -5,11 +5,6 @@ $ev_id = isset($_GET['ev_id']) ? (int) $_GET['ev_id'] : 0;
|
||||
$skin = isset($_GET['skin']) ? clean_xss_tags($_GET['skin'], 1, 1) : '';
|
||||
$ca_id = isset($_GET['ca_id']) ? clean_xss_tags($_GET['ca_id'], 1, 1) : '';
|
||||
|
||||
// 상품 리스트에서 다른 필드로 정렬을 하려면 아래의 배열 코드에서 해당 필드를 추가하세요.
|
||||
if( isset($sort) && ! in_array($sort, array('it_name', 'it_sum_qty', 'it_price', 'it_use_avg', 'it_use_cnt', 'it_update_time')) ){
|
||||
$sort='';
|
||||
}
|
||||
|
||||
if (G5_IS_MOBILE) {
|
||||
include_once(G5_MSHOP_PATH.'/event.php');
|
||||
return;
|
||||
@@ -117,4 +112,4 @@ if (file_exists($timg))
|
||||
<!-- } 이벤트 끝 -->
|
||||
|
||||
<?php
|
||||
include_once('./_tail.php');
|
||||
include_once('./_tail.php');
|
||||
|
||||
+1
-1
@@ -255,7 +255,7 @@ include_once(G5_SHOP_PATH.'/settle_naverpay.inc.php');
|
||||
?>
|
||||
|
||||
<?php if($is_orderable) { ?>
|
||||
<script src="<?php echo G5_JS_URL; ?>/shop.js?ver=<?php echo G5_JS_VER; ?>"></script>
|
||||
<script src="<?php echo get_versioned_asset_url(G5_JS_URL.'/shop.js'); ?>"></script>
|
||||
<?php } ?>
|
||||
|
||||
<div id="sit">
|
||||
|
||||
+2
-2
@@ -38,7 +38,7 @@ if ($w == "u")
|
||||
|
||||
$it_id = $qa['it_id'];
|
||||
|
||||
if (!$is_admin && $qa['mb_id'] != $member['mb_id']) {
|
||||
if (!is_shop_resource_owner_or_super_admin($qa['mb_id'], $member['mb_id'], $is_admin)) {
|
||||
alert_close("자신의 상품문의만 수정이 가능합니다.");
|
||||
}
|
||||
|
||||
@@ -66,4 +66,4 @@ if(!file_exists($itemqaform_skin)) {
|
||||
include_once($itemqaform_skin);
|
||||
}
|
||||
|
||||
include_once(G5_PATH.'/tail.sub.php');
|
||||
include_once(G5_PATH.'/tail.sub.php');
|
||||
|
||||
@@ -37,7 +37,7 @@ if ($w == "") {
|
||||
$it_id = $use['it_id'];
|
||||
$is_score = $use['is_score'];
|
||||
|
||||
if (!$is_admin && $use['mb_id'] != $member['mb_id']) {
|
||||
if (!is_shop_resource_owner_or_super_admin($use['mb_id'], $member['mb_id'], $is_admin)) {
|
||||
alert_close("자신의 사용후기만 수정이 가능합니다.");
|
||||
}
|
||||
}
|
||||
@@ -62,4 +62,4 @@ if(!file_exists($itemuseform_skin)) {
|
||||
include_once($itemuseform_skin);
|
||||
}
|
||||
|
||||
include_once(G5_PATH.'/tail.sub.php');
|
||||
include_once(G5_PATH.'/tail.sub.php');
|
||||
|
||||
@@ -168,7 +168,7 @@
|
||||
{
|
||||
if (strtoupper(substr(PHP_OS, 0, 3)) === 'WIN')
|
||||
{
|
||||
// 실행 파일 경로와 인자를 분리하여 mf_exec 호출 → escapeshellarg 자동 적용 (KVE-2026-0859)
|
||||
// 실행 파일 경로와 인자를 분리하여 mf_exec 호출 → escapeshellarg 자동 적용
|
||||
$bin_exe = $home_dir.'/bin/pp_cli_exe';
|
||||
|
||||
$res_data = $this->mf_exec($bin_exe,
|
||||
@@ -276,10 +276,8 @@
|
||||
return $my_data;
|
||||
}
|
||||
|
||||
function mf_exec()
|
||||
function mf_build_exec_cmd( $arg )
|
||||
{
|
||||
$arg = func_get_args();
|
||||
|
||||
if ( is_array( $arg[0] ) ) $arg = $arg[0];
|
||||
|
||||
$exec_cmd = array_shift( $arg );
|
||||
@@ -289,8 +287,16 @@
|
||||
$exec_cmd .= " " . escapeshellarg( $i );
|
||||
}
|
||||
|
||||
return $exec_cmd;
|
||||
}
|
||||
|
||||
function mf_exec()
|
||||
{
|
||||
$arg = func_get_args();
|
||||
$exec_cmd = $this->mf_build_exec_cmd( $arg );
|
||||
|
||||
$rt = exec( $exec_cmd );
|
||||
|
||||
return $rt;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+1
-9
@@ -4,14 +4,6 @@ include_once('./_common.php');
|
||||
$ca_id = isset($_REQUEST['ca_id']) ? safe_replace_regex($_REQUEST['ca_id'], 'ca_id') : '';
|
||||
$skin = isset($_REQUEST['skin']) ? safe_replace_regex($_REQUEST['skin'], 'skin') : '';
|
||||
|
||||
// 상품 리스트에서 다른 필드로 정렬을 하려면 아래의 배열 코드에서 해당 필드를 추가하세요.
|
||||
if( isset($sort) && ! in_array($sort, array('it_name', 'it_sum_qty', 'it_price', 'it_use_avg', 'it_use_cnt', 'it_update_time')) ){
|
||||
$sort='';
|
||||
}
|
||||
if( !isset($sortodr) || !in_array(strtolower($sortodr), array('asc', 'desc')) ){
|
||||
$sortodr='';
|
||||
}
|
||||
|
||||
if (G5_IS_MOBILE) {
|
||||
include_once(G5_MSHOP_PATH.'/list.php');
|
||||
return;
|
||||
@@ -181,4 +173,4 @@ if ($ca['ca_include_tail'] && is_include_path_check($ca['ca_include_tail'])
|
||||
else
|
||||
include_once(G5_SHOP_PATH.'/_tail.php');
|
||||
|
||||
echo "\n<!-- {$ca['ca_skin']} -->\n";
|
||||
echo "\n<!-- {$ca['ca_skin']} -->\n";
|
||||
|
||||
+1
-3
@@ -1,8 +1,6 @@
|
||||
<?php
|
||||
include_once('./_common.php');
|
||||
|
||||
// 상품 리스트에서 다른 필드로 정렬을 하려면 아래의 배열 코드에서 해당 필드를 추가하세요.
|
||||
$sort = (isset($_REQUEST['sort']) && in_array($_REQUEST['sort'], array('it_name', 'it_sum_qty', 'it_price', 'it_use_avg', 'it_use_cnt', 'it_update_time'))) ? $_REQUEST['sort'] : '';
|
||||
$type = isset($_REQUEST['type']) ? (int) preg_replace("/[^0-9]/", "", $_REQUEST['type']) : 1;
|
||||
|
||||
if (G5_IS_MOBILE) {
|
||||
@@ -83,4 +81,4 @@ else
|
||||
$qstr .= '&type='.$type.'&sort='.$sort;
|
||||
echo get_paging($config['cf_write_pages'], $page, $total_page, "{$_SERVER['SCRIPT_NAME']}?$qstr&page=");
|
||||
|
||||
include_once('./_tail.php');
|
||||
include_once('./_tail.php');
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
<?php
|
||||
include_once('./_common.php');
|
||||
include_once(G5_KAKAO5_PATH.'/kakao5.lib.php'); // 카카오톡 알림톡 설정
|
||||
require_once(G5_SHOP_PATH.'/toss/toss.inc.php'); // 토스페이먼츠 v2 공통 설정
|
||||
|
||||
/*************************************************************************
|
||||
|
||||
@@ -4,7 +4,7 @@ if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가
|
||||
// add_stylesheet('css 구문', 출력순서); 숫자가 작을 수록 먼저 출력됨
|
||||
add_stylesheet('<link rel="stylesheet" href="' . $member_skin_url . '/style.css">', 0);
|
||||
if ($config['cf_cert_use'] && ($config['cf_cert_simple'] || $config['cf_cert_ipin'] || $config['cf_cert_hp']))
|
||||
add_javascript('<script src="'.G5_JS_URL.'/certify.js?v='.G5_JS_VER.'"></script>', 0);
|
||||
add_javascript('<script src="'.G5_JS_URL.'/certify.js"></script>', 0);
|
||||
?>
|
||||
<!-- 기존 회원 본인인증 시작 { -->
|
||||
<div class="member_cert_refresh">
|
||||
|
||||
@@ -5,7 +5,7 @@ if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가
|
||||
add_stylesheet('<link rel="stylesheet" href="'.$member_skin_url.'/style.css">', 0);
|
||||
|
||||
if($config['cf_cert_use'] && ($config['cf_cert_simple'] || $config['cf_cert_ipin'] || $config['cf_cert_hp'])) { ?>
|
||||
<script src="<?php echo G5_JS_URL ?>/certify.js?v=<?php echo G5_JS_VER; ?>"></script>
|
||||
<script src="<?php echo get_versioned_asset_url(G5_JS_URL.'/certify.js'); ?>"></script>
|
||||
<?php } ?>
|
||||
|
||||
<!-- 회원정보 찾기 시작 { -->
|
||||
|
||||
@@ -5,7 +5,7 @@ if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가
|
||||
add_stylesheet('<link rel="stylesheet" href="'.$member_skin_url.'/style.css">', 0);
|
||||
add_javascript('<script src="'.G5_JS_URL.'/jquery.register_form.js"></script>', 0);
|
||||
if ($config['cf_cert_use'] && ($config['cf_cert_simple'] || $config['cf_cert_ipin'] || $config['cf_cert_hp']))
|
||||
add_javascript('<script src="'.G5_JS_URL.'/certify.js?v='.G5_JS_VER.'"></script>', 0);
|
||||
add_javascript('<script src="'.G5_JS_URL.'/certify.js"></script>', 0);
|
||||
?>
|
||||
|
||||
<!-- 회원정보 입력/수정 시작 { -->
|
||||
|
||||
@@ -4,7 +4,7 @@ if (!defined("_GNUBOARD_")) exit; // 개별 페이지 접근 불가
|
||||
|
||||
<section id="bo_v_ans_form">
|
||||
<?php
|
||||
if($is_admin) // 관리자이면 답변등록
|
||||
if($is_admin === 'super') // 최고관리자이면 답변등록
|
||||
{
|
||||
?>
|
||||
<h2>답변등록</h2>
|
||||
@@ -152,4 +152,4 @@ if (!defined("_GNUBOARD_")) exit; // 개별 페이지 접근 불가
|
||||
<?php
|
||||
}
|
||||
?>
|
||||
</section>
|
||||
</section>
|
||||
|
||||
@@ -29,7 +29,7 @@ add_stylesheet('<link rel="stylesheet" href="'.G5_SHOP_SKIN_URL.'/style.css">',
|
||||
if($row['iq_secret']) {
|
||||
$iq_subject .= ' <img src="'.G5_SHOP_SKIN_URL.'/img/icon_secret.gif" alt="비밀글">';
|
||||
|
||||
if($is_admin || $member['mb_id' ] == $row['mb_id']) {
|
||||
if(is_shop_resource_owner_or_super_admin($row['mb_id'], $member['mb_id'], $is_admin)) {
|
||||
$iq_question = get_view_thumbnail(conv_content($row['iq_question'], 1), $thumbnail_width);
|
||||
} else {
|
||||
$iq_question = '비밀글로 보호된 문의입니다.';
|
||||
@@ -85,7 +85,7 @@ add_stylesheet('<link rel="stylesheet" href="'.G5_SHOP_SKIN_URL.'/style.css">',
|
||||
<?php } ?>
|
||||
</div>
|
||||
|
||||
<?php if ($is_admin || ($row['mb_id'] == $member['mb_id'] && !$is_answer)) { ?>
|
||||
<?php if ($is_admin === 'super' || ($row['mb_id'] == $member['mb_id'] && !$is_answer)) { ?>
|
||||
<div class="sit_qa_cmd">
|
||||
<a href="<?php echo $itemqa_form."&iq_id={$row['iq_id']}&w=u"; ?>" class="itemqa_form btn01" onclick="return false;">수정</a>
|
||||
<a href="<?php echo $itemqa_formupdate."&iq_id={$row['iq_id']}&w=d&hash={$hash}"; ?>" class="itemqa_delete btn01">삭제</a>
|
||||
@@ -140,4 +140,4 @@ $(function(){
|
||||
});
|
||||
});
|
||||
</script>
|
||||
<!-- } 상품문의 목록 끝 -->
|
||||
<!-- } 상품문의 목록 끝 -->
|
||||
|
||||
@@ -44,7 +44,7 @@ add_stylesheet('<link rel="stylesheet" href="'.G5_SHOP_SKIN_URL.'/style.css">',
|
||||
if($row['iq_secret']) {
|
||||
$iq_subject .= ' <i class="fa fa-lock" aria-hidden="true"></i>';
|
||||
|
||||
if($is_admin || $member['mb_id' ] == $row['mb_id']) {
|
||||
if(is_shop_resource_owner_or_super_admin($row['mb_id'], $member['mb_id'], $is_admin)) {
|
||||
$iq_question = get_view_thumbnail(conv_content($row['iq_question'], 1), $thumbnail_width);
|
||||
} else {
|
||||
$iq_question = '비밀글로 보호된 문의입니다.';
|
||||
@@ -141,4 +141,4 @@ $(function(){
|
||||
});
|
||||
});
|
||||
</script>
|
||||
<!-- } 전체 상품 사용후기 목록 끝 -->
|
||||
<!-- } 전체 상품 사용후기 목록 끝 -->
|
||||
|
||||
@@ -59,7 +59,7 @@ add_stylesheet('<link rel="stylesheet" href="'.G5_SHOP_SKIN_URL.'/style.css">',
|
||||
<?php echo $is_content; // 사용후기 내용 ?>
|
||||
</div>
|
||||
|
||||
<?php if ($is_admin || $row['mb_id'] == $member['mb_id']) { ?>
|
||||
<?php if (is_shop_resource_owner_or_super_admin($row['mb_id'], $member['mb_id'], $is_admin)) { ?>
|
||||
<div class="sit_use_cmd">
|
||||
<a href="<?php echo $itemuse_form."&is_id={$row['is_id']}&w=u"; ?>" class="itemuse_form btn01" onclick="return false;">수정</a>
|
||||
<a href="<?php echo $itemuse_formupdate."&is_id={$row['is_id']}&w=d&hash={$hash}"; ?>" class="itemuse_delete btn01">삭제</a>
|
||||
@@ -131,4 +131,4 @@ $(function(){
|
||||
});
|
||||
});
|
||||
</script>
|
||||
<!-- } 상품 사용후기 끝 -->
|
||||
<!-- } 상품 사용후기 끝 -->
|
||||
|
||||
@@ -14,7 +14,7 @@ if( G5_SOCIAL_USE_POPUP ) {
|
||||
$self_url = G5_SOCIAL_LOGIN_URL.'/popup.php';
|
||||
}
|
||||
|
||||
add_stylesheet('<link rel="stylesheet" href="'.get_social_skin_url().'/style.css?ver='.G5_CSS_VER.'">', 10);
|
||||
add_stylesheet('<link rel="stylesheet" href="'.get_social_skin_url().'/style.css">', 10);
|
||||
?>
|
||||
|
||||
<div id="sns_login" class="login-sns sns-wrap-32 sns-wrap-over">
|
||||
|
||||
@@ -14,7 +14,7 @@ if( G5_SOCIAL_USE_POPUP ) {
|
||||
$self_url = G5_SOCIAL_LOGIN_URL.'/popup.php';
|
||||
}
|
||||
|
||||
add_stylesheet('<link rel="stylesheet" href="'.get_social_skin_url().'/style.css?ver='.G5_CSS_VER.'">', 10);
|
||||
add_stylesheet('<link rel="stylesheet" href="'.get_social_skin_url().'/style.css">', 10);
|
||||
?>
|
||||
|
||||
<div class="login-sns sns-wrap-32 sns-wrap-over" id="sns_outlogin">
|
||||
|
||||
@@ -15,7 +15,7 @@ if( G5_SOCIAL_USE_POPUP ) {
|
||||
}
|
||||
|
||||
// add_stylesheet('css 구문', 출력순서); 숫자가 작을 수록 먼저 출력됨
|
||||
add_stylesheet('<link rel="stylesheet" href="'.get_social_skin_url().'/style.css?ver='.G5_CSS_VER.'">', 10);
|
||||
add_stylesheet('<link rel="stylesheet" href="'.get_social_skin_url().'/style.css">', 10);
|
||||
?>
|
||||
<div>
|
||||
|
||||
|
||||
@@ -8,11 +8,11 @@ if (!$config['cf_social_login_use']) { //소셜 로그인을 사용하지
|
||||
// add_stylesheet('css 구문', 출력순서); 숫자가 작을 수록 먼저 출력됨
|
||||
add_stylesheet('<link rel="stylesheet" href="'.G5_JS_URL.'/remodal/remodal.css">', 11);
|
||||
add_stylesheet('<link rel="stylesheet" href="'.G5_JS_URL.'/remodal/remodal-default-theme.css">', 12);
|
||||
add_stylesheet('<link rel="stylesheet" href="'.get_social_skin_url().'/style.css?ver='.G5_CSS_VER.'">', 13);
|
||||
add_stylesheet('<link rel="stylesheet" href="'.get_social_skin_url().'/style.css">', 13);
|
||||
add_javascript('<script src="'.G5_JS_URL.'/remodal/remodal.js"></script>', 10);
|
||||
add_javascript('<script src="'.G5_JS_URL.'/jquery.register_form.js"></script>', 14);
|
||||
if ($config['cf_cert_use'] && ($config['cf_cert_simple'] || $config['cf_cert_ipin'] || $config['cf_cert_hp']))
|
||||
add_javascript('<script src="'.G5_JS_URL.'/certify.js?v='.G5_JS_VER.'"></script>', 15);
|
||||
add_javascript('<script src="'.G5_JS_URL.'/certify.js"></script>', 15);
|
||||
|
||||
$email_msg = $is_exists_email ? '등록할 이메일이 중복되었습니다.다른 이메일을 입력해 주세요.' : '';
|
||||
?>
|
||||
|
||||
@@ -9,7 +9,7 @@ $socials = social_get_provider_service_name('', 'all');
|
||||
|
||||
$session_id = session_id();
|
||||
|
||||
add_stylesheet('<link rel="stylesheet" href="'.get_social_skin_url().'/style.css?ver='.G5_CSS_VER.'">', 10);
|
||||
add_stylesheet('<link rel="stylesheet" href="'.get_social_skin_url().'/style.css">', 10);
|
||||
?>
|
||||
|
||||
<li>
|
||||
|
||||
@@ -52,7 +52,7 @@ if($config['cf_add_meta'])
|
||||
<?php
|
||||
$shop_css = '';
|
||||
if (defined('_SHOP_')) $shop_css = '_shop';
|
||||
echo '<link rel="stylesheet" href="'.run_replace('head_css_url', G5_THEME_CSS_URL.'/'.(G5_IS_MOBILE?'mobile':'default').$shop_css.'.css?ver='.G5_CSS_VER, G5_THEME_URL).'">'.PHP_EOL;
|
||||
echo '<link rel="stylesheet" href="'.get_versioned_asset_url(run_replace('head_css_url', G5_THEME_CSS_URL.'/'.(G5_IS_MOBILE?'mobile':'default').$shop_css.'.css', G5_THEME_URL)).'">'.PHP_EOL;
|
||||
?>
|
||||
<!--[if lte IE 8]>
|
||||
<script src="<?php echo G5_JS_URL ?>/html5.js"></script>
|
||||
@@ -81,13 +81,13 @@ add_javascript('<script src="'.G5_JS_URL.'/jquery-1.12.4.min.js"></script>', 0);
|
||||
add_javascript('<script src="'.G5_JS_URL.'/jquery-migrate-1.4.1.min.js"></script>', 0);
|
||||
if (defined('_SHOP_')) {
|
||||
if(!G5_IS_MOBILE) {
|
||||
add_javascript('<script src="'.G5_JS_URL.'/jquery.shop.menu.js?ver='.G5_JS_VER.'"></script>', 0);
|
||||
add_javascript('<script src="'.G5_JS_URL.'/jquery.shop.menu.js"></script>', 0);
|
||||
}
|
||||
} else {
|
||||
add_javascript('<script src="'.G5_JS_URL.'/jquery.menu.js?ver='.G5_JS_VER.'"></script>', 0);
|
||||
add_javascript('<script src="'.G5_JS_URL.'/jquery.menu.js"></script>', 0);
|
||||
}
|
||||
add_javascript('<script src="'.G5_JS_URL.'/common.js?ver='.G5_JS_VER.'"></script>', 0);
|
||||
add_javascript('<script src="'.G5_JS_URL.'/wrest.js?ver='.G5_JS_VER.'"></script>', 0);
|
||||
add_javascript('<script src="'.G5_JS_URL.'/common.js"></script>', 0);
|
||||
add_javascript('<script src="'.G5_JS_URL.'/wrest.js"></script>', 0);
|
||||
add_javascript('<script src="'.G5_JS_URL.'/placeholders.min.js"></script>', 0);
|
||||
add_stylesheet('<link rel="stylesheet" href="'.G5_JS_URL.'/font-awesome/css/font-awesome.min.css">', 0);
|
||||
|
||||
|
||||
@@ -4,7 +4,7 @@ if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가
|
||||
// add_stylesheet('css 구문', 출력순서); 숫자가 작을 수록 먼저 출력됨
|
||||
add_stylesheet('<link rel="stylesheet" href="' . $member_skin_url . '/style.css">', 0);
|
||||
if ($config['cf_cert_use'] && ($config['cf_cert_simple'] || $config['cf_cert_ipin'] || $config['cf_cert_hp']))
|
||||
add_javascript('<script src="'.G5_JS_URL.'/certify.js?v='.G5_JS_VER.'"></script>', 0);
|
||||
add_javascript('<script src="'.G5_JS_URL.'/certify.js"></script>', 0);
|
||||
?>
|
||||
<!-- 기존 회원 본인인증 시작 { -->
|
||||
<div class="member_cert_refresh">
|
||||
|
||||
@@ -5,7 +5,7 @@ if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가
|
||||
add_stylesheet('<link rel="stylesheet" href="'.$member_skin_url.'/style.css">', 0);
|
||||
|
||||
if($config['cf_cert_use'] && ($config['cf_cert_simple'] || $config['cf_cert_ipin'] || $config['cf_cert_hp'])) { ?>
|
||||
<script src="<?php echo G5_JS_URL ?>/certify.js?v=<?php echo G5_JS_VER; ?>"></script>
|
||||
<script src="<?php echo get_versioned_asset_url(G5_JS_URL.'/certify.js'); ?>"></script>
|
||||
<?php } ?>
|
||||
|
||||
<!-- 회원정보 찾기 시작 { -->
|
||||
|
||||
@@ -5,7 +5,7 @@ if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가
|
||||
add_stylesheet('<link rel="stylesheet" href="'.$member_skin_url.'/style.css">', 0);
|
||||
add_javascript('<script src="'.G5_JS_URL.'/jquery.register_form.js"></script>', 0);
|
||||
if ($config['cf_cert_use'] && ($config['cf_cert_simple'] || $config['cf_cert_ipin'] || $config['cf_cert_hp']))
|
||||
add_javascript('<script src="'.G5_JS_URL.'/certify.js?v='.G5_JS_VER.'"></script>', 0);
|
||||
add_javascript('<script src="'.G5_JS_URL.'/certify.js"></script>', 0);
|
||||
?>
|
||||
|
||||
<div class="register">
|
||||
|
||||
@@ -4,7 +4,7 @@ if (!defined("_GNUBOARD_")) exit; // 개별 페이지 접근 불가
|
||||
|
||||
<section id="bo_v_ans">
|
||||
<?php
|
||||
if($is_admin) // 관리자이면 답변등록
|
||||
if($is_admin === 'super') // 최고관리자이면 답변등록
|
||||
{
|
||||
?>
|
||||
<h2>답변등록</h2>
|
||||
@@ -151,4 +151,4 @@ if (!defined("_GNUBOARD_")) exit; // 개별 페이지 접근 불가
|
||||
<?php
|
||||
}
|
||||
?>
|
||||
</section>
|
||||
</section>
|
||||
|
||||
@@ -11,7 +11,7 @@ add_javascript('<script src="'.G5_JS_URL.'/jquery.bxslider.js"></script>', 10);
|
||||
<script>
|
||||
var kakao_javascript_apikey = "<?php echo $config['cf_kakao_js_apikey']; ?>";
|
||||
</script>
|
||||
<script src="<?php echo G5_JS_URL; ?>/kakaolink.js?ver=<?php echo G5_JS_VER; ?>"></script>
|
||||
<script src="<?php echo get_versioned_asset_url(G5_JS_URL.'/kakaolink.js'); ?>"></script>
|
||||
<?php } ?>
|
||||
|
||||
<form name="fitem" action="<?php echo $action_url; ?>" method="post" onsubmit="return fitem_submit(this);">
|
||||
|
||||
@@ -27,7 +27,7 @@ add_stylesheet('<link rel="stylesheet" href="'.G5_MSHOP_SKIN_URL.'/style.css">',
|
||||
if($row['iq_secret']) {
|
||||
$iq_subject .= ' <img src="'.G5_MSHOP_SKIN_URL.'/img/icon_secret.gif" alt="비밀글">';
|
||||
|
||||
if($is_admin || $member['mb_id' ] == $row['mb_id']) {
|
||||
if(is_shop_resource_owner_or_super_admin($row['mb_id'], $member['mb_id'], $is_admin)) {
|
||||
$iq_question = get_view_thumbnail(conv_content($row['iq_question'], 1), $thumbnail_width);
|
||||
} else {
|
||||
$iq_question = '비밀글로 보호된 문의입니다.';
|
||||
@@ -87,7 +87,7 @@ add_stylesheet('<link rel="stylesheet" href="'.G5_MSHOP_SKIN_URL.'/style.css">',
|
||||
<?php } ?>
|
||||
</div>
|
||||
|
||||
<?php if ($is_admin || ($row['mb_id'] == $member['mb_id'] && !$is_answer)) { ?>
|
||||
<?php if ($is_admin === 'super' || ($row['mb_id'] == $member['mb_id'] && !$is_answer)) { ?>
|
||||
<div class="sit_qa_cmd">
|
||||
<a href="<?php echo $itemqa_form."&iq_id={$row['iq_id']}&w=u"; ?>" class="itemqa_form btn01" onclick="return false;">수정</a>
|
||||
<a href="<?php echo $itemqa_formupdate."&iq_id={$row['iq_id']}&w=d&hash={$hash}"; ?>" class="itemqa_delete btn01">삭제</a>
|
||||
@@ -148,4 +148,4 @@ $(function(){
|
||||
});
|
||||
});
|
||||
</script>
|
||||
<!-- } 상품문의 목록 끝 -->
|
||||
<!-- } 상품문의 목록 끝 -->
|
||||
|
||||
@@ -46,7 +46,7 @@ add_stylesheet('<link rel="stylesheet" href="'.G5_MSHOP_SKIN_URL.'/style.css">',
|
||||
if($row['iq_secret']) {
|
||||
$iq_subject .= ' <i class="fa fa-lock" aria-hidden="true"></i>';
|
||||
|
||||
if($is_admin || $member['mb_id' ] == $row['mb_id']) {
|
||||
if(is_shop_resource_owner_or_super_admin($row['mb_id'], $member['mb_id'], $is_admin)) {
|
||||
$iq_question = get_view_thumbnail(conv_content($row['iq_question'], 1), $thumbnail_width);
|
||||
} else {
|
||||
$iq_question = '비밀글로 보호된 문의입니다.';
|
||||
@@ -141,4 +141,4 @@ $(function(){
|
||||
});
|
||||
});
|
||||
</script>
|
||||
<!-- } 전체 상품 사용후기 목록 끝 -->
|
||||
<!-- } 전체 상품 사용후기 목록 끝 -->
|
||||
|
||||
@@ -52,7 +52,7 @@ add_stylesheet('<link rel="stylesheet" href="'.G5_MSHOP_SKIN_URL.'/style.css">',
|
||||
<?php echo $is_content; // 사용후기 내용 ?>
|
||||
</div>
|
||||
|
||||
<?php if ($is_admin || $row['mb_id'] == $member['mb_id']) { ?>
|
||||
<?php if (is_shop_resource_owner_or_super_admin($row['mb_id'], $member['mb_id'], $is_admin)) { ?>
|
||||
<div class="sit_use_cmd">
|
||||
<a href="<?php echo $itemuse_form."&is_id={$row['is_id']}&w=u"; ?>" class="itemuse_form btn01" onclick="return false;">수정</a>
|
||||
<a href="<?php echo $itemuse_formupdate."&is_id={$row['is_id']}&w=d&hash={$hash}"; ?>" class="itemuse_delete btn01">삭제</a>
|
||||
@@ -130,4 +130,4 @@ $(function(){
|
||||
});
|
||||
});
|
||||
</script>
|
||||
<!-- } 상품 사용후기 끝 -->
|
||||
<!-- } 상품 사용후기 끝 -->
|
||||
|
||||
@@ -13,7 +13,7 @@ add_javascript('<script src="'.G5_THEME_JS_URL.'/theme.shop.list.js"></script>',
|
||||
<script>
|
||||
var kakao_javascript_apikey = "<?php echo $config['cf_kakao_js_apikey']; ?>";
|
||||
</script>
|
||||
<script src="<?php echo G5_JS_URL; ?>/kakaolink.js?ver=<?php echo G5_JS_VER; ?>"></script>
|
||||
<script src="<?php echo get_versioned_asset_url(G5_JS_URL.'/kakaolink.js'); ?>"></script>
|
||||
<?php } ?>
|
||||
|
||||
<!-- 메인상품진열 10 시작 { -->
|
||||
|
||||
@@ -13,7 +13,7 @@ add_javascript('<script src="'.G5_THEME_JS_URL.'/theme.shop.list.js"></script>',
|
||||
<script>
|
||||
var kakao_javascript_apikey = "<?php echo $config['cf_kakao_js_apikey']; ?>";
|
||||
</script>
|
||||
<script src="<?php echo G5_JS_URL; ?>/kakaolink.js?ver=<?php echo G5_JS_VER; ?>"></script>
|
||||
<script src="<?php echo get_versioned_asset_url(G5_JS_URL.'/kakaolink.js'); ?>"></script>
|
||||
<?php } ?>
|
||||
|
||||
<!-- 메인상품진열 10 시작 { -->
|
||||
|
||||
@@ -14,7 +14,7 @@ add_javascript('<script src="'.G5_THEME_JS_URL.'/theme.shop.list.js"></script>',
|
||||
<script>
|
||||
var kakao_javascript_apikey = "<?php echo $config['cf_kakao_js_apikey']; ?>";
|
||||
</script>
|
||||
<script src="<?php echo G5_JS_URL; ?>/kakaolink.js?ver=<?php echo G5_JS_VER; ?>"></script>
|
||||
<script src="<?php echo get_versioned_asset_url(G5_JS_URL.'/kakaolink.js'); ?>"></script>
|
||||
<?php } ?>
|
||||
|
||||
<!-- 메인상품진열 20 시작 { -->
|
||||
|
||||
@@ -14,7 +14,7 @@ add_javascript('<script src="'.G5_THEME_JS_URL.'/theme.shop.list.js"></script>',
|
||||
<script>
|
||||
var kakao_javascript_apikey = "<?php echo $config['cf_kakao_js_apikey']; ?>";
|
||||
</script>
|
||||
<script src="<?php echo G5_JS_URL; ?>/kakaolink.js?ver=<?php echo G5_JS_VER; ?>"></script>
|
||||
<script src="<?php echo get_versioned_asset_url(G5_JS_URL.'/kakaolink.js'); ?>"></script>
|
||||
<?php } ?>
|
||||
<div class="st_30_wr">
|
||||
<!-- 메인상품진열 30 시작 { -->
|
||||
|
||||
@@ -11,7 +11,7 @@ add_stylesheet('<link rel="stylesheet" href="'.G5_MSHOP_SKIN_URL.'/style.css">',
|
||||
<script>
|
||||
var kakao_javascript_apikey = "<?php echo $config['cf_kakao_js_apikey']; ?>";
|
||||
</script>
|
||||
<script src="<?php echo G5_JS_URL; ?>/kakaolink.js?ver=<?php echo G5_JS_VER; ?>"></script>
|
||||
<script src="<?php echo get_versioned_asset_url(G5_JS_URL.'/kakaolink.js'); ?>"></script>
|
||||
<?php } ?>
|
||||
|
||||
<!-- 상품진열 10 시작 { -->
|
||||
|
||||
@@ -1,20 +1,14 @@
|
||||
<?php
|
||||
include_once('../../../common.php');
|
||||
|
||||
if (isset($_REQUEST['sort']) && !preg_match("/(--|#|\/\*|\*\/)/", $_REQUEST['sort'])) {
|
||||
$sort = trim($_REQUEST['sort']);
|
||||
$sort = preg_replace("/[\<\>\'\"\\\'\\\"\%\=\(\)\s]/", "", $sort);
|
||||
} else {
|
||||
$sort = '';
|
||||
}
|
||||
|
||||
if (isset($_REQUEST['sortodr'])) {
|
||||
$sortodr = preg_match("/^(asc|desc)$/i", $sortodr) ? $sortodr : '';
|
||||
} else {
|
||||
$sortodr = '';
|
||||
}
|
||||
|
||||
if (!defined('G5_USE_SHOP') || !G5_USE_SHOP)
|
||||
die('<p>쇼핑몰 설치 후 이용해 주십시오.</p>');
|
||||
|
||||
define('_SHOP_', true);
|
||||
$is_admin = get_super_admin_type($is_admin);
|
||||
|
||||
$request_sort = (isset($_REQUEST['sort']) && is_string($_REQUEST['sort'])) ? $_REQUEST['sort'] : '';
|
||||
$request_sortodr = (isset($_REQUEST['sortodr']) && is_string($_REQUEST['sortodr'])) ? $_REQUEST['sortodr'] : '';
|
||||
list($sort, $sortodr) = get_shop_item_sort($request_sort, $request_sortodr);
|
||||
unset($request_sort, $request_sortodr);
|
||||
|
||||
define('_SHOP_', true);
|
||||
|
||||
@@ -4,7 +4,7 @@ if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가
|
||||
// add_stylesheet('css 구문', 출력순서); 숫자가 작을 수록 먼저 출력됨
|
||||
add_stylesheet('<link rel="stylesheet" href="' . $member_skin_url . '/style.css">', 0);
|
||||
if ($config['cf_cert_use'] && ($config['cf_cert_simple'] || $config['cf_cert_ipin'] || $config['cf_cert_hp']))
|
||||
add_javascript('<script src="'.G5_JS_URL.'/certify.js?v='.G5_JS_VER.'"></script>', 0);
|
||||
add_javascript('<script src="'.G5_JS_URL.'/certify.js"></script>', 0);
|
||||
?>
|
||||
<!-- 기존 회원 본인인증 시작 { -->
|
||||
<div class="member_cert_refresh">
|
||||
|
||||
@@ -5,7 +5,7 @@ if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가
|
||||
add_stylesheet('<link rel="stylesheet" href="'.$member_skin_url.'/style.css">', 0);
|
||||
|
||||
if($config['cf_cert_use'] && ($config['cf_cert_simple'] || $config['cf_cert_ipin'] || $config['cf_cert_hp'])) { ?>
|
||||
<script src="<?php echo G5_JS_URL ?>/certify.js?v=<?php echo G5_JS_VER; ?>"></script>
|
||||
<script src="<?php echo get_versioned_asset_url(G5_JS_URL.'/certify.js'); ?>"></script>
|
||||
<?php } ?>
|
||||
|
||||
<!-- 회원정보 찾기 시작 { -->
|
||||
|
||||
@@ -5,7 +5,7 @@ if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가
|
||||
add_stylesheet('<link rel="stylesheet" href="'.$member_skin_url.'/style.css">', 0);
|
||||
add_javascript('<script src="'.G5_JS_URL.'/jquery.register_form.js"></script>', 0);
|
||||
if ($config['cf_cert_use'] && ($config['cf_cert_simple'] || $config['cf_cert_ipin'] || $config['cf_cert_hp']))
|
||||
add_javascript('<script src="'.G5_JS_URL.'/certify.js?v='.G5_JS_VER.'"></script>', 0);
|
||||
add_javascript('<script src="'.G5_JS_URL.'/certify.js"></script>', 0);
|
||||
?>
|
||||
|
||||
<!-- 회원정보 입력/수정 시작 { -->
|
||||
|
||||
@@ -4,7 +4,7 @@ if (!defined("_GNUBOARD_")) exit; // 개별 페이지 접근 불가
|
||||
|
||||
<section id="bo_v_ans_form">
|
||||
<?php
|
||||
if($is_admin) // 관리자이면 답변등록
|
||||
if($is_admin === 'super') // 최고관리자이면 답변등록
|
||||
{
|
||||
?>
|
||||
<h2>답변등록</h2>
|
||||
@@ -152,4 +152,4 @@ if (!defined("_GNUBOARD_")) exit; // 개별 페이지 접근 불가
|
||||
<?php
|
||||
}
|
||||
?>
|
||||
</section>
|
||||
</section>
|
||||
|
||||
@@ -29,7 +29,7 @@ add_stylesheet('<link rel="stylesheet" href="'.G5_SHOP_SKIN_URL.'/style.css">',
|
||||
if($row['iq_secret']) {
|
||||
$iq_subject .= ' <img src="'.G5_SHOP_SKIN_URL.'/img/icon_secret.gif" alt="비밀글">';
|
||||
|
||||
if($is_admin || $member['mb_id' ] == $row['mb_id']) {
|
||||
if(is_shop_resource_owner_or_super_admin($row['mb_id'], $member['mb_id'], $is_admin)) {
|
||||
$iq_question = get_view_thumbnail(conv_content($row['iq_question'], 1), $thumbnail_width);
|
||||
} else {
|
||||
$iq_question = '비밀글로 보호된 문의입니다.';
|
||||
@@ -85,7 +85,7 @@ add_stylesheet('<link rel="stylesheet" href="'.G5_SHOP_SKIN_URL.'/style.css">',
|
||||
<?php } ?>
|
||||
</div>
|
||||
|
||||
<?php if ($is_admin || ($row['mb_id'] == $member['mb_id'] && !$is_answer)) { ?>
|
||||
<?php if ($is_admin === 'super' || ($row['mb_id'] == $member['mb_id'] && !$is_answer)) { ?>
|
||||
<div class="sit_qa_cmd">
|
||||
<a href="<?php echo $itemqa_form."&iq_id={$row['iq_id']}&w=u"; ?>" class="itemqa_form btn01" onclick="return false;">수정</a>
|
||||
<a href="<?php echo $itemqa_formupdate."&iq_id={$row['iq_id']}&w=d&hash={$hash}"; ?>" class="itemqa_delete btn01">삭제</a>
|
||||
@@ -140,4 +140,4 @@ $(function(){
|
||||
});
|
||||
});
|
||||
</script>
|
||||
<!-- } 상품문의 목록 끝 -->
|
||||
<!-- } 상품문의 목록 끝 -->
|
||||
|
||||
@@ -44,7 +44,7 @@ add_stylesheet('<link rel="stylesheet" href="'.G5_SHOP_SKIN_URL.'/style.css">',
|
||||
if($row['iq_secret']) {
|
||||
$iq_subject .= ' <i class="fa fa-lock" aria-hidden="true"></i>';
|
||||
|
||||
if($is_admin || $member['mb_id' ] == $row['mb_id']) {
|
||||
if(is_shop_resource_owner_or_super_admin($row['mb_id'], $member['mb_id'], $is_admin)) {
|
||||
$iq_question = get_view_thumbnail(conv_content($row['iq_question'], 1), $thumbnail_width);
|
||||
} else {
|
||||
$iq_question = '비밀글로 보호된 문의입니다.';
|
||||
@@ -141,4 +141,4 @@ $(function(){
|
||||
});
|
||||
});
|
||||
</script>
|
||||
<!-- } 전체 상품 사용후기 목록 끝 -->
|
||||
<!-- } 전체 상품 사용후기 목록 끝 -->
|
||||
|
||||
@@ -59,7 +59,7 @@ add_stylesheet('<link rel="stylesheet" href="'.G5_SHOP_SKIN_URL.'/style.css">',
|
||||
<?php echo $is_content; // 사용후기 내용 ?>
|
||||
</div>
|
||||
|
||||
<?php if ($is_admin || $row['mb_id'] == $member['mb_id']) { ?>
|
||||
<?php if (is_shop_resource_owner_or_super_admin($row['mb_id'], $member['mb_id'], $is_admin)) { ?>
|
||||
<div class="sit_use_cmd">
|
||||
<a href="<?php echo $itemuse_form."&is_id={$row['is_id']}&w=u"; ?>" class="itemuse_form btn01" onclick="return false;">수정</a>
|
||||
<a href="<?php echo $itemuse_formupdate."&is_id={$row['is_id']}&w=d&hash={$hash}"; ?>" class="itemuse_delete btn01">삭제</a>
|
||||
@@ -131,4 +131,4 @@ $(function(){
|
||||
});
|
||||
});
|
||||
</script>
|
||||
<!-- } 상품 사용후기 끝 -->
|
||||
<!-- } 상품 사용후기 끝 -->
|
||||
|
||||
+1
-1
@@ -2,7 +2,7 @@
|
||||
if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가
|
||||
|
||||
define('G5_VERSION', '그누보드5');
|
||||
define('G5_GNUBOARD_VER', '5.6.35');
|
||||
define('G5_GNUBOARD_VER', '5.6.36');
|
||||
// 그누보드5.4.5.5 버전과 영카트5.4.5.5.1 버전을 합쳐서 그누보드5.4.6 버전에서 시작함 (kagla-210617)
|
||||
// G5_YOUNGCART_VER 이 상수를 사용하는 곳이 있으므로 주석 처리 해제함
|
||||
// 그누보드5.4.6 이상 버전 부터는 영카트를 그누보드에 포함하여 배포하므로 영카트5의 버전은 의미가 없습니다.
|
||||
|
||||
Reference in New Issue
Block a user