Initial import from local backup (Documents-Playground/pakerpale)

This commit is contained in:
jeonghwa
2026-07-03 05:27:05 +09:00
commit afabb85270
1520 changed files with 374739 additions and 0 deletions

View File

@@ -0,0 +1,8 @@
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
echo "\nERROR: ",
$heading,
"\n\n",
$message,
"\n\n";

View File

@@ -0,0 +1,8 @@
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
echo "\nDatabase error: ",
$heading,
"\n\n",
$message,
"\n\n";

View File

@@ -0,0 +1,21 @@
<?php defined('BASEPATH') OR exit('No direct script access allowed'); ?>
An uncaught Exception was encountered
Type: <?php echo get_class($exception), "\n"; ?>
Message: <?php echo $message, "\n"; ?>
Filename: <?php echo $exception->getFile(), "\n"; ?>
Line Number: <?php echo $exception->getLine(); ?>
<?php if (defined('SHOW_DEBUG_BACKTRACE') && SHOW_DEBUG_BACKTRACE === TRUE): ?>
Backtrace:
<?php foreach ($exception->getTrace() as $error): ?>
<?php if (isset($error['file']) && strpos($error['file'], realpath(BASEPATH)) !== 0): ?>
File: <?php echo $error['file'], "\n"; ?>
Line: <?php echo $error['line'], "\n"; ?>
Function: <?php echo $error['function'], "\n\n"; ?>
<?php endif ?>
<?php endforeach ?>
<?php endif ?>

View File

@@ -0,0 +1,8 @@
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
echo "\nERROR: ",
$heading,
"\n\n",
$message,
"\n\n";

View File

@@ -0,0 +1,21 @@
<?php defined('BASEPATH') OR exit('No direct script access allowed'); ?>
A PHP Error was encountered
Severity: <?php echo $severity, "\n"; ?>
Message: <?php echo $message, "\n"; ?>
Filename: <?php echo $filepath, "\n"; ?>
Line Number: <?php echo $line; ?>
<?php if (defined('SHOW_DEBUG_BACKTRACE') && SHOW_DEBUG_BACKTRACE === TRUE): ?>
Backtrace:
<?php foreach (debug_backtrace() as $error): ?>
<?php if (isset($error['file']) && strpos($error['file'], realpath(BASEPATH)) !== 0): ?>
File: <?php echo $error['file'], "\n"; ?>
Line: <?php echo $error['line'], "\n"; ?>
Function: <?php echo $error['function'], "\n\n"; ?>
<?php endif ?>
<?php endforeach ?>
<?php endif ?>

View File

@@ -0,0 +1,11 @@
<!DOCTYPE html>
<html>
<head>
<title>403 Forbidden</title>
</head>
<body>
<p>Directory access is forbidden.</p>
</body>
</html>

View File

@@ -0,0 +1,64 @@
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
?><!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>404 Page Not Found</title>
<style type="text/css">
::selection { background-color: #E13300; color: white; }
::-moz-selection { background-color: #E13300; color: white; }
body {
background-color: #fff;
margin: 40px;
font: 13px/20px normal Helvetica, Arial, sans-serif;
color: #4F5155;
}
a {
color: #003399;
background-color: transparent;
font-weight: normal;
}
h1 {
color: #444;
background-color: transparent;
border-bottom: 1px solid #D0D0D0;
font-size: 19px;
font-weight: normal;
margin: 0 0 14px 0;
padding: 14px 15px 10px 15px;
}
code {
font-family: Consolas, Monaco, Courier New, Courier, monospace;
font-size: 12px;
background-color: #f9f9f9;
border: 1px solid #D0D0D0;
color: #002166;
display: block;
margin: 14px 0 14px 0;
padding: 12px 10px 12px 10px;
}
#container {
margin: 10px;
border: 1px solid #D0D0D0;
box-shadow: 0 0 8px #D0D0D0;
}
p {
margin: 12px 15px 12px 15px;
}
</style>
</head>
<body>
<div id="container">
<h1><?php echo $heading; ?></h1>
<?php echo $message; ?>
</div>
</body>
</html>

View File

@@ -0,0 +1,64 @@
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
?><!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Database Error</title>
<style type="text/css">
::selection { background-color: #E13300; color: white; }
::-moz-selection { background-color: #E13300; color: white; }
body {
background-color: #fff;
margin: 40px;
font: 13px/20px normal Helvetica, Arial, sans-serif;
color: #4F5155;
}
a {
color: #003399;
background-color: transparent;
font-weight: normal;
}
h1 {
color: #444;
background-color: transparent;
border-bottom: 1px solid #D0D0D0;
font-size: 19px;
font-weight: normal;
margin: 0 0 14px 0;
padding: 14px 15px 10px 15px;
}
code {
font-family: Consolas, Monaco, Courier New, Courier, monospace;
font-size: 12px;
background-color: #f9f9f9;
border: 1px solid #D0D0D0;
color: #002166;
display: block;
margin: 14px 0 14px 0;
padding: 12px 10px 12px 10px;
}
#container {
margin: 10px;
border: 1px solid #D0D0D0;
box-shadow: 0 0 8px #D0D0D0;
}
p {
margin: 12px 15px 12px 15px;
}
</style>
</head>
<body>
<div id="container">
<h1><?php echo $heading; ?></h1>
<?php echo $message; ?>
</div>
</body>
</html>

View File

@@ -0,0 +1,32 @@
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
?>
<div style="border:1px solid #990000;padding-left:20px;margin:0 0 10px 0;">
<h4>An uncaught Exception was encountered</h4>
<p>Type: <?php echo get_class($exception); ?></p>
<p>Message: <?php echo $message; ?></p>
<p>Filename: <?php echo $exception->getFile(); ?></p>
<p>Line Number: <?php echo $exception->getLine(); ?></p>
<?php if (defined('SHOW_DEBUG_BACKTRACE') && SHOW_DEBUG_BACKTRACE === TRUE): ?>
<p>Backtrace:</p>
<?php foreach ($exception->getTrace() as $error): ?>
<?php if (isset($error['file']) && strpos($error['file'], realpath(BASEPATH)) !== 0): ?>
<p style="margin-left:10px">
File: <?php echo $error['file']; ?><br />
Line: <?php echo $error['line']; ?><br />
Function: <?php echo $error['function']; ?>
</p>
<?php endif ?>
<?php endforeach ?>
<?php endif ?>
</div>

View File

@@ -0,0 +1,64 @@
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
?><!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Error</title>
<style type="text/css">
::selection { background-color: #E13300; color: white; }
::-moz-selection { background-color: #E13300; color: white; }
body {
background-color: #fff;
margin: 40px;
font: 13px/20px normal Helvetica, Arial, sans-serif;
color: #4F5155;
}
a {
color: #003399;
background-color: transparent;
font-weight: normal;
}
h1 {
color: #444;
background-color: transparent;
border-bottom: 1px solid #D0D0D0;
font-size: 19px;
font-weight: normal;
margin: 0 0 14px 0;
padding: 14px 15px 10px 15px;
}
code {
font-family: Consolas, Monaco, Courier New, Courier, monospace;
font-size: 12px;
background-color: #f9f9f9;
border: 1px solid #D0D0D0;
color: #002166;
display: block;
margin: 14px 0 14px 0;
padding: 12px 10px 12px 10px;
}
#container {
margin: 10px;
border: 1px solid #D0D0D0;
box-shadow: 0 0 8px #D0D0D0;
}
p {
margin: 12px 15px 12px 15px;
}
</style>
</head>
<body>
<div id="container">
<h1><?php echo $heading; ?></h1>
<?php echo $message; ?>
</div>
</body>
</html>

View File

@@ -0,0 +1,33 @@
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
?>
<div style="border:1px solid #990000;padding-left:20px;margin:0 0 10px 0;">
<h4>A PHP Error was encountered</h4>
<p>Severity: <?php echo $severity; ?></p>
<p>Message: <?php echo $message; ?></p>
<p>Filename: <?php echo $filepath; ?></p>
<p>Line Number: <?php echo $line; ?></p>
<?php if (defined('SHOW_DEBUG_BACKTRACE') && SHOW_DEBUG_BACKTRACE === TRUE): ?>
<p>Backtrace:</p>
<?php foreach (debug_backtrace() as $error): ?>
<?php if (isset($error['file']) && strpos($error['file'], realpath(BASEPATH)) !== 0): ?>
<p style="margin-left:10px">
File: <?php echo $error['file'] ?><br />
Line: <?php echo $error['line'] ?><br />
Function: <?php echo $error['function'] ?>
</p>
<?php endif ?>
<?php endforeach ?>
<?php endif ?>
</div>

View File

@@ -0,0 +1,11 @@
<!DOCTYPE html>
<html>
<head>
<title>403 Forbidden</title>
</head>
<body>
<p>Directory access is forbidden.</p>
</body>
</html>

View File

@@ -0,0 +1,11 @@
<!DOCTYPE html>
<html>
<head>
<title>403 Forbidden</title>
</head>
<body>
<p>Directory access is forbidden.</p>
</body>
</html>

View File

@@ -0,0 +1,11 @@
<!DOCTYPE html>
<html>
<head>
<title>403 Forbidden</title>
</head>
<body>
<p>Directory access is forbidden.</p>
</body>
</html>

View File

@@ -0,0 +1,80 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<link rel="shortcut icon" href="/favicon.ico" type="image/x-icon">
<title>DS::Admin</title>
<!-- Tell the browser to be responsive to screen width -->
<meta content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no" name="viewport">
<!-- Bootstrap 3.3.6 -->
<link rel="stylesheet" href="/assets/alt/bootstrap/css/bootstrap.min.css">
<!-- Font Awesome -->
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.5.0/css/font-awesome.min.css">
<!-- Ionicons -->
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/ionicons/2.0.1/css/ionicons.min.css">
<!-- Theme style -->
<link rel="stylesheet" href="/assets/alt/dist/css/AdminLTE.min.css">
<!-- iCheck -->
<link rel="stylesheet" href="/assets/alt/plugins/iCheck/square/blue.css">
<!-- HTML5 Shim and Respond.js IE8 support of HTML5 elements and media queries -->
<!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
<!--[if lt IE 9]>
<script src="https://oss.maxcdn.com/html5shiv/3.7.3/html5shiv.min.js"></script>
<script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
<![endif]-->
</head>
<body class="hold-transition login-page">
<div class="login-box">
<div class="login-logo">
<a href="/"><b>CrossMap</b> Admin</a>
</div>
<!-- /.login-logo -->
<div class="login-box-body">
<p class="login-box-msg">Please login</p>
<form action="" method="post" class="login-form">
<div class="form-group has-feedback">
<input type="text" class="form-control" placeholder="Username" name="username">
<span class="glyphicon glyphicon-user form-control-feedback"></span>
</div>
<div class="form-group has-feedback">
<input type="password" class="form-control" placeholder="Password" name="passwd">
<span class="glyphicon glyphicon-lock form-control-feedback"></span>
</div>
<div class="row">
<div class="col-xs-12">
<button type="submit" class="btn btn-primary btn-block btn-flat">Sign In</button>
</div>
<!-- /.col -->
</div>
</form>
</div>
<!-- /.login-box-body -->
</div>
<!-- /.login-box -->
<!-- jQuery 2.2.3 -->
<script src="/assets/alt/plugins/jQuery/jquery-2.2.3.min.js"></script>
<!-- Bootstrap 3.3.6 -->
<script src="/assets/alt/bootstrap/js/bootstrap.min.js"></script>
<!-- iCheck -->
<script src="/assets/alt/plugins/iCheck/icheck.min.js"></script>
<script>
$(function () {
$('.login-form').on('submit',function(e) {
e.preventDefault()
if(!this.username.value) {
this.username.focus()
alert('사용자명을 입력해주세요!')
}else if(!this.passwd.value) {
this.passwd.focus()
alert('비밀번호를 입력해주세요!')
}else this.submit();
}).find('input').eq(0).focus();
});
</script>
</body>
</html>

View File

@@ -0,0 +1,13 @@
<?php $this->load->view('partial/top');?>
<body class="hold-transition skin-blue sidebar-mini">
<!-- Site wrapper -->
<div class="wrapper">
<?php $this->load->view('partial/header');?>
<?php $this->load->view('partial/menu');?>
<div class="content-wrapper">
<section class="content"><?php require_once __DIR__. '/pages/'. $page. '.php'; ?></section>
</div>
<?php $this->load->view('partial/footer');?>
</div>
</body>
</html>

View File

@@ -0,0 +1,54 @@
<!-- Modal -->
<div class="modal fade" id="amazonItemModal" role="dialog" aria-labelledby="amazonItemModalLabel">
<div class="modal-dialog modal-lg" role="document">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
<h4 class="modal-title" id="amazonItemModalLabel">Product Info</h4>
</div>
<div class="modal-body">
<div class="col-sm-12">
<form class="form-horizontal">
<input type="text" name="videos" class="hide">
<div class="form-group"></div>
<div class="form-group">
<label class="col-sm-1 control-label">Pastor</label>
<div class="col-sm-11">
<input type="text" class="form-control ds-amz-title">
</div>
</div>
<div class="form-group">
<label class="col-sm-1 control-label">Twitter</label>
<div class="col-sm-2">
<input type="text" class="form-control ds-amz-asin">
</div>
<label class="col-sm-1 control-label">Facebook</label>
<div class="col-sm-2">
<input type="text" class="form-control ds-amz-price">
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">Kakao</label>
<div class="col-sm-10">
<input type="text" class="form-control ds-amz-category" readonly>
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">Homepage</label>
<div class="col-sm-10">
<input type="text" class="form-control ds-amz-category" readonly>
</div>
</div>
</form>
</div>
</div>
<div class="modal-footer selamat-text-center">
<button type="button" class="btn btn-default" data-dismiss="modal">취소</button>
<button type="button" class="btn btn-primary ds-send-newitem-coupang">저장</button>
</div>
</div>
</div>
</div>

View File

@@ -0,0 +1,398 @@
<div class="content-header row">
<h1> 교회정보 </h1>
</div>
<link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/timepicker/1.3.5/jquery.timepicker.min.css">
<style>
.modal-dialog {
margin: 30px auto;
}
.modal-body {
position: relative;
padding: 0px;
}
.close {
position: absolute;
right: -30px;
top: 0;
z-index: 999;
font-size: 2rem;
font-weight: normal;
color: #fff;
opacity: 1;
}
.operate-btn {
cursor: pointer
}
</style>
<div id="dsItemListTableTool">
<div class="form-inline" role="form">
<input type="text" class="form-control keyword-search-input" name="keyword">
<button type="submit" class="btn btn-primary podbbang-search-btn">검색</button>
</div>
</div>
<table class="order-table fill table-condensed cm-place-table" data-page-size="50" data-page-list="[50,100,250,500,1000]" data-toolbar="#dsItemListTableTool" data-method="post" data-side-pagination="server" data-pagination="true" data-show-export="true" data-export-types="['excel','sheet']" data-show-refresh="true" data-show-columns="true" data-pagination-v-align="both" data-click-to-select="true" data-single-select="true" data-sort-name="vcDateCreated" data-sort-order="desc" data-url="/crawls/place/church_table">
<thead>
<tr>
<th data-field="state" data-checkbox="true"></th>
<th data-field="Name" data-align="left">교회명</th>
<th data-field="Pastor" data-align="left">담임목사</th>
<th data-field="Facebook" data-align="left" data-formatter="snsFormatter">SNS</th>
<th data-field="RoadAddress" data-align="left" data-formatter="addressFormatter">주소</th>
<th data-field="Phone" data-align="left">전화</th>
<th data-field="CreatedAt" data-align="left">등록시간</th>
<th data-field="CreatedAt" data-formatter="operateFormatter" data-event="churchEditFormatter">등록시간</th>
</tr>
</thead>
</table>
<div class="modal cm-modal-map" tabindex="-1" role="dialog">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title cm-modal-map-title">Modal title</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">&times;</span>
</button>
</div>
<div class="modal-body">
<div id="cm-map" style="width:585px;height:400px;margin-left:7px;"></div>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-dismiss="modal">Close</button>
</div>
</div>
</div>
</div>
<!-- Modal -->
<div class="modal fade cm-modal-church" role="dialog" aria-labelledby="cm-modal-church">
<div class="modal-dialog modal-md" role="document">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
<h4 class="modal-title">교회정보</h4>
</div>
<div class="modal-body">
<div class="col-sm-12">
<form class="form-horizontal">
<input type="hidden" class="cm-nid">
<div class="form-group"></div>
<div class="form-group">
<label class="col-sm-2 control-label">교회명</label>
<div class="col-sm-4">
<input type="text" class="form-control cm-church-name">
</div>
<label class="col-sm-2 control-label">담임목사</label>
<div class="col-sm-4">
<input type="text" class="form-control cm-church-pastor">
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">주소</label>
<div class="col-sm-4">
<input type="text" class="form-control cm-church-address">
</div>
<label class="col-sm-2 control-label">전화</label>
<div class="col-sm-4">
<input type="text" class="form-control cm-church-phone">
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">홈페이지</label>
<div class="col-sm-4">
<input type="text" class="form-control cm-church-homepage">
</div>
<label class="col-sm-2 control-label">유튜브</label>
<div class="col-sm-4">
<input type="text" class="form-control cm-church-youtube">
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">트위터계정</label>
<div class="col-sm-4">
<input type="text" class="form-control cm-church-twitter">
</div>
<label class="col-sm-2 control-label">페북계정</label>
<div class="col-sm-4">
<input type="text" class="form-control cm-church-facebook">
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">카카오계정</label>
<div class="col-sm-4">
<input type="text" class="form-control cm-church-kakao">
</div>
<label class="col-sm-2 control-label">인스타계정</label>
<div class="col-sm-4">
<input type="text" class="form-control cm-church-instagram">
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">네이버카페</label>
<div class="col-sm-4">
<input type="text" class="form-control cm-church-navercafe">
</div>
<label class="col-sm-2 control-label">다음카페</label>
<div class="col-sm-4">
<input type="text" class="form-control cm-church-daumcafe">
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">예배시간 </label>
<a class="btn btn-default col-sm-2 pull-left cm-church-serviceinfo-add">입력추가</a>
</div>
<div class="form-group cm-church-serviceinfo" style="display:none">
<div class="col-sm-3">
<input type="text" class="form-control cm-church-servicename" placeholder="예배명">
</div>
<div class="col-sm-3">
<select type="btn btn-default" class="form-control cm-church-dayname">
<option value="">요일</option>
<option value="월">월</option>
<option value="화">화</option>
<option value="수">수</option>
<option value="목">목</option>
<option value="금">금</option>
<option value="토">토</option>
<option value="일">일</option>
</select>
</div>
<div class="col-sm-3">
<select type="btn btn-default" class="form-control cm-church-servicechapter">
<option value="">회차</option>
<option value="1부">1부</option>
<option value="2부">2부</option>
<option value="3부">3부</option>
<option value="4부">4부</option>
<option value="5부">5부</option>
<option value="6부">6부</option>
<option value="7부">7부</option>
</select>
</div>
<div class="col-sm-3" style="position: relative; z-index: 100000;">
<input type="text" class="form-control cm-church-servicetime">
</div>
</div>
</form>
</div>
</div>
<div class="modal-footer selamat-text-center">
<button type="button" class="btn btn-default" data-dismiss="modal">취소</button>
<button type="button" class="btn btn-primary cm-church-save">저장</button>
</div>
</div>
</div>
</div>
<script src="/assets/alt/plugins/jQuery/jquery-2.2.3.min.js"></script>
<script src="/assets/alt/bootstrap/js/bootstrap.min.js"></script>
<script src="/assets/js/select2.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-table/1.11.0/bootstrap-table.min.js" integrity="sha256-eXHLyyVI+v6X1wbfg9NB05IWqOqY4E9185nHZgeDIhg=" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-table/1.11.0/locale/bootstrap-table-ko-KR.min.js" integrity="sha256-Yb64uCOu811SJG/6YP+DHrXfkk0cEq9FI2aDHKrXsFA=" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-datepicker/1.9.0/js/bootstrap-datepicker.min.js" integrity="sha256-bqVeqGdJ7h/lYPq6xrPv/YGzMEb6dNxlfiTUHSgRCp8=" crossorigin="anonymous"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/timepicker/1.3.5/jquery.timepicker.min.js"></script>
<script type="text/javascript" src="//dapi.kakao.com/v2/maps/sdk.js?appkey=b9da5412e3022dcc1e02c67c53e6269e"></script>
<script>
$(function() {
$('.cm-church-serviceinfo-add').on('click', function(e) {
var infoSample = $('.cm-church-serviceinfo').eq(0)
var info = infoSample.clone(true)
info.addClass('cm-church-serviceinfo-data')
infoSample.after(info)
info.find('.cm-church-servicetime').timepicker({
timeFormat: 'HH:mm',
interval: 10,
minTime: '1',
maxTime: '11:50pm',
defaultTime: '10',
startTime: '5:00',
dynamic: false,
dropdown: true,
scrollbar: true
});
info.show()
})
tableActionButtons = $('.table-action-buttons')
var categoryOptions = tableActionButtons.find('select option');
addressFormatter = function(value, row, index) {
// return '<a href="https://map.naver.com/v5/search/'+encodeURIComponent(row.Name)+'?c='+row.Y+','+row.X+'" target="_blank">' + (row.RoadAddress ? row.RoadAddress : row.Address) + '</a>'
return '<a href="https://www.google.co.kr/maps/search/' + row.Address + '/@' + row.Y + ',' + row.X + ',20.75z?hl=ko" target="_blank" class="cm-address2map" data-place-id="' + index + '">' + row.Address + '</a>'
}
operateFormatter = function(value, row, index) {
var operateBtns = [
'<a class="edit operate-btn" title="Edit" data-place-id="' + index + '">',
'<i class="glyphicon glyphicon-edit"></i>',
'</a> ',
'<a class="remove operate-btn" title="Remove">',
'<i class="glyphicon glyphicon-remove"></i>',
'</a>'
];
return operateBtns.join('');
}
snsFormatter = function(value, row, index) {
var operateBtns = [
row.Youtube ? '<a class="btn btn-default">YT</a> ' : '',
row.Facebook ? '<a class="btn btn-default">FB</a> ' : '',
row.Instagram ? '<a class="btn btn-default">Inst</a> ' : '',
row.Kakao ? '<a class="btn btn-default">Kakao</a> ' : '',
row.Twitter ? '<a class="btn btn-default">Twit</a>' : ''
];
return operateBtns.join('');
}
var table = $('.cm-place-table').bootstrapTable()
table.on('load-success.bs.table', function(e, data) {
$('.cm-address2map').on('click', function(e) {
e.preventDefault();
var place = table.bootstrapTable('getData')[$(this).data('place-id')];
$('.cm-modal-map-title').html('<strong style="color:blue">' + place.Name + '</strong> : ' + $(this).text())
$('.cm-modal-map').modal('show')
var container = $('#cm-map').get(0); //지도를 담을 영역의 DOM 레퍼런스
var options = { //지도를 생성할 때 필요한 기본 옵션
center: new kakao.maps.LatLng(place.Y, place.X), //지도의 중심좌표.
level: 3 //지도의 레벨(확대, 축소 정도)
};
var map = new kakao.maps.Map(container, options); //지도 생성 및 객체 리턴
var markerPosition = new kakao.maps.LatLng(place.Y, place.X);
var marker = new kakao.maps.Marker({
position: markerPosition
});
marker.setMap(map);
})
$('.table-action-btn').each(function(i, n) {
$(n).find('select').on('change', function() {
$.post('/crawls/podbbang/category', {
category: this.value,
id: table.bootstrapTable('getData')[$(n).parents('tr:eq(0)').data('index')].Id
}, function(res) {
table.bootstrapTable('refresh', {
query: {
keyword: searchInput.val(),
category: $('.podbbang-crawl-category').val()
}
})
})
})
//.find('option[value="' + (data.rows[i] != undefined && data.rows[i].Category != 0 ? data.rows[i].Category : '') + '"]').get(0).selected = true;
})
$('.edit.operate-btn').on('click', function() {
var place = table.bootstrapTable('getData')[$(this).data('place-id')];
console.log(place)
var frm = $('.cm-modal-church').modal('show').find('.cm-nid').val(place.NId).parent()
frm.find('.cm-church-name').val(place.Name)
frm.find('.cm-church-phone').val(place.Phone)
frm.find('.cm-church-address').val(place.Address)
frm.find('.cm-church-pastor').val(place.Pastor)
frm.find('.cm-church-homepage').val(place.Homepage)
frm.find('.cm-church-twitter').val(place.Twitter)
frm.find('.cm-church-facebook').val(place.Facebook)
frm.find('.cm-church-kakao').val(place.Kakao)
frm.find('.cm-church-instagram').val(place.Instagram)
frm.find('.cm-church-navercafe').val(place.NaverCafe)
frm.find('.cm-church-daumcafe').val(place.DaumCafe)
frm.find('.cm-church-youtube').val(place.Youtube)
for(var i in place.Services) {
if(i > 0) $('.cm-church-serviceinfo-add').trigger('click')
var info = $('.cm-church-serviceinfo').next().eq(0)
info.find('.cm-church-servicename').val(place.Services[i].Service)
info.find('.cm-church-dayname').val(place.Services[i].DayName)
info.find('.cm-church-servicechapter').val(place.Services[i].Chapter)
info.find('.cm-church-servicetime').val(place.Services[i].StartAt)
}
})
})
$('.cm-modal-church').on('show.bs.modal', function(){
$('.cm-church-serviceinfo-add').trigger('click')
})
$('.cm-modal-church').on('hide.bs.modal', function(){
$('.cm-church-serviceinfo-data').remove()
})
$('.cm-church-save').on('click', function(e) {
var frm = $('.cm-modal-church form');
var params = {
NId: frm.find('.cm-nid').val(),
Name: frm.find('.cm-church-name').val(),
Phone: frm.find('.cm-church-phone').val(),
Address: frm.find('.cm-church-address').val(),
Pastor: frm.find('.cm-church-pastor').val(),
Homepage: frm.find('.cm-church-homepage').val(),
Twitter: frm.find('.cm-church-twitter').val(),
Facebook: frm.find('.cm-church-facebook').val(),
Kakao: frm.find('.cm-church-kakao').val(),
Instagram: frm.find('.cm-church-instagram').val(),
Youtube: frm.find('.cm-church-youtube').val(),
NaverCafe: frm.find('.cm-church-navercafe').val(),
DaumCafe: frm.find('.cm-church-daumcafe').val(),
Services: $.map($('.cm-church-serviceinfo-data'), function(info){
info = $(info)
return {
Service: info.find('.cm-church-servicename').val(),
DayName: info.find('.cm-church-dayname').val(),
Chapter: info.find('.cm-church-servicechapter').val(),
StartAt: info.find('.cm-church-servicetime').val(),
}
})
}
$.post('/crawls/place/church_save', params, function(res) {
if (res.code == 200) {
alert('Saved successfully');
table.bootstrapTable('refresh');
$('.cm-modal-church').modal('hide')
}
}, 'json')
})
var searchInput = $('.keyword-search-input').keyup(function(e) {
if (e.keyCode == 13) {
searchBtn.trigger('click')
}
})
var searchBtn = $('.podbbang-search-btn').on('click', function() {
table.bootstrapTable('refresh', {
query: {
keyword: searchInput.val(),
category: $('.podbbang-crawl-category').val()
}
})
})
})
</script>

View File

@@ -0,0 +1,398 @@
<div class="content-header row">
<h1> 교회정보 </h1>
</div>
<link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/timepicker/1.3.5/jquery.timepicker.min.css">
<style>
.modal-dialog {
margin: 30px auto;
}
.modal-body {
position: relative;
padding: 0px;
}
.close {
position: absolute;
right: -30px;
top: 0;
z-index: 999;
font-size: 2rem;
font-weight: normal;
color: #fff;
opacity: 1;
}
.operate-btn {
cursor: pointer
}
</style>
<div id="dsItemListTableTool">
<div class="form-inline" role="form">
<input type="text" class="form-control keyword-search-input" name="keyword">
<button type="submit" class="btn btn-primary podbbang-search-btn">검색</button>
</div>
</div>
<table class="order-table fill table-condensed cm-place-table" data-page-size="50" data-page-list="[50,100,250,500,1000]" data-toolbar="#dsItemListTableTool" data-method="post" data-side-pagination="server" data-pagination="true" data-show-export="true" data-export-types="['excel','sheet']" data-show-refresh="true" data-show-columns="true" data-pagination-v-align="both" data-click-to-select="true" data-single-select="true" data-sort-name="vcDateCreated" data-sort-order="desc" data-url="/crawls/place/church_table">
<thead>
<tr>
<th data-field="state" data-checkbox="true"></th>
<th data-field="Name" data-align="left">교회명</th>
<th data-field="Pastor" data-align="left">담임목사</th>
<th data-field="Facebook" data-align="left" data-formatter="snsFormatter">SNS</th>
<th data-field="RoadAddress" data-align="left" data-formatter="addressFormatter">주소</th>
<th data-field="Phone" data-align="left">전화</th>
<th data-field="CreatedAt" data-align="left">등록시간</th>
<th data-field="CreatedAt" data-formatter="operateFormatter" data-event="churchEditFormatter">등록시간</th>
</tr>
</thead>
</table>
<div class="modal cm-modal-map" tabindex="-1" role="dialog">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title cm-modal-map-title">Modal title</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">&times;</span>
</button>
</div>
<div class="modal-body">
<div id="cm-map" style="width:585px;height:400px;margin-left:7px;"></div>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-dismiss="modal">Close</button>
</div>
</div>
</div>
</div>
<!-- Modal -->
<div class="modal fade cm-modal-church" role="dialog" aria-labelledby="cm-modal-church">
<div class="modal-dialog modal-md" role="document">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
<h4 class="modal-title">교회정보</h4>
</div>
<div class="modal-body">
<div class="col-sm-12">
<form class="form-horizontal">
<input type="hidden" class="cm-nid">
<div class="form-group"></div>
<div class="form-group">
<label class="col-sm-2 control-label">교회명</label>
<div class="col-sm-4">
<input type="text" class="form-control cm-church-name">
</div>
<label class="col-sm-2 control-label">담임목사</label>
<div class="col-sm-4">
<input type="text" class="form-control cm-church-pastor">
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">주소</label>
<div class="col-sm-4">
<input type="text" class="form-control cm-church-address">
</div>
<label class="col-sm-2 control-label">전화</label>
<div class="col-sm-4">
<input type="text" class="form-control cm-church-phone">
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">홈페이지</label>
<div class="col-sm-4">
<input type="text" class="form-control cm-church-homepage">
</div>
<label class="col-sm-2 control-label">유튜브</label>
<div class="col-sm-4">
<input type="text" class="form-control cm-church-youtube">
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">트위터계정</label>
<div class="col-sm-4">
<input type="text" class="form-control cm-church-twitter">
</div>
<label class="col-sm-2 control-label">페북계정</label>
<div class="col-sm-4">
<input type="text" class="form-control cm-church-facebook">
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">카카오계정</label>
<div class="col-sm-4">
<input type="text" class="form-control cm-church-kakao">
</div>
<label class="col-sm-2 control-label">인스타계정</label>
<div class="col-sm-4">
<input type="text" class="form-control cm-church-instagram">
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">네이버카페</label>
<div class="col-sm-4">
<input type="text" class="form-control cm-church-navercafe">
</div>
<label class="col-sm-2 control-label">다음카페</label>
<div class="col-sm-4">
<input type="text" class="form-control cm-church-daumcafe">
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">예배시간 </label>
<a class="btn btn-default col-sm-2 pull-left cm-church-serviceinfo-add">입력추가</a>
</div>
<div class="form-group cm-church-serviceinfo" style="display:none">
<div class="col-sm-3">
<input type="text" class="form-control cm-church-servicename" placeholder="예배명">
</div>
<div class="col-sm-3">
<select type="btn btn-default" class="form-control cm-church-dayname">
<option value="">요일</option>
<option value="월">월</option>
<option value="화">화</option>
<option value="수">수</option>
<option value="목">목</option>
<option value="금">금</option>
<option value="토">토</option>
<option value="일">일</option>
</select>
</div>
<div class="col-sm-3">
<select type="btn btn-default" class="form-control cm-church-servicechapter">
<option value="">회차</option>
<option value="1부">1부</option>
<option value="2부">2부</option>
<option value="3부">3부</option>
<option value="4부">4부</option>
<option value="5부">5부</option>
<option value="6부">6부</option>
<option value="7부">7부</option>
</select>
</div>
<div class="col-sm-3" style="position: relative; z-index: 100000;">
<input type="text" class="form-control cm-church-servicetime">
</div>
</div>
</form>
</div>
</div>
<div class="modal-footer selamat-text-center">
<button type="button" class="btn btn-default" data-dismiss="modal">취소</button>
<button type="button" class="btn btn-primary cm-church-save">저장</button>
</div>
</div>
</div>
</div>
<script src="/assets/alt/plugins/jQuery/jquery-2.2.3.min.js"></script>
<script src="/assets/alt/bootstrap/js/bootstrap.min.js"></script>
<script src="/assets/js/select2.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-table/1.11.0/bootstrap-table.min.js" integrity="sha256-eXHLyyVI+v6X1wbfg9NB05IWqOqY4E9185nHZgeDIhg=" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-table/1.11.0/locale/bootstrap-table-ko-KR.min.js" integrity="sha256-Yb64uCOu811SJG/6YP+DHrXfkk0cEq9FI2aDHKrXsFA=" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-datepicker/1.9.0/js/bootstrap-datepicker.min.js" integrity="sha256-bqVeqGdJ7h/lYPq6xrPv/YGzMEb6dNxlfiTUHSgRCp8=" crossorigin="anonymous"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/timepicker/1.3.5/jquery.timepicker.min.js"></script>
<script type="text/javascript" src="//dapi.kakao.com/v2/maps/sdk.js?appkey=b9da5412e3022dcc1e02c67c53e6269e"></script>
<script>
$(function() {
$('.cm-church-serviceinfo-add').on('click', function(e) {
var infoSample = $('.cm-church-serviceinfo').eq(0)
var info = infoSample.clone(true)
info.addClass('cm-church-serviceinfo-data')
infoSample.after(info)
info.find('.cm-church-servicetime').timepicker({
timeFormat: 'HH:mm',
interval: 10,
minTime: '1',
maxTime: '11:50pm',
defaultTime: '10',
startTime: '5:00',
dynamic: false,
dropdown: true,
scrollbar: true
});
info.show()
})
tableActionButtons = $('.table-action-buttons')
var categoryOptions = tableActionButtons.find('select option');
addressFormatter = function(value, row, index) {
// return '<a href="https://map.naver.com/v5/search/'+encodeURIComponent(row.Name)+'?c='+row.Y+','+row.X+'" target="_blank">' + (row.RoadAddress ? row.RoadAddress : row.Address) + '</a>'
return '<a href="https://www.google.co.kr/maps/search/' + row.Address + '/@' + row.Y + ',' + row.X + ',20.75z?hl=ko" target="_blank" class="cm-address2map" data-place-id="' + index + '">' + row.Address + '</a>'
}
operateFormatter = function(value, row, index) {
var operateBtns = [
'<a class="edit operate-btn" title="Edit" data-place-id="' + index + '">',
'<i class="glyphicon glyphicon-edit"></i>',
'</a> ',
'<a class="remove operate-btn" title="Remove">',
'<i class="glyphicon glyphicon-remove"></i>',
'</a>'
];
return operateBtns.join('');
}
snsFormatter = function(value, row, index) {
var operateBtns = [
row.Youtube ? '<a class="btn btn-default">YT</a> ' : '',
row.Facebook ? '<a class="btn btn-default">FB</a> ' : '',
row.Instagram ? '<a class="btn btn-default">Inst</a> ' : '',
row.Kakao ? '<a class="btn btn-default">Kakao</a> ' : '',
row.Twitter ? '<a class="btn btn-default">Twit</a>' : ''
];
return operateBtns.join('');
}
var table = $('.cm-place-table').bootstrapTable()
table.on('load-success.bs.table', function(e, data) {
$('.cm-address2map').on('click', function(e) {
e.preventDefault();
var place = table.bootstrapTable('getData')[$(this).data('place-id')];
$('.cm-modal-map-title').html('<strong style="color:blue">' + place.Name + '</strong> : ' + $(this).text())
$('.cm-modal-map').modal('show')
var container = $('#cm-map').get(0); //지도를 담을 영역의 DOM 레퍼런스
var options = { //지도를 생성할 때 필요한 기본 옵션
center: new kakao.maps.LatLng(place.Y, place.X), //지도의 중심좌표.
level: 3 //지도의 레벨(확대, 축소 정도)
};
var map = new kakao.maps.Map(container, options); //지도 생성 및 객체 리턴
var markerPosition = new kakao.maps.LatLng(place.Y, place.X);
var marker = new kakao.maps.Marker({
position: markerPosition
});
marker.setMap(map);
})
$('.table-action-btn').each(function(i, n) {
$(n).find('select').on('change', function() {
$.post('/crawls/podbbang/category', {
category: this.value,
id: table.bootstrapTable('getData')[$(n).parents('tr:eq(0)').data('index')].Id
}, function(res) {
table.bootstrapTable('refresh', {
query: {
keyword: searchInput.val(),
category: $('.podbbang-crawl-category').val()
}
})
})
})
//.find('option[value="' + (data.rows[i] != undefined && data.rows[i].Category != 0 ? data.rows[i].Category : '') + '"]').get(0).selected = true;
})
$('.edit.operate-btn').on('click', function() {
var place = table.bootstrapTable('getData')[$(this).data('place-id')];
console.log(place)
var frm = $('.cm-modal-church').modal('show').find('.cm-nid').val(place.NId).parent()
frm.find('.cm-church-name').val(place.Name)
frm.find('.cm-church-phone').val(place.Phone)
frm.find('.cm-church-address').val(place.Address)
frm.find('.cm-church-pastor').val(place.Pastor)
frm.find('.cm-church-homepage').val(place.Homepage)
frm.find('.cm-church-twitter').val(place.Twitter)
frm.find('.cm-church-facebook').val(place.Facebook)
frm.find('.cm-church-kakao').val(place.Kakao)
frm.find('.cm-church-instagram').val(place.Instagram)
frm.find('.cm-church-navercafe').val(place.NaverCafe)
frm.find('.cm-church-daumcafe').val(place.DaumCafe)
frm.find('.cm-church-youtube').val(place.Youtube)
for(var i in place.Services) {
if(i > 0) $('.cm-church-serviceinfo-add').trigger('click')
var info = $('.cm-church-serviceinfo').next().eq(0)
info.find('.cm-church-servicename').val(place.Services[i].Service)
info.find('.cm-church-dayname').val(place.Services[i].DayName)
info.find('.cm-church-servicechapter').val(place.Services[i].Chapter)
info.find('.cm-church-servicetime').val(place.Services[i].StartAt)
}
})
})
$('.cm-modal-church').on('show.bs.modal', function(){
$('.cm-church-serviceinfo-add').trigger('click')
})
$('.cm-modal-church').on('hide.bs.modal', function(){
$('.cm-church-serviceinfo-data').remove()
})
$('.cm-church-save').on('click', function(e) {
var frm = $('.cm-modal-church form');
var params = {
NId: frm.find('.cm-nid').val(),
Name: frm.find('.cm-church-name').val(),
Phone: frm.find('.cm-church-phone').val(),
Address: frm.find('.cm-church-address').val(),
Pastor: frm.find('.cm-church-pastor').val(),
Homepage: frm.find('.cm-church-homepage').val(),
Twitter: frm.find('.cm-church-twitter').val(),
Facebook: frm.find('.cm-church-facebook').val(),
Kakao: frm.find('.cm-church-kakao').val(),
Instagram: frm.find('.cm-church-instagram').val(),
Youtube: frm.find('.cm-church-youtube').val(),
NaverCafe: frm.find('.cm-church-navercafe').val(),
DaumCafe: frm.find('.cm-church-daumcafe').val(),
Services: $.map($('.cm-church-serviceinfo-data'), function(info){
info = $(info)
return {
Service: info.find('.cm-church-servicename').val(),
DayName: info.find('.cm-church-dayname').val(),
Chapter: info.find('.cm-church-servicechapter').val(),
StartAt: info.find('.cm-church-servicetime').val(),
}
})
}
$.post('/crawls/place/church_save', params, function(res) {
if (res.code == 200) {
alert('Saved successfully');
table.bootstrapTable('refresh');
$('.cm-modal-church').modal('hide')
}
}, 'json')
})
var searchInput = $('.keyword-search-input').keyup(function(e) {
if (e.keyCode == 13) {
searchBtn.trigger('click')
}
})
var searchBtn = $('.podbbang-search-btn').on('click', function() {
table.bootstrapTable('refresh', {
query: {
keyword: searchInput.val(),
category: $('.podbbang-crawl-category').val()
}
})
})
})
</script>

View File

@@ -0,0 +1,54 @@
<!-- Modal -->
<div class="modal fade" id="amazonItemModal" role="dialog" aria-labelledby="amazonItemModalLabel">
<div class="modal-dialog modal-lg" role="document">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
<h4 class="modal-title" id="amazonItemModalLabel">Product Info</h4>
</div>
<div class="modal-body">
<div class="col-sm-12">
<form class="form-horizontal">
<input type="text" name="videos" class="hide">
<div class="form-group"></div>
<div class="form-group">
<label class="col-sm-1 control-label">Pastor</label>
<div class="col-sm-11">
<input type="text" class="form-control ds-amz-title">
</div>
</div>
<div class="form-group">
<label class="col-sm-1 control-label">Twitter</label>
<div class="col-sm-2">
<input type="text" class="form-control ds-amz-asin">
</div>
<label class="col-sm-1 control-label">Facebook</label>
<div class="col-sm-2">
<input type="text" class="form-control ds-amz-price">
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">Kakao</label>
<div class="col-sm-10">
<input type="text" class="form-control ds-amz-category" readonly>
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">Homepage</label>
<div class="col-sm-10">
<input type="text" class="form-control ds-amz-category" readonly>
</div>
</div>
</form>
</div>
</div>
<div class="modal-footer selamat-text-center">
<button type="button" class="btn btn-default" data-dismiss="modal">취소</button>
<button type="button" class="btn btn-primary ds-send-newitem-coupang">저장</button>
</div>
</div>
</div>
</div>

View File

@@ -0,0 +1,120 @@
<div class="content-header row">
<h1> 팟빵 </h1>
</div>
<style>
.modal-dialog {
margin: 30px auto;
}
.modal-body {
position: relative;
padding: 0px;
}
.close {
position: absolute;
right: -30px;
top: 0;
z-index: 999;
font-size: 2rem;
font-weight: normal;
color: #fff;
opacity: 1;
}
</style>
<div id="dsItemListTableTool">
<div class="form-inline" role="form">
<select class="form-control btn btn-default podbbang-crawl-category">
<option value="">분류</option>
<option value="1">성경</option>
<option value="2">설교</option>
<option value="3">도서/신학/특강</option>
<option value="4">교회/토크쇼</option>
<option value="0">기타</option>
</select>
<input type="text" class="form-control keyword-search-input" name="keyword">
<button type="submit" class="btn btn-primary podbbang-search-btn">검색</button>
</div>
</div>
<table class="order-table fill table-condensed podbbang-table" data-page-size="50" data-page-list="[50,100,250,500,1000]" data-toolbar="#dsItemListTableTool" data-method="post" data-side-pagination="server" data-pagination="true" data-show-export="true" data-export-types="['excel','sheet']" data-show-refresh="true" data-show-columns="true" data-pagination-v-align="both" data-click-to-select="true" data-sort-name="vcDateCreated" data-sort-order="desc" data-url="/crawls/podbbang/table">
<thead>
<tr>
<th data-field="state" data-checkbox="true"></th>
<th data-field="Cateogry" data-align="left" data-formatter="podbbangTableActionFormatter" data-width="150">분류</th>
<th data-field="Image" data-align="left" data-formatter="podbbangTableImageFormatter">이미지</th>
<th data-field="Title" data-align="left">제목</th>
<th data-field="Description" data-align="left">설명</th>
<th data-field="UpdatedAtStr" data-align="left">등록시간</th>
<th data-field="Likes" data-align="left">좋아요</th>
<th data-field="Subscribes" data-align="left">구독</th>
</tr>
</thead>
</table>
<div class="hide table-action-buttons">
<div class="table-action-btn"><select class="btn btn-default">
<option value="">분류변경</option>
<option value="1">성경</option>
<option value="2">설교</option>
<option value="3">도서/신학/특강</option>
<option value="4">교회/토크쇼</option>
<option value="127">제외</option>
</select></div>
</div>
<script src="/assets/alt/plugins/jQuery/jquery-2.2.3.min.js"></script>
<script src="/assets/alt/bootstrap/js/bootstrap.min.js"></script>
<script src="/assets/js/select2.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-table/1.11.0/bootstrap-table.min.js" integrity="sha256-eXHLyyVI+v6X1wbfg9NB05IWqOqY4E9185nHZgeDIhg=" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-table/1.11.0/locale/bootstrap-table-ko-KR.min.js" integrity="sha256-Yb64uCOu811SJG/6YP+DHrXfkk0cEq9FI2aDHKrXsFA=" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-datepicker/1.9.0/js/bootstrap-datepicker.min.js" integrity="sha256-bqVeqGdJ7h/lYPq6xrPv/YGzMEb6dNxlfiTUHSgRCp8=" crossorigin="anonymous"></script>
<script>
$(function() {
tableActionButtons = $('.table-action-buttons')
var categoryOptions = tableActionButtons.find('select option');
podbbangTableImageFormatter = function(value, row, index) {
return '<img src="' + value + '">'
}
podbbangTableActionFormatter = function(value, row, index) {
return tableActionButtons.clone().html()
}
var table = $('.podbbang-table').bootstrapTable()
table.on('load-success.bs.table', function(e, data) {
$('.table-action-btn').each(function(i, n) {
$(n).find('select').on('change', function() {
$.post('/crawls/podbbang/category', {
category: this.value,
id: table.bootstrapTable('getData')[$(n).parents('tr:eq(0)').data('index')].Id
}, function(res) {
table.bootstrapTable('refresh', {
query: {
keyword: searchInput.val(),
category: $('.podbbang-crawl-category').val()
}
})
})
}).find('option[value="' + (data.rows[i] != undefined && data.rows[i].Category != 0 ? data.rows[i].Category : '') + '"]').get(0).selected = true;
})
})
var searchInput = $('.keyword-search-input').keyup(function(e) {
if (e.keyCode == 13) {
searchBtn.trigger('click')
}
})
var searchBtn = $('.podbbang-search-btn').on('click', function() {
table.bootstrapTable('refresh', {
query: {
keyword: searchInput.val(),
category: $('.podbbang-crawl-category').val()
}
})
})
})
</script>

View File

@@ -0,0 +1,217 @@
<!-- Modal -->
<div class="modal fade" id="amazonItemModal" role="dialog" aria-labelledby="amazonItemModalLabel">
<div class="modal-dialog modal-lg" role="document">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
<h4 class="modal-title" id="amazonItemModalLabel">Product Info</h4>
</div>
<div class="modal-body">
<div class="col-sm-12">
<form class="form-horizontal">
<input type="text" name="videos" class="hide">
<div class="form-group"></div>
<div class="form-group">
<label class="col-sm-1 control-label">Title</label>
<div class="col-sm-11">
<input type="text" class="form-control ds-amz-title">
</div>
</div>
<div class="form-group">
<label class="col-sm-1 control-label">ASIN</label>
<div class="col-sm-2">
<input type="text" class="form-control ds-amz-asin">
</div>
<label class="col-sm-1 control-label">Price</label>
<div class="col-sm-2">
<input type="text" class="form-control ds-amz-price">
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">AMZ Category</label>
<div class="col-sm-10">
<input type="text" class="form-control ds-amz-category" readonly>
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">Coupang Category</label>
<div class="col-sm-10">
<select class="form-control btn btn-default ds-coupang-category-select">
<option value="">Select Category</option>
</select>
</div>
</div>
<div class="form-group">
<div class="col-sm-12">
<textarea id="amazonProductDetail"></textarea>
</div>
</div>
<div class="form-group ds-item-attributes">
<label class="col-sm-3">Legal Customer Notification</label>
<div class="col-sm-12">
<!-- Nav tabs -->
<ul class="nav nav-tabs" role="tablist">
<li role="presentation" class="active"><a href=".ds-coupang-attributes" aria-controls="ds-coupang-attributes" role="tab" data-toggle="tab">Attributes</a></li>
<li role="presentation"><a href=".ds-coupang-notification" aria-controls="ds-coupang-notifications" role="tab" data-toggle="tab">Notifications</a></li>
</ul>
<!-- Tab panes -->
<div class="tab-content">
<div role="tabpanel" class="tab-pane active ds-coupang-attributes">
<div style="margin: 10px 0">
<div class="ds-coupang-attribute-names" style="margin-top:10px">
<table class="table table-bordered">
<thead>
<tr>
<th scope="col">Name</th>
<th scope="col">Value</th>
</tr>
</thead>
<tbody>
<tr style="display:none">
<td>sample</th>
<td><input type="text" value="상세정보 별도 표기"></td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
<div role="tabpanel" class="tab-pane ds-coupang-notification">
<div style="margin: 10px 0">
<select class="form-control">
<option value="">Choose Notification Category</option>
</select>
<div class="ds-coupang-notification-names" style="margin-top:10px">
<table class="table table-bordered">
<thead>
<tr>
<th scope="col">Name</th>
<th scope="col">Value</th>
</tr>
</thead>
<tbody>
<tr style="display:none">
<td>sample</th>
<td><input type="text" value="상세정보 별도 표기"></td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
</div>
</div>
</div>
</form>
</div>
</div>
<div class="modal-footer selamat-text-center">
<button type="button" class="btn btn-default" data-dismiss="modal">취소</button>
<button type="button" class="btn btn-primary ds-send-newitem-coupang">저장</button>
</div>
</div>
</div>
</div>
<script src="https://cdn.tiny.cloud/1/tr5ev698ebf9vypaelbown9i9fbs39ylgx1homhnby9b9z1o/tinymce/5/tinymce.min.js"></script>
<script>
tinymce.init({
selector: 'textarea#amazonProductDetail',
plugins: 'print preview fullpage paste importcss searchreplace autolink autosave save directionality code visualblocks visualchars fullscreen image link media template codesample table charmap hr pagebreak nonbreaking anchor toc insertdatetime advlist lists wordcount imagetools textpattern noneditable help charmap quickbars emoticons',
imagetools_cors_hosts: ['picsum.photos'],
menubar: 'file edit view insert format tools table help',
toolbar: 'undo redo | bold italic underline strikethrough | fontselect fontsizeselect formatselect | alignleft aligncenter alignright alignjustify | outdent indent | numlist bullist | forecolor backcolor removeformat | pagebreak | charmap emoticons | fullscreen preview save print | insertfile image media template link anchor codesample | ltr rtl',
toolbar_sticky: true,
autosave_ask_before_unload: true,
autosave_interval: "30s",
autosave_prefix: "{path}{query}-{id}-",
autosave_restore_when_empty: false,
autosave_retention: "2m",
image_advtab: true,
content_css: [
'//fonts.googleapis.com/css?family=Lato:300,300i,400,400i',
'//www.tiny.cloud/css/codepen.min.css'
],
link_list: [{
title: 'My page 1',
value: 'http://www.tinymce.com'
},
{
title: 'My page 2',
value: 'http://www.moxiecode.com'
}
],
image_list: [{
title: 'My page 1',
value: 'http://www.tinymce.com'
},
{
title: 'My page 2',
value: 'http://www.moxiecode.com'
}
],
image_class_list: [{
title: 'None',
value: ''
},
{
title: 'Some class',
value: 'class-name'
}
],
importcss_append: true,
height: 400,
file_picker_callback: function(callback, value, meta) {
/* Provide file and text for the link dialog */
if (meta.filetype === 'file') {
callback('https://www.google.com/logos/google.jpg', {
text: 'My text'
});
}
/* Provide image and alt text for the image dialog */
if (meta.filetype === 'image') {
callback('https://www.google.com/logos/google.jpg', {
alt: 'My alt text'
});
}
/* Provide alternative source and posted for the media dialog */
if (meta.filetype === 'media') {
callback('movie.mp4', {
source2: 'alt.ogg',
poster: 'https://www.google.com/logos/google.jpg'
});
}
},
templates: [{
title: 'New Table',
description: 'creates a new table',
content: '<div class="mceTmpl"><table width="98%%" border="0" cellspacing="0" cellpadding="0"><tr><th scope="col"> </th><th scope="col"> </th></tr><tr><td> </td><td> </td></tr></table></div>'
},
{
title: 'Starting my story',
description: 'A cure for writers block',
content: 'Once upon a time...'
},
{
title: 'New list with dates',
description: 'New List with dates',
content: '<div class="mceTmpl"><span class="cdate">cdate</span><br /><span class="mdate">mdate</span><h2>My List</h2><ul><li></li><li></li></ul></div>'
}
],
template_cdate_format: '[Date Created (CDATE): %m/%d/%Y : %H:%M:%S]',
template_mdate_format: '[Date Modified (MDATE): %m/%d/%Y : %H:%M:%S]',
height: 600,
image_caption: true,
quickbars_selection_toolbar: 'bold italic | quicklink h2 h3 blockquote quickimage quicktable',
noneditable_noneditable_class: "mceNonEditable",
toolbar_drawer: 'sliding',
contextmenu: "link image imagetools table",
});
</script>

View File

@@ -0,0 +1,136 @@
<div class="content-header row">
<h1> 유튜브 </h1>
</div>
<style>
.modal-dialog {
margin: 30px auto;
}
.modal-body {
position: relative;
padding: 0px;
}
.close {
position: absolute;
right: -30px;
top: 0;
z-index: 999;
font-size: 2rem;
font-weight: normal;
color: #fff;
opacity: 1;
}
</style>
<div id="dsItemListTableTool">
<div class="form-inline" role="form">
<select class="form-control btn btn-default podbbang-crawl-category">
<option value="">분류</option>
<option value="1">성경</option>
<option value="2">설교</option>
<option value="3">도서/신학/특강</option>
<option value="4">교회/토크쇼</option>
<option value="0">기타</option>
</select>
<input type="text" class="form-control keyword-search-input" name="keyword">
<button type="submit" class="btn btn-primary podbbang-search-btn">검색</button>
</div>
</div>
<table class="order-table fill table-condensed podbbang-table" data-page-size="50" data-page-list="[50,100,250,500,1000]" data-toolbar="#dsItemListTableTool" data-method="post" data-side-pagination="server" data-pagination="true" data-show-export="true" data-export-types="['excel','sheet']" data-show-refresh="true" data-show-columns="true" data-pagination-v-align="both" data-click-to-select="true" data-sort-name="vcDateCreated" data-sort-order="desc" data-url="/crawls/youtube/table">
<thead>
<tr>
<th data-field="state" data-checkbox="true"></th>
<th data-field="Category" data-align="left"> 카테고리 </th>
<th data-field="Thumbnail" data-align="left" data-formatter="ytThumbnailFormatter"> 이미지 </th>
<th data-field="Title" data-align="left" data-formatter="ytTitleFormatter"> 제목 </th>
<th data-field="VideoId" data-align="left"> 비디오아이디 </th>
<th data-field="Views" data-align="left"> 방문수 </th>
<th data-field="Likes" data-align="left"> 좋아요 </th>
<th data-field="Subscribes" data-align="left"> 구독 </th>
<th data-field="Comments" data-align="left"> 댓글수 </th>
<th data-field="Description" data-align="left" data-formatter="ytDescriptionFormatter"> 설명 </th>
<th data-field="UpdatedAt" data-align="left"> 업로드날짜 </th>
<th data-field="CreatedAt" data-align="left"> 크롤링날짜 </th>
</tr>
</thead>
</table>
<div class="hide table-action-buttons">
<div class="table-action-btn"><select class="btn btn-default">
<option value="">분류변경</option>
<option value="1">성경</option>
<option value="2">설교</option>
<option value="3">도서/신학/특강</option>
<option value="4">교회/토크쇼</option>
<option value="127">제외</option>
</select></div>
</div>
<script src="/assets/alt/plugins/jQuery/jquery-2.2.3.min.js"></script>
<script src="/assets/alt/bootstrap/js/bootstrap.min.js"></script>
<script src="/assets/js/select2.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-table/1.11.0/bootstrap-table.min.js" integrity="sha256-eXHLyyVI+v6X1wbfg9NB05IWqOqY4E9185nHZgeDIhg=" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-table/1.11.0/locale/bootstrap-table-ko-KR.min.js" integrity="sha256-Yb64uCOu811SJG/6YP+DHrXfkk0cEq9FI2aDHKrXsFA=" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-datepicker/1.9.0/js/bootstrap-datepicker.min.js" integrity="sha256-bqVeqGdJ7h/lYPq6xrPv/YGzMEb6dNxlfiTUHSgRCp8=" crossorigin="anonymous"></script>
<script>
$(function() {
tableActionButtons = $('.table-action-buttons')
var categoryOptions = tableActionButtons.find('select option');
ytTableImageFormatter = function(value, row, index) {
return '<img src="' + value + '">'
}
ytTableActionFormatter = function(value, row, index) {
return tableActionButtons.clone().html()
}
ytThumbnailFormatter = function(value, row, index) {
return '<img src="' + value + '" width="100">';
}
ytDescriptionFormatter = function(value, row, index) {
return $.trim(value.substring(0, 100)) + (value.length > 100 ? '...' : '');
}
ytTitleFormatter= function(value, row, index) {
return '<a href="https://www.youtube.com/watch?v=' + row.VideoId + '" target="_blank">'+value+'</a>';
}
var table = $('.podbbang-table').bootstrapTable()
table.on('load-success.bs.table', function(e, data) {
// $('.table-action-btn').each(function(i, n) {
// $(n).find('select').on('change', function() {
// $.post('/crawls/youtube/category', {
// category: this.value,
// id: table.bootstrapTable('getData')[$(n).parents('tr:eq(0)').data('index')].Id
// }, function(res) {
// table.bootstrapTable('refresh', {
// query: {
// keyword: searchInput.val(),
// category: $('.podbbang-crawl-category').val()
// }
// })
// })
// }).find('option[value="' + (data.rows[i] != undefined && data.rows[i].Category != 0 ? data.rows[i].Category : '') + '"]').get(0).selected = true;
// })
})
var searchInput = $('.keyword-search-input').keyup(function(e) {
if (e.keyCode == 13) {
searchBtn.trigger('click')
}
})
var searchBtn = $('.podbbang-search-btn').on('click', function() {
table.bootstrapTable('refresh', {
query: {
keyword: searchInput.val(),
category: $('.podbbang-crawl-category').val()
}
})
})
})
</script>

View File

@@ -0,0 +1,217 @@
<!-- Modal -->
<div class="modal fade" id="amazonItemModal" role="dialog" aria-labelledby="amazonItemModalLabel">
<div class="modal-dialog modal-lg" role="document">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
<h4 class="modal-title" id="amazonItemModalLabel">Product Info</h4>
</div>
<div class="modal-body">
<div class="col-sm-12">
<form class="form-horizontal">
<input type="text" name="videos" class="hide">
<div class="form-group"></div>
<div class="form-group">
<label class="col-sm-1 control-label">Title</label>
<div class="col-sm-11">
<input type="text" class="form-control ds-amz-title">
</div>
</div>
<div class="form-group">
<label class="col-sm-1 control-label">ASIN</label>
<div class="col-sm-2">
<input type="text" class="form-control ds-amz-asin">
</div>
<label class="col-sm-1 control-label">Price</label>
<div class="col-sm-2">
<input type="text" class="form-control ds-amz-price">
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">AMZ Category</label>
<div class="col-sm-10">
<input type="text" class="form-control ds-amz-category" readonly>
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">Coupang Category</label>
<div class="col-sm-10">
<select class="form-control btn btn-default ds-coupang-category-select">
<option value="">Select Category</option>
</select>
</div>
</div>
<div class="form-group">
<div class="col-sm-12">
<textarea id="amazonProductDetail"></textarea>
</div>
</div>
<div class="form-group ds-item-attributes">
<label class="col-sm-3">Legal Customer Notification</label>
<div class="col-sm-12">
<!-- Nav tabs -->
<ul class="nav nav-tabs" role="tablist">
<li role="presentation" class="active"><a href=".ds-coupang-attributes" aria-controls="ds-coupang-attributes" role="tab" data-toggle="tab">Attributes</a></li>
<li role="presentation"><a href=".ds-coupang-notification" aria-controls="ds-coupang-notifications" role="tab" data-toggle="tab">Notifications</a></li>
</ul>
<!-- Tab panes -->
<div class="tab-content">
<div role="tabpanel" class="tab-pane active ds-coupang-attributes">
<div style="margin: 10px 0">
<div class="ds-coupang-attribute-names" style="margin-top:10px">
<table class="table table-bordered">
<thead>
<tr>
<th scope="col">Name</th>
<th scope="col">Value</th>
</tr>
</thead>
<tbody>
<tr style="display:none">
<td>sample</th>
<td><input type="text" value="상세정보 별도 표기"></td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
<div role="tabpanel" class="tab-pane ds-coupang-notification">
<div style="margin: 10px 0">
<select class="form-control">
<option value="">Choose Notification Category</option>
</select>
<div class="ds-coupang-notification-names" style="margin-top:10px">
<table class="table table-bordered">
<thead>
<tr>
<th scope="col">Name</th>
<th scope="col">Value</th>
</tr>
</thead>
<tbody>
<tr style="display:none">
<td>sample</th>
<td><input type="text" value="상세정보 별도 표기"></td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
</div>
</div>
</div>
</form>
</div>
</div>
<div class="modal-footer selamat-text-center">
<button type="button" class="btn btn-default" data-dismiss="modal">취소</button>
<button type="button" class="btn btn-primary ds-send-newitem-coupang">저장</button>
</div>
</div>
</div>
</div>
<script src="https://cdn.tiny.cloud/1/tr5ev698ebf9vypaelbown9i9fbs39ylgx1homhnby9b9z1o/tinymce/5/tinymce.min.js"></script>
<script>
tinymce.init({
selector: 'textarea#amazonProductDetail',
plugins: 'print preview fullpage paste importcss searchreplace autolink autosave save directionality code visualblocks visualchars fullscreen image link media template codesample table charmap hr pagebreak nonbreaking anchor toc insertdatetime advlist lists wordcount imagetools textpattern noneditable help charmap quickbars emoticons',
imagetools_cors_hosts: ['picsum.photos'],
menubar: 'file edit view insert format tools table help',
toolbar: 'undo redo | bold italic underline strikethrough | fontselect fontsizeselect formatselect | alignleft aligncenter alignright alignjustify | outdent indent | numlist bullist | forecolor backcolor removeformat | pagebreak | charmap emoticons | fullscreen preview save print | insertfile image media template link anchor codesample | ltr rtl',
toolbar_sticky: true,
autosave_ask_before_unload: true,
autosave_interval: "30s",
autosave_prefix: "{path}{query}-{id}-",
autosave_restore_when_empty: false,
autosave_retention: "2m",
image_advtab: true,
content_css: [
'//fonts.googleapis.com/css?family=Lato:300,300i,400,400i',
'//www.tiny.cloud/css/codepen.min.css'
],
link_list: [{
title: 'My page 1',
value: 'http://www.tinymce.com'
},
{
title: 'My page 2',
value: 'http://www.moxiecode.com'
}
],
image_list: [{
title: 'My page 1',
value: 'http://www.tinymce.com'
},
{
title: 'My page 2',
value: 'http://www.moxiecode.com'
}
],
image_class_list: [{
title: 'None',
value: ''
},
{
title: 'Some class',
value: 'class-name'
}
],
importcss_append: true,
height: 400,
file_picker_callback: function(callback, value, meta) {
/* Provide file and text for the link dialog */
if (meta.filetype === 'file') {
callback('https://www.google.com/logos/google.jpg', {
text: 'My text'
});
}
/* Provide image and alt text for the image dialog */
if (meta.filetype === 'image') {
callback('https://www.google.com/logos/google.jpg', {
alt: 'My alt text'
});
}
/* Provide alternative source and posted for the media dialog */
if (meta.filetype === 'media') {
callback('movie.mp4', {
source2: 'alt.ogg',
poster: 'https://www.google.com/logos/google.jpg'
});
}
},
templates: [{
title: 'New Table',
description: 'creates a new table',
content: '<div class="mceTmpl"><table width="98%%" border="0" cellspacing="0" cellpadding="0"><tr><th scope="col"> </th><th scope="col"> </th></tr><tr><td> </td><td> </td></tr></table></div>'
},
{
title: 'Starting my story',
description: 'A cure for writers block',
content: 'Once upon a time...'
},
{
title: 'New list with dates',
description: 'New List with dates',
content: '<div class="mceTmpl"><span class="cdate">cdate</span><br /><span class="mdate">mdate</span><h2>My List</h2><ul><li></li><li></li></ul></div>'
}
],
template_cdate_format: '[Date Created (CDATE): %m/%d/%Y : %H:%M:%S]',
template_mdate_format: '[Date Modified (MDATE): %m/%d/%Y : %H:%M:%S]',
height: 600,
image_caption: true,
quickbars_selection_toolbar: 'bold italic | quicklink h2 h3 blockquote quickimage quicktable',
noneditable_noneditable_class: "mceNonEditable",
toolbar_drawer: 'sliding',
contextmenu: "link image imagetools table",
});
</script>

View File

@@ -0,0 +1,15 @@
<script src="/assets/alt/plugins/jQuery/jquery-2.2.3.min.js"></script>
<script src="/assets/alt/bootstrap/js/bootstrap.min.js"></script>
<script language="javascript" src="/assets/js/select2.min.js"></script>
<script language="javascript" src="/assets/js/bootbox.js"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/bootstrap-table/1.11.0/bootstrap-table.min.js"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/bootstrap-table/1.11.0/locale/bootstrap-table-ko-KR.min.js"></script>
<script src="/assets/js/show.js?t=<?php echo time() ?>"></script>
<script src="/assets/js/dom2img.js?t=<?php echo time() ?>"></script>
<script src="/assets/js/ds.js?t=<?php echo time() ?>"></script>
<script src="/assets/alt/dist/js/app.min.js"></script>
<script src="/assets/js/bootstrap-toggle.min.js"></script>
<script src="http://malsup.github.com/jquery.form.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-datepicker/1.9.0/js/bootstrap-datepicker.min.js"></script>
</body>
</html>

View File

@@ -0,0 +1,4 @@
<footer class="main-footer">
<strong>Copyright &copy; 2019 Crossmap.</strong> All rights
reserved.
</footer>

View File

@@ -0,0 +1,29 @@
<header class="main-header">
<!-- Logo -->
<a href="/app" class="logo">
<!-- mini logo for sidebar mini 50x50 pixels -->
<span class="logo-mini"><b>CM</b></span>
<!-- logo for regular state and mobile devices -->
<span class="logo-lg"><b>CM</b> Admin</span>
</a>
<!-- Header Navbar: style can be found in header.less -->
<nav class="navbar navbar-static-top">
<!-- Sidebar toggle button-->
<a href="#" class="sidebar-toggle" data-toggle="offcanvas" role="button">
<span class="sr-only">Toggle navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</a>
<div class="navbar-custom-menu">
<ul class="nav navbar-nav">
<li>
<a href="/sign/logout">
<i class="fa fa-power-off"></i> Logout
</a>
</li>
</ul>
</div>
</nav>
</header>

View File

@@ -0,0 +1,30 @@
<aside class="main-sidebar">
<section class="sidebar">
<ul class="sidebar-menu">
<li class="treeview<?php echo getCSSPageMenuOpen(['crawls'], false) ?>">
<a href="#">
<i class="fa fa-files-o"></i>
<span>크롤링</span>
</a>
<ul class="treeview-menu<?php echo getCSSPageMenuOpen(['crawls'], true) ?>">
<li class="<?php echo getCSSPageMenuOpen(['podbbang'], null) ?>"><a href="/crawls/podbbang"><i
class="fa fa-circle-o"></i> 팟빵</a></li>
<li class="<?php echo getCSSPageMenuOpen(['youtube'], null) ?>"><a href="/crawls/youtube"><i
class="fa fa-circle-o"></i> 유튜브</a></li>
<li class="<?php echo getCSSPageMenuOpen(['place'], null) ?>"><a href="/crawls/place/church"><i
class="fa fa-circle-o"></i> 교회정보</a></li>
</ul>
</li>
<li class="treeview<?php echo getCSSPageMenuOpen(['media'], false) ?>">
<a href="#">
<i class="fa fa-files-o"></i>
<span>미디어</span>
</a>
<ul class="treeview-menu<?php echo getCSSPageMenuOpen(['media'], true) ?>">
<li class="<?php echo getCSSPageMenuOpen(['music'], null) ?>"><a href="/media/music"><i
class="fa fa-circle-o"></i> Music</a></li>
</ul>
</li>
</ul>
</section>
</aside>

View File

@@ -0,0 +1,20 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>CM::Admin</title>
<meta content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no" name="viewport">
<link rel="stylesheet" href="/assets/css/select2.min.css">
<link rel="stylesheet" href="/assets/alt/bootstrap/css/bootstrap.min.css">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css" integrity="sha256-eZrrJcwDc/3uDhsdt61sL2oOBY362qM3lon1gyExkL0=" crossorigin="anonymous" />
<link rel="stylesheet" href="/assets/alt/dist/css/AdminLTE.min.css">
<link rel="stylesheet" href="/assets/alt/dist/css/skins/_all-skins.min.css">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-table/1.11.0/bootstrap-table.min.css" integrity="sha256-eU4xmpfQx1HSi5q1q2rHNcMEzTNJov7r2Wr/6zF3ANc=" crossorigin="anonymous" />
<link rel="stylesheet" href="/assets/css/show.css">
<link rel="stylesheet" href="/assets/css/bootstrap-toggle.min.css">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-datepicker/1.9.0/css/bootstrap-datepicker.min.css" integrity="sha256-siyOpF/pBWUPgIcQi17TLBkjvNgNQArcmwJB8YvkAgg=" crossorigin="anonymous" /> <!--[if lt IE 9]>
<script src="https://oss.maxcdn.com/html5shiv/3.7.3/html5shiv.min.js"></script>
<script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
<![endif]-->
</head>