first
This commit is contained in:
29
modules/search/admin/_info.php
Normal file
29
modules/search/admin/_info.php
Normal 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>
|
||||
405
modules/search/admin/main.css
Normal file
405
modules/search/admin/main.css
Normal file
@@ -0,0 +1,405 @@
|
||||
#search-body .panel-body {
|
||||
padding: 0 10px 15px;
|
||||
border-top: 1px dotted #c0c0c0
|
||||
}
|
||||
|
||||
#search-body .panel-body.rb-panel-form {
|
||||
border-top: none;
|
||||
}
|
||||
|
||||
#search-body .panel-body.rb-panel-form select {
|
||||
background-color: #f5f5f5
|
||||
}
|
||||
|
||||
#search-body .rb-eye-close {
|
||||
color: #c0c0c0;
|
||||
}
|
||||
|
||||
#search-body .rb-top-btnbox {
|
||||
position: relative;
|
||||
top: -10px;
|
||||
}
|
||||
|
||||
#accordion>.card .card-body {
|
||||
height: calc(100vh - 12rem);
|
||||
overflow: auto;
|
||||
}
|
||||
|
||||
/**
|
||||
* Nestable
|
||||
*/
|
||||
|
||||
.dd {
|
||||
position: relative;
|
||||
display: block;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
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: 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;
|
||||
}
|
||||
|
||||
#collapseOne .dd-item .dd3-content a {
|
||||
display: block;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
.dd3-content:hover {
|
||||
background: #f5f5f5
|
||||
}
|
||||
|
||||
.dd3-content small {
|
||||
color: #999
|
||||
}
|
||||
|
||||
.dd-item.rb-active .dd3-content {
|
||||
background-color: #428bca;
|
||||
border-color: #357ebd;
|
||||
color: #fff
|
||||
}
|
||||
|
||||
.dd-item.rb-active .dd3-content a,
|
||||
.dd-item.rb-active .dd3-content small {
|
||||
color: #fff
|
||||
}
|
||||
|
||||
.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
|
||||
}
|
||||
|
||||
.dd3-handle-none:before {
|
||||
font-family: 'FontAwesome';
|
||||
content: '';
|
||||
cursor: none;
|
||||
display: block;
|
||||
position: absolute;
|
||||
left: 5px;
|
||||
top: 6px;
|
||||
text-align: center;
|
||||
text-indent: 0;
|
||||
color: #888;
|
||||
font-size: 18px;
|
||||
font-weight: normal
|
||||
}
|
||||
|
||||
.dd3-handle-none:hover {
|
||||
background: #ddd;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.panel-footer ul.list-inline {
|
||||
margin-bottom: 0
|
||||
}
|
||||
|
||||
|
||||
#search-body .rb-none {
|
||||
line-height: 400px;
|
||||
text-align: center;
|
||||
color: #999
|
||||
}
|
||||
|
||||
|
||||
#search-body .rb-main .page-header {
|
||||
margin-top: 35px
|
||||
}
|
||||
|
||||
#search-body .rb-main .page-header:first-child {
|
||||
margin-top: 0
|
||||
}
|
||||
|
||||
|
||||
#search-body .rb-main .checkbox-inline.rb-no-indent,
|
||||
#search-body .rb-main .checkbox-inline.rb-no-indent+.checkbox-inline.rb-no-indent {
|
||||
margin-left: 0;
|
||||
margin-right: 15px;
|
||||
}
|
||||
|
||||
#search-body .rb-main .checkbox.inline.no_indent:last-child {
|
||||
margin-right: 0px;
|
||||
}
|
||||
|
||||
|
||||
#search-body .rb-files {
|
||||
padding: 2px;
|
||||
background: #eee;
|
||||
border-radius: 3px;
|
||||
margin-top: 35px;
|
||||
}
|
||||
|
||||
#search-body .rb-codeview {
|
||||
border-radius: 3px;
|
||||
border: 1px solid #c9c9c9;
|
||||
-webkit-box-shadow: inset 1px 1px 0px 0px rgba(222, 2222, 222, 0.1), 1px 1px 0px 0px rgba(255, 255, 255, 1);
|
||||
box-shadow: inset 1px 1px 0px 0px rgba(222, 222, 222, 0.1), 1px 1px 0px 0px rgba(255, 255, 255, 1);
|
||||
}
|
||||
|
||||
#search-body .rb-codeview-header,
|
||||
#search-body .rb-codeview-footer {
|
||||
font: 12px "Helvetica Neue", Helvetica, arial, freesans, clean, sans-serif;
|
||||
text-shadow: 1px 1px rgba(255, 255, 255, 0.8);
|
||||
overflow: hidden;
|
||||
color: #999;
|
||||
}
|
||||
|
||||
#search-body .rb-codeview-header .breadcrumb {
|
||||
background-color: transparent;
|
||||
margin-bottom: 0;
|
||||
padding: 0;
|
||||
line-height: 30px
|
||||
}
|
||||
|
||||
#search-body .rb-codeview-header .btn {
|
||||
line-height: 20px;
|
||||
margin-top: 4px;
|
||||
border-radius: 3px
|
||||
}
|
||||
|
||||
#search-body .rb-codeview-header {
|
||||
border-bottom: 1px solid #ddd;
|
||||
padding: 5px 10px;
|
||||
text-shadow: 0 1px 0 #fff;
|
||||
border-bottom: 1px solid #d8d8d8;
|
||||
background-color: #eaeaea;
|
||||
background-image: -moz-linear-gradient(#fafafa, #eaeaea);
|
||||
background-image: -webkit-linear-gradient(#fafafa, #eaeaea);
|
||||
background-image: linear-gradient(#fafafa, #eaeaea);
|
||||
background-repeat: repeat-x;
|
||||
}
|
||||
|
||||
#search-body .rb-codeview-body {
|
||||
font-family: Consolas, "Liberation Mono", Courier, monospace;
|
||||
}
|
||||
|
||||
#search-body .rb-codeview-body textarea {
|
||||
overflow: auto;
|
||||
border: none;
|
||||
padding: 15px;
|
||||
line-height: 150%;
|
||||
background: #000000;
|
||||
color: #ffffff;
|
||||
font-size: 12px;
|
||||
border-radius: 0
|
||||
}
|
||||
|
||||
#search-body .rb-codeview-footer {
|
||||
border-top: 1px solid #ddd;
|
||||
padding: 10px;
|
||||
background-color: #e8e8e8;
|
||||
background-image: -webkit-gradient(linear, left top, left bottom, from(#fafafa), to(#e8e8e8));
|
||||
background-image: -webkit-linear-gradient(#fafafa, #e8e8e8);
|
||||
background-image: linear-gradient(#fafafa, #e8e8e8);
|
||||
background-repeat: repeat-x;
|
||||
}
|
||||
|
||||
#search-body .rb-codeview-footer ul {
|
||||
margin-bottom: 0
|
||||
}
|
||||
|
||||
#search-body .rb-codeview-footer li:first-child,
|
||||
#search-body .rb-codeview-footer li:last-child {
|
||||
border-left: 0;
|
||||
box-shadow: inset 0 0 0 transparent;
|
||||
padding-left: 0;
|
||||
margin-left: 0;
|
||||
}
|
||||
|
||||
#search-body .rb-codeview-footer li {
|
||||
display: inline-block;
|
||||
color: #555555;
|
||||
padding-left: 9px;
|
||||
margin-left: 5px;
|
||||
border-left: 1px solid #c1c1c1;
|
||||
box-shadow: inset 1px 0 0 #fff;
|
||||
font-size: 12px;
|
||||
}
|
||||
|
||||
#search-body .rb-submit {
|
||||
margin: 15px 0
|
||||
}
|
||||
|
||||
@media (max-width: 767px) {
|
||||
.rb-guide {
|
||||
padding-left: 20px;
|
||||
}
|
||||
}
|
||||
532
modules/search/admin/main.php
Normal file
532
modules/search/admin/main.php
Normal file
@@ -0,0 +1,532 @@
|
||||
<?php
|
||||
function getSearchFileList($folder)
|
||||
{
|
||||
$incs = array();
|
||||
$dirh = opendir($folder);
|
||||
while(false !== ($files = readdir($dirh)))
|
||||
{
|
||||
if(substr($files,-4)!='.php') continue;
|
||||
$incs[] = str_replace('.php','',$files);
|
||||
}
|
||||
closedir($dirh);
|
||||
return $incs;
|
||||
}
|
||||
|
||||
$g['searchVarForSite'] = $g['path_var'].'site/'.$r.'/search.var.php';
|
||||
$_tmpdfile = file_exists($g['searchVarForSite']) ? $g['searchVarForSite'] : $g['path_module'].$module.'/var/var.search.php';
|
||||
include_once $_tmpdfile;
|
||||
|
||||
$device = $mobile?'mobile':'desktop';
|
||||
include_once $g['path_module'].$module.'/var/var.order.'.$device.'.php';
|
||||
|
||||
$MODULE_LIST = getDbArray($table['s_module'],'','*','gid','asc',0,$p);
|
||||
$_names = array();
|
||||
$PAGESET = array();
|
||||
$TMPST = array();
|
||||
$SITES = getDbArray($table['s_site'],'','*','gid','asc',0,$p);
|
||||
$SITEN = db_num_rows($SITES);
|
||||
?>
|
||||
|
||||
<div class="row no-gutters" id="search-body">
|
||||
<div class="col-sm-4 col-md-4 col-xl-3 d-none d-sm-block sidebar">
|
||||
|
||||
<div class="border border-primary">
|
||||
<select class="form-control custom-select border-0" name="device" onchange="goHref('<?php echo $g['s']?>/?m=<?php echo $m?>&module=<?php echo $module?>&front=<?php echo $front?>&autoCheck=Y&searchfile=<?php echo $searchfile?>&r=<?php echo $r?>&mobile='+this.value);">
|
||||
<option value=""<?php if(!$mobile):?> selected<?php endif?>>데스크탑</option>
|
||||
<option value="1"<?php if($mobile):?> selected<?php endif?>>모바일</option>
|
||||
</select>
|
||||
</div>
|
||||
|
||||
<div class="panel-group" id="accordion">
|
||||
<div class="card">
|
||||
<div class="card-header p-0">
|
||||
<a class="accordion-toggle muted-link d-block<?php if($_SESSION['search_main_collapse']):?> collapsed<?php endif?>"
|
||||
data-toggle="collapse" href="#collapseOne"
|
||||
onclick="sessionSetting('search_main_collapse','','','');">
|
||||
<i class="fa fa-search fa-lg fa-fw"></i>
|
||||
통합검색 지원모듈
|
||||
</a>
|
||||
</div>
|
||||
|
||||
<div class="panel-collapse collapse<?php if(!$_SESSION['search_main_collapse']):?> show<?php endif?>" id="collapseOne" data-parent="#accordion">
|
||||
<div class="card-body">
|
||||
<?php $_i=0;while($MD = db_fetch_array($MODULE_LIST)):?>
|
||||
<?php
|
||||
if ($mobile){
|
||||
$forsearching_folder=$g['path_module'].$MD['id'].'/for-searching/_mobile';
|
||||
}else{
|
||||
$forsearching_folder=$g['path_module'].$MD['id'].'/for-searching/_desktop';
|
||||
}
|
||||
?>
|
||||
<?php if(!is_dir($forsearching_folder)) continue?>
|
||||
<div class="mt-2 py-1">
|
||||
<h6 class="mb-0">
|
||||
<small class="text-muted"><i class="<?php echo $MD['icon']?>"></i> <?php echo $MD['name']?> (<?php echo $MD['id']?>)</small>
|
||||
</h6>
|
||||
<div class="dd">
|
||||
<ol class="dd-list">
|
||||
<?php foreach(getSearchFileList($forsearching_folder) as $_file):?>
|
||||
<?php $device = $mobile?'mobile.':'desktop.' ?>
|
||||
<?php $_namefile = $g['path_module'].$module.'/var/names/'.$device.$MD['id'].'-'.$_file.'.txt'?>
|
||||
<?php $_names = is_file($_namefile) ? explode('|',implode('',file($_namefile))):array()?>
|
||||
<?php $PAGESET[$MD['id'].'_'.$_file] = array('filename'=>$_file,'filerename'=>$_names[0]?$_names[0]:$_file,'moduleid'=>$MD['id'],'modulename'=>$MD['name'],'site'=>$_names[1],'filepath'=>$forsearching_folder.'/'.$_file)?>
|
||||
<li class="dd-item dd3-item<?php if($MD['id'].'/'.$_file==$searchfile):?> rb-active<?php endif?>">
|
||||
<div class="dd-handle dd3-handle dd3-handle-none"></div>
|
||||
<div class="dd3-content">
|
||||
<i class="fa fa-file" style="position:absolute;left:10px;top:10px;color:#000;"></i>
|
||||
<a href="<?php echo $g['adm_href']?>&searchfile=<?php echo $MD['id'].'/'.$_file?>&mobile=<?php echo $mobile?>"><?php echo $_file?>.php</a>
|
||||
</div>
|
||||
</li>
|
||||
<?php endforeach?>
|
||||
</ol>
|
||||
</div>
|
||||
</div>
|
||||
<?php $_i++;endwhile?>
|
||||
<?php if(!$_i):?>
|
||||
<div class="card-body rb-none">
|
||||
통합검색 지원모듈이 없습니다.
|
||||
</div>
|
||||
<?php endif?>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="card">
|
||||
<div class="card-header p-0">
|
||||
<a class="accordion-toggle muted-link d-block<?php if(!$_SESSION['search_main_collapse']):?> collapsed<?php endif?>" data-toggle="collapse" href="#collapseTwo" onclick="sessionSetting('search_main_collapse','order','','');">
|
||||
<i class="fa fa-retweet fa-lg fa-fw"></i>
|
||||
출력옵션 및 순서조정
|
||||
</a>
|
||||
</div>
|
||||
<div class="panel-collapse collapse<?php if($_SESSION['search_main_collapse']):?> show<?php endif?>" id="collapseTwo" data-parent="#accordion">
|
||||
<form role="form" 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="order">
|
||||
<input type="hidden" name="mobile" value="<?php echo $mobile?>">
|
||||
<input type="hidden" name="auto" value="">
|
||||
<input type="hidden" name="autoCheck" value="<?php echo $autoCheck ?>">
|
||||
<div class="card-body">
|
||||
<div class="dd" id="nestable-menu">
|
||||
<ol class="dd-list">
|
||||
<?php $_i=0;if(count($d['search_order'])):foreach($d['search_order'] as $_key => $_val):?>
|
||||
<?php if(!is_array($PAGESET[$_key]))continue?>
|
||||
<li class="dd-item dd3-item<?php if($PAGESET[$_key]['moduleid'].'/'.$PAGESET[$_key]['filename']==$searchfile):?> rb-active<?php endif?>" data-id="<?php echo $_i?>">
|
||||
<div class="dd-handle dd3-handle"></div>
|
||||
<div class="dd3-content"><a href="<?php echo $g['adm_href']?>&searchfile=<?php echo $PAGESET[$_key]['moduleid'].'/'.$PAGESET[$_key]['filename']?>&mobile=<?php echo $mobile?>" title="<?php echo $PAGESET[$_key]['filename']?>.php" data-tooltip="tooltip"><?php echo $PAGESET[$_key]['filerename']?></a> <small title="<?php echo $PAGESET[$_key]['modulename']?>" data-tooltip="tooltip">(<?php echo $PAGESET[$_key]['moduleid']?>)</small></div>
|
||||
<div class="dd-checkbox">
|
||||
<input type="checkbox" name="searchmembers[]" value="<?php echo $PAGESET[$_key]['moduleid']?>_<?php echo $PAGESET[$_key]['filename']?>|<?php echo $PAGESET[$_key]['filerename']?>|<?php echo $PAGESET[$_key]['site']?>|<?php echo $PAGESET[$_key]['filepath']?>" checked class="d-none"><i class="fa fa-eye-<?php echo strstr($PAGESET[$_key]['site'],'['.$r.']')?'open':'close rb-eye-close'?>"></i>
|
||||
</div>
|
||||
</li>
|
||||
<?php $_i++;endforeach;$_nowOrderNum=$_i;endif?>
|
||||
<?php foreach($PAGESET as $_key => $_val):?>
|
||||
<?php if(is_array($d['search_order'][$_key]))continue?>
|
||||
<li class="dd-item dd3-item<?php if($_val['moduleid'].'/'.$_val['filename']==$searchfile):?> rb-active<?php endif?>" data-id="<?php echo $_i?>">
|
||||
<div class="dd-handle dd3-handle"></div>
|
||||
<div class="dd3-content"><a href="<?php echo $g['adm_href']?>&searchfile=<?php echo $_val['moduleid'].'/'.$_val['filename']?>&mobile=<?php echo $mobile?>" title="<?php echo $_val['filename']?>.php" data-tooltip="tooltip"><?php echo $_val['filerename']?></a> <small title="<?php echo $_val['modulename']?>" data-tooltip="tooltip">(<?php echo $_val['moduleid']?>)</small></div>
|
||||
<div class="dd-checkbox">
|
||||
<input type="checkbox" name="searchmembers[]" value="<?php echo $_val['moduleid']?>_<?php echo $_val['filename']?>|<?php echo $_val['filerename']?>|<?php echo $_val['site']?>|<?php echo $_val['filepath']?>" checked class="hidden"><i class="fa fa-eye-<?php echo strstr($_val['site'],'['.$r.']')?'open':'close rb-eye-close'?>"></i>
|
||||
</div>
|
||||
</li>
|
||||
<?php $_i++;endforeach;$_nowOrderNum=$_i?>
|
||||
</ol>
|
||||
</div>
|
||||
</div>
|
||||
<?php if(!$_i):?>
|
||||
<div class="card-body rb-none">
|
||||
등록된 검색페이지가 없습니다.
|
||||
</div>
|
||||
<?php endif?>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-sm-8 col-md-8 ml-sm-auto col-xl-9">
|
||||
|
||||
<?php
|
||||
if($searchfile):
|
||||
$_searchfl = str_replace('/','-',$searchfile);
|
||||
$device = $mobile?'mobile.':'desktop.';
|
||||
$_namefile = $g['path_module'].$module.'/var/names/'.$device.$_searchfl.'.txt';
|
||||
|
||||
if (is_file($_namefile)) $_names = explode('|',implode('',file($_namefile)));
|
||||
else $_names = array();
|
||||
?>
|
||||
|
||||
<form name="procForm" role="form" action="<?php echo $g['s']?>/" method="post" onsubmit="return procCheck(this);" class="card rounded-0 border-0">
|
||||
<input type="hidden" name="r" value="<?php echo $r?>">
|
||||
<input type="hidden" name="m" value="<?php echo $module?>">
|
||||
<input type="hidden" name="a" value="search_edit">
|
||||
<input type="hidden" name="mobile" value="<?php echo $mobile?>">
|
||||
<input type="hidden" name="namefile" value="<?php echo $_searchfl?>">
|
||||
<input type="hidden" name="searchfile" value="<?php echo $searchfile?>">
|
||||
|
||||
|
||||
<div class="card-header d-flex justify-content-between align-items-center py-1">
|
||||
등록정보 및 사이트 지정
|
||||
<div class="">
|
||||
<a href="<?php echo $g['adm_href']?>" class="btn btn-light"><i class="fa fa-cog"></i> 통합검색 설정</a>
|
||||
<div class="btn-group rb-btn-view">
|
||||
<a href="<?php echo $g['s']?>/?r=<?php echo $r?>&m=<?php echo $module?>" class="btn btn-light">접속하기</a>
|
||||
<button type="button" class="btn btn-light dropdown-toggle dropdown-toggle-split" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
|
||||
<span class="sr-only">Toggle Dropdown</span>
|
||||
</button>
|
||||
<div class="dropdown-menu dropdown-menu-right" role="menu">
|
||||
<a class="dropdown-item" href="<?php echo $g['s']?>/?r=<?php echo $r?>&m=<?php echo $module?>" target="_blank">
|
||||
<i class="fa fa-external-link"></i> 새창으로 보기
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div><!-- /.card-header -->
|
||||
|
||||
<div class="card-body">
|
||||
<div class="form-group row">
|
||||
<label class="col-lg-2 col-form-label text-lg-right">검색명칭</label>
|
||||
<div class="col-lg-10 col-xl-9">
|
||||
<input type="text" name="name" value="<?php echo $_names[0]?$_names[0]:$_searchfl?>" class="form-control">
|
||||
<p class="form-text text-muted">
|
||||
<small>이 파일의 검색페이지 명칭을 적절한 용어로 지정해 주세요.</small>
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group row">
|
||||
|
||||
<?php while($S = db_fetch_array($SITES)):$TMPST[]=array($S['name'],$S['id'])?><?php endwhile?>
|
||||
|
||||
<label class="col-lg-2 col-form-label text-lg-right">출력사이트</label>
|
||||
<div class="col-lg-10 col-xl-9 pt-1">
|
||||
<?php foreach($TMPST as $_val):?>
|
||||
<div class="custom-control custom-checkbox custom-control-inline">
|
||||
<input type="checkbox" class="custom-control-input" id="aply_sites_<?php echo $_val[1]?>" name="aply_sites[]" value="<?php echo $_val[1]?>"<?php if(strstr($_names[1],'['.$_val[1].']')):?> checked<?php endif?>>
|
||||
<label class="custom-control-label" for="aply_sites_<?php echo $_val[1]?>"><?php echo $_val[0]?> <small class="text-muted">(<?php echo $_val[1]?>)</small></label>
|
||||
</div>
|
||||
<?php endforeach?>
|
||||
</div>
|
||||
</div>
|
||||
<hr>
|
||||
<div class="row">
|
||||
<div class="col-lg-10 offset-lg-2 col-xl-9 offset-xl-2 clearfix">
|
||||
<div class="btn-group">
|
||||
<button type="button" class="btn btn-light" onclick="checkboxChoice('aply_sites[]',true);">전체선택</button>
|
||||
<button type="button" class="btn btn-light" onclick="checkboxChoice('aply_sites[]',false);">전체취소</button>
|
||||
</div>
|
||||
<button class="btn btn-primary ml-3" type="submit" id="rb-submit-button"><i class="fa fa-check fa-lg"></i> 저장하기</button>
|
||||
</div>
|
||||
</div>
|
||||
</div><!-- /.card-body -->
|
||||
</form><!-- /.card -->
|
||||
|
||||
|
||||
<?php else:?>
|
||||
<form name="saveForm" role="form" action="<?php echo $g['s']?>/" method="post" onsubmit="return saveCheck(this);" class="card rounded-0 border-0">
|
||||
<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">
|
||||
<input type="hidden" name="layout" value="">
|
||||
<input type="hidden" name="m_layout" value="">
|
||||
|
||||
<div class="card-header d-flex justify-content-between align-items-center py-1">
|
||||
검색범위
|
||||
<div class="">
|
||||
<div class="btn-group rb-btn-view">
|
||||
<a href="<?php echo $g['s']?>/?r=<?php echo $r?>&m=<?php echo $module?>" class="btn btn-light">전체</a>
|
||||
<button type="button" class="btn btn-light dropdown-toggle dropdown-toggle-split" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
|
||||
<span class="sr-only">Toggle Dropdown</span>
|
||||
</button>
|
||||
<div class="dropdown-menu dropdown-menu-right" role="menu">
|
||||
<a class="dropdown-item" href="<?php echo $g['s']?>/?r=<?php echo $r?>&m=<?php echo $module?>" target="_blank">
|
||||
<i class="fa fa-external-link"></i> 최근 3년
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div><!-- /.card-header -->
|
||||
|
||||
<div class="card-body">
|
||||
<div class="form-group row">
|
||||
<label class="col-lg-2 col-form-label text-lg-right">검색테마</label>
|
||||
<div class="col-lg-10 col-xl-9">
|
||||
<select class="form-control custom-select" name="theme">
|
||||
<optgroup label="데스크탑">
|
||||
<?php $dirs = opendir($g['path_module'].$module.'/themes/_desktop')?>
|
||||
<?php while(false !== ($theme = readdir($dirs))):?>
|
||||
<?php if(strpos('_..',$theme))continue?>
|
||||
<option value="_desktop/<?php echo $theme?>"<?php if($d['search']['theme']=='_desktop/'.$theme):?> selected<?php endif?>><?php echo $theme?></option>
|
||||
<?php endwhile?>
|
||||
<?php closedir($dirs)?>
|
||||
</optgroup>
|
||||
<optgroup label="모바일">
|
||||
<?php $dirs = opendir($g['path_module'].$module.'/themes/_mobile')?>
|
||||
<?php while(false !== ($theme = readdir($dirs))):?>
|
||||
<?php if(strpos('_..',$theme))continue?>
|
||||
<option value="_mobile/<?php echo $theme?>"<?php if($d['search']['theme']=='_mobile/'.$theme):?> selected<?php endif?>><?php echo $theme?></option>
|
||||
<?php endwhile?>
|
||||
<?php closedir($dirs)?>
|
||||
</optgroup>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group row">
|
||||
<label class="col-lg-2 col-form-label text-lg-right">
|
||||
<span class="badge badge-dark">모바일</span>
|
||||
</label>
|
||||
<div class="col-lg-10 col-xl-9">
|
||||
<select class="form-control custom-select" name="m_theme">
|
||||
<optgroup label="데스크탑">
|
||||
<?php $dirs = opendir($g['path_module'].$module.'/themes/_desktop')?>
|
||||
<?php while(false !== ($theme = readdir($dirs))):?>
|
||||
<?php if(strpos('_..',$theme))continue?>
|
||||
<option value="_desktop/<?php echo $theme?>"<?php if($d['search']['m_theme']=='_desktop/'.$theme):?> selected<?php endif?>><?php echo $theme?></option>
|
||||
<?php endwhile?>
|
||||
<?php closedir($dirs)?>
|
||||
</optgroup>
|
||||
<optgroup label="모바일">
|
||||
<?php $dirs = opendir($g['path_module'].$module.'/themes/_mobile')?>
|
||||
<?php while(false !== ($theme = readdir($dirs))):?>
|
||||
<?php if(strpos('_..',$theme))continue?>
|
||||
<option value="_mobile/<?php echo $theme?>"<?php if($d['search']['m_theme']=='_mobile/'.$theme):?> selected<?php endif?>><?php echo $theme?></option>
|
||||
<?php endwhile?>
|
||||
<?php closedir($dirs)?>
|
||||
</optgroup>
|
||||
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group row">
|
||||
<label class="col-lg-2 col-form-label text-lg-right">검색범위</label>
|
||||
<div class="col-lg-10 col-xl-9">
|
||||
<select name="term" class="form-control custom-select">
|
||||
<option value="360"<?php if($d['search']['term']==360):?> selected="selected"<?php endif?>>전체</option>
|
||||
<option value="36"<?php if($d['search']['term']==36):?> selected="selected"<?php endif?>>최근 3년</option>
|
||||
<option value="24"<?php if($d['search']['term']==24):?> selected="selected"<?php endif?>>최근 2년</option>
|
||||
<option value="12"<?php if($d['search']['term']==12):?> selected="selected"<?php endif?>>최근 1년</option>
|
||||
<option value="6"<?php if($d['search']['term']==6):?> selected="selected"<?php endif?>>최근 6개월</option>
|
||||
<option value="3"<?php if($d['search']['term']==3):?> selected="selected"<?php endif?>>최근 3개월</option>
|
||||
<option value="1"<?php if($d['search']['term']==1):?> selected="selected"<?php endif?>>최근 한달</option>
|
||||
</select>
|
||||
<p class="form-text text-muted">
|
||||
<small>검색양에 따라 처리속도가 느려질 수 있습니다. 적절한 기간을 지정해 주세요.</small>
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group row">
|
||||
<label class="col-lg-2 col-form-label text-lg-right">검색 결과수</label>
|
||||
<div class="col-lg-10 col-xl-9">
|
||||
|
||||
<div class="input-group" style="width:250px">
|
||||
<div class="input-group-prepend">
|
||||
<span class="input-group-text">통합검색시</span>
|
||||
</div>
|
||||
<input type="text" name="num1" size="5" value="<?php echo $d['search']['num1']?>" class="form-control text-center">
|
||||
<div class="input-group-append">
|
||||
<span class="input-group-text">개</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="input-group" style="width:250px;margin-top:10px">
|
||||
<div class="input-group-prepend">
|
||||
<span class="input-group-text">세부검색시</span>
|
||||
</div>
|
||||
<input type="text" name="num2" size="5" value="<?php echo $d['search']['num2']?>" class="form-control text-center">
|
||||
<div class="input-group-append">
|
||||
<span class="input-group-text">개</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group row">
|
||||
<label class="col-lg-2 col-form-label text-lg-right">레이아웃</label>
|
||||
<div class="col-lg-10 col-xl-9">
|
||||
|
||||
<div class="form-row">
|
||||
<?php $_layoutExp1=explode('/',$d['search']['layout'])?>
|
||||
<?php if (!is_dir($g['path_layout'].$_layoutExp1[0])): ?>
|
||||
<div class="col-sm-12">
|
||||
<div class="alert alert-danger">
|
||||
지정된 <?php echo $g['path_layout'].$_layoutExp1[0] ?> 레이아웃이 존재하지 않습니다. 변경해 주세요.
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-sm-6" id="rb-layout-select">
|
||||
<select class="form-control custom-select" name="layout_1" required onchange="getSubLayout(this,'rb-layout-select2','layout_1_sub','custom-select');" style="letter-spacing: -1px;">
|
||||
<?php $dirs = opendir($g['path_layout'])?>
|
||||
<?php $_i=0;while(false !== ($tpl = readdir($dirs))):?>
|
||||
<?php if($tpl=='.' || $tpl == '..' || $tpl == '_blank' || is_file($g['path_layout'].$tpl))continue?>
|
||||
<option value="<?php echo $tpl?>"><?php echo getFolderName($g['path_layout'].$tpl)?>(<?php echo $tpl?>)</option>
|
||||
<?php $_i++;endwhile?>
|
||||
<?php closedir($dirs)?>
|
||||
</select>
|
||||
</div>
|
||||
<div class="col-sm-6" id="rb-layout-select2">
|
||||
<select class="form-control custom-select" name="layout_1_sub">
|
||||
</select>
|
||||
</div>
|
||||
<?php else: ?>
|
||||
<div class="col-sm-6" id="rb-layout-select">
|
||||
<select class="form-control custom-select" name="layout_1" required onchange="getSubLayout(this,'rb-layout-select2','layout_1_sub','');">
|
||||
<option value="0">사이트 레이아웃(<?php echo getFolderName($g['path_layout'].$_layoutHexp[0])?>)</option>
|
||||
<?php $dirs = opendir($g['path_layout'])?>
|
||||
<?php while(false !== ($tpl = readdir($dirs))):?>
|
||||
<?php if($tpl=='.' || $tpl == '..' || $tpl == '_blank' || is_file($g['path_layout'].$tpl))continue?>
|
||||
<option value="<?php echo $tpl?>"<?php if($_layoutExp1[0]==$tpl):?> selected<?php endif?>><?php echo getFolderName($g['path_layout'].$tpl)?>(<?php echo $tpl?>)</option>
|
||||
<?php endwhile?>
|
||||
<?php closedir($dirs)?>
|
||||
</select>
|
||||
</div>
|
||||
<div class="col-sm-6" id="rb-layout-select2">
|
||||
<select class="form-control custom-select" name="layout_1_sub"<?php if(!$d['search']['layout']):?> disabled<?php endif?>>
|
||||
<?php if(!$d['search']['layout']):?><option>서브 레이아웃</option><?php endif?>
|
||||
<?php $dirs1 = opendir($g['path_layout'].$_layoutExp1[0])?>
|
||||
<?php while(false !== ($tpl1 = readdir($dirs1))):?>
|
||||
<?php if(!strstr($tpl1,'.php') || $tpl1=='_main.php')continue?>
|
||||
<option value="<?php echo $tpl1?>"<?php if($_layoutExp1[1]==$tpl1):?> selected<?php endif?>><?php echo str_replace('.php','',$tpl1)?></option>
|
||||
<?php endwhile?>
|
||||
<?php closedir($dirs1)?>
|
||||
</select>
|
||||
</div>
|
||||
<?php endif; ?>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group row">
|
||||
<label class="col-lg-2 col-form-label text-lg-right">
|
||||
<span class="badge badge-dark">모바일</span>
|
||||
</label>
|
||||
<div class="col-lg-10 col-xl-9">
|
||||
|
||||
<div class="form-row">
|
||||
<?php $_mlayoutExp1=explode('/',$d['search']['m_layout'])?>
|
||||
<?php if (!is_dir($g['path_layout'].$_mlayoutExp1[0])): ?>
|
||||
<div class="col-sm-12">
|
||||
<div class="alert alert-danger">
|
||||
지정된 <?php echo $g['path_layout'].$_mlayoutExp1[0] ?> 레이아웃이 존재하지 않습니다. 변경해 주세요.
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-sm-6" id="rb-mlayout-select">
|
||||
<select class="form-control custom-select" name="m_layout_1" required onchange="getSubLayout(this,'rb-layout-select4','m_layout_1_sub','custom-select');" style="letter-spacing: -1px;">
|
||||
<option value="0">사용안함 (기본 레이아웃 적용)</option>
|
||||
<option disabled>--------------------</option>
|
||||
<?php $dirs = opendir($g['path_layout'])?>
|
||||
<?php while(false !== ($tpl = readdir($dirs))):?>
|
||||
<?php if($tpl=='.' || $tpl == '..' || $tpl == '_blank' || is_file($g['path_layout'].$tpl))continue?>
|
||||
<option value="<?php echo $tpl?>"><?php echo getFolderName($g['path_layout'].$tpl)?> (<?php echo $tpl?>)</option>
|
||||
<?php endwhile?>
|
||||
<?php closedir($dirs)?>
|
||||
</select>
|
||||
</div>
|
||||
<div class="col-sm-6" id="rb-layout-select4">
|
||||
<select class="form-control custom-select" name="m_layout_1_sub">
|
||||
</select>
|
||||
</div>
|
||||
<?php else: ?>
|
||||
<div class="col-sm-6" id="rb-layout-select3">
|
||||
<select class="form-control custom-select" name="m_layout_1" required onchange="getSubLayout(this,'rb-layout-select4','m_layout_1_sub','');">
|
||||
<option value="0">사이트 레이아웃(<?php echo getFolderName($g['path_layout'].$_mlayoutHexp[0])?>)</option>
|
||||
<?php $dirs = opendir($g['path_layout'])?>
|
||||
<?php while(false !== ($tpl = readdir($dirs))):?>
|
||||
<?php if($tpl=='.' || $tpl == '..' || $tpl == '_blank' || is_file($g['path_layout'].$tpl))continue?>
|
||||
<option value="<?php echo $tpl?>"<?php if($_mlayoutExp1[0]==$tpl):?> selected<?php endif?>><?php echo getFolderName($g['path_layout'].$tpl)?>(<?php echo $tpl?>)</option>
|
||||
<?php endwhile?>
|
||||
<?php closedir($dirs)?>
|
||||
</select>
|
||||
</div>
|
||||
<div class="col-sm-6" id="rb-layout-select4">
|
||||
<select class="form-control custom-select" name="m_layout_1_sub"<?php if(!$d['search']['m_layout']):?> disabled<?php endif?>>
|
||||
<?php if(!$d['search']['m_layout']):?><option>서브 레이아웃</option><?php endif?>
|
||||
<?php $dirs1 = opendir($g['path_layout'].$_mlayoutExp1[0])?>
|
||||
<?php while(false !== ($tpl1 = readdir($dirs1))):?>
|
||||
<?php if(!strstr($tpl1,'.php') || $tpl1=='_main.php')continue?>
|
||||
<option value="<?php echo $tpl1?>"<?php if($_mlayoutExp1[1]==$tpl1):?> selected<?php endif?>><?php echo str_replace('.php','',$tpl1)?></option>
|
||||
<?php endwhile?>
|
||||
<?php closedir($dirs1)?>
|
||||
</select>
|
||||
</div>
|
||||
<?php endif; ?>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group row">
|
||||
<label class="col-lg-2 col-form-label text-lg-right">외부검색</label>
|
||||
<div class="col-lg-10 col-xl-9">
|
||||
<textarea name="searchlist" class="form-control" rows="5"><?php echo trim(implode('',file($g['path_module'].$module.'/var/search.list.txt')))?></textarea>
|
||||
<p class="form-text text-muted">
|
||||
<small>검색엔진명과 검색URL을 콤마(,)로 구분해서 등록해 주세요. 외부검색을 이용해 검색어를 선택된 검색엔진으로 연결해 줍니다.</small>
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
<div class="col-lg-10 offset-lg-2 col-xl-9 offset-xl-2">
|
||||
<button type="submit" class="btn btn-outline-primary btn-lg my-4 btn-block" id="rb-submit-button">확인</button>
|
||||
</div>
|
||||
</div>
|
||||
</div><!-- /.card-body -->
|
||||
</form><!-- /.card -->
|
||||
|
||||
<?php endif?>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
<!-- nestable : https://github.com/dbushell/Nestable -->
|
||||
<?php getImport('nestable','jquery.nestable',false,'js')?>
|
||||
<script>
|
||||
$(document).ready(function() {
|
||||
|
||||
putCookieAlert('search_config_result') // 실행결과 알림 메시지
|
||||
$('#nestable-menu').nestable();
|
||||
$('.dd').on('change', function() {
|
||||
orderUpdate();
|
||||
});
|
||||
|
||||
<?php if (!$searchfile): ?>
|
||||
//사이트 셀렉터 출력
|
||||
$('[data-role="siteSelector"]').removeClass('d-none')
|
||||
<?php endif; ?>
|
||||
|
||||
});
|
||||
|
||||
function orderUpdate()
|
||||
{
|
||||
var f = document.forms[0];
|
||||
f.auto.value = '1';
|
||||
getIframeForAction(f);
|
||||
f.submit();
|
||||
}
|
||||
function procCheck(f)
|
||||
{
|
||||
if (f.name.value == '')
|
||||
{
|
||||
alert('검색 페이지명을 입력해 주세요. ');
|
||||
f.name.focus();
|
||||
return false;
|
||||
}
|
||||
|
||||
getIframeForAction(f);
|
||||
return confirm('정말로 실행하시겠습니까? ');
|
||||
}
|
||||
function saveCheck(f)
|
||||
{
|
||||
if(f.layout_1.value != '0') f.layout.value = f.layout_1.value + '/' + f.layout_1_sub.value;
|
||||
else f.layout.value = '';
|
||||
|
||||
if(f.m_layout_1.value != '0') f.m_layout.value = f.m_layout_1.value + '/' + f.m_layout_1_sub.value;
|
||||
else f.m_layout.value = '';
|
||||
|
||||
getIframeForAction(f);
|
||||
// return confirm('정말로 실행하시겠습니까? ');
|
||||
}
|
||||
<?php if($_nowOrderNum != count($d['search_order']) || $autoCheck=='Y'):?>
|
||||
setTimeout("orderUpdate();",100);
|
||||
<?php endif?>
|
||||
|
||||
</script>
|
||||
235
modules/search/admin/theme.php
Normal file
235
modules/search/admin/theme.php
Normal file
@@ -0,0 +1,235 @@
|
||||
<link href="<?php echo $g['s']?>/_core/css/github-markdown.css" rel="stylesheet">
|
||||
<?php getImport('jquery-markdown','jquery.markdown','0.0.10','js')?>
|
||||
|
||||
<div class="row no-gutters">
|
||||
<div class="col-sm-4 col-md-4 col-xl-3 d-none d-sm-block sidebar"><!-- 좌측영역 시작 -->
|
||||
<div class="card">
|
||||
<div class="card-header f13">
|
||||
테마 리스트
|
||||
</div>
|
||||
|
||||
<div class="list-group list-group-flush">
|
||||
<?php $i=0?>
|
||||
<?php $xdir = $g['path_module'].$module.'/themes/'?>
|
||||
<?php $tdir = $xdir.'_desktop/'?>
|
||||
<?php $dirs = opendir($tdir)?>
|
||||
<?php while(false !== ($skin = readdir($dirs))):?>
|
||||
<?php if($skin=='.' || $skin == '..' || is_file($tdir.$skin))continue?>
|
||||
<?php $i++?>
|
||||
<a href="<?php echo $g['adm_href']?>&theme=_desktop/<?php echo $skin?>" class="list-group-item list-group-item-action d-flex justify-content-between align-items-center<?php if($theme=='_desktop/'.$skin):?> border border-primary<?php endif?>">
|
||||
<span><?php echo getFolderName($tdir.$skin)?></span>
|
||||
<span class="badge badge-<?php echo $theme=='_desktop/'.$skin?'primary':'dark' ?> badge-pill"><?php echo $skin?></span>
|
||||
</a>
|
||||
<?php endwhile?>
|
||||
<?php closedir($dirs)?>
|
||||
<?php $tdir = $xdir.'_mobile/'?>
|
||||
<?php $dirs = opendir($tdir)?>
|
||||
<?php while(false !== ($skin = readdir($dirs))):?>
|
||||
<?php if($skin=='.' || $skin == '..' || is_file($tdir.$skin))continue?>
|
||||
<?php $i++?>
|
||||
<a href="<?php echo $g['adm_href']?>&theme=_mobile/<?php echo $skin?>" class="list-group-item list-group-item-action d-flex justify-content-between align-items-center<?php if($theme=='_mobile/'.$skin):?> border border-primary<?php endif?>">
|
||||
<span><?php echo getFolderName($tdir.$skin)?></span>
|
||||
<span class="badge badge-<?php echo $theme=='_mobile/'.$skin?'primary':'dark' ?> badge-pill"><?php echo $skin?></span>
|
||||
</a>
|
||||
<?php endwhile?>
|
||||
<?php closedir($dirs)?>
|
||||
</div>
|
||||
|
||||
<?php if(!$i):?>
|
||||
<div class="none">등록된 테마가 없습니다.</div>
|
||||
<?php endif?>
|
||||
|
||||
|
||||
</div> <!-- 좌측 card 끝 -->
|
||||
</div> <!-- 좌측 영역 끝 -->
|
||||
<div class="col-sm-8 col-md-8 ml-sm-auto col-xl-9">
|
||||
|
||||
<?php if($theme):?>
|
||||
<form class="card rounded-0 border-0" name="procForm" action="<?php echo $g['s']?>/" method="post" target="_action_frame_<?php echo $m?>" onsubmit="return saveCheck(this);">
|
||||
<input type="hidden" name="r" value="<?php echo $r?>" />
|
||||
<input type="hidden" name="m" value="<?php echo $module?>" />
|
||||
<input type="hidden" name="a" value="theme_config" />
|
||||
<input type="hidden" name="theme" value="<?php echo $theme?>" />
|
||||
|
||||
<div class="card-header p-0">
|
||||
<ol class="breadcrumb rounded-0 mb-0 bg-transparent text-muted">
|
||||
<?php $_theme =explode('/' , $theme); ?>
|
||||
<li class="breadcrumb-item">root</li>
|
||||
<li class="breadcrumb-item">modules</li>
|
||||
<li class="breadcrumb-item"><?php echo $module?></li>
|
||||
<li class="breadcrumb-item">themes</li>
|
||||
<li class="breadcrumb-item"><?php echo $_theme[0]?></li>
|
||||
<li class="breadcrumb-item"><?php echo $_theme[1]?></li>
|
||||
</ol>
|
||||
</div>
|
||||
|
||||
|
||||
<ul class="nav nav-tabs">
|
||||
<li class="nav-item">
|
||||
<a class="nav-link js-tooltip<?php if(!$_COOKIE['moduleBbsThemeTab']||$_COOKIE['moduleBbsThemeTab']=='readme'):?> active<?php endif?>" href="#readme" data-toggle="tab" onclick="setCookie('moduleBbsThemeTab','readme',1);" title="README.md" data-placement="bottom">
|
||||
안내문서
|
||||
</a>
|
||||
</li>
|
||||
<li class="nav-item editor">
|
||||
<a class="nav-link js-tooltip<?php if($_COOKIE['moduleBbsThemeTab']=='editor'):?> active<?php endif?>" href="#var" data-toggle="tab" onclick="setCookie('moduleBbsThemeTab','editor','1');" title="var.php" data-placement="bottom">
|
||||
설정 변수
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
<div class="tab-content">
|
||||
|
||||
<div class="tab-pane <?php if(!$_COOKIE['moduleBbsThemeTab']||$_COOKIE['moduleBbsThemeTab']=='readme'):?> show active<?php endif?>" id="readme" role="tabpanel" aria-labelledby="readme-tab">
|
||||
|
||||
<?php if (is_file($g['path_module'].$module.'/themes/'.$theme.'/README.md')): ?>
|
||||
<div class="markdown-body px-4 py-0 readme">
|
||||
<?php readfile($g['path_module'].$module.'/themes/'.$theme.'/README.md')?>
|
||||
</div>
|
||||
<?php else: ?>
|
||||
|
||||
<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>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<?php endif; ?>
|
||||
|
||||
<?php if (is_file($g['path_module'].$module.'/themes/'.$theme.'/LICENSE')): ?>
|
||||
<div class="py-5 px-4">
|
||||
<h5>라이센스</h5>
|
||||
<textarea class="form-control" rows="10"><?php readfile($g['path_module'].$module.'/themes/'.$theme.'/LICENSE')?></textarea>
|
||||
</div>
|
||||
<?php endif; ?>
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
<div class="tab-pane pr-2<?php if($_COOKIE['moduleBbsThemeTab']=='editor'):?> show active<?php endif?>" id="var" role="tabpanel" aria-labelledby="var-tab">
|
||||
|
||||
<div class="">
|
||||
<div class="rb-codeview">
|
||||
<div class="rb-codeview-body">
|
||||
<textarea name="theme_var" id="__code__" class="form-control" rows="30"><?php echo implode('',file($g['path_module'].$module.'/themes/'.$theme.'/_var/var.php'))?></textarea>
|
||||
</div>
|
||||
|
||||
<div class="rb-codeview-footer p-2">
|
||||
<div class="form-row mb-2">
|
||||
<div class="col">
|
||||
<div class="input-group input-group-sm">
|
||||
<div class="input-group-prepend">
|
||||
<span class="input-group-text">테마명</span>
|
||||
</div>
|
||||
<input type="text" class="form-control" name="name" value="<?php echo getFolderName($g['path_module'].$module.'/themes/'.$theme)?>">
|
||||
</div>
|
||||
</div>
|
||||
<div class="col">
|
||||
<div class="input-group input-group-sm">
|
||||
<div class="input-group-prepend">
|
||||
<span class="input-group-text">테마 폴더</span>
|
||||
</div>
|
||||
<input type="text" class="form-control" name="newLayout" value="<?php echo $theme?>">
|
||||
</div>
|
||||
</div>
|
||||
<div class="col text-right pt-2 text-muted">
|
||||
<small><?php echo count(file($g['path_module'].$module.'/themes/'.$theme.'/_var/var.php')).' lines'?></small></li>
|
||||
<small class="ml-3"><?php echo getSizeFormat(@filesize($g['path_module'].$module.'/themes/'.$theme.'/_var/var.php'),2)?></small>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div> <!--.rb-codeview -->
|
||||
</div> <!--.rb-files -->
|
||||
<div class="card-footer">
|
||||
|
||||
<button type="submit" class="btn btn-outline-primary">저장하기</button>
|
||||
<span class="ml-3 text-muted">이 테마를 사용하는 모든 게시판에 위의 설정값이 적용됩니다.</span>
|
||||
<?php if($theme):?>
|
||||
<div class="pull-right">
|
||||
<a class="btn btn-outline-danger" href="<?php echo $g['s']?>/?r=<?php echo $r?>&m=<?php echo $module?>&a=theme_delete&theme=<?php echo $theme?>" target="_action_frame_<?php echo $m?>" onclick="return confirm('정말로 이 테마를 삭제하시겠습니까? ');">테마삭제</a>
|
||||
</div>
|
||||
<?php endif?>
|
||||
|
||||
</div>
|
||||
</div><!-- /.tab-pane -->
|
||||
|
||||
</div><!-- /.tab-content -->
|
||||
|
||||
|
||||
|
||||
<?php else:?>
|
||||
|
||||
<div class="text-center text-muted d-flex align-items-center justify-content-center" style="height: calc(100vh - 10rem);">
|
||||
<div class="">
|
||||
<i class="fa fa fa-picture-o fa-3x mb-3" aria-hidden="true"></i>
|
||||
<p>테마를 선택해 주세요.</p>
|
||||
<p class="small">테마설정은 해당 테마를 사용하는 모든 프론트 페이지에 적용됩니다.</p>
|
||||
|
||||
<ul class="list list-unstyled small">
|
||||
<li>테마는 통합검색모듈 검색테마를 변경할 수 있는 요소입니다.</li>
|
||||
<li>테마설정은 통합검색모듈 프론트 페이지의 외형만 제어하며 통합검색모듈의 내부시스템에는 영향을 주지 않습니다.</li>
|
||||
<li>테마의 속성을 변경하면 해당테마를 사용하는 모든 사이트의 통합검색 관련된 페이지에 적용됩니다.</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<?php endif?>
|
||||
|
||||
</form>
|
||||
</div> <!-- 우측영역 끝 -->
|
||||
</div> <!--.row -->
|
||||
|
||||
|
||||
<?php if($d['admin']['codeeidt']):?>
|
||||
<!-- codemirror -->
|
||||
<style>
|
||||
.CodeMirror {
|
||||
font-size: 13px;
|
||||
font-weight: normal;
|
||||
font-family: Menlo,Monaco,Consolas,"Courier New",monospace !important;
|
||||
}
|
||||
</style>
|
||||
<?php getImport('codemirror','codemirror',false,'css')?>
|
||||
<?php getImport('codemirror','codemirror',false,'js')?>
|
||||
<?php getImport('codemirror','theme/'.$d['admin']['codeeidt'],false,'css')?>
|
||||
<?php getImport('codemirror','addon/display/fullscreen',false,'css')?>
|
||||
<?php getImport('codemirror','addon/display/fullscreen',false,'js')?>
|
||||
<?php getImport('codemirror','mode/htmlmixed/htmlmixed',false,'js')?>
|
||||
<?php getImport('codemirror','mode/xml/xml',false,'js')?>
|
||||
<?php getImport('codemirror','mode/javascript/javascript',false,'js')?>
|
||||
<?php getImport('codemirror','mode/clike/clike',false,'js')?>
|
||||
<?php getImport('codemirror','mode/php/php',false,'js')?>
|
||||
<?php getImport('codemirror','mode/css/css',false,'js')?>
|
||||
<script>
|
||||
|
||||
(function() {
|
||||
|
||||
$(".markdown-body").markdown();
|
||||
|
||||
var editor = CodeMirror.fromTextArea(getId('__code__'), {
|
||||
mode: "<?php echo $codeset[$codeext]?$codeset[$codeext]:'application/x-httpd-php'?>",
|
||||
indentUnit: 2,
|
||||
lineNumbers: true,
|
||||
matchBrackets: true,
|
||||
indentWithTabs: true,
|
||||
theme: '<?php echo $d['admin']['codeeidt']?>'
|
||||
});
|
||||
editor.setSize('100%','500px');
|
||||
_isCodeEdit = true;
|
||||
})();
|
||||
|
||||
</script>
|
||||
<!-- @codemirror -->
|
||||
<?php endif?>
|
||||
|
||||
|
||||
<script type="text/javascript">
|
||||
//<![CDATA[
|
||||
function saveCheck(f)
|
||||
{
|
||||
return confirm('정말로 실행하시겠습니까? ');
|
||||
}
|
||||
//]]>
|
||||
</script>
|
||||
14
modules/search/admin/var/var.joint.php
Normal file
14
modules/search/admin/var/var.joint.php
Normal file
@@ -0,0 +1,14 @@
|
||||
<div id="mjointbox">
|
||||
|
||||
<div class="title">
|
||||
이 모듈(통합검색)을 연결하시겠습니까?
|
||||
</div>
|
||||
|
||||
<input type="button" value="연결" class="btn btn-light" onclick="dropJoint('<?php echo $g['s']?>/?r=<?php echo $r?>&m=<?php echo $smodule?>');" />
|
||||
|
||||
</div>
|
||||
|
||||
<style type="text/css">
|
||||
#mjointbox {}
|
||||
#mjointbox .title {border-bottom:#dfdfdf dashed 1px;padding:0 0 10px 0;margin:0 0 20px 0;}
|
||||
</style>
|
||||
4
modules/search/admin/var/var.menu.php
Normal file
4
modules/search/admin/var/var.menu.php
Normal file
@@ -0,0 +1,4 @@
|
||||
<?php
|
||||
$d['amenu']['main'] = '환경설정';
|
||||
$d['amenu']['theme'] = '테마';
|
||||
?>
|
||||
Reference in New Issue
Block a user