This commit is contained in:
shim
2023-04-17 11:06:08 +09:00
parent d0b393aa97
commit 76264e09ad
4686 changed files with 552713 additions and 0 deletions

View File

@@ -0,0 +1,17 @@
<div class="p-4">
<div class="text-center text-muted d-flex align-items-center justify-content-center" style="height: calc(100vh - 10rem);">
<div><i class="fa fa-exclamation-circle fa-3x mb-3" aria-hidden="true"></i>
<p>마켓설정이 필요합니다.</p>
<small>
프로젝트 키는 프로젝트의 정식판 여부를 확인하여 마켓이용과 지원에 활용됩니다. <br>
key가 맞지 않거나 분실시에는 kimsq.com 로그인 , 나의 프로젝트 페이지에서 확인할 있습니다.
</small>
<div class="mt-4">
<a href="<?php echo $g['s']?>/?r=<?php echo $r?>&amp;m=<?php echo $m?>&amp;module=<?php echo $module?>&amp;front=config" class="btn btn-outline-primary btn-block">
설정하기
</a>
</div>
</div>
</div>
</div>

View File

@@ -0,0 +1,29 @@
<?php
$license_local = $g['path_module'].$module.'/LICENSE';
$license_global = $g['path_root'].'LICENSE';
if (file_exists($license_local)) $license = $license_local;
else $license = $license_global;
?>
<link href="<?php echo $g['s']?>/_core/css/github-markdown.css" rel="stylesheet">
<?php getImport('jquery-markdown','jquery.markdown','0.0.10','js')?>
<?php @include $g['path_module'].$module.'/var/var.moduleinfo.php' ?>
<article class="rb-docs markdown-body px-5 pt-3">
<h1><?php echo sprintf('%s 모듈정보',ucfirst($MD['name']))?></h1>
<div class="pb-5 readme">
<?php readfile($g['path_module'].$module.'/README.md')?>
</div>
<div class="pb-5">
<h2>라이센스</h2>
<textarea class="form-control" rows="10"><?php readfile($license)?></textarea>
</div>
</article>
<script type="text/javascript">
$(".markdown-body .readme").markdown();
</script>

View File

@@ -0,0 +1,16 @@
.svc_free {
background-color: #ffc107;
color: #222
}
.svc_standard {
background-color: #007bff;
color: #fff
}
.svc_economy{
background-color: #28a745;
color: #fff
}
.svc_premium {
background-color: #563d7c;
color: #fff
}

View File

@@ -0,0 +1,14 @@
<?php
include $g['path_module'].$module.'/var/var.php';
$g['marketvar'] = $g['path_var'].'/market.var.php';
if (file_exists($g['marketvar'])) include_once $g['marketvar'];
if($d['market']['url'] && $d['market']['key'] && $d['market']['userid'] ):
include $g['path_core'].'function/rss.func.php';
$marketData = getUrlData($d['market']['url'].'&iframe=Y&page=client.brand&_clientu='.$g['s'].'&_clientr='.$r.'&cat='.$cat.'&theme='.$theme.'&sort='.$sort.'&orderby='.$orderby.'&type='.$type.'&ptype='.$ptype.'&p='.$p.'&todayfree='.$todayfree.'&sailing='.$sailing.'&where='.$where.'&keyword='.$keyword.'&brand='.$brand.'&id='.$d['market']['userid'].'&key='.$d['market']['key'].'&version=2&host='.$_SERVER['HTTP_HOST'],10);
$marketData = explode('[RESULT:',$marketData);
$marketData = explode(':RESULT]',$marketData[1]);
$marketData = $marketData[0];
echo $marketData;
else:?>
<?php include $g['path_module'].$module.'/admin/_guide.php'; ?>
<?php endif?>

View File

@@ -0,0 +1,14 @@
<?php
include $g['path_module'].$module.'/var/var.php';
$g['marketvar'] = $g['path_var'].'/market.var.php';
if (file_exists($g['marketvar'])) include_once $g['marketvar'];
if($d['market']['url'] && $d['market']['key'] && $d['market']['userid'] ):
include $g['path_core'].'function/rss.func.php';
$marketData = getUrlData($d['market']['url'].'&iframe=Y&page=client.buyer&_clientu='.$g['s'].'&_clientr='.$r.'&cat='.$cat.'&theme='.$theme.'&sort='.$sort.'&orderby='.$orderby.'&type='.$type.'&ptype='.$ptype.'&p='.$p.'&todayfree='.$todayfree.'&sailing='.$sailing.'&where='.$where.'&keyword='.$keyword.'&brand='.$brand.'&id='.$d['market']['userid'].'&key='.$d['market']['key'].'&version=2&host='.$_SERVER['HTTP_HOST'],10);
$marketData = explode('[RESULT:',$marketData);
$marketData = explode(':RESULT]',$marketData[1]);
$marketData = $marketData[0];
echo $marketData;
else:?>
<?php include $g['path_module'].$module.'/admin/_guide.php'; ?>
<?php endif?>

View File

@@ -0,0 +1,61 @@
<?php
include $g['path_module'].$module.'/var/var.php';
$g['marketvar'] = $g['path_var'].'/market.var.php';
if (file_exists($g['marketvar'])) include_once $g['marketvar'];
?>
<div id="configbox" class="p-4">
<form name="procForm" action="<?php echo $g['s']?>/" method="post" target="_action_frame_<?php echo $m ?>" onsubmit="return saveCheck(this);" class="form-horizontal" autocomplete="off">
<input type="hidden" name="r" value="<?php echo $r ?>">
<input type="hidden" name="m" value="<?php echo $module ?>">
<input type="hidden" name="a" value="config">
<h4>큐마켓 연결설정</h4>
<div class="form-group row">
<label class="col-lg-2 col-form-label pt-3">킴스큐 회원 아이디 또는 이메일</label>
<div class="col-lg-10 col-xl-8">
<input class="form-control form-control-lg" type="text" name="userid" value="<?php echo $d['market']['userid']?$d['market']['userid']:'' ?>" required>
<small class="form-text text-muted">
<a href="https://kimsq.com" target="_blank">킴스큐 포탈</a> 회원 아이디 또는 이메일
</small>
</div>
</div>
<div class="form-group row">
<label class="col-lg-2 col-form-label pt-3">프로젝트 키</label>
<div class="col-lg-10 col-xl-8">
<input class="form-control form-control-lg" type="text" name="key" value="<?php echo $d['market']['key']?$d['market']['key']:'' ?>" required>
<small class="form-text text-muted">
<a href="https://kimsq.com/project/my" target="_blank">내 프로젝트</a>에 접속하여 키를 확인할 수 있습니다.
</small>
</div>
</div>
<div class="form-group form-row">
<div class="offset-sm-2 col-sm-10">
<button type="submit" class="btn btn-primary btn-lg<?php if($g['device']):?> btn-block<?php endif?>">저장하기</button>
<div class="mt-4">
<small class="text-muted">
프로젝트 키는 프로젝트의 정식판 여부를 확인하여 마켓이용과 지원에 활용됩니다.
<a href="https://kimsq.com/docs/c/start/market" class="btn btn-light btn-sm" target="_blank">도움말</a>
</small>
</div>
</div>
</div>
</form>
</div>
<script>
putCookieAlert('market_action_result') // 실행결과 알림 메시지 출력
function saveCheck(f) {
getIframeForAction(f);
return true;
}
</script>

View File

@@ -0,0 +1,14 @@
<?php
include $g['path_module'].$module.'/var/var.php';
$g['marketvar'] = $g['path_var'].'/market.var.php';
if (file_exists($g['marketvar'])) include_once $g['marketvar'];
if($d['market']['url'] && $d['market']['key'] && $d['market']['userid'] ):
include $g['path_core'].'function/rss.func.php';
$marketData = getUrlData($d['market']['url'].'&iframe=Y&page=client.front&package=0&_clientu='.$g['s'].($goods?'&goods='.$goods:'').'&_clientr='.$r.'&cat='.$cat.'&theme='.$theme.'&sort='.$sort.'&orderby='.$orderby.'&type='.$type.'&ptype='.$ptype.'&p='.$p.'&todayfree='.$todayfree.'&sailing='.$sailing.'&where='.$where.'&keyword='.$keyword.'&brand='.$brand.'&id='.$d['market']['userid'].'&key='.$d['market']['key'].'&version=2&host='.$_SERVER['HTTP_HOST'],10);
$marketData = explode('[RESULT:',$marketData);
$marketData = explode(':RESULT]',$marketData[1]);
$marketData = $marketData[0];
echo $marketData;
else:?>
<?php include $g['path_module'].$module.'/admin/_guide.php'; ?>
<?php endif?>

View File

@@ -0,0 +1,14 @@
<?php
include $g['path_module'].$module.'/var/var.php';
$g['marketvar'] = $g['path_var'].'/market.var.php';
if (file_exists($g['marketvar'])) include_once $g['marketvar'];
if($d['market']['url'] && $d['market']['key'] && $d['market']['userid'] ):
include $g['path_core'].'function/rss.func.php';
$marketData = getUrlData($d['market']['url'].'&iframe=Y&page=client.front&package=1&_clientu='.$g['s'].($goods?'&goods='.$goods:'').'&_clientr='.$r.'&cat='.$cat.'&theme='.$theme.'&sort='.$sort.'&orderby='.$orderby.'&type='.$type.'&ptype='.$ptype.'&p='.$p.'&todayfree='.$todayfree.'&sailing='.$sailing.'&where='.$where.'&keyword='.$keyword.'&brand='.$brand.'&id='.$d['market']['userid'].'&key='.$d['market']['key'].'&version=2&host='.$_SERVER['HTTP_HOST'],10);
$marketData = explode('[RESULT:',$marketData);
$marketData = explode(':RESULT]',$marketData[1]);
$marketData = $marketData[0];
echo $marketData;
else:?>
<?php include $g['path_module'].$module.'/admin/_guide.php'; ?>
<?php endif?>

View File

@@ -0,0 +1,128 @@
<?php
$addExtensionSet = array
(
'module' => array('모듈',$g['path_module'],'rb_module_모듈폴더명.zip'),
'layout' => array('레이아웃',$g['path_layout'],'rb_layout_레이아웃폴더명.zip'),
'widget' => array('위젯',$g['path_widget'],'rb_widget_위젯분류폴더명_위젯폴더명.zip'),
'switch' => array('스위치',$g['path_switch'],'rb_switch_스위치종류_스위치폴더명.zip'),
'plugin' => array('플러그인',$g['path_plugin'],'rb_plugin_플러그인폴더명_버전.zip'),
'dashboard' => array('대시보드',$g['path_module'].'dashboard/widgets','rb_dashboard_대시보드폴더명.zip'),
'etc' => array('기타자료','/root/','rb_etc_자료명.zip'),
);
?>
<form name="_upload_form_" action="<?php echo $g['s']?>/" method="post" enctype="multipart/form-data">
<input type="hidden" name="r" value="<?php echo $r?>">
<input type="hidden" name="m" value="<?php echo $module?>">
<input type="hidden" name="a" value="add_<?php echo $addType?>">
<input type="hidden" name="reload" value="<?php echo $reload?>">
<div class="modal-body bg-white">
<div class="py-5">
<div id="uplocation" class="mb-3">
<code>업로드 위치 : <?php echo str_replace('./','/root/',$addExtensionSet[$addType][1])?></code>
</div>
<input type="file" name="upfile" id="packageupfile" class="hidden" onchange="progressbar();">
<button type="button" class="btn btn-secondary btn-block" id="fileselectbtn" onclick="$('#packageupfile').click();">파일선택</button>
</div>
<hr>
<div class="progress progress-striped active hidden" id="progress-bar">
<div class="progress-bar" role="progressbar" aria-valuemax="100"></div>
</div>
<ul class="list-unstyled mt-4 text-secondary">
<li><?php echo sprintf('킴스큐에서 제공하는 공식 %s만 업로드할 수 있습니다.',$addExtensionSet[$addType][0])?></li>
<li><?php echo sprintf('파일형식은 <code>%s</strong></code> 이어야 합니다.',$addExtensionSet[$addType][2])?></li>
<li><?php echo 'FTP로 직접 추가하시려면 매뉴얼에 따라 추가해 주세요.'?></li>
<li><?php echo sprintf('이미 같은명칭의 %s 폴더가 존재할 경우 덧씌워지니 주의하세요.',$addExtensionSet[$addType][0])?></li>
</ul>
</div>
</form>
<!-- @부모레이어를 제어할 수 있도록 모달의 헤더와 풋터를 부모레이어에 출력시킴 -->
<div id="_modal_header" hidden>
<h5 class="modal-title" id="myModalLabel">
<i class="fa fa-upload fa-lg"></i> <?php echo sprintf('%s 추가',$addExtensionSet[$addType][0])?>
</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">&times;</span>
</button>
</div>
<div id="_modal_footer" hidden>
<button class="btn btn-light pull-left" data-dismiss="modal" type="button">취소</button>
<button class="btn btn-primary" type="button" onclick="frames._modal_iframe_modal_window.getFiles();" id="afterChooseFileNext" disabled>추가하기</button>
</div>
<script>
var _per = 0;
function progressbar()
{
if(_per == 0)
{
$('#progress-bar').removeClass('hidden');
$('#uplocation').addClass('hidden');
}
if (_per < 100)
{
_per = _per + 10;
getId('progress-bar').children[0].style.width = (_per>100?100:_per)+ '%';
setTimeout("progressbar();",100);
}
else {
parent.getId('afterChooseFileNext').disabled = false;
_per = 0;
}
}
function getFiles()
{
var f = document._upload_form_;
if (f.upfile.value == '')
{
alert('파일이 선택되지 않았습니다. ');
return false;
}
getIframeForAction(f);
f.submit();
parent.getId('afterChooseFileNext').innerHTML = '<i class="fa fa-spinner fa-lg fa-spin fa-fw"></i> Uploading ...';
parent.getId('afterChooseFileNext').disabled = true;
}
function modalSetting()
{
parent.getId('modal_window_dialog_modal_window').style.width = '100%';
parent.getId('modal_window_dialog_modal_window').style.paddingRight = '20px';
parent.getId('modal_window_dialog_modal_window').style.maxWidth = '800px';
parent.getId('_modal_iframe_modal_window').style.height = '330px'
parent.getId('_modal_body_modal_window').style.height = '330px';
parent.getId('_modal_header_modal_window').innerHTML = getId('_modal_header').innerHTML;
parent.getId('_modal_header_modal_window').className = 'modal-header';
parent.getId('_modal_body_modal_window').style.padding = '0';
parent.getId('_modal_body_modal_window').style.margin = '0';
parent.getId('_modal_footer_modal_window').innerHTML = getId('_modal_footer').innerHTML;
parent.getId('_modal_footer_modal_window').className = 'modal-footer';
}
document.body.onresize = document.body.onload = function()
{
setTimeout("modalSetting();",100);
setTimeout("modalSetting();",200);
}
</script>
<style>
body {
background: #fff;
}
</style>

View File

@@ -0,0 +1,426 @@
<?php $package_step = $package_step ? $package_step : 1?>
<div id="modal-package-install">
<div class="modal-body bg-white">
<div class="p-3">
<ul class="list-inline mb-0">
<li class="list-inline-item<?php if($package_step==1):?> active<?php endif?>"><span class="badge badge-secondary">Step 1</span> <span><?php echo '패키지 업로드'?></span></li>
<li class="list-inline-item<?php if($package_step==2):?> active<?php endif?>"><span class="badge badge-secondary">Step 2</span> <span><?php echo '설치하기'?></span></li>
<li class="list-inline-item<?php if($package_step==3):?> active<?php endif?>"><span class="badge badge-secondary">Step 3</span> <span><?php echo '완료'?></span></li>
</ul>
</div>
<div class="tab-content">
<?php if($package_step==1):?>
<div id="tab1">
<form name="_upload_form_" action="<?php echo $g['s']?>/" method="post" enctype="multipart/form-data">
<input type="hidden" name="r" value="<?php echo $r?>">
<input type="hidden" name="m" value="<?php echo $module?>">
<input type="hidden" name="a" value="add_package">
<input type="hidden" name="package_step" value="<?php echo $package_step?>">
<div class="row">
<div class="col-sm-4 text-center rb-icon">
<i class="fa fa-upload fa-3x"></i>
<h4 class="text-center text-muted">
패키지 파일을<br>업로드 해주세요.
</h4>
</div>
<div class="col-sm-8">
<div class="mt-4">
<input type="file" name="upfile" id="packageupfile" class="hidden" onchange="progressbar();">
<button type="button" class="btn btn-outline-secondary btn-block" id="fileselectbtn" onclick="$('#packageupfile').click();">파일선택</button>
</div>
<div class="mt-4">
<div class="progress progress-striped d-none" id="progress-bar">
<div class="progress-bar" role="progressbar" aria-valuemax="100"></div>
</div>
</div>
<ul class="mt-4">
<li>킴스큐에서 제공하는 공식 패키지만 업로드할 수 있습니다.</li>
<li>파일형식은 <code>rb_package_패키지명.zip</code> 이어야 합니다.</li>
<li>패키지 설치시 이미 같은명칭의 폴더나 파일이 존재할 경우 덧씌워지니 주의하세요.</li>
</ul>
</div>
</div>
</form>
</div>
<?php endif?>
<?php if($package_step==2):?>
<?php include $g['path_tmp'].'app/'.$package_folder.'/_settings/var.php' ?>
<div id="tab2">
<div class="row">
<div class="col-sm-4 text-center rb-icon">
<i class="fa fa-cube fa-3x"></i>
<h4 class="text-center text-muted">
패키지를 적용할 준비가<br>완료 되었습니다.
</h4>
</div>
<div class="col-sm-8">
<form name="_upload_form_" action="<?php echo $g['s']?>/" method="post" role="form">
<input type="hidden" name="r" value="<?php echo $r?>">
<input type="hidden" name="m" value="<?php echo $module?>">
<input type="hidden" name="a" value="add_package">
<input type="hidden" name="package_step" value="<?php echo $package_step?>">
<input type="hidden" name="package_folder" value="<?php echo $package_folder?>">
<div class="well">
<div class="form-group row">
<label for="" class="col-sm-3 col-form-label">패키지명</label>
<div class="col-sm-9">
<?php echo $d['package']['name']?>
</div>
</div>
<div class="form-group row">
<label for="" class="col-sm-3 col-form-label">적용사이트</label>
<div class="col-sm-8">
<select name="siteuid" class="form-control">
<option value="">신규생성 후 적용</option>
<option value="">-------------------------------</option>
<?php $_SITES_ALL = getDbArray($table['s_site'],'','*','gid','asc',0,1)?>
<?php while($_R = db_fetch_array($_SITES_ALL)):?>
<option value="<?php echo $_R['uid']?>"><?php echo $_R['name']?></option>
<?php endwhile?>
</select>
<small class="form-text text-danger mt-3">
운영중인 사이트에는 적용하지 마십시오.
</small>
</div>
</div>
</div>
<div class="card">
<div class="card-header">
<a class="collapsed" data-toggle="collapse" href="#package-options" onclick="detailCheck();"><i class="fa fa-cog"></i> 설치옵션 및 세부내용<span class="pull-right"></span></a>
</div>
<div class="card-body collapse" id="package-options">
<div class="form-group row">
<label class="col-sm-3 col-form-label">설치옵션</label>
<div class="col-sm-9">
<?php foreach($d['package']['execute'] as $_key => $_val):?>
<div class="checkbox">
<label>
<input type="checkbox" name="ACT_<?php echo $_val[0]?>" value="1"<?php if($_val[2]):?> checked<?php endif?>>
<?php echo $_val[1]?>
</label>
</div>
<?php endforeach?>
</div>
</div>
<?php if(is_file($g['path_tmp'].'app/'.$package_folder.'/_settings/readme.txt')):?>
<div class="form-group row">
<label class="col-sm-3 col-form-label">설치내용</label>
<div class="col-sm-9">
<?php readfile($g['path_tmp'].'app/'.$package_folder.'/_settings/readme.txt')?>
</div>
</div>
<?php endif?>
</div>
</div>
</form>
</div>
</div>
</div>
<?php endif?>
<?php if($package_step==3):?>
<div id="tab3">
<div class="row">
<div class="col-sm-4 text-center rb-icon">
<i class="fa fa-home fa-3x"></i>
<h4 class="text-center text-muted">
설치가 완료 되었습니다.
</h4>
</div>
<div class="col-sm-8">
<div class="text-center">
<br><br>
<a href="<?php echo $g['s']?>/?r=<?php echo $siteid?>&amp;panel=Y" class="btn btn-primary btn-lg" target="_top">
<i class="fa fa-share"></i> 사이트 접속하기
</a>
<br><br>
<hr><?php echo sprintf('%s 패키지가<br><strong>%s</strong>에 설치 완료 되었습니다.',urldecode($package_name),urldecode($site_name))?>
</div>
</div>
</div>
</div>
<?php endif?>
</div>
</div>
</div>
<!-- @부모레이어를 제어할 수 있도록 모달의 헤더와 풋터를 부모레이어에 출력시킴 -->
<div id="_modal_header" hidden>
<h5 class="modal-title"><i class="fa fa-plus-circle fa-lg"></i> Rb 패키지 설치</h5>
<button type="button" class="close" onclick="frames._modal_iframe_modal_window.mClose();">
<span aria-hidden="true">&times;</span>
</button>
</div>
<div id="_modal_footer" hidden>
<?php if($package_step==3):?>
<button type="button" class="btn btn-light pull-left" disabled>취소</button>
<button type="button" class="btn btn-primary" disabled>완료</button>
<?php else:?>
<button type="button" class="btn btn-light pull-left" onclick="frames._modal_iframe_modal_window.mClose();">취소</button>
<?php if($package_step==2):?>
<button type="button" class="btn btn-primary" onclick="frames._modal_iframe_modal_window.install();" id="afterChooseFileNext">다음</button>
<?php endif?>
<?php if($package_step==1):?>
<button type="button" class="btn btn-primary" onclick="frames._modal_iframe_modal_window.getFiles();" id="afterChooseFileNext" disabled>다음</button>
<?php endif?>
<?php endif?>
</div>
<script>
var _per = 0;
function progressbar()
{
if(_per == 0) $('#progress-bar').removeClass('d-none');
if (_per < 100)
{
_per = _per + 10;
getId('progress-bar').children[0].style.width = (_per>100?100:_per)+ '%';
setTimeout("progressbar();",100);
}
else {
parent.getId('afterChooseFileNext').disabled = false;
}
}
function detailCheck()
{
/*
var h = document.body.scrollHeight;
parent.getId('_modal_iframe_modal_window').style.height = (h+400)+'px'
parent.getId('_modal_body_modal_window').style.height = (h+400)+'px';
*/
}
function nextStep()
{
location.href = '<?php echo $g['s']?>/?r=<?php echo $r?>&iframe=Y&m=admin&module=<?php echo $module?>&front=modal.package&package_type=<?php echo $package_type?>&&package_step=2';
}
function install()
{
var f = document._upload_form_;
getIframeForAction(f);
f.submit();
parent.getId('afterChooseFileNext').innerHTML = '<i class="fa fa-spinner fa-lg fa-spin fa-fw"></i> Installing ...';
parent.getId('afterChooseFileNext').disabled = true;
}
function getFiles()
{
var f = document._upload_form_;
if (f.upfile.value == '')
{
alert('파일이 선택되지 않았습니다. ');
return false;
}
getIframeForAction(f);
f.submit();
parent.getId('afterChooseFileNext').innerHTML = '<i class="fa fa-spinner fa-lg fa-spin fa-fw"></i> Uploading ...';
parent.getId('afterChooseFileNext').disabled = true;
}
function mClose()
{
location.href = '<?php echo $g['s']?>/?r=<?php echo $r?>&m=<?php echo $module?>&a=add_package&package_step=delete';
parent.$('#modal_window').modal('hide');
}
function modalSetting()
{
parent.getId('modal_window_dialog_modal_window').style.width = '100%';
parent.getId('modal_window_dialog_modal_window').style.paddingRight = '20px';
parent.getId('modal_window_dialog_modal_window').style.maxWidth = '800px';
parent.getId('_modal_iframe_modal_window').style.height = '400px'
parent.getId('_modal_body_modal_window').style.height = '400px';
parent.getId('_modal_header_modal_window').innerHTML = getId('_modal_header').innerHTML;
parent.getId('_modal_header_modal_window').className = 'modal-header';
parent.getId('_modal_body_modal_window').style.padding = '0';
parent.getId('_modal_body_modal_window').style.margin = '0';
parent.getId('_modal_footer_modal_window').innerHTML = getId('_modal_footer').innerHTML;
parent.getId('_modal_footer_modal_window').className = 'modal-footer';
}
document.body.onresize = document.body.onload = function()
{
setTimeout("modalSetting();",100);
setTimeout("modalSetting();",200);
}
</script>
<style>
#modal-package-install .modal-body {
min-height: 400px;
max-height: calc(100vh - 175px);
overflow-y: auto;
padding: 15px
}
#modal-package-install .tab-content {
padding: 20px 0
}
/* breadcrumb */
#modal-package-install .breadcrumb {
margin: -15px -15px 15px;
border-radius: 0;
padding: 10px 15px;
}
#modal-package-install .breadcrumb a {
color: #999;
}
#modal-package-install .breadcrumb a:hover {
text-decoration: none;
}
#modal-package-install .breadcrumb .active a {
color: #428bca;
font-weight: bold;
}
#modal-package-install .breadcrumb .badge {
background-color: #999;
}
#modal-package-install .breadcrumb .active .badge {
background-color: #428bca;
}
#modal-package-install h4 {
line-height: 1.5
}
#modal-package-install .page-header {
margin-top: 20px;
}
#modal-package-install .list-group {
margin-bottom: 10px;
}
#modal-package-install .rb-icon {
font-size: 70px;
color: #444
}
#modal-package-install .label {
display: inline;
padding: .2em .6em .3em;
font-size: 75%;
font-weight: 700;
line-height: 1;
color: #fff;
text-align: center;
white-space: nowrap;
vertical-align: baseline;
border-radius: .25em;
}
#modal-package-install .pager {
margin: 0;
}
/* tab2 */
#tab2 .panel-heading a {
display: inline-block;
font-family: FontAwesome;
font-style: normal;
font-weight: normal;
line-height: 1;
-webkit-font-smoothing: antialiased;
}
#tab2 .panel-heading a {
color: #666;
display: block;
}
#tab2 .panel-heading a:hover {
text-decoration: none;
}
#tab2 .panel-heading span:before {
content: " \f078";
}
#tab2 .panel-heading .collapsed span:before {
content: " \f054";
}
/* responsive */
@media (min-width: 992px) {
.modal-lg {
width: 780px;
}
}
@media (max-width: 768px) {
#modal-package-install .breadcrumb .badge {
padding: 5px 15px
}
#modal-package-install .breadcrumb .badge {
font-size: 18px
}
#modal-package-install .rb-icon {
font-size: 40px
}
#modal-package-install .tab-content {
padding: 0
}
#tab1 .btn {
display: block;
width: 100%
}
}
/* 김성호 */
#modal-package-install ul {
color: #666;
}
#modal-package-install ul .active {
font-weight: bold;
color: #428BCA;
}
#modal-package-install ul .active .badge {
background: #428BCA;
}
#modal-package-install .modal-body {
padding: 0;
}
#modal-package-install .tab-content {
clear: both;
padding: 40px 20px 0 20px;
}
#rb-body .tab-content {
border: 0;
}
</style>

View File

@@ -0,0 +1,419 @@
<?php $package_step = $package_step ? $package_step : 1?>
<div id="modal-package-install">
<div class="modal-body bg-white">
<div class="p-3">
<ul class="list-inline mb-0">
<li class="list-inline-item<?php if($package_step==1):?> active<?php endif?>"><span class="badge badge-secondary">Step 1</span> <span><?php echo '패키지 안내'?></span></li>
<li class="list-inline-item<?php if($package_step==2):?> active<?php endif?>"><span class="badge badge-secondary">Step 2</span> <span><?php echo '설치하기'?></span></li>
<li class="list-inline-item<?php if($package_step==3):?> active<?php endif?>"><span class="badge badge-secondary">Step 3</span> <span><?php echo '완료'?></span></li>
</ul>
</div>
<div class="tab-content">
<?php if($package_step==1):?>
<div id="tab1">
<form name="_download_form_" action="<?php echo $g['s']?>/" method="post" enctype="multipart/form-data">
<input type="hidden" name="r" value="<?php echo $r?>">
<input type="hidden" name="m" value="<?php echo $module?>">
<input type="hidden" name="a" value="download_package">
<input type="hidden" name="package_step" value="<?php echo $package_step?>">
<?php
include $g['path_module'].$module.'/var/var.php';
include $g['path_core'].'function/rss.func.php';
$packageData = getUrlData($d['market']['url'].'&iframe=Y&page=client.project.package&pid='.$pid,10);
$packageData = explode('[RESULT:',$packageData);
$packageData = explode(':RESULT]',$packageData[1]);
$packageData = $packageData[0];
echo $packageData;
?>
</form>
</div>
<?php endif?>
<?php if($package_step==2):?>
<?php include $g['path_tmp'].'app/'.$package_folder.'/_settings/var.php' ?>
<div id="tab2">
<div class="row">
<div class="col-sm-4 text-center rb-icon">
<i class="fa fa-cube fa-3x"></i>
<h4 class="text-center text-muted">
패키지를 적용할 준비가<br>완료 되었습니다.
</h4>
</div>
<div class="col-sm-8">
<form name="_upload_form_" action="<?php echo $g['s']?>/" method="post" role="form">
<input type="hidden" name="r" value="<?php echo $r?>">
<input type="hidden" name="m" value="<?php echo $module?>">
<input type="hidden" name="a" value="add_package">
<input type="hidden" name="package_step" value="<?php echo $package_step?>">
<input type="hidden" name="package_folder" value="<?php echo $package_folder?>">
<div class="well">
<div class="form-group form-row">
<label for="" class="col-sm-3 control-label">패키지명</label>
<div class="col-sm-9">
<p class="form-control-static">
<?php echo $d['package']['name']?>
</p>
</div>
</div>
<div class="form-group form-row">
<label for="" class="col-sm-3 control-label">적용사이트</label>
<div class="col-sm-8">
<select name="siteuid" class="form-control">
<option value="">신규생성 후 적용</option>
<option value="">-------------------------------</option>
<?php $_SITES_ALL = getDbArray($table['s_site'],'','*','gid','asc',0,1)?>
<?php while($_R = db_fetch_array($_SITES_ALL)):?>
<option value="<?php echo $_R['uid']?>"><?php echo $_R['name']?></option>
<?php endwhile?>
</select>
<span class="help-block">운영중인 사이트에는 적용하지 마십시오.</span>
</div>
</div>
</div>
<div class="card">
<div class="card-header">
<a class="collapsed" data-toggle="collapse" href="#package-options" onclick="detailCheck();"><i class="fa fa-cog"></i> 설치옵션 및 세부내용<span class="pull-right"></span></a>
</div>
<div class="card-body collapse" id="package-options">
<div class="form-group form-row">
<label class="col-sm-3 control-label">설치옵션</label>
<div class="col-sm-9">
<?php foreach($d['package']['execute'] as $_key => $_val):?>
<div class="checkbox">
<label>
<input type="checkbox" name="ACT_<?php echo $_val[0]?>" value="1"<?php if($_val[2]):?> checked<?php endif?>>
<?php echo $_val[1]?>
</label>
</div>
<?php endforeach?>
</div>
</div>
<?php if(is_file($g['path_tmp'].'app/'.$package_folder.'/_settings/readme.txt')):?>
<div class="form-group form-row">
<label class="col-sm-3 control-label">설치내용</label>
<div class="col-sm-9">
<?php readfile($g['path_tmp'].'app/'.$package_folder.'/_settings/readme.txt')?>
</div>
</div>
<?php endif?>
</div>
</div>
</form>
</div>
</div>
</div>
<?php endif?>
<?php if($package_step==3):?>
<div id="tab3">
<div class="row">
<div class="col-sm-4 text-center rb-icon">
<i class="fa fa-home fa-3x"></i>
<h4 class="text-center text-muted">
설치가 완료 되었습니다.
</h4>
</div>
<div class="col-sm-8">
<div class="text-center">
<br><br>
<a href="<?php echo $g['s']?>/?r=<?php echo $siteid?>&amp;panel=Y" class="btn btn-primary btn-lg" target="_top">
<i class="fa fa-share"></i> 사이트 접속하기
</a>
<br><br>
<hr><?php echo sprintf('%s 패키지가<br><strong>%s</strong>에 설치 완료 되었습니다.',urldecode($package_name),urldecode($site_name))?>
</div>
</div>
</div>
</div>
<?php endif?>
</div>
</div>
</div>
<!-- @부모레이어를 제어할 수 있도록 모달의 헤더와 풋터를 부모레이어에 출력시킴 -->
<div id="_modal_header" hidden>
<h5 class="modal-title"><i class="fa fa-plus-circle fa-lg"></i> Rb 패키지 설치 </h5>
<button type="button" class="close" onclick="frames._modal_iframe_modal_window.mClose();">
<span aria-hidden="true">&times;</span>
</button>
</div>
<div id="_modal_footer" hidden>
<?php if($package_step==3):?>
<button type="button" class="btn btn-light pull-left" disabled>취소</button>
<button type="button" class="btn btn-primary" disabled>완료</button>
<?php else:?>
<button type="button" class="btn btn-light pull-left" onclick="frames._modal_iframe_modal_window.mClose();">취소</button>
<?php if($package_step==2):?>
<button type="button" class="btn btn-primary" onclick="frames._modal_iframe_modal_window.install();" id="afterChooseFileNext">다음</button>
<?php endif?>
<?php if($package_step==1):?>
<button type="button" class="btn btn-primary" onclick="frames._modal_iframe_modal_window.getFiles();" id="afterChooseFileNext" data-pid="<?php echo $pid ?>">다음</button>
<?php endif?>
<?php endif?>
</div>
<script>
var _per = 0;
function progressbar()
{
if(_per == 0) $('#progress-bar').removeClass('d-none');
if (_per < 100)
{
_per = _per + 10;
getId('progress-bar').children[0].style.width = (_per>100?100:_per)+ '%';
setTimeout("progressbar();",100);
}
else {
parent.getId('afterChooseFileNext').disabled = false;
}
}
function detailCheck()
{
/*
var h = document.body.scrollHeight;
parent.getId('_modal_iframe_modal_window').style.height = (h+400)+'px'
parent.getId('_modal_body_modal_window').style.height = (h+400)+'px';
*/
}
function nextStep()
{
location.href = '<?php echo $g['s']?>/?r=<?php echo $r?>&iframe=Y&m=admin&module=<?php echo $module?>&front=modal.package&package_type=<?php echo $package_type?>&&package_step=2';
}
function install()
{
var f = document._upload_form_;
getIframeForAction(f);
f.submit();
parent.getId('afterChooseFileNext').innerHTML = '<i class="fa fa-spinner fa-lg fa-spin fa-fw"></i> Installing ...';
parent.getId('afterChooseFileNext').disabled = true;
}
function getFiles()
{
var f = document._download_form_;
if (confirm('정말로 패키지를 다운받으시겠습니까? '))
{
// var version = ver.value;
parent.document.title = '패키지 다운로드 중';
parent.getId('afterChooseFileNext').innerHTML = '<i class="fa fa-spinner fa-lg fa-spin fa-fw"></i> 다운로드중 ...';
parent.getId('afterChooseFileNext').disabled = true;
// console.log(version)
// frames.download_frame.location.href = './index.php?install=download&version=' + version + '&sitelang='+lang;
// frames.download_frame.location.href = './index.php?install=download&version=' + version + '&sitelang='+lang;
// getIframeForAction('');
// parent.frames.__iframe_for_action__.location.href = $g['s'].'/?r='.$r.'&amp;m='.$m.'&amp;a=download_package';
getIframeForAction(f);
f.submit();
}
}
function mClose()
{
location.href = '<?php echo $g['s']?>/?r=<?php echo $r?>&m=<?php echo $module?>&a=add_package&package_step=delete';
parent.$('#modal_window').modal('hide');
}
function modalSetting()
{
parent.getId('modal_window_dialog_modal_window').style.width = '100%';
parent.getId('modal_window_dialog_modal_window').style.paddingRight = '20px';
parent.getId('modal_window_dialog_modal_window').style.maxWidth = '800px';
parent.getId('_modal_iframe_modal_window').style.height = '400px'
parent.getId('_modal_body_modal_window').style.height = '400px';
parent.getId('_modal_header_modal_window').innerHTML = getId('_modal_header').innerHTML;
parent.getId('_modal_header_modal_window').className = 'modal-header';
parent.getId('_modal_body_modal_window').style.padding = '0';
parent.getId('_modal_body_modal_window').style.margin = '0';
parent.getId('_modal_footer_modal_window').innerHTML = getId('_modal_footer').innerHTML;
parent.getId('_modal_footer_modal_window').className = 'modal-footer';
}
document.body.onresize = document.body.onload = function()
{
setTimeout("modalSetting();",100);
setTimeout("modalSetting();",200);
}
</script>
<style>
#modal-package-install .modal-body {
min-height: 400px;
max-height: calc(100vh - 175px);
overflow-y: auto;
padding: 15px
}
#modal-package-install .tab-content {
padding: 20px 0
}
/* breadcrumb */
#modal-package-install .breadcrumb {
margin: -15px -15px 15px;
border-radius: 0;
padding: 10px 15px;
}
#modal-package-install .breadcrumb a {
color: #999;
}
#modal-package-install .breadcrumb a:hover {
text-decoration: none;
}
#modal-package-install .breadcrumb .active a {
color: #428bca;
font-weight: bold;
}
#modal-package-install .breadcrumb .badge {
background-color: #999;
}
#modal-package-install .breadcrumb .active .badge {
background-color: #428bca;
}
#modal-package-install h4 {
line-height: 1.5
}
#modal-package-install .page-header {
margin-top: 20px;
}
#modal-package-install .list-group {
margin-bottom: 10px;
}
#modal-package-install .rb-icon {
font-size: 70px;
color: #444
}
#modal-package-install .label {
display: inline;
padding: .2em .6em .3em;
font-size: 75%;
font-weight: 700;
line-height: 1;
color: #fff;
text-align: center;
white-space: nowrap;
vertical-align: baseline;
border-radius: .25em;
}
#modal-package-install .pager {
margin: 0;
}
/* tab2 */
#tab2 .panel-heading a {
display: inline-block;
font-family: FontAwesome;
font-style: normal;
font-weight: normal;
line-height: 1;
-webkit-font-smoothing: antialiased;
}
#tab2 .panel-heading a {
color: #666;
display: block;
}
#tab2 .panel-heading a:hover {
text-decoration: none;
}
#tab2 .panel-heading span:before {
content: " \f078";
}
#tab2 .panel-heading .collapsed span:before {
content: " \f054";
}
/* responsive */
@media (min-width: 992px) {
.modal-lg {
width: 780px;
}
}
@media (max-width: 768px) {
#modal-package-install .breadcrumb .badge {
padding: 5px 15px
}
#modal-package-install .breadcrumb .badge {
font-size: 18px
}
#modal-package-install .rb-icon {
font-size: 40px
}
#modal-package-install .tab-content {
padding: 0
}
#tab1 .btn {
display: block;
width: 100%
}
}
/* 김성호 */
#modal-package-install ul {
color: #666;
}
#modal-package-install ul .active {
font-weight: bold;
color: #428BCA;
}
#modal-package-install ul .active .badge {
background: #428BCA;
}
#modal-package-install .modal-body {
padding: 0;
}
#modal-package-install .tab-content {
clear: both;
padding: 40px 20px 0 20px;
}
#rb-body .tab-content {
border: 0;
}
</style>

View File

@@ -0,0 +1,14 @@
<?php
include $g['path_module'].$module.'/var/var.php';
$g['marketvar'] = $g['path_var'].'/market.var.php';
if (file_exists($g['marketvar'])) include_once $g['marketvar'];
if($d['market']['url'] && $d['market']['key'] && $d['market']['userid'] ):
include $g['path_core'].'function/rss.func.php';
$marketData = getUrlData($d['market']['url'].'&iframe=Y&page=client.package&_clientu='.$g['s'].($goods?'&goods='.$goods:'').'&_clientr='.$r.'&cat='.$cat.'&theme='.$theme.'&sort='.$sort.'&orderby='.$orderby.'&type='.$type.'&ptype='.$ptype.'&p='.$p.'&todayfree='.$todayfree.'&sailing='.$sailing.'&where='.$where.'&keyword='.$keyword.'&brand='.$brand.'&id='.$d['market']['userid'].'&key='.$d['market']['key'].'&version=2&host='.$_SERVER['HTTP_HOST'],10);
$marketData = explode('[RESULT:',$marketData);
$marketData = explode(':RESULT]',$marketData[1]);
$marketData = $marketData[0];
echo $marketData;
else:?>
<?php include $g['path_module'].$module.'/admin/_guide.php'; ?>
<?php endif?>

View File

@@ -0,0 +1,16 @@
.tt {font-weight:bold;font-family:"malgun gothic",dotum;color:#333333;border-bottom:#dfdfdf dotted 1px;padding:10px 0 10px 10px;margin:0 0 20px 0;}
.tt img {position:relative;top:6px;}
#orderbox {}
#orderbox .box {padding:10px 0 50px 0;}
#orderbox .box table {}
#orderbox .box td {}
#orderbox .box .td1 {width:80px;padding:5px 0 5px 10px;font-family:dotum;font-size:12px;color:#666;}
#orderbox .box .td2 {padding:7px 0 7px 0;}
#orderbox .box .td2 span {font-family:arial;font-size:11px;color:#ff0000;}
#orderbox .box .td2 s {font-family:arial;font-size:11px;color:#999;}
#orderbox .box .noline td {border-top:#ffffff solid 1px;}
#orderbox .box .buybox {padding:20px 0 20px 90px;}
#orderbox .box .buybox div {padding:0 0 20px 0;}
#orderbox .box .price1 {color:#000000;}
#orderbox .box .price2 {color:#ff0000;}
#orderbox .box .halin {color:#FF4040;}

View File

@@ -0,0 +1,45 @@
<?php
include $g['path_module'].$module.'/var/var.php';
$g['marketvar'] = $g['path_var'].'/market.var.php';
if (file_exists($g['marketvar'])) include_once $g['marketvar'];
if($d['market']['url'] && $d['market']['key'] && $d['market']['userid'] ):
include $g['path_core'].'function/rss.func.php';
$marketData = getUrlData($d['market']['url'].'&iframe=Y&page=client.buy&_clientu='.$g['s'].'&_clientr='.$r.'&uid='.$uid.'&iframe=Y&id='.$d['market']['userid'].'&key='.$d['market']['key'].'&version=2',10);
$marketData = explode('[RESULT:',$marketData);
$marketData = explode(':RESULT]',$marketData[1]);
$marketData = $marketData[0];
?>
<?php if($marketData == 'NOMEMBER'):?>
<script type="text/javascript">
//<![CDATA[
alert('환경설정 페이지에 등록한 킴스큐 회원정보가 정확하지 않습니다.');
window.close();
//]]>
</script>
<?php exit;endif?>
<?php if($marketData == 'NOPRODUCT'):?>
<script type="text/javascript">
//<![CDATA[
alert('존재하지 않는 상품입니다.');
window.close();
//]]>
</script>
<?php exit;endif?>
<?php echo $marketData?>
<?php else:?>
<script type="text/javascript">
//<![CDATA[
alert('환경설정 페이지에서 마켓 접속주소와\n킴스큐 아이디와 프로젝트 키를 등록해 주세요.');
window.close();
//]]>
</script>
<?php endif?>
<script type="text/javascript">
//<![CDATA[
document.title = '큐마켓-구매하기';
//]]>
</script>

View File

@@ -0,0 +1,14 @@
<?php
include $g['path_module'].$module.'/var/var.php';
$g['marketvar'] = $g['path_var'].'/market.var.php';
if (file_exists($g['marketvar'])) include_once $g['marketvar'];
if($d['market']['url'] && $d['market']['key'] && $d['market']['userid'] ):
include $g['path_core'].'function/rss.func.php';
$marketData = getUrlData($d['market']['url'].'&iframe=Y&page=client.recomm&_clientu='.$g['s'].'&_clientr='.$r.'&cat='.$cat.'&theme='.$theme.'&sort='.$sort.'&orderby='.$orderby.'&type='.$type.'&ptype='.$ptype.'&p='.$p.'&todayfree='.$todayfree.'&sailing='.$sailing.'&where='.$where.'&keyword='.$keyword.'&brand='.$brand.'&id='.$d['market']['userid'].'&key='.$d['market']['key'].'&version=2&host='.$_SERVER['HTTP_HOST'],10);
$marketData = explode('[RESULT:',$marketData);
$marketData = explode(':RESULT]',$marketData[1]);
$marketData = $marketData[0];
echo $marketData;
else:?>
<?php include $g['path_module'].$module.'/admin/_guide.php'; ?>
<?php endif?>

View File

@@ -0,0 +1,14 @@
<?php
include $g['path_module'].$module.'/var/var.php';
$g['marketvar'] = $g['path_var'].'/market.var.php';
if (file_exists($g['marketvar'])) include_once $g['marketvar'];
if($d['market']['url'] && $d['market']['key'] && $d['market']['userid'] ):
include $g['path_core'].'function/rss.func.php';
$marketData = getUrlData($d['market']['url'].'&iframe=Y&page=client.update&_clientu='.$g['s'].'&_clientr='.$r.'&cat='.$cat.'&theme='.$theme.'&sort='.$sort.'&orderby='.$orderby.'&type='.$type.'&ptype='.$ptype.'&p='.$p.'&todayfree='.$todayfree.'&sailing='.$sailing.'&where='.$where.'&keyword='.$keyword.'&brand='.$brand.'&id='.$d['market']['userid'].'&key='.$d['market']['key'].'&version=2&host='.$_SERVER['HTTP_HOST'],10);
$marketData = explode('[RESULT:',$marketData);
$marketData = explode(':RESULT]',$marketData[1]);
$marketData = $marketData[0];
echo $marketData;
else:?>
<?php include $g['path_module'].$module.'/admin/_guide.php'; ?>
<?php endif?>

View File

@@ -0,0 +1,9 @@
<?php
$d['amenu']['main'] = '패키지';
$d['amenu']['extension'] = '익스텐션';
$d['amenu']['recomm']= '추천상품';
$d['amenu']['brand'] = '브랜드';
$d['amenu']['update'] = '설치내역';
$d['amenu']['buyer'] = '구매내역';
$d['amenu']['config'] = '설정';
?>