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,4 @@
## Copyright and license
Copyright 2020 Redblock, Inc.
Licensed under the [RBL](https://kimsq.com/p/rbl) License

View File

@@ -0,0 +1,40 @@
<?php
if(!defined('__KIMS__')) exit;
checkAdmin(0);
$_mywidget = $g['dir_module'].'var/'.$my['uid'].'.php';
if($widget) include $_mywidget;
$fp = fopen($_mywidget,'w');
fwrite($fp, "<?php\n");
if ($widget)
{
foreach ($d['admwidget'] as $_key => $_val)
{
fwrite($fp, "\$d['admwidget']['".$_key."'] = '".($_key==$widget?'false':$_val)."';\n");
}
}
else {
$_i = 0;
$_s = explode(',',$flag);
foreach ($dashboard_widgets_order as $val)
{
fwrite($fp, "\$d['admwidget']['".$val."'] = '".$_s[$_i]."';\n");
$_i++;
}
}
fwrite($fp, "?>");
fclose($fp);
@chmod($_mywidget,0707);
if ($reaction == 'Y')
{
getLink('reload','parent.parent.','','');
}
else {
getLink('reload','parent.','','');
}
?>

View File

@@ -0,0 +1,4 @@
<?php
if(!defined('__KIMS__')) exit;
include $g['path_module'].$module.'/admin/'.$front.'.php';
?>

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,148 @@
#rb-body .nav-tabs {
display: none;
}
#rb-dashboard .alert {
border-radius: 3px;
}
#rb-dashboard .row {
margin-right: -7px;
margin-left: -7px
}
#rb-dashboard .col-xs-1,
#rb-dashboard .col-sm-1,
#rb-dashboard .col-md-1,
#rb-dashboard .col-lg-1,
#rb-dashboard .col-xs-2,
#rb-dashboard .col-sm-2,
#rb-dashboard .col-md-2,
#rb-dashboard .col-lg-2,
#rb-dashboard .col-xs-3,
#rb-dashboard .col-sm-3,
#rb-dashboard .col-md-3,
#rb-dashboard .col-lg-3,
#rb-dashboard .col-xs-4,
#rb-dashboard .col-sm-4,
#rb-dashboard .col-md-4,
#rb-dashboard .col-lg-4,
#rb-dashboard .col-xs-5,
#rb-dashboard .col-sm-5,
#rb-dashboard .col-md-5,
#rb-dashboard .col-lg-5,
#rb-dashboard .col-xs-6,
#rb-dashboard .col-sm-6,
#rb-dashboard .col-md-6,
#rb-dashboard .col-lg-6,
#rb-dashboard .col-xs-7,
#rb-dashboard .col-sm-7,
#rb-dashboard .col-md-7,
#rb-dashboard .col-lg-7,
#rb-dashboard .col-xs-8,
#rb-dashboard .col-sm-8,
#rb-dashboard .col-md-8,
#rb-dashboard .col-lg-8,
#rb-dashboard .col-xs-9,
#rb-dashboard .col-sm-9,
#rb-dashboard .col-md-9,
#rb-dashboard .col-lg-9,
#rb-dashboard .col-xs-10,
#rb-dashboard .col-sm-10,
#rb-dashboard .col-md-10,
#rb-dashboard .col-lg-10,
#rb-dashboard .col-xs-11,
#rb-dashboard .col-sm-11,
#rb-dashboard .col-md-11,
#rb-dashboard .col-lg-11,
#rb-dashboard .col-xs-12,
#rb-dashboard .col-sm-12,
#rb-dashboard .col-md-12,
#rb-dashboard .col-lg-12 {
padding-left : 7px;
padding-right: 7px;
}
#rb-dashboard .collapse {
max-height: 300px;
overflow-x: hidden;
overflow-y: auto;
}
@media (max-width: 768px)
{
#rb-dashboard .collapse {
max-height: 10000px;
}
}
#rb-dashboard .panel-heading {
position: relative;
cursor: move;
}
#rb-dashboard .panel-heading .rb-collapse {
position: absolute;
top: 2px;
right: 5px;
left: auto;
cursor: pointer;
color: #AAAAAA;
text-decoration: none;
}
#rb-dashboard .panel-heading a i {
display: inline-block;
width: 16px;
height: 16px;
font-style: normal;
font-size: 10px;
}
#rb-dashboard .panel-heading a i:first-child
{
font-size: 12px;
}
#rb-dashboard .panel-heading a i:hover {
border: #dfdfdf solid 1px;
border-radius: 1px;
background-color: #fff;
color: #777;
}
#rb-dashboard .panel {
font-size: 13px;
border-radius: 3px;
}
#rb-dashboard .rb-bottom-none {
border-bottom: 0;
}
#rb-dashboard .panel-footer {
padding: 0;
}
#rb-dashboard .panel-footer.rb-more a {
display: block;
text-align: center;
color: #999;
padding: 7px 0 7px 0;
}
#rb-dashboard .panel-footer.rb-more a:hover {
text-decoration: none;
color: #444
}
#rb-dashboard .rb-guide-wrapper {
display: table;
width: 100%;
text-align: center;
}
#rb-dashboard .rb-guide-wrapper-inner {
display: table-cell;
vertical-align: middle;
}
#rb-dashboard .rb-guide-wrapper-inner .container {
margin: 20px 0 50px 0;
line-height: 1.8
}
#rb-dashboard .rb-guide-wrapper-inner h1 .fa {
margin-bottom: 15px
}
#rb-dashboard .rb-guide-wrapper-inner h1 .fa.text-muted {
color: #B4B3B3
}
#rb-dashboard .rb-guide-wrapper-inner h3 {
font-family: 'verdana';
}

View File

@@ -0,0 +1,172 @@
<?php
if (!$_dashboardInclude && $g['device']) {
getLink($g['s'].'/?r='.$r.'&m='.$m.'&module='.$module.'&front=mobile.shortcut','','','');
}
include $g['path_core'].'function/rss.func.php';
include $g['path_module'].'market/var/var.php';
include $g['path_module'].'admin/var/var.version.php';
$lastest_version = trim(getUrlData($d['github']['lastest'].$g['wcache'],10));
$current_version = $d['admin']['version'];
$_current_version = str_replace('.','',$current_version);
$_lastest_version = str_replace('.','',$lastest_version);
if ($_lastest_version-$_current_version > 0) $try_update = true;
else $try_update = false;
// 마켓 업데이트 체크
$g['marketvar'] = $g['path_var'].'/market.var.php';
if (file_exists($g['marketvar'])) include_once $g['marketvar'];
$num_market_update = 0;
if ($d['market']['url']) {
$numData = getUrlData($d['market']['url'].'&iframe=Y&page=client.check_update&id='.$d['market']['userid'].'&key='.$d['market']['key'].'&version=2&host='.$_SERVER['HTTP_HOST'].'&ip='.$_SERVER['REMOTE_ADDR'],10);
$numData = explode('[NUM:',$numData);
$numData = explode(':NUM]',$numData[1]);
$num_market_update = $numData[0];
}
$d['admwidget'] = array();
$_mywidget = $g['path_module'].$module.'/var/'.$my['uid'].'.php';
if(is_file($_mywidget)) include $_mywidget;
?>
<div id="rb-dashboard">
<?php if($try_update):?>
<div id="rb-update-alert" class="alert alert-success rounded-0 mb-1">
<strong>시스템</strong> 업데이트가 있습니다.
<a href="<?php echo $g['s']?>/?r=<?php echo $r?>&amp;m=admin&amp;module=admin&amp;front=update" class="alert-link"><u>지금 업데이트 하시겠습니까?</u></a>
</div>
<?php endif?>
<?php if($num_market_update):?>
<div id="rb-update-alert" class="alert alert-success rounded-0">
<strong>익스텐션</strong> 업데이트가
<a href="<?php echo $g['s']?>/?r=<?php echo $r?>&amp;m=admin&amp;module=market&amp;front=update" class="alert-link"><u><?php echo $num_market_update ?>건</u></a> 있습니다.
</div>
<?php endif?>
<div id="rb-widgets-body" class="row">
<?php $_i=0;foreach($d['admwidget'] as $_key => $_val):?>
<?php if(!is_file($g['path_module'].$module.'/widgets/'.$_key.'/main.php'))continue?>
<?php if($_val=='true'):?>
<?php include getLangFile($g['path_module'].$module.'/widgets/'.$_key.'/lang.',$d['admin']['syslang'],'.php') ?>
<?php include $g['path_module'].$module.'/widgets/'.$_key.'/var.php' ?>
<div class="col-md-<?php echo $d['admdash']['col']?> col-lg-<?php echo $d['admdash']['col']?>">
<link href="<?php echo $g['s']?>/modules/<?php echo $module?>/widgets/<?php echo $_key?>/main.css" rel="stylesheet">
<div class="card<?php if($_SESSION['sh-dash-'.$_key]):?> rb-bottom-none<?php endif?>">
<div class="card-header">
<a class="rb-collapse btn btn-link" data-toggle="collapse" data-target="#wedget-<?php echo $_key?>">
<i onclick="checkArrow(this);" title="숨기기" data-tooltip="tooltip">×</i>
<i onclick="checkArrow(this);" title="접기/펼치기" data-tooltip="tooltip"><?php echo $_SESSION['sh-dash-'.$_key]?'▼':'▲'?></i>
</a>
<?php echo $d['admdash']['title']?>
</div>
<div class="collapse<?php if(!$_SESSION['sh-dash-'.$_key]):?> in<?php endif?>" id="wedget-<?php echo $_key ?>">
<?php include $g['path_module'].$module.'/widgets/'.$_key.'/main.php' ?>
<?php if($d['admdash']['more']): ?>
<div class="panel-footer rb-more"><a href="<?php echo $d['admdash']['more']?>">more</a></div>
<?php endif?>
</div>
</div>
</div>
<?php $_i++;endif?>
<?php endforeach?>
<div id="rb-guide-wrapper" class="rb-guide-wrapper<?php if($_i):?> d-none<?php endif?>">
<div class="rb-guide-wrapper-inner">
<div class="d-flex align-items-center justify-content-center" style="height: 80vh">
<div class="text-muted">
<h1 class="h3">
설정된 위젯이 없습니다.
</h1>
<small class="">
위젯을 이용해서 <?php echo $my['name'] ?>님만의 대시보드를 꾸며보세요.
<br class="hidden-xs">
자주 사용하는 위젯을 원하는 위치에 진열할 수 있습니다. [준비중]
</small>
<p>
<br>
<br>
<a id="rb-dashboard-edit-btn" class="btn btn-outline-primary rb-modal-dashboard d-none" href="#." data-toggle="modal" data-target="#modal_window">
<i class="glyphicon glyphicon-ok"></i>
대시보드 꾸미기
</a>
</p>
</div>
</div>
</div>
</div>
</div>
</div>
<form name="actionForm" action="<?php echo $g['s']?>/" method="post">
<input type="hidden" name="r" value="<?php echo $r?>">
<input type="hidden" name="m" value="<?php echo $module?>">
<input type="hidden" name="a" value="dashboard_order">
<input type="hidden" name="widget" value="">
</form>
<script>
document.ondblclick = function()
{
//$('#rb-dashboard-edit-btn').click();
}
$(document).ready(function()
{
$('.rb-modal-dashboard').on('click',function() {
modalSetting('modal_window','<?php echo getModalLink('&amp;m='.$m.'&amp;module='.$module.'&amp;front=modal.dashboard')?>');
});
<?php if(!$g['device']):?>
$('#rb-admin-page-content').removeClass('tab-content');
$('#rb-admin-ul-tabs').removeClass('nav nav-tabs rb-nav-tabs');
<?php endif?>
});
function checkArrow(obj)
{
var sid = obj.parentNode.parentNode.parentNode.children[1].id.replace('wedget-','');
if (obj.innerHTML == '×')
{
obj.parentNode.parentNode.parentNode.parentNode.className += ' hidden';
var f = document.actionForm;
var wd = getId('rb-widgets-body');
var wn = wd.children.length;
var i;
var j = 0;
for (i = 0; i < wn-1; i++)
{
if (wd.children[i].className.indexOf('hidden') != -1) j++;
}
if (wn-1 == j)
{
$('#rb-guide-wrapper').removeClass('hidden');
}
else {
$('#rb-guide-wrapper').addClass('hidden');
}
f.widget.value = sid;
getIframeForAction(f);
f.submit();
}
else {
if (obj.innerHTML == '▼')
{
obj.innerHTML = '▲';
obj.parentNode.parentNode.parentNode.className = obj.parentNode.parentNode.parentNode.className.replace(' rb-bottom-none','');
}
else
{
obj.innerHTML = '▼';
obj.parentNode.parentNode.parentNode.className += ' rb-bottom-none';
}
sessionSetting('sh-dash-'+sid,'1','','1');
}
}
</script>

View File

@@ -0,0 +1,8 @@
#rb-body .nav-tabs {
display: block !important;
}
#rb-body .tab-content {
border-bottom: #ccc solid 1px !important;
padding: 20px 10px 0 10px !important;
background-color: #fff !important;
}

View File

@@ -0,0 +1,7 @@
<link href="<?php echo $g['s']?>/modules/<?php echo $module?>/admin/main.css" rel="stylesheet">
<div id="rb-dashboard-for-mobile">
<?php
$_dashboardInclude = true;
include $g['path_module'].$module.'/admin/main.php';
?>
</div>

View File

@@ -0,0 +1,92 @@
#rb_admin_top {
display: none;
}
.tab-content {
}
.rb-module-list {
padding: 15px 0;
margin: 0 auto
}
.rb-module-list span a {
color: #555 ;
text-shadow: 0 1px 2px #222;
position: relative;
font-family: 'Open Sans', sans-serif;
text-align: center;
}
.rb-module-list span a:hover,
.rb-module-list span a:focus{
color: #333 ;
}
.rb-module-list li {
padding: 0 !important;
vertical-align: top;
}
.rb-box {
position: relative;
background-color: #666;
border-radius: 6px;
text-align: center;
padding: 8px;
margin: 4px;
width: 70px;

View File

@@ -0,0 +1 @@
<ul class="rb-module-list list-inline">

View File

@@ -0,0 +1,84 @@
.rb-site-list {
padding: 15px 0;
margin: 0 auto
}
.rb-site-list span a {
color: #555 ;
text-shadow: 0 1px 2px #222;
position: relative;
font-family: 'Open Sans', sans-serif;
text-align: center;
}
.rb-site-list span a:hover,
.rb-site-list span a:focus{
color: #333 ;
}
.rb-site-list li {
padding: 0 !important;
vertical-align: top;
}
.rb-box {
position: relative;
background-color: #666;
border-radius: 6px;
text-align: center;
padding: 8px;
margin: 4px;
width: 70px;
height : 65px;
overflow: hidden;
box-shadow: 0 1px 2px #eee;
}
.rb-box a {
color: #fff
}
.rb-box a:hover {
text-decoration: none;
color: #428BCA
}
.rb-box a:active {
color: #428BCA
}
.rb-box i {
font-style: normal;
}
.rb-box .rb-icon {
font-size: 34px;
text-shadow: 1px 1px 1px #222;
}
.rb-box .rb-name {
font-family: 'Open Sans', sans-serif;
position: absolute;
bottom: 4px;
left: 5px;
right: 5px;
top: auto;
text-align: center;
color: #eee;
text-shadow: 1px 1px 1px #222;
font-size: 11px;
text-transform: capitalize;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
overflow: hidden;
-o-text-overflow: ellipsis;
-ms-text-overflow: ellipsis;
}

View File

@@ -0,0 +1,14 @@
<ul class="rb-site-list list-inline">
<?php $_SITES = getDbArray($table['s_site'],'','*','gid','asc',0,1)?>
<?php while($_R = db_fetch_array($_SITES)):?>
<li>
<div class="rb-box">
<a href="<?php echo $g['s']?>/?r=<?php echo $_R['id']?>" target="_blank">
<i class="rb-icon <?php echo $_R['icon']?$_R['icon']:'fa fa-home'?>"></i><br>
<i class="rb-name"><?php echo ucfirst($_R['id'])?></i>
</a>
</div>
</li>
<?php endwhile?>
</ul>

View File

@@ -0,0 +1,375 @@
<?php
function getDashboardDirList($folder)
{
$incs = array();
$dirh = opendir($folder);
while(false !== ($files = readdir($dirh)))
{
if(substr($files,0,1)=='.') continue;
$incs[] = $files;
}
closedir($dirh);
return $incs;
}
$d['admwidget'] = array();
$_widgetList = getDashboardDirList($g['path_module'].$module.'/widgets');
$_mywidget = $g['path_module'].$module.'/var/'.$my['uid'].'.php';
if(is_file($_mywidget)) include $_mywidget;
?>
<div id="bookmark" class="xrow">
<form action="<?php echo $g['s']?>/" method="post" class="rb-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="">
<input type="hidden" name="reaction" value="">
<input type="hidden" name="flag" value="">
<div class="dd" id="nestable-menu">
<ol class="dd-list">
<?php $_i=1;foreach($d['admwidget'] as $_key => $_val):?>
<?php if(!is_file($g['path_module'].$module.'/widgets/'.$_key.'/main.php'))continue?>
<li class="dd-item dd3-item" data-id="<?php echo $_i?>">
<div class="dd-handle dd3-handle"></div>
<div class="dd3-content"><a><?php echo getFolderName($g['path_module'].$module.'/widgets/'.$_key)?></a></div>
<div class="dd-checkbox" title="진열" data-tooltip="tooltip">
<input type="checkbox" class="hidden" name="dashboard_widgets_order[]" value="<?php echo $_key?>" checked>
<input type="checkbox" name="dashboard_widgets[]" value="1"<?php if($_val=='true'):?> checked<?php endif?> style="cursor:pointer;"><i></i>
</div>
</li>
<?php $_i++;endforeach?>
<?php foreach($_widgetList as $_key):?>
<?php if($d['admwidget'][$_key])continue?>
<li class="dd-item dd3-item" data-id="<?php echo $_i?>">
<div class="dd-handle dd3-handle"></div>
<div class="dd3-content"><a><?php echo getFolderName($g['path_module'].$module.'/widgets/'.$_key)?></a></div>
<div class="dd-checkbox" title="진열" data-tooltip="tooltip">
<input type="checkbox" class="hidden" name="dashboard_widgets_order[]" value="<?php echo $_key?>" checked>
<input type="checkbox" name="dashboard_widgets[]" value="1" style="cursor:pointer;"><i></i>
</div>
</li>
<?php $_i++;endforeach?>
</ol>
</div>
</form>
</div>
<!-- nestable : https://github.com/dbushell/Nestable -->
<?php getImport('nestable','jquery.nestable',false,'js') ?>
<script>
$('#nestable-menu').nestable();
$('.dd').on('change', function() {
var f = document.forms[0];
getIframeForAction(f);
f.a.value = 'dashboard_order';
f.flag.value = getCheck();
f.submit();
});
</script>
<!-- basic -->
<script>
function getCheck()
{
var f = document.forms[0];
var l = document.getElementsByName('dashboard_widgets[]');
var n = l.length;
var i;
var s='';
for (i=0; i < n; i++) s += l[i].checked + ',';
return s;
}
function actQue(act)
{
var f = document.forms[0];
getIframeForAction(f);
f.a.value = act;
f.flag.value = getCheck();
f.reaction.value = 'Y';
f.submit();
f.msg.value = '';
}
</script>
<!----------------------------------------------------------------------------
@부모레이어를 제어할 수 있도록 모달의 헤더와 풋터를 부모레이어에 출력시킴
----------------------------------------------------------------------------->
<div id="_modal_header" class="hidden">
<button aria-hidden="true" data-dismiss="modal" class="close" type="button">&times;</button>
<h4 class="modal-title" id="myModalLabel"><i class="kf kf-dashboard fa-lg"></i> <?php echo _LANG('a3001','dashboard')?></h4>
</div>
<div id="_modal_footer" class="hidden">
<ul class="list-inline clearfix">
<li class="pull-left">
<button type="button" class="btn btn-default" onclick="frames._modal_iframe_modal_window.checkboxChoice('dashboard_widgets[]',true);">
<?php echo _LANG('a3002','dashboard')?>
</button>
<button type="button" class="btn btn-default" onclick="frames._modal_iframe_modal_window.checkboxChoice('dashboard_widgets[]',false);">
<?php echo _LANG('a3003','dashboard')?>
</button>
</li>
<li class="pull-right">
<button type="button" class="btn btn-primary" onclick="frames._modal_iframe_modal_window.actQue('dashboard_order');">
<?php echo _LANG('a3004','dashboard')?>
</button>
</li>
</ul>
</div>
<script>
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 = '400px';
parent.getId('_modal_iframe_modal_window').style.height = '450px';
parent.getId('_modal_body_modal_window').style.height = '450px';
parent.getId('_modal_header_modal_window').innerHTML = getId('_modal_header').innerHTML;
parent.getId('_modal_header_modal_window').className = 'modal-header';
parent.getId('_modal_header_modal_window').style.background = '#3F424B';
parent.getId('_modal_header_modal_window').style.color = '#fff';
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>
#rb-body {
background: #ffffff;
}
.xrow {
padding:0 10px 0 10px;
margin: 0;
}
/**
* Nestable
*/
.dd {
position: relative;
display: block;
margin: 0;
padding: 0;
max-width: 600px;
list-style: none;
line-height: 20px
}
.dd-list {
display: block;
position: relative;
margin: 0;
padding: 0;
list-style: none
}
.dd-item,
.dd-empty,
.dd-placeholder {
display: block;
position: relative;
margin: 0;
padding: 0;
min-height: 20px;
line-height: 20px
}
.dd-handle {
display: block;
height: 35px;
margin: 5px 0;
padding: 5px 10px;
color: #333;
text-decoration: none;
font-weight: bold;
border: 1px solid #ddd;
background: #fafafa;
background: -webkit-linear-gradient(top, #fafafa 0%, #eee 100%);
background: -moz-linear-gradient(top, #fafafa 0%, #eee 100%);
background: linear-gradient(top, #fafafa 0%, #eee 100%);
-webkit-border-radius: 3px;
border-radius: 3px;
box-sizing: border-box; -moz-box-sizing: border-box;
}
.dd-handle:hover { color: #2ea8e5; background: #fff; }
.dd-placeholder,
.dd-empty {
margin: 5px 0;
padding: 0;
min-height: 30px;
background: #f2fbff;
border: 1px dashed #b6bcbf;
box-sizing: border-box;
-moz-box-sizing: border-box
}
.dd-empty {
border: 1px dashed #bbb;
min-height: 100px;
background-color: #e5e5e5;
background-image: -webkit-linear-gradient(45deg, #fff 25%, transparent 25%, transparent 75%, #fff 75%, #fff),
-webkit-linear-gradient(45deg, #fff 25%, transparent 25%, transparent 75%, #fff 75%, #fff);
background-image: -moz-linear-gradient(45deg, #fff 25%, transparent 25%, transparent 75%, #fff 75%, #fff),
-moz-linear-gradient(45deg, #fff 25%, transparent 25%, transparent 75%, #fff 75%, #fff);
background-image: linear-gradient(45deg, #fff 25%, transparent 25%, transparent 75%, #fff 75%, #fff),
linear-gradient(45deg, #fff 25%, transparent 25%, transparent 75%, #fff 75%, #fff);
background-size: 60px 60px;
background-position: 0 0, 30px 30px;
}
.dd-dragel {
position: absolute;
pointer-events: none;
z-index: 9999
}
.dd-dragel > .dd-item .dd-handle { margin-top: 0 }
.dd-dragel .dd-handle {
-webkit-box-shadow: 2px 4px 6px 0 rgba(0,0,0,.1);
box-shadow: 2px 4px 6px 0 rgba(0,0,0,.1)
}
/**
* Nestable Extras
*/
#nestable-menu { padding: 0; margin: 20px 0; }
#nestable-output,
@media only screen and (min-width: 700px) {
.dd { float: left; width: 100%; }
.dd + .dd { margin-left: 2%; }
}
.dd-hover > .dd-handle { background: #2ea8e5 !important; }
/**
* Nestable Draggable Handles
*/
.dd3-content {
display: block;
height: 35px;
margin: 5px 0;
line-height: 20px;
padding: 6px 10px 4px 40px;
color: #333;
border: 1px solid #ddd;
background: #eee;
-webkit-border-radius: 3px;
border-radius: 3px;
box-sizing: border-box; -moz-box-sizing: border-box;
}
.dd3-content a {
color: #666
}
.dd3-content:hover {
color: #2ea8e5;
background: #f5f5f5
}
.dd-dragel > .dd3-item > .dd3-content { margin: 0; }
.dd3-item > button { margin-left: 30px; }
.dd3-handle {
position: absolute;
margin: 0;
left: 0;
top: 0;
cursor: pointer;
width: 30px;
text-indent: 100%;
white-space: nowrap;
overflow: hidden;
border: 1px solid #ddd;
background: #ddd;
border-top-right-radius: 0;
border-bottom-right-radius: 0;
cursor: move
}
.dd-checkbox {
line-height: 28px;
position: absolute;
margin: 0;
right: 0;
top: 0;
width: 30px;
padding: 5px 20px 10px 5px;
}
.dd3-handle:before {
font-family: 'FontAwesome';
content: '\f047';
display: block;
position: absolute;
left: 5px;
top: 6px;
text-align: center;
text-indent: 0;
color: #888;
font-size: 18px;
font-weight: normal
}
.dd3-handle:hover {
background: #ddd
}
.panel-footer ul.list-inline {
margin-bottom: 0
}
#bookmark .rb-none {
line-height: 300px;
text-align: center;
color: #999
}
</style>

View File

View File

@@ -0,0 +1,37 @@
<?php
// main.php
$lang['dashboard']['a1001'] = '업데이트 내용보기';
$lang['dashboard']['a1002'] = '정보가 없는 업데이트입니다.';
$lang['dashboard']['a1003'] = '업데이트가 있습니다.';
$lang['dashboard']['a1004'] = '지금 업데이트 하시겠습니까?';
$lang['dashboard']['a1005'] = '설정된 위젯이 없습니다.';
$lang['dashboard']['a1006'] = '위젯을 이용해서 '.$my['name'].'님만의 대시보드를 꾸며보세요.';
$lang['dashboard']['a1007'] = '자주 사용하는 위젯을 원하는 위치에 진열할 수 있습니다.';
$lang['dashboard']['a1008'] = '대시보드 꾸미기';
$lang['dashboard']['a1009'] = '숨기기';
$lang['dashboard']['a1010'] = '접기/펼치기';
//mobile.shortcut.php
$lang['dashboard']['a2001'] = '만들기';
$lang['dashboard']['a2002'] = '새로 만들기';
$lang['dashboard']['a2003'] = '사이트';
$lang['dashboard']['a2004'] = '메뉴';
$lang['dashboard']['a2005'] = '페이지';
$lang['dashboard']['a2006'] = '설치';
$lang['dashboard']['a2007'] = '확장요소 추가하기';
$lang['dashboard']['a2008'] = '패키지';
$lang['dashboard']['a2009'] = '모듈';
$lang['dashboard']['a2010'] = '레이아웃';
$lang['dashboard']['a2011'] = '위젯';
$lang['dashboard']['a2012'] = '스위치';
$lang['dashboard']['a2013'] = '플러그인';
$lang['dashboard']['a2014'] = '대쉬보드';
$lang['dashboard']['a2015'] = '기타';
$lang['dashboard']['a2016'] = '큐마켓';
//modal.dashboard.php
$lang['dashboard']['a3001'] = '대시보드 위젯 리스트';
$lang['dashboard']['a3002'] = '전체선택';
$lang['dashboard']['a3003'] = '전체취소';
$lang['dashboard']['a3004'] = '확인';
?>

View File

@@ -0,0 +1 @@
대시보드

View File

@@ -0,0 +1 @@
한국어

View File

@@ -0,0 +1,37 @@
<?php
// main.php
$lang['dashboard']['a1001'] = 'View update infomation'; //업데이트 내용보기
$lang['dashboard']['a1002'] = 'No information.'; //정보가 없는 업데이트입니다.
$lang['dashboard']['a1003'] = 'is available'; //업데이트가 있습니다.
$lang['dashboard']['a1004'] = 'Please update now.'; //지금 업데이트 하시겠습니까?
$lang['dashboard']['a1005'] = 'No widgets'; //설정된 위젯이 없습니다.
$lang['dashboard']['a1006'] = 'Please edit your dashboard using widgets.'; //위젯을 이용해서 '.$my['name'].'님만의 대시보드를 꾸며보세요.
$lang['dashboard']['a1007'] = 'You can display your favorate widgets on the dashboard.'; //자주 사용하는 위젯을 원하는 위치에 진열할 수 있습니다.
$lang['dashboard']['a1008'] = 'Edit Dashboard'; //대시보드 꾸미기
$lang['dashboard']['a1009'] = 'Hide'; //숨기기
$lang['dashboard']['a1010'] = 'Collapse'; //접기/펼치기
//mobile.shortcut.php
$lang['dashboard']['a2001'] = 'Making'; //만들기
$lang['dashboard']['a2002'] = 'Making new'; //새로 만들기
$lang['dashboard']['a2003'] = 'Site'; //사이트
$lang['dashboard']['a2004'] = 'Menu'; //메뉴
$lang['dashboard']['a2005'] = 'Page'; //페이지
$lang['dashboard']['a2006'] = 'Install'; //설치
$lang['dashboard']['a2007'] = 'Add extension'; //확장요소 추가하기
$lang['dashboard']['a2008'] = 'Package'; //패키지
$lang['dashboard']['a2009'] = 'Module'; //모듈
$lang['dashboard']['a2010'] = 'Layout'; //레이아웃
$lang['dashboard']['a2011'] = 'Widget'; //위젯
$lang['dashboard']['a2012'] = 'Switch'; //스위치
$lang['dashboard']['a2013'] = 'Plugin'; //플러그인
$lang['dashboard']['a2014'] = 'Dashboard'; //대쉬보드
$lang['dashboard']['a2015'] = 'Others'; //기타
$lang['dashboard']['a2016'] = 'Q-MARKET'; //큐마켓
//modal.dashboard.php
$lang['dashboard']['a3001'] = 'Widget List'; //대시보드 위젯 리스트
$lang['dashboard']['a3002'] = 'Choose'; //전체선택
$lang['dashboard']['a3003'] = 'Cancel'; //전체취소
$lang['dashboard']['a3004'] = 'Save changes'; //확인
?>

View File

@@ -0,0 +1 @@
Dashboard

View File

@@ -0,0 +1 @@
English

View File

@@ -0,0 +1,3 @@
<?php
if(!defined('__KIMS__')) exit;
?>

View File

@@ -0,0 +1 @@
대시보드

View File

View File

@@ -0,0 +1,11 @@
<?php
/*
각각의 링크를 제공하려면 다음과 같은 형식으로 지정해 주세요.
이 링크는 관리자모드 모듈정보 링크에 사용됩니다.
*/
$d['moduleinfo']['market'] = 'http://www.kimsq.co.kr/market'; // 마켓
$d['moduleinfo']['github'] = 'https://github.com/kimsQ/rb'; // 저장소
$d['moduleinfo']['issue'] = 'https://github.com/kimsQ/rb/issues'; // 이슈접수
$d['moduleinfo']['website'] = 'http://www.kimsq.co.kr/'; // 웹사이트
$d['moduleinfo']['help'] = 'http://docs.kimsq.com/rb2/docs/c/Users/modules/dashboard'; // 도움말
?>

View File

@@ -0,0 +1,7 @@
<?php
//var.php
$lang['widget']['1001'] = '위젯샘플';
//main.php
$lang['widget']['2001'] = '관리자 대시보드용 위젯 샘플입니다.';
?>

View File

@@ -0,0 +1,7 @@
<?php
//var.php
$lang['widget']['1001'] = 'Example'; //위젯샘플
//main.php
$lang['widget']['2001'] = 'This is a sample for Dashboard Widget.'; //관리자 대시보드용 위젯 샘플입니다.
?>

Binary file not shown.

View File

@@ -0,0 +1,4 @@
<div class="panel-body rb-example-panel-body" style="height:500px;">
<?php echo _LANG('2001','widget')?>
</div>

View File

@@ -0,0 +1 @@
Dashboard Widget for Example

View File

@@ -0,0 +1,5 @@
<?php
$d['admdash']['title'] = _LANG('1001','widget'); //타이틀
$d['admdash']['col'] = '6'; // 가로폭 100% = 12 , 50% = 6
$d['admdash']['more'] = ''; // 더보기 링크
?>

View File

@@ -0,0 +1,27 @@
#rb-dashboard .rb-summary {
padding: 0
}
#rb-dashboard .rb-table-column:first-child {
border-left: 0;
}
#rb-dashboard .rb-table-column {
padding: 10px;
text-align: center;
border-left: 1px solid #ddd;
border-top: 1px solid #ddd;
color: #999;
font-size: 11px;
display: table-cell;
width: 1%;
vertical-align: top;
}
#rb-dashboard .rb-table-column .rb-num {
font-weight: 300;
line-height: 1.3em;
font-size: 24px;
display: block;
color: #333;
}
#morris-area-chart {
height: 200px;
}

View File

@@ -0,0 +1,84 @@
<div class="panel-body">
<div id="morris-area-chart" class="chart text-center text-muted"></div>
</div>
<div class="panel-body rb-summary">
<div class="rb-table-column"><span class="rb-num">31</span> Visit</div>
<div class="rb-table-column"><span class="rb-num">2</span> Unique</div>
<div class="rb-table-column"><span class="rb-num">2</span> Views</div>
<div class="rb-table-column"><span class="rb-num">2</span> Mobile</div>
</div>
<script>
$(function() {
Morris.Area({
element: 'morris-area-chart',
data: [{
period: '2012 Q1',
visit: 2778,
unique: 52294,
views: 53294,
mobile: 50000
}, {
period: '2012 Q2',
visit: 2778,
unique: 2294,
views: 3294,
mobile: 50000
}, {
period: '2012 Q3',
visit: 4912,
unique: 1969,
views: 3294,
mobile: 50000
}, {
period: '2012 Q4',
visit: 3767,
unique: 3597,
views: 3294,
mobile: 1294
}, {
period: '2013 Q1',
visit: 36810,
unique: 31914,
views: 33294,
mobile: 31294
}, {
period: '2013 Q2',
visit: 5670,
unique: 4293,
views: 3294,
mobile: 50000
}, {
period: '2013 Q3',
visit: 4820,
unique: 3795,
views: 3294,
mobile: 50000
}, {
period: '2013 Q4',
visit: 15073,
unique: 5967,
views: 23294,
mobile: 50000
}, {
period: '2014 Q1',
visit: 10687,
unique: 4460,
views: 13294,
mobile: 50000
}, {
period: '2014 Q2',
visit: 8432,
unique: 5713,
views: 15294,
mobile: 50000
}],
xkey: 'period',
ykeys: ['visit', 'unique', 'views', 'mobile'],
labels: ['Visit', 'Unique', 'Views', 'Mobile'],
pointSize: 2,
hideHover: 'auto',
resize: true
});
});
</script>

View File

@@ -0,0 +1 @@
Analytics Chart

View File

@@ -0,0 +1,5 @@
<?php
$d['admdash']['title'] = 'Analytics Chart <small>('.getDateFormat($date['today'],'Y/m').')</small>'; //타이틀
$d['admdash']['col'] = '12'; // 가로폭 100% = 12 , 50% = 6
$d['admdash']['more'] = ''; // 더보기 링크
?>

View File

@@ -0,0 +1,7 @@
#rb-dashboard .panel dl {
margin-bottom: 0;
}
#rb-dashboard dt,
#rb-dashboard dd {
line-height: 2;
}

View File

@@ -0,0 +1,15 @@
<div class="panel-body">
<dl class="dl-horizontal">
<dt>Web Server</dt>
<dd><?php echo $_SERVER['SERVER_SOFTWARE']?></dd>
<dt>PHP Version</dt>
<dd><?php echo phpversion()?></dd>
<dt>MySQL Version</dt>
<dd><?php echo db_info()?> (<?php echo $DB['type']?>)</dd>
<dt>GD Version</dt>
<dd><?php $_gd = gd_info();echo $_gd['GD Version']?></dd>
<dt>KimsQ Rb Version</dt>
<dd><?php echo $d['admin']['version']?></dd>
</dl>
</div>

View File

@@ -0,0 +1 @@
System Environment

View File

@@ -0,0 +1,5 @@
<?php
$d['admdash']['title'] = 'System Environment'; //타이틀
$d['admdash']['col'] = '6'; // 가로폭 100% = 12 , 50% = 6
$d['admdash']['more'] = $g['s'].'/?r='.$r.'&amp;m=admin&amp;module=admin'; // 더보기 링크
?>