first
This commit is contained in:
3
layouts/rc-starter/LICENSE
Normal file
3
layouts/rc-starter/LICENSE
Normal file
@@ -0,0 +1,3 @@
|
||||
The RBL License
|
||||
|
||||
Copyright (c) 2020 Redblock, Inc.
|
||||
1
layouts/rc-starter/README.md
Normal file
1
layouts/rc-starter/README.md
Normal file
@@ -0,0 +1 @@
|
||||
## 모바일 기초 레이아웃
|
||||
705
layouts/rc-starter/_css/article.css
Normal file
705
layouts/rc-starter/_css/article.css
Normal file
@@ -0,0 +1,705 @@
|
||||
.rb-article {
|
||||
-webkit-text-size-adjust: 100%;
|
||||
text-size-adjust: 100%;
|
||||
line-height: 1.6;
|
||||
word-wrap: break-word;
|
||||
}
|
||||
|
||||
.rb-article p {
|
||||
font-family: AppleSDGothicNeo, 'Malgun Gothic', '맑은 고딕', sans-serif;
|
||||
font-size: 1.0625rem;
|
||||
letter-spacing: -1px;
|
||||
line-height: 1.6875rem;
|
||||
letter-spacing: -0.04em;
|
||||
word-break: break-all;
|
||||
word-wrap: break-word;
|
||||
|
||||
}
|
||||
|
||||
.rb-article a {
|
||||
background-color: transparent;
|
||||
}
|
||||
|
||||
.rb-article a:active,
|
||||
.rb-article a:hover {
|
||||
outline: 0;
|
||||
}
|
||||
|
||||
.rb-article strong {
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.rb-article h1 {
|
||||
font-size: 2em;
|
||||
margin: 0.67em 0;
|
||||
}
|
||||
|
||||
.rb-article img {
|
||||
border: 0;
|
||||
}
|
||||
|
||||
.rb-article hr {
|
||||
box-sizing: content-box;
|
||||
height: 0;
|
||||
}
|
||||
|
||||
.rb-article pre {
|
||||
overflow: auto;
|
||||
}
|
||||
|
||||
.rb-article code,
|
||||
.rb-article kbd,
|
||||
.rb-article pre {
|
||||
font-family: monospace, monospace;
|
||||
font-size: 1em;
|
||||
}
|
||||
|
||||
.rb-article input {
|
||||
color: inherit;
|
||||
font: inherit;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
.rb-article html input[disabled] {
|
||||
cursor: default;
|
||||
}
|
||||
|
||||
.rb-article input {
|
||||
line-height: normal;
|
||||
}
|
||||
|
||||
.rb-article input[type="checkbox"] {
|
||||
box-sizing: border-box;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
.rb-article table {
|
||||
border-collapse: collapse;
|
||||
border-spacing: 0;
|
||||
}
|
||||
|
||||
.rb-article td,
|
||||
.rb-article th {
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
.rb-article * {
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
.rb-article input {
|
||||
font: 13px / 1.4 Helvetica, arial, nimbussansl, liberationsans, freesans, clean, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
|
||||
}
|
||||
|
||||
.rb-article a {
|
||||
color: #4078c0;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
.rb-article a:hover,
|
||||
.rb-article a:active {
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
.rb-article hr {
|
||||
height: 0;
|
||||
margin: 15px 0;
|
||||
overflow: hidden;
|
||||
background: transparent;
|
||||
border: 0;
|
||||
border-bottom: 1px solid #ddd;
|
||||
}
|
||||
|
||||
.rb-article hr:before {
|
||||
display: table;
|
||||
content: "";
|
||||
}
|
||||
|
||||
.rb-article hr:after {
|
||||
display: table;
|
||||
clear: both;
|
||||
content: "";
|
||||
}
|
||||
|
||||
.rb-article h1,
|
||||
.rb-article h2,
|
||||
.rb-article h3,
|
||||
.rb-article h4,
|
||||
.rb-article h5,
|
||||
.rb-article h6 {
|
||||
margin-top: 15px;
|
||||
margin-bottom: 15px;
|
||||
line-height: 1.1;
|
||||
}
|
||||
|
||||
.rb-article h1 {
|
||||
font-size: 30px;
|
||||
}
|
||||
|
||||
.rb-article h2 {
|
||||
font-size: 21px;
|
||||
}
|
||||
|
||||
.rb-article h3 {
|
||||
font-size: 16px;
|
||||
}
|
||||
|
||||
.rb-article h4 {
|
||||
font-size: 14px;
|
||||
}
|
||||
|
||||
.rb-article h5 {
|
||||
font-size: 12px;
|
||||
}
|
||||
|
||||
.rb-article h6 {
|
||||
font-size: 11px;
|
||||
}
|
||||
|
||||
.rb-article blockquote {
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
.rb-article ul,
|
||||
.rb-article ol {
|
||||
padding: 0;
|
||||
margin-top: 0;
|
||||
margin-bottom: 0;
|
||||
}
|
||||
|
||||
.rb-article ol ol,
|
||||
.rb-article ul ol {
|
||||
list-style-type: lower-roman;
|
||||
}
|
||||
|
||||
.rb-article ul ul ol,
|
||||
.rb-article ul ol ol,
|
||||
.rb-article ol ul ol,
|
||||
.rb-article ol ol ol {
|
||||
list-style-type: lower-alpha;
|
||||
}
|
||||
|
||||
.rb-article dd {
|
||||
margin-left: 0;
|
||||
}
|
||||
|
||||
.rb-article code {
|
||||
font-family: Consolas, "Liberation Mono", Menlo, Courier, monospace;
|
||||
font-size: 12px;
|
||||
}
|
||||
|
||||
.rb-article pre {
|
||||
margin-top: 0;
|
||||
margin-bottom: 0;
|
||||
font: 12px Consolas, "Liberation Mono", Menlo, Courier, monospace;
|
||||
}
|
||||
|
||||
.rb-article .select::-ms-expand {
|
||||
opacity: 0;
|
||||
}
|
||||
|
||||
.rb-article .octicon {
|
||||
font: normal normal normal 16px/1 octicons-link;
|
||||
display: inline-block;
|
||||
text-decoration: none;
|
||||
text-rendering: auto;
|
||||
-webkit-font-smoothing: antialiased;
|
||||
-moz-osx-font-smoothing: grayscale;
|
||||
-webkit-user-select: none;
|
||||
-moz-user-select: none;
|
||||
-ms-user-select: none;
|
||||
user-select: none;
|
||||
}
|
||||
|
||||
.rb-article .octicon-link:before {
|
||||
content: '\f05c';
|
||||
}
|
||||
|
||||
.rb-article:before {
|
||||
display: table;
|
||||
content: "";
|
||||
}
|
||||
|
||||
.rb-article:after {
|
||||
display: table;
|
||||
clear: both;
|
||||
content: "";
|
||||
}
|
||||
|
||||
.rb-article>*:first-child {
|
||||
margin-top: 0 !important;
|
||||
}
|
||||
|
||||
.rb-article>*:last-child {
|
||||
margin-bottom: 0 !important;
|
||||
}
|
||||
|
||||
.rb-article a:not([href]) {
|
||||
color: inherit;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
.rb-article .anchor {
|
||||
display: inline-block;
|
||||
padding-right: 2px;
|
||||
margin-left: -18px;
|
||||
}
|
||||
|
||||
.rb-article .anchor:focus {
|
||||
outline: none;
|
||||
}
|
||||
|
||||
.rb-article h1,
|
||||
.rb-article h2,
|
||||
.rb-article h3,
|
||||
.rb-article h4,
|
||||
.rb-article h5,
|
||||
.rb-article h6 {
|
||||
margin-top: 1em;
|
||||
margin-bottom: 16px;
|
||||
font-weight: bold;
|
||||
line-height: 1.4;
|
||||
}
|
||||
|
||||
.rb-article h1 .octicon-link,
|
||||
.rb-article h2 .octicon-link,
|
||||
.rb-article h3 .octicon-link,
|
||||
.rb-article h4 .octicon-link,
|
||||
.rb-article h5 .octicon-link,
|
||||
.rb-article h6 .octicon-link {
|
||||
color: #000;
|
||||
vertical-align: middle;
|
||||
visibility: hidden;
|
||||
}
|
||||
|
||||
.rb-article h1:hover .anchor,
|
||||
.rb-article h2:hover .anchor,
|
||||
.rb-article h3:hover .anchor,
|
||||
.rb-article h4:hover .anchor,
|
||||
.rb-article h5:hover .anchor,
|
||||
.rb-article h6:hover .anchor {
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
.rb-article h1:hover .anchor .octicon-link,
|
||||
.rb-article h2:hover .anchor .octicon-link,
|
||||
.rb-article h3:hover .anchor .octicon-link,
|
||||
.rb-article h4:hover .anchor .octicon-link,
|
||||
.rb-article h5:hover .anchor .octicon-link,
|
||||
.rb-article h6:hover .anchor .octicon-link {
|
||||
visibility: visible;
|
||||
}
|
||||
|
||||
.rb-article h1 {
|
||||
padding-bottom: 0.3em;
|
||||
font-size: 2.25em;
|
||||
line-height: 1.2;
|
||||
border-bottom: 1px solid #eee;
|
||||
}
|
||||
|
||||
.rb-article h1 .anchor {
|
||||
line-height: 1;
|
||||
}
|
||||
|
||||
.rb-article h2 {
|
||||
padding-bottom: 0.3em;
|
||||
font-size: 1.75em;
|
||||
line-height: 1.225;
|
||||
border-bottom: 1px solid #eee;
|
||||
}
|
||||
|
||||
.rb-article h2 .anchor {
|
||||
line-height: 1;
|
||||
}
|
||||
|
||||
.rb-article h3 {
|
||||
font-size: 1.5em;
|
||||
line-height: 1.43;
|
||||
}
|
||||
|
||||
.rb-article h3 .anchor {
|
||||
line-height: 1.2;
|
||||
}
|
||||
|
||||
.rb-article h4 {
|
||||
font-size: 1.25em;
|
||||
}
|
||||
|
||||
.rb-article h4 .anchor {
|
||||
line-height: 1.2;
|
||||
}
|
||||
|
||||
.rb-article h5 {
|
||||
font-size: 1em;
|
||||
}
|
||||
|
||||
.rb-article h5 .anchor {
|
||||
line-height: 1.1;
|
||||
}
|
||||
|
||||
.rb-article h6 {
|
||||
font-size: 1em;
|
||||
color: #777;
|
||||
}
|
||||
|
||||
.rb-article h6 .anchor {
|
||||
line-height: 1.1;
|
||||
}
|
||||
|
||||
.rb-article h1,
|
||||
.rb-article h2,
|
||||
.rb-article h3,
|
||||
.rb-article h4,
|
||||
.rb-article h5,
|
||||
.rb-article h6,
|
||||
.rb-article p,
|
||||
.rb-article blockquote,
|
||||
.rb-article ul,
|
||||
.rb-article ol,
|
||||
.rb-article dl,
|
||||
.rb-article table,
|
||||
.rb-article pre {
|
||||
margin-top: 0;
|
||||
margin-bottom: 1.6875rem;
|
||||
padding-right: 1.25rem;
|
||||
padding-left: 1.25rem;
|
||||
}
|
||||
|
||||
.rb-article hr {
|
||||
height: 4px;
|
||||
padding: 0;
|
||||
margin: 16px 0;
|
||||
background-color: #e7e7e7;
|
||||
border: 0 none;
|
||||
}
|
||||
|
||||
.rb-article ul,
|
||||
.rb-article ol {
|
||||
padding-left: 2em;
|
||||
}
|
||||
|
||||
.rb-article ul ul,
|
||||
.rb-article ul ol,
|
||||
.rb-article ol ol,
|
||||
.rb-article ol ul {
|
||||
margin-top: 0;
|
||||
margin-bottom: 0;
|
||||
}
|
||||
|
||||
.rb-article li>p {
|
||||
margin-top: 16px;
|
||||
}
|
||||
|
||||
.rb-article dl {
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
.rb-article dl dt {
|
||||
padding: 0;
|
||||
margin-top: 16px;
|
||||
font-size: 1em;
|
||||
font-style: italic;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.rb-article dl dd {
|
||||
padding: 0 16px;
|
||||
margin-bottom: 16px;
|
||||
}
|
||||
|
||||
.rb-article blockquote {
|
||||
padding: 0 15px;
|
||||
color: #333;
|
||||
border-left: 2px solid #ddd;
|
||||
}
|
||||
|
||||
.rb-article blockquote>:first-child {
|
||||
margin-top: 0;
|
||||
}
|
||||
|
||||
.rb-article blockquote>:last-child {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
|
||||
.rb-article table {
|
||||
width: 100%;
|
||||
overflow: auto;
|
||||
word-break: normal;
|
||||
word-break: keep-all;
|
||||
}
|
||||
|
||||
.rb-article table th {
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.rb-article table th,
|
||||
.rb-article table td {
|
||||
padding: 6px 13px;
|
||||
border: 1px solid #ddd;
|
||||
}
|
||||
|
||||
.rb-article table tr {
|
||||
background-color: #fff;
|
||||
border-top: 1px solid #ccc;
|
||||
}
|
||||
|
||||
.rb-article img {
|
||||
max-width: 100%;
|
||||
box-sizing: content-box;
|
||||
background-color: #fff;
|
||||
}
|
||||
|
||||
.rb-article video,
|
||||
.rb-article audio {
|
||||
min-width: 100%;
|
||||
margin-bottom: 2rem;
|
||||
background-color: #ccc
|
||||
}
|
||||
|
||||
.rb-article video {
|
||||
background: #ccc url("video-box.png") no-repeat center center
|
||||
}
|
||||
|
||||
.rb-blog-view .rb-article video {
|
||||
background: #fff url("") no-repeat center center
|
||||
}
|
||||
|
||||
.rb-article video source::before {
|
||||
content: 'videos';
|
||||
text-align: center
|
||||
}
|
||||
|
||||
.mejs__container {
|
||||
margin-bottom: 2rem
|
||||
}
|
||||
|
||||
|
||||
.rb-article code {
|
||||
padding: 0;
|
||||
padding-top: 0.2em;
|
||||
padding-bottom: 0.2em;
|
||||
margin: 0;
|
||||
font-size: 85%;
|
||||
background-color: rgba(0, 0, 0, 0.04);
|
||||
border-radius: 3px;
|
||||
}
|
||||
|
||||
.rb-article code:before,
|
||||
.rb-article code:after {
|
||||
letter-spacing: -0.2em;
|
||||
content: "\00a0";
|
||||
}
|
||||
|
||||
.rb-article pre>code {
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
font-size: 100%;
|
||||
word-break: normal;
|
||||
white-space: pre;
|
||||
background: transparent;
|
||||
border: 0;
|
||||
}
|
||||
|
||||
.rb-article .highlight {
|
||||
margin-bottom: 16px;
|
||||
}
|
||||
|
||||
.rb-article .highlight pre,
|
||||
.rb-article pre {
|
||||
padding: 16px;
|
||||
overflow: auto;
|
||||
font-size: 85%;
|
||||
line-height: 1.45;
|
||||
background-color: #f7f7f7;
|
||||
border-radius: 3px;
|
||||
}
|
||||
|
||||
.rb-article .highlight pre {
|
||||
margin-bottom: 0;
|
||||
word-break: normal;
|
||||
}
|
||||
|
||||
.rb-article pre {
|
||||
word-wrap: normal;
|
||||
}
|
||||
|
||||
.rb-article pre code {
|
||||
display: inline;
|
||||
max-width: initial;
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
overflow: initial;
|
||||
line-height: inherit;
|
||||
word-wrap: normal;
|
||||
background-color: transparent;
|
||||
border: 0;
|
||||
}
|
||||
|
||||
.rb-article pre code:before,
|
||||
.rb-article pre code:after {
|
||||
content: normal;
|
||||
}
|
||||
|
||||
.rb-article kbd {
|
||||
display: inline-block;
|
||||
padding: 3px 5px;
|
||||
font-size: 11px;
|
||||
line-height: 10px;
|
||||
color: #555;
|
||||
vertical-align: middle;
|
||||
background-color: #fcfcfc;
|
||||
border: solid 1px #ccc;
|
||||
border-bottom-color: #bbb;
|
||||
border-radius: 3px;
|
||||
box-shadow: inset 0 -1px 0 #bbb;
|
||||
}
|
||||
|
||||
.rb-article .pl-c {
|
||||
color: #969896;
|
||||
}
|
||||
|
||||
.rb-article .pl-c1,
|
||||
.rb-article .pl-s .pl-v {
|
||||
color: #0086b3;
|
||||
}
|
||||
|
||||
.rb-article .pl-e,
|
||||
.rb-article .pl-en {
|
||||
color: #795da3;
|
||||
}
|
||||
|
||||
.rb-article .pl-s .pl-s1,
|
||||
.rb-article .pl-smi {
|
||||
color: #333;
|
||||
}
|
||||
|
||||
.rb-article .pl-ent {
|
||||
color: #63a35c;
|
||||
}
|
||||
|
||||
.rb-article .pl-k {
|
||||
color: #a71d5d;
|
||||
}
|
||||
|
||||
.rb-article .pl-pds,
|
||||
.rb-article .pl-s,
|
||||
.rb-article .pl-s .pl-pse .pl-s1,
|
||||
.rb-article .pl-sr,
|
||||
.rb-article .pl-sr .pl-cce,
|
||||
.rb-article .pl-sr .pl-sra,
|
||||
.rb-article .pl-sr .pl-sre {
|
||||
color: #183691;
|
||||
}
|
||||
|
||||
.rb-article .pl-v {
|
||||
color: #ed6a43;
|
||||
}
|
||||
|
||||
.rb-article .pl-id {
|
||||
color: #b52a1d;
|
||||
}
|
||||
|
||||
.rb-article .pl-ii {
|
||||
background-color: #b52a1d;
|
||||
color: #f8f8f8;
|
||||
}
|
||||
|
||||
.rb-article .pl-sr .pl-cce {
|
||||
color: #63a35c;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.rb-article .pl-ml {
|
||||
color: #693a17;
|
||||
}
|
||||
|
||||
.rb-article .pl-mh,
|
||||
.rb-article .pl-mh .pl-en,
|
||||
.rb-article .pl-ms {
|
||||
color: #1d3e81;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.rb-article .pl-mq {
|
||||
color: #008080;
|
||||
}
|
||||
|
||||
.rb-article .pl-mi {
|
||||
color: #333;
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
.rb-article .pl-mb {
|
||||
color: #333;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.rb-article .pl-md {
|
||||
background-color: #ffecec;
|
||||
color: #bd2c00;
|
||||
}
|
||||
|
||||
.rb-article .pl-mi1 {
|
||||
background-color: #eaffea;
|
||||
color: #55a532;
|
||||
}
|
||||
|
||||
.rb-article .pl-mdr {
|
||||
color: #795da3;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.rb-article .pl-mo {
|
||||
color: #1d3e81;
|
||||
}
|
||||
|
||||
.rb-article kbd {
|
||||
display: inline-block;
|
||||
padding: 3px 5px;
|
||||
font: 11px Consolas, "Liberation Mono", Menlo, Courier, monospace;
|
||||
line-height: 10px;
|
||||
color: #555;
|
||||
vertical-align: middle;
|
||||
background-color: #fcfcfc;
|
||||
border: solid 1px #ccc;
|
||||
border-bottom-color: #bbb;
|
||||
border-radius: 3px;
|
||||
box-shadow: inset 0 -1px 0 #bbb;
|
||||
}
|
||||
|
||||
.rb-article .task-list-item {
|
||||
list-style-type: none;
|
||||
}
|
||||
|
||||
.rb-article .task-list-item+.task-list-item {
|
||||
margin-top: 3px;
|
||||
}
|
||||
|
||||
.rb-article .task-list-item input {
|
||||
margin: 0 0.35em 0.25em -1.6em;
|
||||
vertical-align: middle;
|
||||
}
|
||||
|
||||
.rb-article :checked+.radio-label {
|
||||
z-index: 1;
|
||||
position: relative;
|
||||
border-color: #4078c0;
|
||||
}
|
||||
|
||||
|
||||
/*추가함*/
|
||||
|
||||
.rb-article figure.image {
|
||||
margin: 0;
|
||||
margin-bottom: 1.4375rem;
|
||||
}
|
||||
|
||||
.rb-article figure.image figcaption {
|
||||
padding: 0.5rem 1.25rem 0.25rem;
|
||||
text-align: left;
|
||||
font-size: 0.875rem;
|
||||
line-height: 1.3125rem;
|
||||
letter-spacing: -0.07em;
|
||||
color: #828282;
|
||||
caption-side: bottom;
|
||||
}
|
||||
1451
layouts/rc-starter/_css/style.css
Normal file
1451
layouts/rc-starter/_css/style.css
Normal file
File diff suppressed because it is too large
Load Diff
BIN
layouts/rc-starter/_images/icon/favicon.ico
Normal file
BIN
layouts/rc-starter/_images/icon/favicon.ico
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 1.1 KiB |
BIN
layouts/rc-starter/_images/icon/homescreen.png
Normal file
BIN
layouts/rc-starter/_images/icon/homescreen.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 11 KiB |
25
layouts/rc-starter/_includes/_import.control.php
Normal file
25
layouts/rc-starter/_includes/_import.control.php
Normal file
@@ -0,0 +1,25 @@
|
||||
<?php
|
||||
//사이트별 레이아웃 설정 변수
|
||||
$layout = dirname($_HS['m_layout']);
|
||||
$g['layoutVarForSite'] = $g['dir_var_site'].'layout.'.$layout.'.var.php';
|
||||
include is_file($g['layoutVarForSite']) ? $g['layoutVarForSite'] : $g['dir_layout'].'_var/_var.php';
|
||||
|
||||
//사이트 부가정보 변수
|
||||
$g['siteinfo'] = $g['dir_var_site'].'siteinfo.php';
|
||||
if (is_file($g['siteinfo'])) include $g['siteinfo'];
|
||||
|
||||
//사이트별 웹앱 매니페스트
|
||||
$g['manifestForSite'] = $g['dir_var_site'].'manifest.json';
|
||||
$g['url_manifest'] = $g['url_var_site'].'/manifest.json';
|
||||
$manifestForSite = file_exists($g['manifestForSite']) ? $g['url_manifest'] : $g['path_module'].'site/var/manifest.json';
|
||||
|
||||
//아이폰 전용 apple-touch-icon
|
||||
$g['touchIconForSite'] = $g['url_var_site'].'/homescreen.png';
|
||||
$g['url_touchIcon'] = $g['url_var_site'].'/homescreen-180x180.png';
|
||||
$touchIconForSite = file_exists($g['touchIconForSite']) ? $g['url_touchIcon'] : $g['img_core'].'/touch/homescreen-180x180.png';
|
||||
|
||||
if ($layoutPage) {
|
||||
$g['main'] = $g['path_layout'].$d['site_layout'].'/_pages/'.$layoutPage.'.php';
|
||||
}
|
||||
|
||||
?>
|
||||
53
layouts/rc-starter/_includes/_import.foot.php
Normal file
53
layouts/rc-starter/_includes/_import.foot.php
Normal file
@@ -0,0 +1,53 @@
|
||||
<!-- 엔진코드:삭제하지마세요 -->
|
||||
<?php include $g['path_core'].'engine/foot.engine.php'?>
|
||||
|
||||
<!-- youtube iframe_api -->
|
||||
<script src="https://www.youtube.com/player_api"></script>
|
||||
|
||||
<!-- 입력 textarea 자동확장 -->
|
||||
<?php getImport('autosize','autosize.min','3.0.14','js')?>
|
||||
|
||||
<!-- jQuery-Autocomplete : https://github.com/devbridge/jQuery-Autocomplete -->
|
||||
<?php getImport('jQuery-Autocomplete','jquery.autocomplete.min','1.3.0','js') ?>
|
||||
|
||||
<!-- jquery.shorten : https://github.com/viralpatel/jquery.shorten -->
|
||||
<?php getImport('jquery.shorten','jquery.shorten.min','1.0','js')?>
|
||||
|
||||
<!-- linkifyjs : https://github.com/Soapbox/linkifyjs -->
|
||||
<?php getImport('linkifyjs','linkify.min','2.1.8','js')?>
|
||||
<?php getImport('linkifyjs','linkify-string.min','2.1.8','js')?>
|
||||
|
||||
<!-- moment -->
|
||||
<?php getImport('moment','moment','2.22.2','js');?>
|
||||
<?php getImport('moment-duration-format','moment-duration-format','2.2.2','js');?>
|
||||
|
||||
<!-- Chart.js : https://github.com/chartjs/Chart.js/ -->
|
||||
<?php getImport('Chart.js','Chart','2.8.0','css') ?>
|
||||
<?php getImport('Chart.js','Chart.bundle.min','2.8.0','js') ?>
|
||||
|
||||
<!-- markjs js : https://github.com/julmot/mark.js -->
|
||||
<?php getImport('markjs','jquery.mark.min','8.11.1','js')?>
|
||||
|
||||
<!-- 댓글출력시 필요 -->
|
||||
<?php if ($mod!='write'): ?>
|
||||
<script src="https://cdn.ckeditor.com/ckeditor5/21.0.0/decoupled-document/ckeditor.js"></script>
|
||||
<script src="https://cdn.ckeditor.com/ckeditor5/21.0.0/decoupled-document/translations/ko.js"></script>
|
||||
|
||||
<?php endif; ?>
|
||||
<script src="<?php echo $g['url_root']?>/modules/comment/lib/Rb.comment.js<?php echo $g['wcache']?>"></script>
|
||||
|
||||
<!-- 레이아웃 공용 스크립트 -->
|
||||
<script src="<?php echo $g['url_layout']?>/_js/main.js<?php echo $g['wcache']?>"></script>
|
||||
|
||||
<?php if($_SERVER['HTTPS'] == 'on' && ($g['mobile']!='ipad' || $g['mobile']!='iphone') ):?>
|
||||
<script>
|
||||
if ('serviceWorker' in navigator && 'PushManager' in window) {
|
||||
console.log('서비스워커와 푸시가 지원되는 브라우저 입니다.');
|
||||
window.addEventListener('load', () => {
|
||||
navigator.serviceWorker.register('<?php echo $g['s']?>/sw.js');
|
||||
});
|
||||
} else {
|
||||
console.warn('푸시 메시징이 지원되지 않는 브라우저 입니다.');
|
||||
}
|
||||
</script>
|
||||
<?php endif?>
|
||||
89
layouts/rc-starter/_includes/_import.head.php
Normal file
89
layouts/rc-starter/_includes/_import.head.php
Normal file
@@ -0,0 +1,89 @@
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="initial-scale=1, maximum-scale=1">
|
||||
<meta name="mobile-web-app-capable" content="yes">
|
||||
<meta name="theme-color" content="#333">
|
||||
|
||||
<meta name="apple-mobile-web-app-capable" content="yes">
|
||||
<meta name="apple-mobile-web-app-status-bar-style" content="black">
|
||||
|
||||
<!-- Seo -->
|
||||
<meta name="robots" content="<?php echo strip_tags($g['meta_bot'])?>">
|
||||
<meta name="title" content="<?php echo strip_tags($g['meta_tit'])?>">
|
||||
<meta name="keywords" content="<?php echo strip_tags($g['meta_key'])?>">
|
||||
<meta name="description" content="<?php echo strip_tags($g['meta_des'])?>">
|
||||
<link rel="image_src" href="<?php echo strip_tags($g['meta_img'])?>">
|
||||
|
||||
<meta property="og:site_name" content="<?php echo $_HS['name'] ?>">
|
||||
<meta property="og:locale" content="ko_KR">
|
||||
<meta property="og:type" content="article">
|
||||
<meta property="og:url" content="<?php echo strip_tags($g['url_root'].$_SERVER['REQUEST_URI'])?>">
|
||||
<meta property="og:title" content="<?php echo strip_tags($g['meta_tit'])?>">
|
||||
<meta property="og:description" content="<?php echo strip_tags($g['meta_des'])?>">
|
||||
<meta property="og:image" content="<?php echo strip_tags($g['meta_img'])?>">
|
||||
|
||||
<!-- 파비콘 -->
|
||||
<link rel="apple-touch-icon-precomposed" sizes="144x144" href="<?php echo $g['img_layout']?>/icon/homescreen.png">
|
||||
<link rel="shortcut icon" href="<?php echo $g['img_layout']?>/icon/favicon.ico">
|
||||
|
||||
<title><?php echo $g['browtitle']?></title>
|
||||
|
||||
<!-- 웹앱 매니페스트 -->
|
||||
<link rel="manifest" href="<?php echo $manifestForSite?>">
|
||||
<link rel="apple-touch-icon" sizes="180x180" href="<?php echo $touchIconForSite ?>">
|
||||
|
||||
<!-- 사이트 헤드 코드 -->
|
||||
<?php echo $_HS['headercode']?>
|
||||
|
||||
<!-- rc css -->
|
||||
<?php getImport('rc','css/rc','1.0.0','css')?>
|
||||
<?php getImport('rc','css/rc-add','1.0.0','css')?>
|
||||
|
||||
<!-- jQuery -->
|
||||
<?php getImport('jquery','jquery.min','1.12.4','js')?>
|
||||
|
||||
<!-- rc js -->
|
||||
<?php getImport('rc','js/rc','1.0.0','js')?>
|
||||
|
||||
<!-- 시스템 폰트 -->
|
||||
<?php getImport('font-awesome','css/font-awesome','4.7.0','css')?>
|
||||
<?php getImport('font-kimsq','css/font-kimsq',false,'css')?>
|
||||
<link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet">
|
||||
|
||||
<!-- swiper : http://idangero.us/swiper/ -->
|
||||
<?php getImport('swiper','css/swiper','5.2.1','css')?>
|
||||
<?php getImport('swiper','js/swiper.min','5.2.1','js')?>
|
||||
|
||||
<!-- timeago : 상대시간 표기 -->
|
||||
<?php getImport('jquery-timeago','jquery.timeago','1.6.7','js')?>
|
||||
<?php getImport('jquery-timeago','locales/jquery.timeago.ko','1.6.7','js')?>
|
||||
|
||||
<!-- markjs js : https://github.com/julmot/mark.js -->
|
||||
<?php getImport('markjs','jquery.mark.min','8.11.1','js')?>
|
||||
|
||||
<!-- 소셜공유시 URL 클립보드저장 : clipboard.js : https://github.com/zenorocha/clipboard.js-->
|
||||
<?php getImport('clipboard','clipboard.min','2.0.4','js') ?>
|
||||
|
||||
<!-- color-thief : https://github.com/lokesh/color-thief -->
|
||||
<?php getImport('color-thief','color-thief.min','2.3.0','js') ?>
|
||||
|
||||
<!-- jQuery UI : https://jqueryui.com/-->
|
||||
<?php getImport('jquery-ui','jquery-ui.sortable,min','1.12.1','js')?>
|
||||
|
||||
<!-- jquery-ui-touch-punch : https://github.com/furf/jquery-ui-touch-punch/ -->
|
||||
<?php getImport('jquery-ui-touch-punch','jquery.ui.touch-punch.min','0.2.3','js')?>
|
||||
|
||||
<!-- 사이트 헤드 코드 -->
|
||||
<?php echo $_HS['headercode']?>
|
||||
|
||||
<!-- 엔진코드:삭제하지마세요 -->
|
||||
<?php include $g['path_core'].'engine/cssjs.engine.php' ?>
|
||||
|
||||
<!-- global css -->
|
||||
<link href="<?php echo $g['url_layout']?>/_css/style.css<?php echo $g['wcache']?>" rel="stylesheet">
|
||||
<link href="<?php echo $g['url_layout']?>/_css/article.css<?php echo $g['wcache']?>" rel="stylesheet">
|
||||
|
||||
<script src="//developers.kakao.com/sdk/js/kakao.min.js"></script>
|
||||
<script>
|
||||
var kakao_jskey = '<?php echo $d['connect']['jskey_k'] ?>';
|
||||
Kakao.init(kakao_jskey);
|
||||
</script>
|
||||
265
layouts/rc-starter/_includes/_pages/main.php
Normal file
265
layouts/rc-starter/_includes/_pages/main.php
Normal file
@@ -0,0 +1,265 @@
|
||||
<?php
|
||||
if ($my['uid'] && $d['layout']['main_dashboard']=='true') getLink('/dashboard','','','');
|
||||
|
||||
if ($d['layout']['main_type']=='postFeed') {
|
||||
getWidget('post/rc-post-all-scroll',array('wrapper'=>'[data-role="postFeed"].widget','start'=>'#page-main','recnum'=>5));
|
||||
} else {
|
||||
|
||||
$g['layoutPageVForSite'] = $g['path_var'].'site/'.$r.'/layout.'.$layout.'.main.php'; // 레이아웃 메인페이지 웨젯설정
|
||||
include is_file($g['layoutPageVForSite']) ? $g['layoutPageVForSite'] : $g['dir_layout'].'_var/_var.main.php';
|
||||
getWidgetList($d['layout']['main_widgets']);
|
||||
|
||||
}
|
||||
?>
|
||||
|
||||
|
||||
|
||||
<div class="swiper-container" id="main--event">
|
||||
<div class="swiper-wrapper">
|
||||
<div class="swiper-slide">
|
||||
<a href="#page-shop-category2" data-start="#page-main" data-toggle="page" data-title="풍성한 상차림" data-index="0" data-parent="2" data-category="2">
|
||||
<img src="/thumb-ssl/640x360/u/i.ytimg.com/vi/7DFwLa-dyVk/maxresdefault_live.jpg" alt="" class="img-fluid">
|
||||
</a>
|
||||
</div>
|
||||
<div class="swiper-slide">
|
||||
<a href="#"><img src="/files/mobile-main-03.jpg" alt="" class="img-fluid"></a>
|
||||
</div>
|
||||
<div class="swiper-slide">
|
||||
<a href="#"><img src="/files/mobile-main-04.jpg" alt="" class="img-fluid"></a>
|
||||
</div>
|
||||
<div class="swiper-slide">
|
||||
<a href="#"><img src="/files/mobile-main-05.jpg" alt="" class="img-fluid"></a>
|
||||
</div>
|
||||
<div class="swiper-slide">
|
||||
<a href="#"><img src="/files/mobile-main-06.jpg" alt="" class="img-fluid"></a>
|
||||
</div>
|
||||
<div class="swiper-slide">
|
||||
<a href="#"><img src="/files/mobile-main-07.jpg" alt="" class="img-fluid"></a>
|
||||
</div>
|
||||
</div>
|
||||
<!-- Add Pagination -->
|
||||
<div class="swiper-pagination">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<section class="content-padded mt-3 mb-4 widget">
|
||||
<header class="mb-1">
|
||||
<h3>추천 스토리</h3>
|
||||
<a href="#" data-act="swiperMainTo" data-index="3">
|
||||
더보기 <i class="fa fa-angle-right" aria-hidden="true"></i>
|
||||
</a>
|
||||
</header>
|
||||
<div class="row">
|
||||
<div class="col-xs-6">
|
||||
<a href="#page-post-view"
|
||||
data-toggle="page"
|
||||
data-start="#page-main"
|
||||
data-uid=""
|
||||
data-url="/post/0000000"
|
||||
data-src="/files/tmp/review-01_600x600.jpg"
|
||||
data-title="궁이 보이는 집, 어느 신혼부부의 평온한 한옥라이프">
|
||||
<img src="/thumb-ssl/640x360/u/i.ytimg.com/vi/E-nve-V7GGQ/maxresdefault_live.jpg" class="img-fluid" alt="">
|
||||
<div class="widget-title mt-2">
|
||||
궁이 보이는 집, 어느 신혼부부의 평온한 한옥라이프
|
||||
</div>
|
||||
</a>
|
||||
</div>
|
||||
<div class="col-xs-6">
|
||||
<a href="#page-post-view"
|
||||
data-toggle="page"
|
||||
data-start="#page-main"
|
||||
data-uid=""
|
||||
data-url="/post/0000000"
|
||||
data-src="/files/tmp/review-02_600x600.jpg"
|
||||
data-category="온라인 집들이"
|
||||
data-title="특별한 거실 인테리어 팁! with 데스커">
|
||||
<img src="/thumb-ssl/320x180/u/i.ytimg.com/vi/6Lhm65YCD7Q/mqdefault.jpg" class="img-fluid" alt="">
|
||||
<div class="widget-title mt-2">
|
||||
특별한 거실 인테리어 팁! with 데스커
|
||||
</div>
|
||||
</a>
|
||||
</div>
|
||||
<div class="col-xs-6">
|
||||
<a href="#page-post-view-video"
|
||||
data-toggle="page"
|
||||
data-start="#page-main"
|
||||
data-uid=""
|
||||
data-url="/post/0000000"
|
||||
data-src="t1u1tH-WaLg"
|
||||
data-title="식물과 함께하는 온기(溫氣) 넘치는 신혼집">
|
||||
<div class="position-relative">
|
||||
<img src="/thumb-ssl/320x180/u/i.ytimg.com/vi/7DFwLa-dyVk/maxresdefault_live.jpg" class="img-fluid" alt="">
|
||||
<span class="badge badge-default position-absolute card-meta card-meta-time">3:52</span>
|
||||
</div>
|
||||
<div class="widget-title mt-2">
|
||||
식물과 함께하는 온기(溫氣) 넘치는 신혼집
|
||||
</div>
|
||||
|
||||
</a>
|
||||
</div>
|
||||
<div class="col-xs-6">
|
||||
<a href="#page-post-view-video"
|
||||
data-toggle="page"
|
||||
data-start="#page-main"
|
||||
data-uid=""
|
||||
data-url="/post/0000000"
|
||||
data-src="4DzBFe91CZs"
|
||||
data-title="[맘&앙팡] 제3회 엄마꿈틀 마켓 1편">
|
||||
<div class="position-relative">
|
||||
<img src="/thumb-ssl/320x180/u/i.vimeocdn.com/video/836550173_295x166.jpg" class="img-fluid" alt="">
|
||||
<span class="badge badge-default position-absolute card-meta card-meta-time">2:30</span>
|
||||
</div>
|
||||
<div class="widget-title mt-2">
|
||||
[맘&앙팡] 제3회 엄마꿈틀 마켓 1편
|
||||
</div>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section class="mt-4">
|
||||
<a href="#page-site-page" data-start="#page-main" data-toggle="page" data-title="배송안내" data-id="delivery" data-type="page" data-url="<?php echo RW('mod=delivery')?>">
|
||||
<img src="/files/mobile-banner-01.png" alt="" class="img-fluid">
|
||||
</a>
|
||||
</section>
|
||||
|
||||
<section class="ad_section mt-5 border-top bg-light" style="background-image: url(/files/banner-02.png);">
|
||||
<div class="container text-xs-center">
|
||||
<div class="position-relative">
|
||||
<h4><strong>키즈룸</strong> 데코</h4>
|
||||
<p>소중한 내 아이, 사랑스런 공간에서 자라나길.</p>
|
||||
<a href="#page-shop-category" data-start="#page-main" data-toggle="page" data-title="키즈룸 데코" data-index="0" data-parent="11" data-category="11" class="btn btn-outline-secondary">자세히 보기</a>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section class="widget rb-photogrid content-padded">
|
||||
<header class="mb-1">
|
||||
<h3>인기 키즈룸</h3>
|
||||
<a href="#" data-act="swiperMainTo" data-index="2">
|
||||
더보기 <i class="fa fa-angle-right" aria-hidden="true"></i>
|
||||
</a>
|
||||
</header>
|
||||
<p class="mb-1">
|
||||
<small class="text-muted">한주의 인기사진 1위,2위,3위는 5,000P를 드립니다.</small>
|
||||
</p>
|
||||
<div class="row gutter-half">
|
||||
<div class="col-xs-4">
|
||||
<a href="#page-detail" data-toggle="page" data-start="#page-main" data-src="">
|
||||
<span class="rank-icon active"><span>1</span></span>
|
||||
<small class="nic-name">틴틴이</small>
|
||||
<img src="/files/tmp/kids-01_200x200.png" class="img-fluid img-rounded border" alt="">
|
||||
</a>
|
||||
</div>
|
||||
<div class="col-xs-4">
|
||||
<a href="#page-detail" data-toggle="page" data-start="#page-main" data-src="">
|
||||
<span class="rank-icon active"><span>2</span></span>
|
||||
<small class="nic-name">틴틴이</small>
|
||||
<img src="/files/tmp/kids-02_200x200.png" class="img-fluid img-rounded border" alt="">
|
||||
</a>
|
||||
</div>
|
||||
<div class="col-xs-4">
|
||||
<a href="#page-detail" data-toggle="page" data-start="#page-main" data-src="">
|
||||
<span class="rank-icon active"><span>3</span></span>
|
||||
<small class="nic-name">틴틴이</small>
|
||||
<img src="/files/tmp/kids-03_200x200.png" class="img-fluid img-rounded border" alt="">
|
||||
</a>
|
||||
</div>
|
||||
<div class="col-xs-4">
|
||||
<a href="#page-detail" data-toggle="page" data-start="#page-main" data-src="">
|
||||
<span class="rank-icon"><span>4</span></span>
|
||||
<small class="nic-name">틴틴이</small>
|
||||
<img src="/files/tmp/kids-04_200x200.png" class="img-fluid img-rounded border" alt="">
|
||||
</a>
|
||||
</div>
|
||||
<div class="col-xs-4">
|
||||
<a href="#page-detail" data-toggle="page" data-start="#page-main" data-src="">
|
||||
<span class="rank-icon"><span>5</span></span>
|
||||
<small class="nic-name">틴틴이</small>
|
||||
<img src="/files/tmp/kids-05_200x200.png" class="img-fluid img-rounded border" alt="">
|
||||
</a>
|
||||
</div>
|
||||
<div class="col-xs-4">
|
||||
<a href="#page-detail" data-toggle="page" data-start="#page-main" data-src="">
|
||||
<span class="rank-icon"><span>6</span></span>
|
||||
<small class="nic-name">틴틴이</small>
|
||||
<img src="/files/tmp/kids-06_200x200.png" class="img-fluid img-rounded border" alt="">
|
||||
</a>
|
||||
</div>
|
||||
<div class="col-xs-4">
|
||||
<a href="#page-detail" data-toggle="page" data-start="#page-main" data-src="">
|
||||
<span class="rank-icon"><span>7</span></span>
|
||||
<small class="nic-name">틴틴이</small>
|
||||
<img src="/files/tmp/kids-07_200x200.png" class="img-fluid img-rounded border" alt="">
|
||||
</a>
|
||||
</div>
|
||||
<div class="col-xs-4">
|
||||
<a href="#page-detail" data-toggle="page" data-start="#page-main" data-src="">
|
||||
<span class="rank-icon"><span>8</span></span>
|
||||
<small class="nic-name">틴틴이</small>
|
||||
<img src="/files/tmp/kids-08_200x200.png" class="img-fluid img-rounded border" alt="">
|
||||
</a>
|
||||
</div>
|
||||
<div class="col-xs-4">
|
||||
<a href="#page-detail" data-toggle="page" data-start="#page-main" data-src="">
|
||||
<span class="rank-icon"><span>9</span></span>
|
||||
<small class="nic-name">틴틴이</small>
|
||||
<img src="/files/tmp/kids-09_200x200.png" class="img-fluid img-rounded border" alt="">
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section class="mt-4">
|
||||
<a href="#page-site-page" data-start="#page-main" data-toggle="page" data-title="배송안내" data-id="delivery" data-type="page" data-url="<?php echo RW('mod=delivery')?>">
|
||||
<img src="/files/mobile-banner-01.png" alt="" class="img-fluid">
|
||||
</a>
|
||||
</section>
|
||||
|
||||
|
||||
<ul class="table-view bg-white">
|
||||
<li class="table-view-cell">
|
||||
<a href="#page-post-view-video" class="navigate-right"
|
||||
data-toggle="page"
|
||||
data-start="#page-main"
|
||||
data-uid=""
|
||||
data-url="/post/0000000"
|
||||
data-src="oEB54AcMJ6Q"
|
||||
data-title="진짜로 입냄새가 없어졌다!😬 이걸로도 입냄새 안 없어지면 포기해야 한다는 전설의 아이템!">
|
||||
<img class="media-object pull-left" src="/files/tmp/kids-01_200x200.png" style="width:64px">
|
||||
<div class="media-body">
|
||||
진짜로 입냄새가 없어졌다!😬 이걸로도 입냄새 안 없어지면 포기해야 한다는 전설의 아이템!
|
||||
<p>
|
||||
<small>틴틴이</small>
|
||||
<small class="ml-1">조회 10</small>
|
||||
<small class="ml-1">댓글 10+1</small>
|
||||
<small class="ml-1">좋아요 10</small>
|
||||
<small class="ml-1">3일전</small>
|
||||
</p>
|
||||
</div>
|
||||
</a>
|
||||
</li>
|
||||
<li class="table-view-cell">
|
||||
<a href="#page-post-view-video" class="navigate-right"
|
||||
data-toggle="page"
|
||||
data-start="#page-main"
|
||||
data-uid=""
|
||||
data-url="/post/0000000"
|
||||
data-src="oEB54AcMJ6Q"
|
||||
data-title="진짜로 입냄새가 없어졌다!😬 이걸로도 입냄새 안 없어지면 포기해야 한다는 전설의 아이템!">
|
||||
<img class="media-object pull-left" src="/files/tmp/kids-01_200x200.png" style="width:64px">
|
||||
<div class="media-body">
|
||||
진짜로 입냄새가 없어졌다!😬
|
||||
<p>
|
||||
<small>틴틴이</small>
|
||||
<small class="ml-1">조회 10</small>
|
||||
<small class="ml-1">댓글 10+1</small>
|
||||
<small class="ml-1">좋아요 10</small>
|
||||
<small class="ml-1">3일전</small>
|
||||
</p>
|
||||
</div>
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
293
layouts/rc-starter/_includes/_pages/settings.php
Normal file
293
layouts/rc-starter/_includes/_pages/settings.php
Normal file
@@ -0,0 +1,293 @@
|
||||
<?php
|
||||
checkAdmin(0);
|
||||
include $g['dir_layout'].'_var/_var.config.php';
|
||||
?>
|
||||
|
||||
<section class="page center" id="page-layout-settings">
|
||||
<header class="bar bar-nav bar-light bg-white p-x-0">
|
||||
<a data-href="/" class="icon icon-home pull-left p-x-1" role="button"></a>
|
||||
<button class="btn btn-link btn-nav pull-right px-4" data-act="submit">
|
||||
<span class="not-loading">
|
||||
저장
|
||||
</span>
|
||||
<span class="is-loading">
|
||||
<div class="spinner-border spinner-border-sm text-primary" role="status">
|
||||
<span class="sr-only">저장중...</span>
|
||||
</div>
|
||||
</span>
|
||||
</button>
|
||||
<h1 class="title">
|
||||
<a data-location="reload" data-text="새로고침..">
|
||||
레이아웃 편집1
|
||||
</a>
|
||||
</h1>
|
||||
</header>
|
||||
|
||||
<main class="content bg-white">
|
||||
|
||||
<form action="<?php echo $g['s']?>/" method="post" enctype="multipart/form-data" target="_action_frame_<?php echo $m?>">
|
||||
<input type="hidden" name="r" value="<?php echo $r?>">
|
||||
<input type="hidden" name="m" value="<?php echo $m?>">
|
||||
<input type="hidden" name="a" value="regislayoutsite">
|
||||
<input type="hidden" name="send_mod" value="ajax">
|
||||
|
||||
<ul class="table-view table-view-full border-top-0" id="layout-settings-panels">
|
||||
<?php $_i=1;foreach($d['layout']['dom'] as $_key => $_val):$__i=sprintf('%02d',$_i)?>
|
||||
<li class="table-view-cell">
|
||||
<a class="navigate-right collapsed" data-toggle="collapse" data-parent="#layout-settings-panels" data-target="#layout-settings-<?php echo $__i?>-body" aria-expanded="true">
|
||||
<?php echo $_val[0]?>
|
||||
</a>
|
||||
<ul class="table-view collapse" id="layout-settings-<?php echo $__i?>-body" style="padding-right: 3.9rem">
|
||||
<li class="table-view-cell">
|
||||
<p class="text-muted small mb-1"><?php echo $_val[1]?></p>
|
||||
<?php if(count($_val[2])):?>
|
||||
<?php foreach($_val[2] as $_v):?>
|
||||
<div class="form-group">
|
||||
<?php if($_v[1]!='hidden'):?>
|
||||
<label><?php echo $_v[2]?></label>
|
||||
<?php endif?>
|
||||
|
||||
<?php if($_v[1]=='hidden'):?>
|
||||
<input type="hidden" name="layout_<?php echo $_key?>_<?php echo $_v[0]?>" value="<?php echo $d['layout'][$_key.'_'.$_v[0]]?>">
|
||||
<?php endif?>
|
||||
|
||||
<?php if($_v[1]=='input'):?>
|
||||
<input type="text" class="form-control" name="layout_<?php echo $_key?>_<?php echo $_v[0]?>" value="<?php echo stripslashes($d['layout'][$_key.'_'.$_v[0]])?>">
|
||||
<?php endif?>
|
||||
|
||||
<?php if($_v[1]=='color'):?>
|
||||
<div class="input-group">
|
||||
<input type="text" class="form-control" name="layout_<?php echo $_key?>_<?php echo $_v[0]?>" id="layout_<?php echo $_key?>_<?php echo $_v[0]?>" value="<?php echo $d['layout'][$_key.'_'.$_v[0]]?>">
|
||||
<span class="input-group-append">
|
||||
<button class="btn btn-light" type="button" data-toggle="modal" data-target=".bs-example-modal-sm" onclick="getColorLayer(getId('layout_<?php echo $_key?>_<?php echo $_v[0]?>').value.replace('#',''),'layout_<?php echo $_key?>_<?php echo $_v[0]?>');"><i class="fa fa-tint"></i></button>
|
||||
</span>
|
||||
</div>
|
||||
<?php endif?>
|
||||
|
||||
<?php if($_v[1]=='date'):?>
|
||||
<div class="input-group input-daterange">
|
||||
<input type="text" class="form-control" name="layout_<?php echo $_key?>_<?php echo $_v[0]?>" id="layout_<?php echo $_key?>_<?php echo $_v[0]?>" value="<?php echo $d['layout'][$_key.'_'.$_v[0]]?>">
|
||||
<span class="input-group-append">
|
||||
<button class="btn btn-light" type="button" onclick="getCalCheck('<?php echo $_key?>_<?php echo $_v[0]?>');"><i class="fa fa-calendar"></i></button>
|
||||
</span>
|
||||
</div>
|
||||
<?php endif?>
|
||||
|
||||
<?php if($_v[1]=='mediaset'):?>
|
||||
<div class="input-group">
|
||||
<input type="text" class="form-control rb-modal-photo-drop js-tooltip" name="layout_<?php echo $_key?>_<?php echo $_v[0]?>" id="layout_<?php echo $_key?>_<?php echo $_v[0]?>" value="<?php echo $d['layout'][$_key.'_'.$_v[0]]?>" onmousedown="_mediasetField='layout_<?php echo $_key?>_<?php echo $_v[0]?>&dfiles='+this.value;" title="선택된 사진" data-toggle="modal" data-target="#modal_window">
|
||||
<span class="input-group-append">
|
||||
<button onmousedown="_mediasetField='layout_<?php echo $_key?>_<?php echo $_v[0]?>';" class="btn btn-light rb-modal-photo-drop js-tooltip" type="button" title="포토셋" data-toggle="modal" data-target="#modal_window"><i class="fa fa-picture-o"></i></button>
|
||||
</span>
|
||||
</div>
|
||||
<?php endif?>
|
||||
|
||||
<?php if($_v[1]=='videoset'):?>
|
||||
<div class="input-group">
|
||||
<input type="text" class="form-control rb-modal-video-drop js-tooltip" name="layout_<?php echo $_key?>_<?php echo $_v[0]?>" id="layout_<?php echo $_key?>_<?php echo $_v[0]?>" value="<?php echo $d['layout'][$_key.'_'.$_v[0]]?>" onmousedown="_mediasetField='layout_<?php echo $_key?>_<?php echo $_v[0]?>&dfiles='+this.value;" title="선택된 비디오" data-toggle="modal" data-target="#modal_window">
|
||||
<span class="input-group-append">
|
||||
<button onmousedown="_mediasetField='layout_<?php echo $_key?>_<?php echo $_v[0]?>';" class="btn btn-light rb-modal-video-drop js-tooltip" type="button" title="비디오셋" data-toggle="modal" data-target="#modal_window"><i class="fa fa-video-camera"></i></button>
|
||||
</span>
|
||||
</div>
|
||||
<?php endif?>
|
||||
|
||||
<?php if($_v[1]=='file'):?>
|
||||
<div class="input-group">
|
||||
<input type="text" class="form-control" id="layout_<?php echo $_key?>_<?php echo $_v[0]?>_name" value="<?php echo $d['layout'][$_key.'_'.$_v[0]]?>" onclick="$('#layout_<?php echo $_key?>_<?php echo $_v[0]?>').click();">
|
||||
<input type="file" class="d-none" name="layout_<?php echo $_key?>_<?php echo $_v[0]?>" id="layout_<?php echo $_key?>_<?php echo $_v[0]?>" onchange="getId('layout_<?php echo $_key?>_<?php echo $_v[0]?>_name').value='파일 선택됨';">
|
||||
<span class="input-group-btn">
|
||||
<button class="btn btn-secondary" type="button" onclick="$('#layout_<?php echo $_key?>_<?php echo $_v[0]?>').click();" style="padding: 0.5rem 0.75rem;font-size: 1rem;">
|
||||
파일첨부
|
||||
</button>
|
||||
</span>
|
||||
</div>
|
||||
<?php if($d['layout'][$_key.'_'.$_v[0]]):?>
|
||||
<div style="padding:3px 0 0 2px;"><input type="checkbox" name="layout_<?php echo $_key?>_<?php echo $_v[0]?>_del" value="1"> 현재파일 삭제</div>
|
||||
<?php endif?>
|
||||
<?php endif?>
|
||||
|
||||
<?php if($_v[1]=='textarea'):?>
|
||||
<textarea type="text" rows="<?php echo $_v[3]?>" class="form-control" name="layout_<?php echo $_key?>_<?php echo $_v[0]?>"><?php echo stripslashes($d['layout'][$_key.'_'.$_v[0]])?></textarea>
|
||||
<?php endif?>
|
||||
|
||||
<?php if($_v[1]=='select'):?>
|
||||
<select name="layout_<?php echo $_key?>_<?php echo $_v[0]?>" class="form-control custom-select">
|
||||
<?php $_sk=explode(',',$_v[3])?>
|
||||
<?php foreach($_sk as $_sa):?>
|
||||
<?php $_sa1=explode('=',$_sa)?>
|
||||
<option value="<?php echo $_sa1[1]?>"<?php if($d['layout'][$_key.'_'.$_v[0]] == $_sa1[1]):?> selected<?php endif?>><?php echo $_sa1[0]?></option>
|
||||
<?php endforeach?>
|
||||
</select>
|
||||
<?php endif?>
|
||||
|
||||
<?php if($_v[1]=='radio'):?>
|
||||
<?php $_sk=explode(',',$_v[3])?>
|
||||
<?php foreach($_sk as $_sa):?>
|
||||
<?php $_sa1=explode('=',$_sa)?>
|
||||
<label class="rb-rabel"><input type="radio" name="layout_<?php echo $_key?>_<?php echo $_v[0]?>" value="<?php echo $_sa1[1]?>"<?php if($d['layout'][$_key.'_'.$_v[0]] == $_sa1[1]):?> checked<?php endif?>> <?php echo $_sa1[0]?></label>
|
||||
<?php endforeach?>
|
||||
<?php endif?>
|
||||
|
||||
<?php if($_v[1]=='checkbox'):?>
|
||||
<?php $_sk=explode(',',$_v[3])?>
|
||||
<?php foreach($_sk as $_sa):?>
|
||||
<?php $_sa1=explode('=',$_sa)?>
|
||||
<label class="rb-rabel"><input type="checkbox" name="layout_<?php echo $_key?>_<?php echo $_v[0]?>_chk[]" value="<?php echo $_sa1[1]?>"<?php if(strstr($d['layout'][$_key.'_'.$_v[0]],$_sa1[1])):?> checked<?php endif?>> <?php echo $_sa1[0]?></label>
|
||||
<?php endforeach?>
|
||||
<?php endif?>
|
||||
|
||||
<?php if($_v[1]=='menu'):?>
|
||||
<select name="layout_<?php echo $_key?>_<?php echo $_v[0]?>" class="form-control custom-select">
|
||||
<option value="">사용안함</option>
|
||||
<option value="" disabled>--------------------------------</option>
|
||||
<?php include_once $g['path_core'].'function/menu1.func.php'?>
|
||||
<?php $cat=$d['layout'][$_key.'_'.$_v[0]]?>
|
||||
<?php getMenuShowSelectCode($s,$table['s_menu'],0,0,0,0,0,'')?>
|
||||
</select>
|
||||
<?php endif?>
|
||||
|
||||
<?php if($_v[1]=='bbs'):?>
|
||||
<select name="layout_<?php echo $_key?>_<?php echo $_v[0]?>" class="form-control custom-select">
|
||||
<option value="">사용안함</option>
|
||||
<option value="" disabled>----------------------------------</option>
|
||||
<?php $BBSLIST = getDbArray($table['bbslist'],'','*','gid','asc',0,1)?>
|
||||
<?php while($R=db_fetch_array($BBSLIST)):?>
|
||||
<option value="<?php echo $R['id']?>"<?php if($d['layout'][$_key.'_'.$_v[0]]==$R['id']):?> selected="selected"<?php endif?>>
|
||||
ㆍ<?php echo $R['name']?>(<?php echo $R['id']?>)
|
||||
</option>
|
||||
<?php endwhile?>
|
||||
</select>
|
||||
<?php endif?>
|
||||
|
||||
</div>
|
||||
<?php endforeach?>
|
||||
<?php endif?>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
<?php $_i++;endforeach?>
|
||||
|
||||
<li class="table-view-cell<?php echo $d['layout']['main_type']=='widget'?'':' d-none' ?>" data-toggle="page" data-target="#page-widget-list" data-start="#page-layout-settings">
|
||||
<a class="navigate-right">
|
||||
메인 페이지 꾸미기
|
||||
</a>
|
||||
</li>
|
||||
|
||||
</ul>
|
||||
|
||||
</form>
|
||||
|
||||
</main>
|
||||
</section>
|
||||
|
||||
<section class="page right" id="page-widget-list">
|
||||
<header class="bar bar-nav bar-light bg-white p-x-0">
|
||||
<a class="icon material-icons pull-left px-3" role="button" data-history="back">arrow_back</a>
|
||||
<button class="btn btn-link btn-nav pull-right px-4" data-act="submit">
|
||||
<span class="not-loading">
|
||||
저장
|
||||
</span>
|
||||
<span class="is-loading">
|
||||
<div class="spinner-border spinner-border-sm text-primary" role="status">
|
||||
<span class="sr-only">저장중...</span>
|
||||
</div>
|
||||
</span>
|
||||
</button>
|
||||
|
||||
<h1 class="title title-left" data-history="back">
|
||||
메인 페이지 꾸미기
|
||||
</h1>
|
||||
</header>
|
||||
|
||||
<nav class="bar bar-tab">
|
||||
<a class="tab-item bg-white text-primary" role="button" data-toggle="modal" href="#modal-widget-selector" data-area="main">
|
||||
위젯 추가하기
|
||||
</a>
|
||||
</nav>
|
||||
|
||||
<main class="content bg-white">
|
||||
|
||||
<form name="layoutMainPage" method="post" action="<?php echo $g['s']?>/" target="_action_frame_<?php echo $m?>" class="" role="form">
|
||||
<input type="hidden" name="r" value="<?php echo $r?>">
|
||||
<input type="hidden" name="a" value="regislayoutpage">
|
||||
<input type="hidden" name="m" value="site">
|
||||
<input type="hidden" name="page" value="main">
|
||||
<input type="hidden" name="area" value="main_widgets">
|
||||
<input type="hidden" name="main_widgets" value="">
|
||||
|
||||
<div data-role="widgetPage" data-plugin="sortable" data-area="main">
|
||||
</div>
|
||||
|
||||
</form>
|
||||
|
||||
</main>
|
||||
</section>
|
||||
|
||||
<section class="page right" id="page-widget-view">
|
||||
<header class="bar bar-nav bar-light bg-white px-0">
|
||||
<a class="icon material-icons pull-left px-3" role="button" data-history="back">arrow_back</a>
|
||||
<button class="btn btn-link btn-nav pull-right px-4" data-act="save">
|
||||
<span class="not-loading">
|
||||
저장
|
||||
</span>
|
||||
<span class="is-loading">
|
||||
<div class="spinner-border spinner-border-sm text-primary" role="status">
|
||||
<span class="sr-only">저장중...</span>
|
||||
</div>
|
||||
</span>
|
||||
</button>
|
||||
<h1 class="title title-left" data-history="back">
|
||||
위젯 설정 <small class="text-muted ml-2" data-role="title"></small>
|
||||
</h1>
|
||||
</header>
|
||||
<div class="content bg-white" data-role="widgetConfig">
|
||||
<div class="content-padded pb-4" data-role="form">
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section class="page right" id="page-widget-makebbs">
|
||||
<header class="bar bar-nav bar-light bg-white px-0">
|
||||
<a class="icon material-icons pull-left px-3" role="button" data-history="back">arrow_back</a>
|
||||
<button class="btn btn-link btn-nav pull-right px-4" data-act="save" data-mod="edit">
|
||||
<span class="not-loading">
|
||||
생성
|
||||
</span>
|
||||
<span class="is-loading">
|
||||
<div class="spinner-border spinner-border-sm text-primary" role="status">
|
||||
<span class="sr-only">생성중...</span>
|
||||
</div>
|
||||
</span>
|
||||
</button>
|
||||
<h1 class="title title-left" data-history="back">새 게시판</h1>
|
||||
</header>
|
||||
<div class="content">
|
||||
<p class="content-padded">
|
||||
게시판 생성 입력항목
|
||||
</p>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section class="page right" id="page-widget-makepostlist">
|
||||
<header class="bar bar-nav bar-light bg-white px-0">
|
||||
<a class="icon material-icons pull-left px-3" role="button" data-history="back">arrow_back</a>
|
||||
<button class="btn btn-link btn-nav pull-right px-4" data-act="save" data-mod="edit">
|
||||
<span class="not-loading">
|
||||
생성
|
||||
</span>
|
||||
<span class="is-loading">
|
||||
<div class="spinner-border spinner-border-sm text-primary" role="status">
|
||||
<span class="sr-only">생성중...</span>
|
||||
</div>
|
||||
</span>
|
||||
</button>
|
||||
<h1 class="title title-left" data-history="back">새 리스트</h1>
|
||||
</header>
|
||||
<div class="content">
|
||||
<p class="content-padded">
|
||||
리스트 생성 입력항목
|
||||
</p>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<script src="<?php echo $g['url_layout']?>/_js/settings.js<?php echo $g['wcache']?>"></script>
|
||||
195
layouts/rc-starter/_includes/_pages/system.php
Normal file
195
layouts/rc-starter/_includes/_pages/system.php
Normal file
@@ -0,0 +1,195 @@
|
||||
<?php
|
||||
checkAdmin(0);
|
||||
include $g['path_module'].'admin/var/var.version.php';
|
||||
include $g['path_core'].'function/rss.func.php';
|
||||
$lastest_version = trim(getUrlData('https://kimsq.github.io/rb/lastest.v2.txt',10));
|
||||
$_current_version = str_replace('.','',$d['admin']['version']);
|
||||
$_lastest_version = str_replace('.','',$lastest_version);
|
||||
$git_version = shell_exec('git --version');
|
||||
if ($_lastest_version-$_current_version > 0) $try_update = true;
|
||||
else $try_update = false;
|
||||
|
||||
$LASTUID = getDbCnt($table['s_gitlog'],'max(uid)','');
|
||||
$R = getUidData($table['s_gitlog'],$LASTUID);
|
||||
$d_last = $LASTUID?getDateFormat($R['d_regis'],'Y.m.d H:i'):'';
|
||||
|
||||
?>
|
||||
|
||||
<link href="<?php echo $g['s']?>/_core/css/github-markdown.css" rel="stylesheet">
|
||||
|
||||
<section class="page center" id="page-software-main">
|
||||
<header class="bar bar-nav bar-light bg-faded px-0">
|
||||
<a data-href="/" class="icon icon-home pull-left p-x-1" role="button"></a>
|
||||
<a class="icon icon-refresh pull-right p-x-1" data-location="reload" data-text="업데이트를 확인하는 중.." role="button"></a>
|
||||
<h1 class="title" data-location="reload" data-text="업데이트를 확인하는 중..">소프트웨어 정보</h1>
|
||||
</header>
|
||||
<div class="content bg-faded">
|
||||
|
||||
<form name="updateForm" method="post" action="<?php echo $g['s']?>/" target="_action_frame_site" class="py-4">
|
||||
<input type="hidden" name="r" value="<?php echo $r?>">
|
||||
<input type="hidden" name="m" value="admin">
|
||||
<input type="hidden" name="a" value="update">
|
||||
<input type="hidden" name="remote" value="https://github.com/kimsQ/rb.git">
|
||||
<input type="hidden" name="current_version" value="<?php echo $d['admin']['version']?>">
|
||||
<input type="hidden" name="lastest_version" value="<?php echo $lastest_version?>">
|
||||
|
||||
<div class="text-xs-center">
|
||||
<i class="h1 kf kf-bi-01"></i>
|
||||
<strong class="d-block mt-2">현재 버전 <?php echo $d['admin']['version']?></strong>
|
||||
|
||||
<?php if ($try_update): ?>
|
||||
<small class="d-block text-muted">최신 버전 <?php echo $lastest_version ?></small>
|
||||
|
||||
<?php if ($git_version): ?>
|
||||
<?php if (is_dir('./.git')): ?>
|
||||
<a data-toggle="sheet" href="#sheet-update-confirm" class="btn btn-primary mt-3">
|
||||
업데이트
|
||||
</a>
|
||||
<?php else: ?>
|
||||
<button type="button" data-act="gitinit" class="btn btn-outline-success mt-3">
|
||||
업데이트 환경 초기화
|
||||
</button>
|
||||
<?php endif; ?>
|
||||
<?php else: ?>
|
||||
<div class="alert alert-danger content-padded f14" role="alert">
|
||||
<strong>[git 설치필요]</strong> 버전관리를 위해 git 설치가 필요합니다. 호스팅 제공업체 또는 서버 관리자에게 요청해주세요.
|
||||
</div>
|
||||
<?php endif; ?>
|
||||
<?php else: ?>
|
||||
<small class="d-block text-muted mt-2 animated shake delay-3">최신 버전 입니다.</small>
|
||||
<?php endif; ?>
|
||||
|
||||
</div>
|
||||
</form>
|
||||
|
||||
<ul class="table-view text-xs-left bg-white">
|
||||
<?php if ($d_last): ?>
|
||||
<li class="table-view-cell">
|
||||
<a class="navigate-right" data-toggle="page" data-target="#page-software-loglist" data-start="#page-software-main">
|
||||
<span class="badge badge-default badge-inverted"><?php echo $d_last ?></span>
|
||||
업데이트 이력
|
||||
</a>
|
||||
</li>
|
||||
<?php endif; ?>
|
||||
<li class="table-view-cell">
|
||||
<a class="navigate-right" data-toggle="page" data-target="#page-software-kimsq" data-start="#page-software-main">
|
||||
설명서
|
||||
</a>
|
||||
</li>
|
||||
<li class="table-view-cell">
|
||||
<a class="navigate-right" data-toggle="page" data-target="#page-software-license" data-start="#page-software-main">
|
||||
라이센스
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
<ul class="table-view text-xs-left bg-white">
|
||||
<li class="table-view-cell">
|
||||
<span class="badge badge-default badge-inverted"><?php echo $_SERVER['SERVER_SOFTWARE']?></span>
|
||||
웹서버
|
||||
</li>
|
||||
<li class="table-view-cell">
|
||||
<span class="badge badge-default badge-inverted">PHP <?php echo phpversion()?></span>
|
||||
개발언어
|
||||
</li>
|
||||
<li class="table-view-cell">
|
||||
<span class="badge badge-default badge-inverted"><?php echo db_info()?> (<?php echo $DB['type']?>)</span>
|
||||
데이터베이스
|
||||
</li>
|
||||
<li class="table-view-cell">
|
||||
<span class="badge badge-default badge-inverted"><?php echo $git_version?$git_version:'git 미설치'?></span>
|
||||
버전관리
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section class="page right" id="page-software-loglist">
|
||||
<header class="bar bar-nav bar-light bg-white px-0">
|
||||
<a class="icon material-icons pull-left px-3" role="button" data-history="back">arrow_back</a>
|
||||
<h1 class="title title-left" data-history="back">업데이트 이력</h1>
|
||||
</header>
|
||||
<div class="content">
|
||||
<ul class="table-view mt-0 border-top-0 bg-white" data-role="list">
|
||||
</ul>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section class="page right" id="page-software-logview">
|
||||
<header class="bar bar-nav bar-light bg-white px-0">
|
||||
<a class="icon material-icons pull-left px-3" role="button" data-history="back">arrow_back</a>
|
||||
<h1 class="title title-left" data-history="back"><code class="text-muted" data-role="title"></code> 업데이트 상세내역</h1>
|
||||
</header>
|
||||
<div class="content text-xs-left bg-white">
|
||||
<table class="table f14 bg-white border-bottom mb-1" style="margin-top:-1px">
|
||||
<tbody>
|
||||
<tr>
|
||||
<th scope="row" class="text-xs-center">버전</th>
|
||||
<td><span data-role="version"></span></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row" class="text-xs-center">일시</th>
|
||||
<td><span data-role="d_regis"></span></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row" class="text-xs-center">작업자</th>
|
||||
<td><span data-role="name"></span></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<div class="">
|
||||
<textarea class="form-control border-0 f14" style="height:60vh" data-role="output"></textarea>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section class="page right" id="page-software-kimsq">
|
||||
<header class="bar bar-nav bar-light bg-white px-0">
|
||||
<a class="icon material-icons pull-left px-3" role="button" data-history="back">arrow_back</a>
|
||||
<h1 class="title title-left" data-history="back">설명서</h1>
|
||||
</header>
|
||||
<div class="content">
|
||||
|
||||
<div class="content-padded markdown-body text-xs-left">
|
||||
<?php readfile('./README.md')?>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section class="page right" id="page-software-license">
|
||||
<header class="bar bar-nav bar-light bg-white px-0">
|
||||
<a class="icon material-icons pull-left px-3" role="button" data-history="back">arrow_back</a>
|
||||
<h1 class="title title-left" data-history="back">라이센스</h1>
|
||||
</header>
|
||||
<div class="content">
|
||||
|
||||
<textarea class="form-control border-0" style="height:90vh"><?php readfile('./LICENSE')?></textarea>
|
||||
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<div id="sheet-update-confirm" class="sheet" style="top: 50vh;">
|
||||
<header class="bar bar-nav bar-inverse bg-primary">
|
||||
<h1 class="title title-left px-3">업데이트 전 유의사항</h1>
|
||||
</header>
|
||||
<nav class="bar bar-tab bar-light bg-white">
|
||||
<a class="tab-item text-muted" role="button" data-history="back">
|
||||
취소
|
||||
</a>
|
||||
<a class="tab-item text-primary border-left" role="button" data-act="submit">
|
||||
확인 했습니다.
|
||||
</a>
|
||||
</nav>
|
||||
<main>
|
||||
<div class="content-padded">
|
||||
<p>업데이트시 최신 코드가 적용됩니다.</p>
|
||||
<p>기본 패키지 파일에 직접 수정하거나 추가한 코드가 포함된 파일이 업데이트 내역에 포함되어 있을 경우, 해당사항이 덧씌워 집니다.</p>
|
||||
<p><mark>업데이트 전에 반드시 코드를 별도파일로 분리하거나 파일명을 변경한 후 업데이트 해주세요.</mark></p>
|
||||
</div>
|
||||
</main>
|
||||
</div>
|
||||
|
||||
<?php getImport('jquery-markdown','jquery.markdown','0.0.10','js')?>
|
||||
|
||||
<script src="<?php echo $g['url_layout']?>/_js/software.js<?php echo $g['wcache']?>"></script>
|
||||
394
layouts/rc-starter/_includes/component.php
Normal file
394
layouts/rc-starter/_includes/component.php
Normal file
@@ -0,0 +1,394 @@
|
||||
<!-- 컴포넌트 모음 -->
|
||||
|
||||
<!-- 회원가입 -->
|
||||
<?php include_once $g['path_module'].'member/themes/'.$d['member']['theme_mobile'].'/join/component.php'; ?>
|
||||
|
||||
<!-- 로그인 -->
|
||||
<?php include_once $g['path_module'].'member/themes/'.$d['member']['theme_mobile'].'/login/component.php'; ?>
|
||||
|
||||
<!-- 알림 -->
|
||||
<?php include_once $g['path_module'].'member/themes/'.$d['member']['theme_mobile'].'/noti/component.php'; ?>
|
||||
|
||||
<!-- 검색 -->
|
||||
<?php include_once $g['path_module'].'search/themes/_mobile/rc-default/component.php'; ?>
|
||||
|
||||
<!-- 설정 -->
|
||||
<?php include_once $g['path_module'].'member/themes/'.$d['member']['theme_mobile'].'/settings/component.php'; ?>
|
||||
|
||||
<!-- 프로필 -->
|
||||
<?php include_once $g['path_module'].'member/themes/'.$d['member']['theme_mobile'].'/profile/component.php'; ?>
|
||||
|
||||
<!-- 포스트 -->
|
||||
<?php include_once $g['path_module'].'post/themes/'.$d['post']['skin_mobile'].'/component.php'; ?>
|
||||
|
||||
<!-- 게시판 -->
|
||||
<?php include_once $g['path_module'].'bbs/themes/'.$d['bbs']['skin_mobile'].'/component.php'; ?>
|
||||
|
||||
<!-- 댓글 -->
|
||||
<?php include_once $g['path_module'].'comment/themes/'.$d['comment']['skin_mobile'].'/component.php'; ?>
|
||||
|
||||
<!-- 사이트 정보 -->
|
||||
<div class="page right" id="page-site-info">
|
||||
<header class="bar bar-nav bar-light bg-white px-0">
|
||||
<a class="icon material-icons pull-left px-3" role="button" data-history="back">arrow_back</a>
|
||||
<?php if ($my['admin']): ?>
|
||||
<button class="btn btn-link btn-nav pull-right p-x-2" type="button"
|
||||
data-href="<?php echo $g['s'].'/?r='.$r.'&layoutPage=settings&prelayout=rc-starter/blank' ?>">
|
||||
수정
|
||||
</button>
|
||||
<?php endif; ?>
|
||||
<h1 class="title title-left" data-history="back">홈 정보 보기</h1>
|
||||
</header>
|
||||
<main role="main" class="content bg-white">
|
||||
|
||||
<?php if ($d['layout']['company_name']): ?>
|
||||
<ul class="table-view mt-0 border-top-0">
|
||||
<li class="table-view-cell">
|
||||
<div class="media-body">
|
||||
<p class="mb-0"><small>회사명</small></p>
|
||||
<?php echo $d['layout']['company_name'] ?>
|
||||
</div>
|
||||
</li>
|
||||
<?php endif; ?>
|
||||
|
||||
<?php if ($d['layout']['company_ceo']): ?>
|
||||
<li class="table-view-cell">
|
||||
<div class="media-body">
|
||||
<p class="mb-0"><small>대표자</small></p>
|
||||
<?php echo $d['layout']['company_ceo'] ?>
|
||||
</div>
|
||||
</li>
|
||||
<?php endif; ?>
|
||||
|
||||
<?php if ($d['layout']['company_num']): ?>
|
||||
<li class="table-view-cell">
|
||||
<div class="media-body">
|
||||
<p class="mb-0"><small>사업자등록번호</small></p>
|
||||
<?php echo $d['layout']['company_num'] ?>
|
||||
</div>
|
||||
</li>
|
||||
<?php endif; ?>
|
||||
|
||||
<?php if ($d['layout']['company_num2']): ?>
|
||||
<li class="table-view-cell">
|
||||
<div class="media-body">
|
||||
<p class="mb-0"><small>통신판매업 신고번호</small></p>
|
||||
<?php echo $d['layout']['company_num2'] ?>
|
||||
</div>
|
||||
</li>
|
||||
<?php endif; ?>
|
||||
|
||||
<?php if ($d['layout']['company_manager']): ?>
|
||||
<li class="table-view-cell">
|
||||
<div class="media-body">
|
||||
<p class="mb-0"><small>개인정보보호 책임자</small></p>
|
||||
<?php echo $d['layout']['company_manager'] ?>
|
||||
</div>
|
||||
</li>
|
||||
<?php endif; ?>
|
||||
|
||||
<?php if ($d['layout']['company_addr']): ?>
|
||||
<li class="table-view-cell">
|
||||
<div class="media-body">
|
||||
<p class="mb-0"><small>주소</small></p>
|
||||
<?php echo $d['layout']['company_addr'] ?>
|
||||
</div>
|
||||
</li>
|
||||
<?php endif; ?>
|
||||
|
||||
<li class="table-view-cell table-view-divider bg-faded"><strong class="small">고객센터</strong></li>
|
||||
|
||||
<?php if ($d['layout']['contact_tel']): ?>
|
||||
<li class="table-view-cell">
|
||||
<a href="tel://<?php echo $d['layout']['contact_tel'] ?>" class="navigate-right">
|
||||
<div class="media-body">
|
||||
<p class="mb-0"><small>전화번호</small></p>
|
||||
<?php echo $d['layout']['contact_tel'] ?>
|
||||
</div>
|
||||
</a>
|
||||
</li>
|
||||
<?php endif; ?>
|
||||
|
||||
<?php if ($d['layout']['contact_email']): ?>
|
||||
<li class="table-view-cell">
|
||||
<a href="mailto:<?php echo $d['layout']['contact_email'] ?>" class="navigate-right">
|
||||
<div class="media-body">
|
||||
<p class="mb-0"><small>이메일</small></p>
|
||||
<?php echo $d['layout']['contact_email'] ?>
|
||||
</div>
|
||||
</a>
|
||||
</li>
|
||||
<?php endif; ?>
|
||||
|
||||
<?php if ($d['layout']['contact_fax']): ?>
|
||||
<li class="table-view-cell">
|
||||
<div class="media-body">
|
||||
<p class="mb-0"><small>팩스</small></p>
|
||||
<?php echo $d['layout']['contact_fax'] ?>
|
||||
</div>
|
||||
</li>
|
||||
<?php endif; ?>
|
||||
|
||||
<li class="table-view-cell table-view-divider bg-faded"><strong class="small">소셜미디어</strong></li>
|
||||
|
||||
<?php if ($d['layout']['sns_youtube']): ?>
|
||||
<li class="table-view-cell">
|
||||
<a href="<?php echo $d['layout']['sns_youtube'] ?>" target="_blank" class="navigate-right">
|
||||
<div class="media-body">
|
||||
<img class="media-object pull-left" src="<?php echo $g['img_core'] ?>/sns/youtube.png" style="width:2.625rem;border-radius: .7rem;">
|
||||
<p class="mb-0"><small>유튜브</small></p>
|
||||
<small><?php echo $d['layout']['sns_youtube'] ?></small>
|
||||
</div>
|
||||
</a>
|
||||
</li>
|
||||
<?php endif; ?>
|
||||
|
||||
<?php if ($d['layout']['sns_instagram']): ?>
|
||||
<li class="table-view-cell">
|
||||
<a href="<?php echo $d['layout']['sns_instagram'] ?>" target="_blank" class="navigate-right">
|
||||
<div class="media-body">
|
||||
<img class="media-object pull-left img-rounded" src="<?php echo $g['img_core'] ?>/sns/instagram.png" style="width:2.625rem;border-radius: .7rem;">
|
||||
<p class="mb-0"><small>인스타그램</small></p>
|
||||
<small><?php echo $d['layout']['sns_instagram'] ?></small>
|
||||
</div>
|
||||
</a>
|
||||
</li>
|
||||
<?php endif; ?>
|
||||
|
||||
<?php if ($d['layout']['sns_facebook']): ?>
|
||||
<li class="table-view-cell">
|
||||
<a href="<?php echo $d['layout']['sns_facebook'] ?>" target="_blank" class="navigate-right">
|
||||
<div class="media-body">
|
||||
<img class="media-object pull-left img-rounded" src="<?php echo $g['img_core'] ?>/sns/facebook.png" style="width:2.625rem;border-radius: .7rem;">
|
||||
<p class="mb-0"><small>페이스북</small></p>
|
||||
<small><?php echo $d['layout']['sns_facebook'] ?></small>
|
||||
</div>
|
||||
</a>
|
||||
</li>
|
||||
<?php endif; ?>
|
||||
|
||||
<?php if ($d['layout']['sns_nblog']): ?>
|
||||
<li class="table-view-cell">
|
||||
<a href="<?php echo $d['layout']['sns_nblog'] ?>" target="_blank" class="navigate-right">
|
||||
<div class="media-body">
|
||||
<img class="media-object pull-left img-rounded" src="<?php echo $g['img_core'] ?>/sns/nblog.png" style="width:2.625rem;border-radius: .7rem;">
|
||||
<p class="mb-0"><small>네이버 블로그</small></p>
|
||||
<small><?php echo $d['layout']['sns_nblog'] ?></small>
|
||||
</div>
|
||||
</a>
|
||||
</li>
|
||||
<?php endif; ?>
|
||||
|
||||
<?php if ($d['layout']['sns_ncafe']): ?>
|
||||
<li class="table-view-cell">
|
||||
<a href="<?php echo $d['layout']['sns_ncafe'] ?>" target="_blank" class="navigate-right">
|
||||
<div class="media-body">
|
||||
<img class="media-object pull-left img-rounded" src="<?php echo $g['img_core'] ?>/sns/ncafe.png" style="width:2.625rem;border-radius: .7rem;">
|
||||
<p class="mb-0"><small>네이버 카페</small></p>
|
||||
<small><?php echo $d['layout']['sns_ncafe'] ?></small>
|
||||
</div>
|
||||
</a>
|
||||
</li>
|
||||
<?php endif; ?>
|
||||
|
||||
<?php if ($d['layout']['sns_dcafe']): ?>
|
||||
<li class="table-view-cell">
|
||||
<a href="<?php echo $d['layout']['sns_dcafe'] ?>" target="_blank" class="navigate-right">
|
||||
<div class="media-body">
|
||||
<img class="media-object pull-left img-rounded" src="<?php echo $g['img_core'] ?>/sns/dcafe.png" style="width:2.625rem;border-radius: .7rem;">
|
||||
<p class="mb-0"><small>다음 카페</small></p>
|
||||
<small><?php echo $d['layout']['sns_dcafe'] ?></small>
|
||||
</div>
|
||||
</a>
|
||||
</li>
|
||||
<?php endif; ?>
|
||||
|
||||
<?php if ($d['layout']['sns_band']): ?>
|
||||
<li class="table-view-cell">
|
||||
<a href="<?php echo $d['layout']['sns_band'] ?>" target="_blank" class="navigate-right">
|
||||
<div class="media-body">
|
||||
<img class="media-object pull-left img-rounded" src="<?php echo $g['img_core'] ?>/sns/band.png" style="width:2.625rem;border-radius: .7rem;">
|
||||
<p class="mb-0"><small>밴드</small></p>
|
||||
<small><?php echo $d['layout']['sns_band'] ?></small>
|
||||
</div>
|
||||
</a>
|
||||
</li>
|
||||
<?php endif; ?>
|
||||
|
||||
</ul>
|
||||
|
||||
</main>
|
||||
</div>
|
||||
|
||||
<!-- 사이트 페이지 -->
|
||||
<div class="page right" id="page-site-page">
|
||||
<header class="bar bar-nav bar-light bg-white px-0">
|
||||
<a class="icon material-icons pull-left px-3" role="button" data-history="back">arrow_back</a>
|
||||
<a class="icon material-icons pull-right px-3 mirror" role="button" data-toggle="popup" data-target="#popup-link-share" data-url>reply</a>
|
||||
<h1 class="title title-left" data-role="title" data-history="back"></h1>
|
||||
</header>
|
||||
<main role="main" class="content bg-white">
|
||||
<div data-role="main" class="content-padded"></div>
|
||||
</main>
|
||||
</div>
|
||||
|
||||
<!-- 로그아웃-->
|
||||
<div id="popup-logout" class="popup zoom">
|
||||
<div class="popup-content">
|
||||
<header class="bar bar-nav">
|
||||
<h1 class="title">로그아웃 전에 확인해주세요.</h1>
|
||||
</header>
|
||||
<nav class="bar bar-standard bar-footer">
|
||||
<div class="row">
|
||||
<div class="col-xs-6">
|
||||
<button type="button" class="btn btn-secondary btn-block" data-history="back">취소</button>
|
||||
</div>
|
||||
<div class="col-xs-6 p-l-0">
|
||||
<button type="button" class="btn btn-primary btn-block" data-act="logout">로그이웃</button>
|
||||
</div>
|
||||
</div>
|
||||
</nav>
|
||||
<div class="content">
|
||||
<div class="p-a-3 text-xs-center">
|
||||
정말로 로그아웃 하시겠습니까?
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- 팝업 : 링크공유 -->
|
||||
<div id="popup-link-share" class="popup zoom">
|
||||
<div class="popup-content rounded-0">
|
||||
<header class="bar bar-nav rounded-0">
|
||||
<a class="icon icon-close pull-right" data-history="back" role="button"></a>
|
||||
<h1 class="title">
|
||||
링크 복사
|
||||
</h1>
|
||||
</header>
|
||||
<div class="content text-xs-center rounded-0">
|
||||
|
||||
<ul class="table-view mt-0" style="max-height: 25rem;">
|
||||
<li class="table-view-cell media align-items-center">
|
||||
<img src="<?php echo $g['img_core']?>/sns/kakaotalk.png" alt="카카오톡" class="media-object pull-left img-circle" style="width:2.375rem">
|
||||
카카오톡
|
||||
<button class="btn btn-secondary" id="kakao-link-btn">링크공유</button>
|
||||
</li>
|
||||
<li class="table-view-cell media align-items-center">
|
||||
<img src="<?php echo $g['img_core']?>/sns/youtube.png" alt="유튜브" class="media-object pull-left img-circle" style="width:2.375rem">
|
||||
유튜브
|
||||
<button class="btn btn-secondary" data-role="youtube" data-toggle="linkCopy" data-clipboard-text="">
|
||||
링크복사
|
||||
</button>
|
||||
</li>
|
||||
<li class="table-view-cell media align-items-center">
|
||||
<img src="<?php echo $g['img_core']?>/sns/instagram.png" alt="인스타그램" class="media-object pull-left img-circle" style="width:2.375rem">
|
||||
인스타그램
|
||||
<button class="btn btn-secondary" data-role="instagram" data-toggle="linkCopy">링크복사</button>
|
||||
</li>
|
||||
<li class="table-view-cell media align-items-center">
|
||||
<img src="<?php echo $g['img_core']?>/sns/facebook.png" alt="페이스북공유" class="media-object pull-left img-circle" style="width:2.375rem">
|
||||
페이스북
|
||||
<button class="btn btn-secondary" data-role="facebook" data-toggle="linkCopy">링크복사</button>
|
||||
</li>
|
||||
<li class="table-view-cell media align-items-center">
|
||||
<img src="<?php echo $g['img_core']?>/sns/band.png" alt="밴드" class="media-object pull-left img-circle" style="width:2.375rem">
|
||||
밴드
|
||||
<button class="btn btn-secondary" data-role="band" data-toggle="linkCopy">링크복사</button>
|
||||
</li>
|
||||
<li class="table-view-cell media align-items-center">
|
||||
<img src="<?php echo $g['img_core']?>/sns/naver.png" alt="네이버 카페" class="media-object pull-left img-circle" style="width:2.375rem">
|
||||
네이버 카페
|
||||
<button class="btn btn-secondary" data-role="naver" data-toggle="linkCopy">링크복사</button>
|
||||
</li>
|
||||
<li class="table-view-cell media align-items-center">
|
||||
<img src="<?php echo $g['img_core']?>/sns/kakaostory.png" alt="카카오스토리" class="media-object pull-left img-circle" style="width:2.375rem">
|
||||
카카오스토리
|
||||
<button class="btn btn-secondary" data-role="kakaostory" data-toggle="linkCopy">링크복사</button>
|
||||
</li>
|
||||
<li class="table-view-cell media align-items-center">
|
||||
<img src="<?php echo $g['img_core']?>/sns/twitter.png" alt="트위터" class="media-object pull-left img-circle" style="width:2.375rem">
|
||||
트위터
|
||||
<button class="btn btn-secondary" data-role="twitter" data-toggle="linkCopy">링크복사</button>
|
||||
</li>
|
||||
<li class="table-view-cell media align-items-center">
|
||||
<img src="<?php echo $g['img_core']?>/sns/mail.png" alt="이메일" class="media-object pull-left img-circle" style="width:2.375rem">
|
||||
이메일
|
||||
<button class="btn btn-secondary" data-role="email" data-toggle="linkCopy">링크복사</button>
|
||||
</li>
|
||||
<li class="table-view-cell media align-items-center">
|
||||
<img src="<?php echo $g['img_core']?>/sns/sms.png" alt="SMS" class="media-object pull-left img-circle" style="width:2.375rem">
|
||||
SMS
|
||||
<button class="btn btn-secondary" data-role="sms" data-toggle="linkCopy">링크복사</button>
|
||||
</li>
|
||||
<li class="table-view-cell media align-items-center">
|
||||
<span class="ml-2">기타</span>
|
||||
<button class="btn btn-secondary" data-role="etc" data-toggle="linkCopy">링크복사</button>
|
||||
</li>
|
||||
|
||||
<?php if ($my['admin']): ?>
|
||||
<li class="table-view-cell media align-items-center">
|
||||
<span class="ml-2">고유번호</span>
|
||||
<button class="btn btn-secondary" data-role="uid" data-toggle="linkCopy">복사</button>
|
||||
</li>
|
||||
<?php endif; ?>
|
||||
</ul>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</div><!-- /.content -->
|
||||
</div><!-- /.popup-content -->
|
||||
</div><!-- /.popup -->
|
||||
|
||||
<!-- 푸시알림 권한요청 -->
|
||||
<div id="permission_alert" class="sheet">
|
||||
|
||||
<div class="card card-full">
|
||||
|
||||
<div class="card-header bg-primary">
|
||||
<i class="fa fa-bell-o fa-fw" aria-hidden="true"></i> 푸시알림 수신을 위한 권한요청
|
||||
</div>
|
||||
<div class="card-body">
|
||||
<div class="content-padded text-muted">
|
||||
<p>푸시알림을 허용하면 공지사항은 물론 게시글에 대한 피드백 또는 내가 언급된 글에 대한 정보들을 실시간으로 받아보실 수 있습니다.</p>
|
||||
<p>나중에 하기를 선택하실 경우, 설정 페이지에서 재설정 할 수 있습니다.</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="card-footer bg-white">
|
||||
<div class="row">
|
||||
<div class="col-xs-6">
|
||||
<button type="button" class="btn btn-secondary btn-block" data-history="back">나중에 하기</button>
|
||||
</div>
|
||||
<div class="col-xs-6 p-l-0">
|
||||
<button class="btn btn-outline-primary btn-block" onclick="requestPermission()">지금 설정하기</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div><!-- /.card -->
|
||||
|
||||
</div>
|
||||
|
||||
<!-- 첨부파일 설정 -->
|
||||
<div id="sheet-attach-moreAct" class="sheet bg-faded">
|
||||
<ul class="table-view table-view-full bg-white mb-0">
|
||||
<li class="table-view-cell table-view-divider" data-dismiss="sheet"><span data-role="title"></span></li>
|
||||
<li class="table-view-cell">
|
||||
<a data-attach-act="featured-img">
|
||||
대표이미지 설정
|
||||
</a>
|
||||
</li>
|
||||
<li class="table-view-cell d-none">
|
||||
<a data-attach-act="showhide">
|
||||
정보수정
|
||||
</a>
|
||||
</li>
|
||||
<li class="table-view-cell">
|
||||
<a data-attach-act="delete">
|
||||
삭제
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<script src="<?php echo $g['url_layout']?>/_js/component.js"></script>
|
||||
122
layouts/rc-starter/_includes/drawer-left.php
Normal file
122
layouts/rc-starter/_includes/drawer-left.php
Normal file
@@ -0,0 +1,122 @@
|
||||
<header class="bar bar-nav bar-light bg-white px-0">
|
||||
<?php if ($my['uid']): ?>
|
||||
<a class="icon icon icon-gear pull-right p-x-1" role="button" data-toggle="modal" href="#modal-settings-general" data-url="/settings"></a>
|
||||
<h1 class="title" data-toggle="profile" data-target="#modal-member-profile" data-mbruid="<?php echo $my['uid'] ?>">
|
||||
<img class="mt-2 mr-2 pull-left img-circle bg-faded" data-role="avatar" src="<?php echo getAvatarSrc($my['uid'],'56') ?>" style="width:1.75rem">
|
||||
<small><?php echo $my['nic']?$my['nic']:$my['name'] ?></small>
|
||||
</h1>
|
||||
<?php else: ?>
|
||||
<a class="icon icon icon-close pull-right p-x-1" role="button" data-toggle="drawer-close" title="드로어닫기"></a>
|
||||
<h1 class="title" role="button" data-toggle="modal" href="#modal-login" data-title="<?php echo stripslashes($d['layout']['header_title'])?>">
|
||||
로그인 하세요
|
||||
</h1>
|
||||
<?php endif; ?>
|
||||
</header>
|
||||
|
||||
<?php if ($d['post']['writeperm']): ?>
|
||||
<nav class="bar bar-tab bg-white">
|
||||
<a class="tab-item active bg-primary<?php echo $m=='bbs'?' d-none':'' ?>" role="button"
|
||||
data-open="newPost"
|
||||
data-start="<?php echo $d['layout']['main_type']=='postAllFeed'?'#page-main':'#page-post-allpost' ?>"
|
||||
data-url="/post/write">
|
||||
새 포스트
|
||||
</a>
|
||||
</nav>
|
||||
<?php endif; ?>
|
||||
|
||||
<?php if (!$my['uid']): ?>
|
||||
<nav class="bar bar-tab bg-white">
|
||||
<a class="tab-item" role="button" href="#modal-join" data-toggle="modal" data-url="">
|
||||
<span class="icon material-icons">account_circle</span>
|
||||
<span class="tab-label">회원가입</span>
|
||||
</a>
|
||||
<a class="tab-item" role="button" href="#modal-login" data-toggle="modal" data-title="<?php echo stripslashes($d['layout']['header_title'])?>">
|
||||
<span class="icon material-icons">input</span>
|
||||
<span class="tab-label">로그인</span>
|
||||
</a>
|
||||
</nav>
|
||||
<?php endif; ?>
|
||||
|
||||
|
||||
<div class="content bg-white">
|
||||
|
||||
<ul class="table-view bg-white mt-0 mb-2 border-top-0" id="drawer-menu">
|
||||
|
||||
<li class="table-view-cell">
|
||||
<a class="" data-href="<?php echo RW(0)?>" data-toggle="drawer-close">
|
||||
<div class="media-body">
|
||||
홈
|
||||
</div>
|
||||
</a>
|
||||
</li>
|
||||
|
||||
<?php getWidget('rc-default/site/menu/drawer-default',array('smenu'=>'0','limit'=>'2','link'=>'link','collid'=>'drawer-menu','accordion'=>'1','collapse'=>'1',))?>
|
||||
|
||||
<?php if ($d['layout']['main_type']!='postAllFeed'): ?>
|
||||
<li class="table-view-cell table-view-divider small">포스트</li>
|
||||
<li class="table-view-cell">
|
||||
<a data-toggle="goMypage" data-target="#page-post-allpost" data-start="#page-main" data-title="최신 포스트" data-url="/post">
|
||||
<span class="badge badge-default badge-inverted"><?php echo $my['num_post']?number_format($my['num_post']):'' ?></span>
|
||||
<div class="media-body">
|
||||
최신 포스트
|
||||
</div>
|
||||
</a>
|
||||
</li>
|
||||
<?php endif; ?>
|
||||
|
||||
<?php if ($my['uid']): ?>
|
||||
<li class="table-view-cell table-view-divider small">내 보관함</li>
|
||||
|
||||
<?php if ($d['post']['writeperm']): ?>
|
||||
<li class="table-view-cell">
|
||||
<a data-toggle="goMypage" data-target="#page-post-mypost" data-start="#page-main" data-title="내 포스트" data-url="<?php echo RW('mod=dashboard&page=post')?>">
|
||||
<span class="badge badge-default badge-inverted"><?php echo $my['num_post']?number_format($my['num_post']):'' ?></span>
|
||||
<div class="media-body">
|
||||
내 포스트
|
||||
</div>
|
||||
</a>
|
||||
</li>
|
||||
<?php endif; ?>
|
||||
|
||||
<li class="table-view-cell">
|
||||
<a data-toggle="goMypage" data-target="#page-post-mylist" data-start="#page-main" data-title="내 리스트" data-url="<?php echo RW('mod=dashboard&page=list')?>">
|
||||
<span class="badge badge-default badge-inverted"><?php echo $my['num_list']?number_format($my['num_list']):'' ?></span>
|
||||
<div class="media-body">
|
||||
내 리스트
|
||||
</div>
|
||||
</a>
|
||||
</li>
|
||||
<li class="table-view-cell">
|
||||
<a data-toggle="goMypage" data-target="#page-post-saved" data-start="#page-main" data-title="나중에 볼 포스트" data-url="<?php echo RW('mod=dashboard&page=saved')?>">
|
||||
<span class="badge badge-default badge-inverted"></span>
|
||||
<div class="media-body">
|
||||
나중에 볼 포스트
|
||||
</div>
|
||||
</a>
|
||||
</li>
|
||||
<li class="table-view-cell">
|
||||
<a data-toggle="goMypage" data-target="#page-post-liked" data-start="#page-main" data-title="좋아요 한 포스트">
|
||||
<span class="badge badge-default badge-inverted"></span>
|
||||
<div class="media-body">
|
||||
좋아요 한 포스트
|
||||
</div>
|
||||
</a>
|
||||
</li>
|
||||
<?php endif; ?>
|
||||
|
||||
<?php if ($my['admin']): ?>
|
||||
<li class="table-view-cell table-view-divider small">관리자 전용</li>
|
||||
<li class="table-view-cell">
|
||||
<a data-href="<?php echo $g['s'].'/?r='.$r.'&layoutPage=settings&prelayout=rc-starter/blank' ?>" data-toggle="drawer-close">
|
||||
레이아웃 편집
|
||||
</a>
|
||||
</li>
|
||||
<li class="table-view-cell">
|
||||
<a data-href="<?php echo $g['s'].'/?r='.$r.'&layoutPage=system&prelayout=rc-starter/blank' ?>" data-toggle="drawer-close" data-text="업데이트를 확인하는 중..">
|
||||
시스템 정보
|
||||
</a>
|
||||
</li>
|
||||
<?php endif; ?>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
0
layouts/rc-starter/_includes/drawer-right.php
Normal file
0
layouts/rc-starter/_includes/drawer-right.php
Normal file
17
layouts/rc-starter/_includes/footer.php
Normal file
17
layouts/rc-starter/_includes/footer.php
Normal file
@@ -0,0 +1,17 @@
|
||||
<footer class="footer">
|
||||
|
||||
<nav class="nav mb-2">
|
||||
<a class="nav-link" href="#page-site-page" data-start="#page-main" data-toggle="page" data-title="이용약관" data-id="policy" data-type="page" data-url="<?php echo RW('mod=policy') ?>" href="<?php echo RW('mod=policy') ?>">이용약관</a>
|
||||
<span class="divider">|</span>
|
||||
<a class="nav-link"href="#page-site-page" data-start="#page-main" data-toggle="page" data-title="개인정보취급방침" data-id="privacy" data-type="page" data-url="<?php echo RW('mod=privacy') ?>">개인정보취급방침</a>
|
||||
<span class="divider">|</span>
|
||||
<a class="nav-link" href="<?php echo $g['s']?>/?r=<?php echo $r?>&a=pcmode">PC화면</a>
|
||||
<span class="divider">|</span>
|
||||
<a class="nav-link" data-toggle="fullscreen">전체화면</a>
|
||||
</nav>
|
||||
|
||||
<p>© <?php echo $d['layout']['company_name']?$d['layout']['company_name']:'company' ?> <?php echo $date['year']?></p>
|
||||
|
||||
<!-- 스탠다드 라이센스 없이는 아래 킴스큐 로고를 삭제할 수 없습니다. -->
|
||||
<a href="https://kimsq.com" target="_blank" class="text-reset"><i class="kf kf-bi-01 text-reset"></i></a>
|
||||
</footer>
|
||||
26
layouts/rc-starter/_includes/header.php
Normal file
26
layouts/rc-starter/_includes/header.php
Normal file
@@ -0,0 +1,26 @@
|
||||
<header class="bar bar-nav bar-light px-0" data-snap-ignore="true">
|
||||
<a href="#drawer-left" data-toggle="drawer" class="icon icon-bars pull-left p-x-1" role="button"></a>
|
||||
|
||||
<?php if($my['uid'] && $d['layout']['header_noti']=='true'):?>
|
||||
<a class="icon pull-right p-r-1 pl-1" role="button"
|
||||
data-toggle="page"
|
||||
href="#page-noti-list"
|
||||
data-start="#page-main"
|
||||
data-url="<?php echo RW('mod=noti')?>">
|
||||
<span class="material-icons ">notifications_none</span>
|
||||
<span class="badge badge-pill badge-danger noti-status" data-role="noti-status"><?php echo $my['num_notice']==0?'':$my['num_notice']?></span>
|
||||
</a>
|
||||
<?php endif?>
|
||||
|
||||
<?php if($d['layout']['header_search']=='true'):?>
|
||||
<a class="icon material-icons pull-right px-1" role="button"
|
||||
data-toggle="modal"
|
||||
href="#modal-search"
|
||||
data-url="/search"
|
||||
data-title="검색">search</a>
|
||||
<?php endif?>
|
||||
|
||||
<h1 class="title" data-href="<?php echo RW(0)?>" data-text="새로고침">
|
||||
<?php echo $d['layout']['header_title']?stripslashes($d['layout']['header_title']):$_HS['name'] ?>
|
||||
</h1>
|
||||
</header>
|
||||
213
layouts/rc-starter/_js/component.js
Normal file
213
layouts/rc-starter/_js/component.js
Normal file
@@ -0,0 +1,213 @@
|
||||
var page_main = $('#page-main');
|
||||
|
||||
//사이트
|
||||
var page_site_info = $('#page-site-info');
|
||||
var page_site_page = $('#page-site-page');
|
||||
var modal_site_settings = $('#modal-site-settings'); //사이드
|
||||
|
||||
//게시판
|
||||
var page_bbs_list = $('#page-bbs-list'); // 게시판 목록
|
||||
var page_bbs_view = $('#page-bbs-view'); // 게시물 보기
|
||||
var page_bbs_write = $('#page-bbs-write'); // 게시물 작성
|
||||
var page_bbs_write_category = $('#page-bbs-write-category'); // 게시물 작성 > 카테고리 선택
|
||||
var page_bbs_write_attach = $('#page-bbs-write-attach'); // 게시물 작성 > 카테고리 선택
|
||||
var page_bbs_qnalist = $('#page-bbs-qnalist'); // 1:1 상담 게시판 목록
|
||||
var page_bbs_qnaview = $('#page-bbs-qnaview'); // 1:1 상담 게시판 보기
|
||||
var page_bbs_qnawrite = $('#page-bbs-qnawrite'); // 1:1 상담 게시판 쓰기
|
||||
|
||||
var popup_link_share = $('#popup-link-share'); //링크 공유
|
||||
var kakao_link_btn = $('#kakao-link-btn') //카카오톡 링크공유 버튼
|
||||
|
||||
$( document ).ready(function() {
|
||||
|
||||
page_site_info.on('hidden.rc.page', function (event) {
|
||||
var page = $(this);
|
||||
page.find('.content').scrollTop(0);
|
||||
});
|
||||
|
||||
// 일반 페이지 보기
|
||||
page_site_page.on('show.rc.page', function (event) {
|
||||
var button = $(event.relatedTarget);
|
||||
var id = button.attr('data-id');
|
||||
var type = button.attr('data-type');
|
||||
|
||||
page_site_page.find('[data-role="main"]').loader({ // 로더 출력
|
||||
position: "inside"
|
||||
});
|
||||
$.post(rooturl+'/?r='+raccount+'&m=site&a=get_postData',{
|
||||
id : id,
|
||||
_mtype : type
|
||||
},function(response){
|
||||
var result = $.parseJSON(response);
|
||||
var error=result.error;
|
||||
var article=result.article;
|
||||
if (error) {
|
||||
setTimeout(function(){
|
||||
history.back();
|
||||
page_site_page.find('[data-role="main"]').loader('hide');
|
||||
setTimeout(function(){ $.notify({message: error},{type: 'default'}); }, 400);
|
||||
return false
|
||||
}, 300);
|
||||
} else {
|
||||
page_site_page.find('[data-role="main"]').loader("hide");
|
||||
page_site_page.find('[data-role="main"]').html(article);
|
||||
Iframely('oembed[url]') // oembed 미디어 변환
|
||||
}
|
||||
});
|
||||
})
|
||||
|
||||
page_site_page.on('hidden.rc.page', function (event) {
|
||||
page_site_page.find('[data-role="main"]').html('');
|
||||
})
|
||||
|
||||
// // 게시판 목록 가져오기
|
||||
// page_bbs_list.on('show.rc.page', function (event) {
|
||||
// var button = $(event.relatedTarget);
|
||||
// var bid = button.attr('data-id');
|
||||
// var cat= button.attr('data-category');
|
||||
// var collapse = button.attr('data-collapse');
|
||||
// page_bbs_list.find('.content').loader({
|
||||
// position: "inside"
|
||||
// });
|
||||
// getBbsList(bid,cat,page_bbs_list,collapse)
|
||||
// })
|
||||
//
|
||||
// page_bbs_list.on('hidden.rc.page', function (event) {
|
||||
// page_bbs_list.find('.bar-header-secondary').addClass('d-none');
|
||||
// })
|
||||
//
|
||||
// page_bbs_list.find('[data-role="category"]').on('change', function () {
|
||||
// var option = $(this).find(':selected');
|
||||
// var bid = option.attr('data-bid');
|
||||
// var collapse = option.attr('data-collapse');
|
||||
// var cat = option.val();
|
||||
// getBbsList(bid,cat,page_bbs_list,collapse)
|
||||
// });
|
||||
//
|
||||
// // 게시물 보기
|
||||
// page_bbs_view.on('show.rc.page', function (event) {
|
||||
// var button = $(event.relatedTarget);
|
||||
// var uid = button.attr('data-uid');
|
||||
//
|
||||
// $.post(rooturl+'/?r='+raccount+'&m=bbs&a=get_postData',{
|
||||
// uid : uid,
|
||||
// markup_file : 'view_simple'
|
||||
// },function(response){
|
||||
// var result = $.parseJSON(response);
|
||||
// var error=result.error;
|
||||
// var article=result.article;
|
||||
// var mypost = result.mypost;
|
||||
// if (error) {
|
||||
// setTimeout(function(){
|
||||
// history.back();
|
||||
// page_bbs_view.find('.content').loader('hide');
|
||||
// setTimeout(function(){ $.notify({message: error},{type: 'default'}); }, 400);
|
||||
// return false
|
||||
// }, 300);
|
||||
// } else {
|
||||
// // page_bbs_view.find('.content').loader('hide');
|
||||
// page_bbs_view.find('[data-role="main"]').html(article);
|
||||
//
|
||||
// if (!mypost) page_bbs_view.find('[data-role="toolbar"]').remove()
|
||||
//
|
||||
// }
|
||||
// });
|
||||
// })
|
||||
|
||||
// 게시판(1:1상담) 목록 가져오기
|
||||
page_bbs_qnalist.on('show.rc.page', function (event) {
|
||||
var button = $(event.relatedTarget);
|
||||
var bid = button.attr('data-id');
|
||||
var cat= button.attr('data-category');
|
||||
var collapse = button.attr('data-collapse');
|
||||
page_bbs_qnalist.find('.content').loader({
|
||||
position: "inside"
|
||||
});
|
||||
getBbsList(bid,cat,page_bbs_qnalist,collapse)
|
||||
})
|
||||
|
||||
page_bbs_qnalist.on('hidden.rc.page', function (event) {
|
||||
page_bbs_qnalist.find('.bar-header-secondary').addClass('d-none');
|
||||
})
|
||||
|
||||
//링크 공유 팝업이 열릴때
|
||||
popup_link_share.on('shown.rc.popup', function (event) {
|
||||
var popup = $(this)
|
||||
var subject = popup.attr('data-subject');
|
||||
var review = popup.attr('data-review');
|
||||
var featured = popup.attr('data-featured');
|
||||
var link = popup.attr('data-link');
|
||||
var protocol = $(location).attr('protocol');
|
||||
var host = $(location).attr('host');
|
||||
var url = protocol+'//'+host+link;
|
||||
var featured_url = protocol+'//'+host+featured;
|
||||
var entry = popup.attr('data-entry');
|
||||
|
||||
popup.find('[data-role="youtube"]').attr('data-clipboard-text',url+'?ref=yt')
|
||||
popup.find('[data-role="instagram"]').attr('data-clipboard-text',url+'?ref=ig')
|
||||
popup.find('[data-role="facebook"]').attr('data-clipboard-text',url+'?ref=fb')
|
||||
popup.find('[data-role="band"]').attr('data-clipboard-text',url+'?ref=bd')
|
||||
popup.find('[data-role="naverblog"]').attr('data-clipboard-text',url+'?ref=nb')
|
||||
popup.find('[data-role="navercafe"]').attr('data-clipboard-text',url+'?ref=nc')
|
||||
popup.find('[data-role="kakaostory"]').attr('data-clipboard-text',url+'?ref=ks')
|
||||
popup.find('[data-role="twitter"]').attr('data-clipboard-text',url+'?ref=tt')
|
||||
popup.find('[data-role="email"]').attr('data-clipboard-text',url+'?ref=em')
|
||||
popup.find('[data-role="sms"]').attr('data-clipboard-text',url+'?ref=sm')
|
||||
popup.find('[data-role="etc"]').attr('data-clipboard-text',url)
|
||||
popup.find('[data-role="uid"]').attr('data-clipboard-text',entry)
|
||||
|
||||
//카카오톡 링크공유
|
||||
kakao_link_btn.off('click').click(function() {
|
||||
kakaoTalkSend({
|
||||
subject : subject,
|
||||
review : review,
|
||||
featured : featured_url,
|
||||
link : url,
|
||||
})
|
||||
});
|
||||
|
||||
})
|
||||
|
||||
popup_link_share.on('hidden.rc.popup', function (event) {
|
||||
var popup = popup_link_share;
|
||||
popup.removeAttr('data-link').removeAttr('data-subject').removeAttr('data-review').removeAttr('data-featured').removeAttr('data-entry');
|
||||
popup.find('[data-role]').removeAttr('data-clipboard-text');
|
||||
})
|
||||
|
||||
|
||||
modal_site_settings.on('shown.rc.modal', function (e) {
|
||||
var modal = $(this)
|
||||
modal.find('[name="main_post_req"]').val('');
|
||||
$.post(rooturl+'/?r='+raccount+'&m=site&a=get_sitecode',{
|
||||
},function(response,status){
|
||||
if(status=='success'){
|
||||
var result = $.parseJSON(response);
|
||||
var main_post_req=result.main_post_req;
|
||||
modal.find('[name="main_post_req"]').val(main_post_req);
|
||||
} else {
|
||||
alert(status);
|
||||
}
|
||||
});
|
||||
})
|
||||
|
||||
modal_site_settings.find('[data-act="submit"]').click(function(){
|
||||
var button = $(this)
|
||||
var modal = modal_site_settings;
|
||||
var main_post_req = modal.find('[name="main_post_req"]').val();
|
||||
button.addClass('disabled');
|
||||
setTimeout(function(){
|
||||
$.post(rooturl+'/?r='+raccount+'&m=site&a=regissitecode',{
|
||||
main_post_req : main_post_req
|
||||
},function(response,status){
|
||||
if(status=='success'){
|
||||
button.removeClass('disabled');
|
||||
$.notify({message: '저장 되었습니다.'},{type: 'default'});
|
||||
} else {
|
||||
alert(status);
|
||||
}
|
||||
});
|
||||
}, 200);
|
||||
});
|
||||
|
||||
|
||||
});
|
||||
430
layouts/rc-starter/_js/main.js
Normal file
430
layouts/rc-starter/_js/main.js
Normal file
@@ -0,0 +1,430 @@
|
||||
/**
|
||||
* --------------------------------------------------------------------------
|
||||
* kimsQ Rb v2.4 모바일 시작하기 레이아웃 스크립트 (rc-starter)
|
||||
* Homepage: http://www.kimsq.com
|
||||
* Licensed under RBL
|
||||
* Copyright 2019 redblock inc
|
||||
* --------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
var bar = $('.bar')
|
||||
var drawer_left = $('#drawer-left')
|
||||
var drawer_right = $('#drawer-right')
|
||||
|
||||
var noti_sort = 'uid';
|
||||
var noti_orderby = 'desc';
|
||||
var noti_recnum = '10';
|
||||
|
||||
function moreNOTI(container,totalPage){
|
||||
var noti_currentPage =1; // 처음엔 무조건 1, 아래 더보기 진행되면서 +1 증가
|
||||
container.infinitescroll({
|
||||
dataSource: function(helpers, callback){
|
||||
var noti_nextPage = parseInt(noti_currentPage)+1;
|
||||
console.log('noti_totalpage: '+totalPage)
|
||||
console.log('noti_currentPage: '+noti_currentPage)
|
||||
console.log('noti_sort: '+noti_sort)
|
||||
$.get(rooturl+'/?r='+raccount+'&m=notification&a=get_notiList',{
|
||||
page : noti_nextPage,
|
||||
sort: noti_sort,
|
||||
orderby: noti_orderby,
|
||||
recnum: noti_recnum,
|
||||
callMod: 'unread'
|
||||
},function(response) {
|
||||
var result = $.parseJSON(response);
|
||||
var error = result.error;
|
||||
var content = result.content;
|
||||
if(error) alert(result.error_comment);
|
||||
callback({ content: content });
|
||||
noti_currentPage++; // 현재 페이지 +1
|
||||
console.log(noti_currentPage+'페이지 불러옴')
|
||||
$('[data-plugin="timeago"]').timeago();
|
||||
if (totalPage<=noti_currentPage) {
|
||||
container.infinitescroll('end')
|
||||
console.log('더이상 불러올 알림이 없습니다.')
|
||||
}
|
||||
});
|
||||
},
|
||||
appendToEle : container.find('.table-view'),
|
||||
percentage : 95, // 95% 아래로 스크롤할때 다음 페이지 호출
|
||||
hybrid : false // true: 버튼형, false: 자동
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
function edgeEffect(container,pos,show) {
|
||||
var topEdge = $('#topEdge');
|
||||
var bottomEdge = $('#bottomEdge');
|
||||
var bar_nav_height = container.find('.bar-nav:not(.onscroll):not(.d-none)').height();
|
||||
var bar_standard_height = container.find('.bar-standard:not(.d-none)').height();
|
||||
var bar_header_secondary = container.find('.bar-header-secondary:not(.d-none)').height();
|
||||
var bar_tab_height = container.find('.bar-tab:not(.d-none)').height();
|
||||
var bar_footer_secondary_height = container.find('.bar-footer-secondary:not(.d-none)').height();
|
||||
var bar_footer_height = container.find('.bar-footer:not(.d-none)').height();
|
||||
var top_margin = bar_nav_height + bar_header_secondary + bar_standard_height;
|
||||
var bottom_margin = bar_tab_height + bar_footer_secondary_height + bar_footer_height;
|
||||
topEdge.css("opacity", "0");
|
||||
bottomEdge.css("opacity", "0");
|
||||
if (pos=='top' && show=='show') {
|
||||
topEdge.clearQueue();
|
||||
topEdge.css('top',top_margin?top_margin:0);
|
||||
topEdge.animate({height:'42px', opacity:'.5'}, 100);
|
||||
topEdge.animate({height:'0', opacity:'0'}, 600);
|
||||
setTimeout(function(){ topEdge.clearQueue() }, 680);
|
||||
}
|
||||
if (pos=='bottom' && show=='show') {
|
||||
bottomEdge.clearQueue();
|
||||
bottomEdge.css('bottom',bottom_margin?bottom_margin:0);
|
||||
bottomEdge.animate({height:'42px', opacity:'.5'}, 100);
|
||||
bottomEdge.animate({height:'0', opacity:'0'}, 600);
|
||||
setTimeout(function(){ bottomEdge.clearQueue() }, 680);
|
||||
}
|
||||
if (pos=='bottom' && show=='hide') {
|
||||
bottomEdge.css("opacity", "0");
|
||||
}
|
||||
}
|
||||
|
||||
function kakaoTalkSend(settings) {
|
||||
var title = settings.subject;
|
||||
var description = settings.review?settings.review:'';
|
||||
var imageUrl = settings.featured?settings.featured:'';
|
||||
var link = settings.link+'?ref=kt' // 카카오톡 파라미터 추가;
|
||||
|
||||
if (!kakao_jskey) {
|
||||
$.notify({message: '카카오 연동설정을 확인해주세요.'},{type: 'default'});
|
||||
return false
|
||||
}
|
||||
|
||||
Kakao.Link.sendDefault({
|
||||
objectType: 'feed',
|
||||
content: {
|
||||
title: title,
|
||||
description: description,
|
||||
imageUrl: imageUrl,
|
||||
link: {
|
||||
mobileWebUrl: link,
|
||||
webUrl: link
|
||||
}
|
||||
},
|
||||
buttons: [
|
||||
{
|
||||
title: '바로가기',
|
||||
link: {
|
||||
mobileWebUrl: link,
|
||||
webUrl: link
|
||||
}
|
||||
},
|
||||
]
|
||||
});
|
||||
}
|
||||
|
||||
function overScrollEffect(page){
|
||||
page.find('main.content').on('touchstart',function(event){
|
||||
page_startY = event.originalEvent.changedTouches[0].pageY;
|
||||
});
|
||||
page.find('main.content').on('touchmove',function(event){
|
||||
var page_moveY = event.originalEvent.changedTouches[0].pageY;
|
||||
var page_contentY = $(this).scrollTop();
|
||||
var tab_id = $(this).attr('data-tab');
|
||||
if (page_contentY === 0 && page_moveY > page_startY && !document.body.classList.contains('refreshing')) {
|
||||
if (page_moveY-page_startY>50) {
|
||||
edgeEffect(page,'top','show'); // 스크롤 상단 끝
|
||||
}
|
||||
}
|
||||
if( (page_moveY < page_startY) && ($(this).scrollTop() + $(this).innerHeight() >= $(this)[0].scrollHeight)) {
|
||||
if (page_startY-page_moveY>50) {
|
||||
edgeEffect(page.find('main.content'),'bottom','show'); // 스크롤 하단 끝
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
function pullToRefresh(page){
|
||||
page.find('.snap-content .content').on('touchstart',function(event){
|
||||
page_startY = event.originalEvent.changedTouches[0].pageY;
|
||||
});
|
||||
page.find('.snap-content .content').on('touchend',function(event){
|
||||
var page_endY=event.originalEvent.changedTouches[0].pageY;
|
||||
var page_contentY = $(this).scrollTop();
|
||||
if (page_contentY === 0 && page_endY > page_startY ) {
|
||||
if (page_endY-page_startY>150) {
|
||||
$.loader({ text: '새로고침' });
|
||||
location.reload();
|
||||
}
|
||||
}
|
||||
})
|
||||
|
||||
}
|
||||
|
||||
$('[data-plugin="timeago"]').timeago(); // 상대시간 플러그인 초기화
|
||||
|
||||
$(document).ready(function() {
|
||||
|
||||
|
||||
overScrollEffect(page_main.find('.snap-content'));
|
||||
// pullToRefresh(page_main);
|
||||
|
||||
$('[data-toggle="fullscreen"]').click(function() {
|
||||
toggleFullScreen()
|
||||
});
|
||||
|
||||
$('[data-open="newPost"]').click(function() {
|
||||
var url = $(this).attr('data-url');
|
||||
var start = $(this).attr('data-start');
|
||||
drawer_left.drawer('hide')
|
||||
|
||||
if (start=='#page-main') {
|
||||
setTimeout(function(){
|
||||
$('#popup-post-newPost').popup({
|
||||
title :'작업선택',
|
||||
url : 'post/write'
|
||||
}).attr('data-start',start);
|
||||
}, 350);
|
||||
} else {
|
||||
setTimeout(function(){
|
||||
$('#page-post-allpost').page({
|
||||
start : '#page-main',
|
||||
title : '최신 포스트'
|
||||
});
|
||||
setTimeout(function(){
|
||||
$('#popup-post-newPost').popup({
|
||||
title :'작업선택',
|
||||
url : 'post/write'
|
||||
}).attr('data-start',start);
|
||||
}, 350);
|
||||
}, 300);
|
||||
}
|
||||
});
|
||||
|
||||
$('[data-toggle="goMypage"]').click(function() {
|
||||
var url = $(this).attr('data-url');
|
||||
var target = $(this).attr('data-target');
|
||||
var start = $(this).attr('data-start');
|
||||
var title = $(this).attr('data-title');
|
||||
drawer_left.drawer('hide')
|
||||
setTimeout(function(){
|
||||
$(target).page({
|
||||
title :title,
|
||||
start : start,
|
||||
url : url
|
||||
});
|
||||
}, 300);
|
||||
});
|
||||
|
||||
if(navigator.userAgent.indexOf("Mac") > 0) {
|
||||
$("body").addClass("mac-os");
|
||||
}
|
||||
|
||||
putCookieAlert('site_common_result') // 로그인/로그아웃 알림 메시지 출력
|
||||
|
||||
$(document).on('tap','[data-toggle="changeModal"]', function (e) {
|
||||
var $this = $(this)
|
||||
var href = $this.attr('href')
|
||||
var type = $this.attr('data-type')
|
||||
var $target = $($this.attr('data-target') || (href && href.replace(/.*(?=#[^\s]+$)/, '')))
|
||||
var $start = $($this.closest('.modal'))
|
||||
if ($this.is('a')) e.preventDefault()
|
||||
$start.modal('hide').removeClass('active')
|
||||
setTimeout(function(){ $target.modal('show'); }, 100);
|
||||
});
|
||||
|
||||
//modal 로그인 - 실행
|
||||
$('#modal-login').find('form').submit( function(e){
|
||||
e.preventDefault();
|
||||
e.stopPropagation();
|
||||
var form = $(this)
|
||||
siteLogin(form)
|
||||
});
|
||||
|
||||
// modal 로그인이 닫혔을대
|
||||
$('#modal-login').on('hidden.rc.modal', function () {
|
||||
$(this).find('input').removeClass('is-invalid') // 에러흔적 초기화
|
||||
})
|
||||
|
||||
$("#modal-login").find('input').keyup(function() {
|
||||
$(this).removeClass('is-invalid') //에러 발생후 다시 입력 시도시에 에러 흔적 초기화
|
||||
});
|
||||
|
||||
// 로그아웃
|
||||
$('[data-act="logout"]').tap(function(){
|
||||
history.back(); // 팝업닫기
|
||||
$.loader({ text: "잠시만 기다리세요..." });
|
||||
getIframeForAction('');
|
||||
setTimeout(function(){
|
||||
frames.__iframe_for_action__.location.href = '/?r=home&m=site&a=logout';
|
||||
}, 300);
|
||||
});
|
||||
|
||||
// 드로어(사이드메뉴영역) 닫기
|
||||
$('body').on('tap click','[data-toggle="drawer-close"]',function(){
|
||||
drawer_left.drawer('hide')
|
||||
drawer_right.drawer('hide')
|
||||
});
|
||||
|
||||
//검색 모달이 열렸을때
|
||||
$('#modal-search').on('shown.rc.modal', function () {
|
||||
setTimeout(function() {
|
||||
$('#search-input').val('').focus();
|
||||
}, 50);
|
||||
|
||||
$('#search-input').autocomplete({
|
||||
lookup: function (query, done) {
|
||||
|
||||
$.getJSON(rooturl+"/?m=tag&a=searchtag", {q: query}, function(res){
|
||||
var sg_tag = [];
|
||||
var data_arr = res.taglist.split(',');//console.log(data.usernames);
|
||||
$.each(data_arr,function(key,tag){
|
||||
var tagData = tag.split('|');
|
||||
var keyword = tagData[0];
|
||||
var hit = tagData[1];
|
||||
sg_tag.push({"value":keyword,"data":hit});
|
||||
});
|
||||
var result = {
|
||||
suggestions: sg_tag
|
||||
};
|
||||
done(result);
|
||||
});
|
||||
},
|
||||
onSelect: function (suggestion) {
|
||||
if ($('#search-input').val().length >= 1) {
|
||||
$( "#modal-search-form" ).submit();
|
||||
}
|
||||
}
|
||||
});
|
||||
})
|
||||
|
||||
// 검색버튼과 검색어 초기화 버튼 동적 출력
|
||||
$('#search-input').on('keyup', function(event) {
|
||||
var modal = $('#modal-search')
|
||||
modal.find('[data-role="keyword-reset"]').addClass("hidden"); // 검색어 초기화 버튼 숨김
|
||||
modal.find("#drawer-search-footer").addClass('hidden') //검색풋터(검색버튼 포함) 숨김
|
||||
if ($(this).val().length >= 2) {
|
||||
modal.find('[data-role="keyword-reset"]').removeClass("hidden");
|
||||
}
|
||||
});
|
||||
|
||||
// 검색어 입력필드 초기화
|
||||
$('body').on('tap click','[data-act="keyword-reset"]',function(){
|
||||
var modal = $('#modal-search')
|
||||
modal.find("#search-input").val('').autocomplete('clear'); // 입력필드 초기화
|
||||
setTimeout(function(){
|
||||
modal.find("#search-input").focus(); // 입력필드 포커싱
|
||||
modal.find('[data-role="keyword-reset"]').addClass("hidden"); // 검색어 초기화 버튼 숨김
|
||||
}, 10);
|
||||
});
|
||||
|
||||
// 바로가기
|
||||
$(document).on('tap','[data-toggle="move"]',function(event){
|
||||
var button = $(this);
|
||||
var target = button.attr('data-target');
|
||||
var page = button.attr('data-page')?button.attr('data-page'):'body'; // 컨테이너
|
||||
var top = $(target).offset().top; // 타켓의 위치값
|
||||
var bar_height = $(page).find('.bar-nav').height(); // bar-nav의 높이값
|
||||
$(page).find('.content').animate({ scrollTop: (top-bar_height)-15 }, 300);
|
||||
});
|
||||
|
||||
// 검색모달이 닫혔을때
|
||||
$('#modal-search').on('hidden.rc.modal', function () {
|
||||
var modal = $(this)
|
||||
$('#search-input').autocomplete('clear');
|
||||
$('.autocomplete-suggestions').remove();
|
||||
modal.find('[data-role="keyword-reset"]').addClass("hidden"); // 검색어 초기화 버튼 숨김'
|
||||
})
|
||||
|
||||
//외부서비스 사용자 인증요청
|
||||
$('body').on('tap click','[data-connect]',function(){
|
||||
var provider = $(this).data('connect')
|
||||
|
||||
// /core/engine/cssjs.engine.php 참고
|
||||
if (provider=='naver') var target = connect_naver
|
||||
if (provider=='kakao') var target = connect_kakao
|
||||
if (provider=='google') var target = connect_google
|
||||
if (provider=='facebook') var target = connect_facebook
|
||||
if (provider=='instagram') var target = connect_instagram
|
||||
var referer = window.location.href // 연결후, 원래 페이지 복귀를 위해
|
||||
|
||||
$(".content").loader({
|
||||
text: "연결 중...",
|
||||
position: "overlay"
|
||||
});
|
||||
|
||||
$.post(rooturl+'/?r='+raccount+'&m=connect&a=save_referer',{
|
||||
referer : referer
|
||||
},function(response,status){
|
||||
|
||||
if(status=='success'){
|
||||
setTimeout(function() {
|
||||
$(".content").loader("hide");
|
||||
document.location = target;
|
||||
}, 500);
|
||||
}else{
|
||||
alert(status);
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
// 페이지 이동
|
||||
$(document).on('tap','[data-href]',function(){
|
||||
var text = $(this).attr("data-text")?$(this).attr("data-text"):'이동중..';
|
||||
var url = $(this).attr("data-href");
|
||||
if ($(this).attr("data-toggle")=='drawer-close') {
|
||||
drawer_left.drawer('hide')
|
||||
drawer_right.drawer('hide')
|
||||
setTimeout(function(){
|
||||
$.loader({ text: text });
|
||||
location.href = url;
|
||||
}, 200);
|
||||
} else {
|
||||
$.loader({ text: text });
|
||||
location.href = url;
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
//링크복사
|
||||
var clipboard = new ClipboardJS('[data-toggle="linkCopy"]');
|
||||
$(document).on('tap','[data-toggle="linkCopy"]',function(){
|
||||
setTimeout(function(){
|
||||
$.notify({message: '링크가 복사 되었습니다.'},{type: 'default'});
|
||||
}, 300);
|
||||
});
|
||||
|
||||
$(document).on('click','[data-toggle="linkShare"]',function(){
|
||||
var ele = $(this)
|
||||
var sbj = ele.attr('data-subject'); // 버튼에서 제목 추출
|
||||
var desc = ele.attr('data-desc'); // 버튼에서 요약설명 추출
|
||||
var featured = ele.attr('data-featured');
|
||||
var link = ele.attr('data-link');
|
||||
var title = ele.attr('data-title')?ele.attr('data-title'):'링크 공유';
|
||||
var hback = ele.attr('data-hback');
|
||||
var entry = ele.attr('data-entry');
|
||||
var delay = 10;
|
||||
|
||||
if (hback) {
|
||||
history.back();
|
||||
delay = 100;
|
||||
}
|
||||
setTimeout(function(){
|
||||
if (ios_Token) { // iOS 네이티브앱 일 경우
|
||||
shareNative(sbj,link)
|
||||
} else if (navigator.share === undefined) { //webshare.api가 지원되지 않는 환경
|
||||
|
||||
popup_link_share.attr('data-link',link).attr('data-subject',sbj).attr('data-review',desc).attr('data-featured',featured).attr('data-entry',entry);
|
||||
setTimeout(function(){
|
||||
popup_link_share.popup({
|
||||
title : title
|
||||
})
|
||||
}, 300);
|
||||
|
||||
} else {
|
||||
navigator.share({
|
||||
title: sbj,
|
||||
text: desc,
|
||||
url: link,
|
||||
})
|
||||
.then(() => console.log('성공적으로 공유되었습니다.'))
|
||||
.catch((error) => console.log('공유에러', error));
|
||||
}
|
||||
}, delay);
|
||||
});
|
||||
|
||||
});
|
||||
296
layouts/rc-starter/_js/noti.js
Normal file
296
layouts/rc-starter/_js/noti.js
Normal file
@@ -0,0 +1,296 @@
|
||||
/**
|
||||
* --------------------------------------------------------------------------
|
||||
* FCM(Firebase 클라우드 메시징)을 활용한 포그라운드 알림 처리 (모바일 전용)
|
||||
* 참조코드 : https://github.com/firebase/quickstart-js/tree/master/messaging
|
||||
* Licensed under an Apache-2 license.
|
||||
* Firebase Quickstart Samples for Web https://firebase.google.com
|
||||
* --------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
firebase.initializeApp({'messagingSenderId': fcmSenderId});
|
||||
|
||||
const messaging = firebase.messaging();
|
||||
|
||||
messaging.usePublicVapidKey(fcmVAPID); //FCM 웹 푸시 인증서 키쌍(VAPID)
|
||||
|
||||
const permissionDivId = 'permission_div';
|
||||
const permissionAlertId = 'permission_alert';
|
||||
const tokenDivId = 'token_div';
|
||||
const pushSettingId = 'push_setting';
|
||||
const pushDisabledId = 'push_disabled';
|
||||
const popupNoti = $('#popup-noti');
|
||||
|
||||
if (isNewUser(memberid)) {
|
||||
console.log('새 사용자로 로그인 되었습니다.')
|
||||
deleteToken() // 기존 토큰 삭제
|
||||
window.localStorage.clear(); // 로컬 스토리지 초기화
|
||||
}
|
||||
|
||||
// 인스턴스 ID 토큰이 업데이트되면 콜백이 시작됩니다.
|
||||
messaging.onTokenRefresh(function() {
|
||||
messaging.getToken().then(function(refreshedToken) {
|
||||
console.log('토큰이 새로고침 되었습니다.'); // 새 인스턴스 ID 토큰이 아직 전송되지 않았 음을 나타냅니다.
|
||||
setTokenSentToServer(false);
|
||||
sendTokenToServer(refreshedToken); // 인스턴스 ID 토큰을 앱 서버로 전송합니다.
|
||||
resetNotiUI(); // 새로운 인스턴스 ID 토큰을 표시하고 모든 이전 메시지의 UI를 지웁니다.
|
||||
}).catch(function(err) {
|
||||
console.log('새로 변경된 토큰을 검색 할 수 없습니다. ', err);
|
||||
});
|
||||
});
|
||||
|
||||
// - 앱에 포커스가 있는 동안 메시지가 수신됩니다.
|
||||
messaging.onMessage(function(payload) {
|
||||
console.log('메시지가 도착했습니다. ', payload);
|
||||
|
||||
var result = JSON.stringify(payload, null, 2);
|
||||
var msg = JSON.parse(result);
|
||||
var title=msg.notification.title;
|
||||
var mbody=msg.notification.body;
|
||||
var icon=msg.notification.icon;
|
||||
var _mbody = mbody.replace(/(\n|\r\n)/g, '<br>');
|
||||
var noti_badge = $('[data-role="noti-status"]')
|
||||
|
||||
$.post(rooturl+'/?r='+raccount+'&m=notification&a=get_notiNum_ajax',function(response){
|
||||
var result = $.parseJSON(response);
|
||||
var noti_badge_num=result.num;
|
||||
noti_badge.text(noti_badge_num)
|
||||
});
|
||||
|
||||
$.notify({
|
||||
icon: icon,
|
||||
title: title,
|
||||
message: mbody
|
||||
}, {
|
||||
type: 'media',
|
||||
delay: 3000,
|
||||
icon_type: 'image',
|
||||
template: '<div data-notify="container" class="col-xs-11 col-sm-3 alert alert-{0}" role="alert">' +
|
||||
'<img data-notify="icon" class="img-circle pull-left">' +
|
||||
'<span data-notify="title">{1}</span>' +
|
||||
'<span data-notify="message">{2}</span>' +
|
||||
'</div>'
|
||||
});
|
||||
|
||||
|
||||
});
|
||||
|
||||
function resetNotiUI() {
|
||||
clearMessages();
|
||||
showToken('처리중...');
|
||||
setMemberId(memberid) // 로그인 사용자의 아이디를 로컬 스토리지에 저장
|
||||
|
||||
// Get Instance ID token. Initially this makes a network call, once retrieved
|
||||
// subsequent calls to getToken will return from cache. 이후의 getToken의 호출은 캐쉬로부터 돌아옵니다.
|
||||
messaging.getToken().then(function(currentToken) {
|
||||
if (currentToken) {
|
||||
sendTokenToServer(currentToken);
|
||||
updateUIForPushEnabled(currentToken);
|
||||
} else {
|
||||
|
||||
if (!isRequestPermission()) {
|
||||
setRequestPermission(false)
|
||||
}
|
||||
console.log('사용할수 있는 인스턴스 ID 토큰이 없습니다. 알림권한을 요청하십시오.');
|
||||
setTimeout(function(){
|
||||
updateUIForPushPermissionRequired(); // 알림권한요청 UI 를 보여줌.
|
||||
}, 1000);
|
||||
setTokenSentToServer(false);
|
||||
}
|
||||
}).catch(function(err) {
|
||||
console.log('알림권한이 없거나 토큰을 검색하는 중 오류가 발생했습니다. ', err);
|
||||
updateUIForPushDisabled()
|
||||
setRequestPermission(false)
|
||||
});
|
||||
}
|
||||
|
||||
function showToken(currentToken) {
|
||||
// 콘솔과 페이지에서 토큰을 보여줌
|
||||
var tokenElement = document.querySelector('.token');
|
||||
if (tokenElement) {
|
||||
tokenElement.textContent = currentToken;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// Rb2에 인스턴스 ID 토큰을 보내세요.:
|
||||
// - 이 앱으로 메시지를 다시 보내세요.
|
||||
// - 주제 토큰 구독 / 탈퇴
|
||||
function sendTokenToServer(currentToken) {
|
||||
if (!isTokenSentToServer()) {
|
||||
console.log('Rb2 서버에 토큰 보내기 중 ...');
|
||||
|
||||
var agent = navigator.userAgent, match;
|
||||
var browser, version;
|
||||
|
||||
if((match = agent.match(/MSIE ([0-9]+)/)) || (match = agent.match(/Trident.*rv:([0-9]+)/))) browser = 'Internet Explorer';
|
||||
else if(match = agent.match(/Chrome\/([0-9]+)/)) browser = 'Chrome';
|
||||
else if(match = agent.match(/Firefox\/([0-9]+)/)) browser = 'Firefox';
|
||||
else if(match = agent.match(/Safari\/([0-9]+)/)) browser = 'Safari';
|
||||
else if((match = agent.match(/OPR\/([0-9]+)/)) || (match = agent.match(/Opera\/([0-9]+)/))) browser = 'Opera';
|
||||
else browser = 'Unknown';
|
||||
|
||||
if(browser !== 'Unknown') version = match[1];
|
||||
|
||||
$.post(rooturl+'/?r='+raccount+'&m=notification&a=save_token',{
|
||||
browser : browser,
|
||||
version : version,
|
||||
token : currentToken
|
||||
},function(response){
|
||||
var result = $.parseJSON(response);
|
||||
console.log('토큰이 저장되었습니다.' + currentToken)
|
||||
});
|
||||
setTokenSentToServer(true);
|
||||
} else {
|
||||
console.log('토큰이 이미 서버에 전송 되었으므로 토큰이 변경되지 않는한 재전송되지 않습니다.');
|
||||
}
|
||||
}
|
||||
|
||||
function isTokenSentToServer() {
|
||||
return window.localStorage.getItem('sentToServer') == 1;
|
||||
}
|
||||
|
||||
function setTokenSentToServer(sent) {
|
||||
window.localStorage.setItem('sentToServer', sent ? 1 : 0);
|
||||
}
|
||||
|
||||
function isRequestPermission() {
|
||||
return window.localStorage.getItem('setRequestPermission') == 1;
|
||||
}
|
||||
|
||||
function setRequestPermission(allow) {
|
||||
window.localStorage.setItem('setRequestPermission', allow ? 1 : 0);
|
||||
}
|
||||
|
||||
function isNewUser(memberid) {
|
||||
return window.localStorage.getItem('setMemberId') != memberid;
|
||||
}
|
||||
|
||||
function setMemberId(memberid) {
|
||||
window.localStorage.setItem('setMemberId', memberid ? memberid : 0);
|
||||
}
|
||||
|
||||
function showHideDiv(divId, show) {
|
||||
const div = document.querySelector('#' + divId);
|
||||
|
||||
if (div) {
|
||||
if (show) {
|
||||
div.style = 'display: visible';
|
||||
} else {
|
||||
div.style = 'display: none';
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function showHideSheet(divId, show) {
|
||||
const sheet = $('#' + divId);
|
||||
if (sheet) {
|
||||
if (show) {
|
||||
sheet.sheet('show')
|
||||
} else {
|
||||
// sheet.sheet('hide')
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function showHidePopup(divId, show) {
|
||||
const popup = $('#' + divId);
|
||||
if (popup) {
|
||||
if (show) {
|
||||
popup.popup('show')
|
||||
} else {
|
||||
// popup.popup('hide')
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function requestPermission() {
|
||||
console.log('권한 요청 중 ...');
|
||||
messaging.requestPermission().then(function() {
|
||||
var nt_web = ''; //알림수신
|
||||
var nt_fcm = '1'; //푸시 알림수신
|
||||
console.log('알림권한이 부여 되었습니다.');
|
||||
showHideSheet(permissionAlertId, false);
|
||||
setTimeout(function(){ $.notify({message: '알림권한이 부여 되었습니다.'}); }, 500);
|
||||
resetNotiUI();
|
||||
|
||||
$.post(rooturl+'/?r='+raccount+'&m=notification&a=notice_config_user',{
|
||||
mobile : true,
|
||||
sendAjax : true,
|
||||
nt_web : nt_web,
|
||||
nt_email : nt_email,
|
||||
nt_fcm : nt_fcm
|
||||
},function(response){
|
||||
var result = $.parseJSON(response);
|
||||
var error=result.error;
|
||||
if (!error) console.log('웹알림/푸시알림 수신처리 되었습니다.')
|
||||
});
|
||||
|
||||
}).catch(function(err) {
|
||||
var nt_fcm = '';
|
||||
showHidePopup(permissionAlertId, false);
|
||||
showHideDiv(permissionDivId, false);
|
||||
showHideDiv(pushDisabledId, true);
|
||||
console.log('알림을 실행 할수있는 권한이 없습니다.', err);
|
||||
$.notify({message: '알림 권한이 차단 되었습니다.'},{type: 'danger'});
|
||||
});
|
||||
}
|
||||
|
||||
function deleteToken() {
|
||||
// 인스턴스 ID 토큰 삭제.
|
||||
// [START delete_token]
|
||||
messaging.getToken().then(function(currentToken) {
|
||||
messaging.deleteToken(currentToken).then(function() {
|
||||
console.log('토큰이 삭제 되었습니다.');
|
||||
setTokenSentToServer(false);
|
||||
// [START_EXCLUDE]
|
||||
// 토큰이 삭제되면 관련 UI를 업데이트 합니다..
|
||||
resetNotiUI();
|
||||
// [END_EXCLUDE]
|
||||
}).catch(function(err) {
|
||||
console.log('토큰을 삭제할 수 없습니다. ', err);
|
||||
});
|
||||
// [END delete_token]
|
||||
}).catch(function(err) {
|
||||
console.log('인스턴스 ID 토큰을 가져 오는 중 오류가 발생했습니다. ', err);
|
||||
});
|
||||
}
|
||||
|
||||
// 메시지 내용을 초기화 합니다.
|
||||
function clearMessages() {}
|
||||
|
||||
function updateUIForPushEnabled(currentToken) {
|
||||
$('#'+permissionAlertId).removeClass('active')
|
||||
$('.backdrop').remove()
|
||||
showHideDiv(tokenDivId, true);
|
||||
showHideDiv(pushSettingId, true);
|
||||
showHideDiv(permissionDivId, false);
|
||||
showToken(currentToken);
|
||||
}
|
||||
|
||||
function updateUIForPushDisabled() {
|
||||
showHideDiv(pushDisabledId, true);
|
||||
showHideDiv(pushSettingId, false);
|
||||
showHidePopup(permissionAlertId, false);
|
||||
}
|
||||
|
||||
function updateUIForPushPermissionRequired() {
|
||||
if (!isRequestPermission()) {
|
||||
console.log('브라우저 알림 권한요청 이력이 없음')
|
||||
if (!nt_web) {
|
||||
setTimeout(function(){ showHideSheet(permissionAlertId, true); }, 2000);
|
||||
} else {
|
||||
console.log('사용자의 모든 알림수신을 차단하였습니다.')
|
||||
}
|
||||
} else {
|
||||
console.log('브라우저 알림 권한요청 이력이 있음')
|
||||
showHideDiv(permissionDivId, true);
|
||||
}
|
||||
}
|
||||
|
||||
//알림권한 요청 sheet가 닫혔을때(나중에 설정)
|
||||
$('#permission_alert').on('hidden.rc.sheet', function () {
|
||||
setRequestPermission(true) // 요청이력을 로컬 스토리지에 저장하여 이후에 띄우지 않음
|
||||
showHideDiv(permissionDivId, true);
|
||||
})
|
||||
|
||||
resetNotiUI();
|
||||
574
layouts/rc-starter/_js/settings.js
Normal file
574
layouts/rc-starter/_js/settings.js
Normal file
@@ -0,0 +1,574 @@
|
||||
function setWidgetConfig(id,name,path,wdgvar,area) {
|
||||
var page_widget_view = $('#page-widget-view');
|
||||
|
||||
page_widget_view.find('[data-role="form"]').html('');
|
||||
|
||||
page_widget_view.page({
|
||||
start: '#page-widget-list'
|
||||
});
|
||||
|
||||
if (!wdgvar) var mod = 'add';
|
||||
else var mod = 'edit';
|
||||
|
||||
page_widget_view.find('[data-act="save"]').attr('data-mod',mod).attr('data-area',area);
|
||||
|
||||
setTimeout(function(){
|
||||
$.post(rooturl+'/?r='+raccount+'&m=site&a=get_widgetConfig',{
|
||||
name : name,
|
||||
widget : path,
|
||||
wdgvar : wdgvar,
|
||||
area : area
|
||||
},function(response,status){
|
||||
if(status=='success'){
|
||||
var result = $.parseJSON(response);
|
||||
var page=result.page;
|
||||
var widget_name=result.widget_name;
|
||||
var widget=result.widget;
|
||||
if (!page) {
|
||||
history.back()
|
||||
setTimeout(function(){ $.notify({message: '위젯설정을 확인해주세요.'},{type: 'default'});}, 400);
|
||||
resetPage()
|
||||
return false
|
||||
}
|
||||
page_widget_view.attr('data-id',id);
|
||||
page_widget_view.attr('data-name',name);
|
||||
page_widget_view.attr('data-path',path);
|
||||
page_widget_view.find('[data-role="title"]').text(widget_name);
|
||||
page_widget_view.find('[data-role="form"]').html(page);
|
||||
|
||||
} else {
|
||||
$.notify({message: '위젯설정을 확인해주세요.'},{type: 'danger'});
|
||||
return false
|
||||
}
|
||||
});
|
||||
}, 100);
|
||||
|
||||
}
|
||||
|
||||
function resetPage() {
|
||||
$('#page-widget-list [data-role="widgetConfig"]').addClass('d-none');
|
||||
$('#page-widget-list [data-role="addWidget"]').removeClass('active');
|
||||
$('#modal-widget-selector [name="widget_selector"]').prop('selectedIndex',0);
|
||||
$('#page-widget-list [data-role="widgetPage"] [data-role="item"]').removeClass('active shadow-sm')
|
||||
}
|
||||
|
||||
var page_layout_settings = $('#page-layout-settings')
|
||||
var page_widget_list = $('#page-widget-list');
|
||||
var page_widget_view = $('#page-widget-view');
|
||||
var page_widget_makebbs = $('#page-widget-makebbs');
|
||||
var page_widget_makelist = $('#page-widget-makelist');
|
||||
var modal_widget_selector = $('#modal-widget-selector');
|
||||
var sheet_layoutreset_confirm = $('#sheet-layoutreset-confirm');
|
||||
|
||||
$('#layout-settings-panels').on('show.rc.collapse', function (e) {
|
||||
var target = $(e.target)
|
||||
var cell = target.closest('.table-view-cell')
|
||||
$(this).find('[data-toggle="collapse"]').removeClass('bg-faded');
|
||||
cell.find('[data-toggle="collapse"]').addClass('bg-faded')
|
||||
})
|
||||
|
||||
page_layout_settings.find('[data-act="submit"]').click(function(){
|
||||
$(this).attr('disabled', true );
|
||||
setTimeout(function(){
|
||||
page_layout_settings.find('form').submit()
|
||||
}, 500);
|
||||
});
|
||||
|
||||
page_layout_settings.find('[name="layout_main_type"]').change(function(){
|
||||
var type = $(this).val();
|
||||
var button = page_layout_settings.find('[data-target="#page-widget-list"]').closest('.table-view');
|
||||
if (type=='widget') button.removeClass('d-none');
|
||||
else button.addClass('d-none');
|
||||
});
|
||||
|
||||
page_widget_list.find('[data-act="submit"]').click(function(){
|
||||
$(this).attr("disabled", true);
|
||||
var widgets=$(document).find('#page-widget-list input[name="widget_members[]"]').map(function(){return $(this).val()}).get();
|
||||
var new_widgets='';
|
||||
if(widgets){
|
||||
for(var i=0;i<widgets.length;i++) {
|
||||
new_widgets+=widgets[i];
|
||||
}
|
||||
page_widget_list.find('input[name="main_widgets"]').val(new_widgets);
|
||||
}
|
||||
setTimeout(function(){
|
||||
page_widget_list.find('[name="layoutMainPage"]').submit();
|
||||
resetPage(); // 상태초기화
|
||||
page_widget_list.find('[data-role="reset"]').removeClass('d-none')
|
||||
}, 500);
|
||||
});
|
||||
|
||||
page_widget_list.on('show.rc.page', function (event) {
|
||||
var page = $(this)
|
||||
|
||||
setTimeout(function(){
|
||||
$.post(rooturl+'/?r='+raccount+'&m=site&a=get_widgetPage',{
|
||||
page : 'main',
|
||||
layout : 'rc-starter'
|
||||
},function(response,status){
|
||||
if(status=='success'){
|
||||
var result = $.parseJSON(response);
|
||||
var list=result.list;
|
||||
var layoutPageVarForSite=result.layoutPageVarForSite;
|
||||
|
||||
page.find('[data-role="widgetPage"]').html(list);
|
||||
|
||||
if (layoutPageVarForSite) page.find('[data-role="reset"]').removeClass('d-none');
|
||||
else page.find('[data-role="reset"]').addClass('d-none');
|
||||
|
||||
//순서변경
|
||||
page.find('[data-plugin="sortable"] ol').sortable({
|
||||
axis: 'y',
|
||||
cancel: 'button',
|
||||
delay: 250,
|
||||
placeholder: 'ui-state-highlight'
|
||||
});
|
||||
page.find('[data-plugin="sortable"] ol').disableSelection();
|
||||
|
||||
} else {
|
||||
alert('위젯설정을 확인해주세요.')
|
||||
return false
|
||||
}
|
||||
});
|
||||
}, 200);
|
||||
|
||||
})
|
||||
|
||||
page_widget_list.on('hidden.rc.page', function (event) {
|
||||
var page = $(this)
|
||||
page.find('[data-role="widgetPage"]').html('');
|
||||
})
|
||||
|
||||
page_widget_view.on('click','[data-act="save"]',function() {
|
||||
var name = $(document).find('#page-widget-view').attr('data-name');
|
||||
var _title = $(document).find('#page-widget-view [data-role="widgetConfig"] [name="title"]').val();
|
||||
var title_placeholder = $(document).find('#page-widget-view [data-role="widgetConfig"] [name="title"]').attr('placeholder');
|
||||
var path = $(document).find('#page-widget-view').attr('data-path');
|
||||
var id = $(document).find('#page-widget-view').attr('data-id');
|
||||
var mod = $(this).attr('data-mod');
|
||||
var area = $(this).attr('data-area');
|
||||
|
||||
$(this).attr('disabled', true);
|
||||
|
||||
var title = _title?_title:title_placeholder;
|
||||
if (!title) title = name;
|
||||
|
||||
$(document).find('[data-role="widgetPage"] .card').removeClass('animated bounceIn delay-3')
|
||||
|
||||
var widget_var = id+'^'+title+'^'+path+'^';
|
||||
|
||||
$('#page-widget-view [data-role="widgetConfig"] [name]').each(function(index){
|
||||
var _name = $(this).attr('name');
|
||||
var _var = $(this).val()?$(this).val():'';
|
||||
if (_name=='title' && !_var ) _var = $(this).attr('placeholder');
|
||||
widget_var += _name+'='+_var+',';
|
||||
});
|
||||
|
||||
setTimeout(function(){
|
||||
history.back();
|
||||
resetPage();
|
||||
if (mod=='add') {
|
||||
var box = '<li class="card bg-white round-0 position-relative text-muted text-xs-center ui-sortable-handle animated fadeInUp delay-3" data-name="'+name+'" data-path="'+path+'" data-role="item" id="'+id+'">'+
|
||||
'<a data-act="remove" title="삭제" role="button" class="position-absolute btn btn-link text-muted border-0" style="right:.5rem;top:50%;margin-top: -.92rem;"><i class="fa fa-times" aria-hidden="true"></i></a>'+
|
||||
'<div data-act="move" class="position-absolute btn btn-link text-muted border-0" style="left:.5rem;top:50%;margin-top: -.92rem;"><i class="fa fa-arrows" aria-hidden="true"></i></div>'+
|
||||
'<input type="hidden" name="widget_members[]" value="['+widget_var+']">'+
|
||||
'<button type="button" class="btn btn-link btn-lg text-reset" data-act="edit">'+title+'</button>'+
|
||||
'</li>';
|
||||
|
||||
setTimeout(function(){
|
||||
$(document).find('#page-widget-list [data-role="widgetPage"][data-area="'+area+'"] ol').append(box);
|
||||
$('#page-widget-list .content').scrollTop(10000);
|
||||
}, 300);
|
||||
|
||||
} else {
|
||||
|
||||
$(document).find('#'+id+' [name="widget_members[]"]').val('['+widget_var+']');
|
||||
$(document).find('#'+id+'').addClass('animated bounceIn');
|
||||
$(document).find('#'+id+' [data-role="title"]').text(title);
|
||||
$(document).find('#'+id+' [data-act="edit"]').text(title);
|
||||
$(document).find('#page-widget-list [data-role="widgetPage"] [data-role="item"]').removeClass('active shadow-sm')
|
||||
page_widget_list.find('[data-act="submit"]').click();
|
||||
}
|
||||
|
||||
}, 200);
|
||||
|
||||
});
|
||||
|
||||
page_widget_view.on('hidden.rc.page', function (event) {
|
||||
var page = $(this)
|
||||
page.find('[data-act="save"]').attr('disabled', false);
|
||||
resetPage();
|
||||
})
|
||||
|
||||
page_widget_view.on('click','[data-act="make"]',function() {
|
||||
var button = $(this);
|
||||
var mod = button.attr('data-mod');
|
||||
if (mod=='bbs') var target = page_widget_makebbs;
|
||||
if (mod=='postlist') var target = page_widget_makelist;
|
||||
if (!mod) return false;
|
||||
target.page({ start: '#page-widget-view' });
|
||||
})
|
||||
|
||||
|
||||
page_widget_view.on('click','[data-act="code"]',function() {
|
||||
var name = page_widget_view.attr('data-name');
|
||||
var title = page_widget_view.find('[name="title"]').val();
|
||||
var path = page_widget_view.attr('data-path');
|
||||
|
||||
if (!title) title = name;
|
||||
|
||||
var widget_var = '';
|
||||
|
||||
page_widget_view.find('[data-role="widgetConfig"] [name]').each(function(index){
|
||||
var _name = $(this).attr('name');
|
||||
var _var = $(this).val()?$(this).val():'';
|
||||
widget_var += "'"+_name+"'=>'"+_var+"',";
|
||||
});
|
||||
|
||||
var code = "<?php getWidget('"+path+"',array("+widget_var+")) ?>";
|
||||
|
||||
$('#widgetCode').val(code);
|
||||
|
||||
var clipboard = new ClipboardJS('.js-clipboard');
|
||||
|
||||
clipboard.off().on('success', function (e) {
|
||||
$(e.trigger)
|
||||
$.notify({message: '클립보드 복사완료!'},{type: 'default'});
|
||||
e.clearSelection()
|
||||
})
|
||||
|
||||
clipboard.on('error', function (e) {
|
||||
var modifierKey = /Mac/i.test(navigator.userAgent) ? '\u2318' : 'Ctrl-'
|
||||
var fallbackMsg = 'Press ' + modifierKey + 'C to copy'
|
||||
|
||||
$(e.trigger)
|
||||
.attr('title', fallbackMsg)
|
||||
.attr('title', 'Copy to clipboard')
|
||||
})
|
||||
});
|
||||
|
||||
//게시판 선택시
|
||||
$(document).on('change','[data-role="widgetConfig"] [name="bid"]',function(){
|
||||
var name = $(this).find('option:selected').attr('data-name');
|
||||
var link = $(this).find('option:selected').attr('data-link');
|
||||
var id = $(this).find('option:selected').val();
|
||||
if (id) {
|
||||
page_widget_view.find('[data-role="widgetConfig"]').find('[name="title"]').val(name);
|
||||
page_widget_view.find('[data-role="widgetConfig"]').find('[name="link"]').val(link);
|
||||
} else {
|
||||
page_widget_view.find('[data-role="widgetConfig"]').find('[name="title"]').val('');
|
||||
page_widget_view.find('[data-role="widgetConfig"]').find('[name="link"]').val('');
|
||||
}
|
||||
});
|
||||
|
||||
//포스트 카테고리 선택시
|
||||
$(document).on('change','[data-role="widgetConfig"] [name="cat"]',function(){
|
||||
var category = $(this).find('option:selected').attr('data-category');
|
||||
if (category) {
|
||||
page_widget_view.find('[data-role="widgetConfig"]').find('[name="title"]').val(category);
|
||||
} else {
|
||||
page_widget_view.find('[data-role="widgetConfig"]').find('[name="title"]').val('');
|
||||
}
|
||||
});
|
||||
|
||||
page_widget_makebbs.on('show.rc.page', function (event) {
|
||||
var page = $(this)
|
||||
page.find('input').val('');
|
||||
page.find('.input-row').removeClass('active');
|
||||
|
||||
})
|
||||
|
||||
page_widget_makelist.on('show.rc.page', function (event) {
|
||||
var page = $(this)
|
||||
page.find('input').val('');
|
||||
page.find('.input-row').removeClass('active');
|
||||
})
|
||||
|
||||
page_widget_makebbs.on('click','[data-act="submit"]',function() {
|
||||
var page = page_widget_makebbs;
|
||||
var button = $(this);
|
||||
var id = page.find('[name="id"]').val();
|
||||
var name = page.find('[name="name"]').val();
|
||||
if (!id) {
|
||||
page.find('[name="id"]').focus().addClass('is-invalid');
|
||||
page.find('[name="id"]').nextAll('.invalid-tooltip').text('게시판 아이디를 입력해주세요.')
|
||||
return false
|
||||
}
|
||||
|
||||
//아이디 유용성 체크
|
||||
if (!chkIdValue(id)) {
|
||||
page.find('[name="id"]').focus().addClass('is-invalid');
|
||||
page.find('[name="id"]').nextAll('.invalid-tooltip').text('영문 또는 숫자를 사용해주세요.')
|
||||
return false
|
||||
}
|
||||
|
||||
if (!name) {
|
||||
page.find('[name="name"]').focus().addClass('is-invalid');
|
||||
page.find('[name="name"]').nextAll('.invalid-tooltip').text('게시판 이름을 입력해주세요.')
|
||||
return false
|
||||
}
|
||||
|
||||
button.attr('disabled',true);
|
||||
setTimeout(function(){
|
||||
|
||||
$.post(rooturl+'/?r='+raccount+'&m=bbs&a=makebbs',{
|
||||
id : id,
|
||||
name : name,
|
||||
m_layout : 'rc-starter/blank-drawer.php',
|
||||
send_mod : 'ajax'
|
||||
},function(response,status){
|
||||
if(status=='success'){
|
||||
var result = $.parseJSON(response);
|
||||
var error=result.error;
|
||||
|
||||
if (error=='id_exists') {
|
||||
page.find('[name="id"]').focus().addClass('is-invalid');
|
||||
page.find('[name="id"]').nextAll('.invalid-tooltip').text('이미 같은 아이디의 게시판이 존재합니다.');
|
||||
button.attr('disabled',false);
|
||||
return false
|
||||
}
|
||||
|
||||
history.back();
|
||||
page_widget_view.find('[name="bid"]').append('<option value="'+id+'" data-name="'+name+'" data-link="/b/'+id+'">ㆍ '+name+'('+id+')</option>');
|
||||
page_widget_view.find('[name="bid"]').val(id).attr('selected','selected');
|
||||
page_widget_view.find('[name="title"]').val(name);
|
||||
page_widget_view.find('[name="link"]').val('/b/'+id);
|
||||
|
||||
} else {
|
||||
button.attr('disabled',false);
|
||||
alert('다시 시도해 주세요.')
|
||||
return false
|
||||
}
|
||||
});
|
||||
|
||||
}, 500);
|
||||
})
|
||||
|
||||
page_widget_makebbs.find('input').keyup(function() {
|
||||
$(this).removeClass('is-invalid');
|
||||
page_widget_makebbs.find('.invalid-tooltip').text('')
|
||||
});
|
||||
|
||||
page_widget_makelist.find('input').keyup(function() {
|
||||
$(this).removeClass('is-invalid');
|
||||
page_widget_makelist.find('.invalid-tooltip').text('')
|
||||
});
|
||||
|
||||
page_widget_makelist.on('click','[data-act="submit"]',function() {
|
||||
var page = page_widget_makelist;
|
||||
var button = $(this);
|
||||
var name = page.find('[name="name"]').val();
|
||||
|
||||
if (!name) {
|
||||
page.find('[name="name"]').focus().addClass('is-invalid');
|
||||
page.find('[name="name"]').nextAll('.invalid-tooltip').text('리스트명을 입력해주세요.')
|
||||
return false
|
||||
}
|
||||
|
||||
button.attr('disabled',true);
|
||||
setTimeout(function(){
|
||||
|
||||
$.post(rooturl+'/?r='+raccount+'&m=post&a=regis_list',{
|
||||
display : 3,
|
||||
name : name,
|
||||
send_mod : 'ajax'
|
||||
},function(response,status){
|
||||
if(status=='success'){
|
||||
var result = $.parseJSON(response);
|
||||
var error=result.error;
|
||||
var id=result.id;
|
||||
|
||||
if (error=='name_exists') {
|
||||
page.find('[name="name"]').focus().addClass('is-invalid');
|
||||
page.find('[name="name"]').nextAll('.invalid-tooltip').text('이미 같은 이름의 리스트가 존재합니다.');
|
||||
button.attr('disabled',false);
|
||||
return false
|
||||
}
|
||||
|
||||
history.back();
|
||||
page_widget_view.find('[name="listid"]').append('<option value="'+id+'">ㆍ '+name+'</option>');
|
||||
page_widget_view.find('[name="listid"]').val(id).attr('selected','selected');
|
||||
|
||||
} else {
|
||||
button.attr('disabled',false);
|
||||
alert('다시 시도해 주세요.')
|
||||
return false
|
||||
}
|
||||
});
|
||||
|
||||
}, 500);
|
||||
})
|
||||
|
||||
page_widget_makebbs.on('hide.rc.page', function (event) {
|
||||
var page = $(this)
|
||||
page.find('input').blur();
|
||||
page.find('[data-act="submit"]').attr('disabled',false);
|
||||
page.find('input').removeClass('is-invalid');
|
||||
page.find('.invalid-tooltip').text('')
|
||||
})
|
||||
|
||||
page_widget_makelist.on('hide.rc.page', function (event) {
|
||||
var page = $(this)
|
||||
page.find('input').blur();
|
||||
page.find('[data-act="submit"]').attr('disabled',false);
|
||||
page.find('input').removeClass('is-invalid');
|
||||
page.find('.invalid-tooltip').text('')
|
||||
})
|
||||
|
||||
$(document).find('[data-role="widgetPage"]').on('tap','[data-act="remove"]',function(e){
|
||||
e.preventDefault();
|
||||
$(this).closest('.card').remove();
|
||||
// resetPage();
|
||||
});
|
||||
|
||||
$(document).find('[data-role="widgetPage"]').on('tap','[data-act="edit"]',function(e) {
|
||||
var item = $(this).closest('[data-role="item"]')
|
||||
var id = item.attr('id');
|
||||
var name = item.attr('data-name');
|
||||
var path = item.attr('data-path');
|
||||
var wdgvar = item.find('[name="widget_members[]"]').val();
|
||||
var area;
|
||||
setWidgetConfig(id,name,path,wdgvar,area)
|
||||
page_widget_list.find('[data-role="widgetPage"] [data-role="item"]').removeClass('active shadow-sm');
|
||||
page_widget_view.find('[data-role="widgetConfig"]').attr('data-id',id);
|
||||
page_widget_list.find('[data-role="addWidget"]').removeClass('active');
|
||||
item.addClass('active shadow-sm');
|
||||
});
|
||||
|
||||
modal_widget_selector.on('show.rc.modal', function (e) {
|
||||
var modal = $(this);
|
||||
var button = $(e.relatedTarget);
|
||||
var area = button.attr('data-area');
|
||||
|
||||
//상태 초기화
|
||||
modal.find('select').prop('selectedIndex',0).removeAttr('data-area');
|
||||
modal.find('[data-role="none"]').removeClass('d-none');
|
||||
modal.find('[data-role="readme"]').addClass('d-none');
|
||||
modal.find('[data-role="thumb"]').addClass('d-none');
|
||||
modal.find('.bar-tab').addClass('d-none');
|
||||
|
||||
resetPage();
|
||||
setTimeout(function(){ modal.find('[name="widget_selector"]').attr('data-area',area).trigger('focus'); }, 100);
|
||||
|
||||
})
|
||||
|
||||
modal_widget_selector.find('[name="widget_selector"]').change(function(){
|
||||
var modal = $('#modal-widget-selector');
|
||||
var path = $(this).val();
|
||||
var name = $(this).find('option:selected').text();
|
||||
var id = randomId();
|
||||
var area = $(this).attr('data-area');
|
||||
var wdgvar = '';
|
||||
var button = $('#modal-widget-selector').find('[data-act="apply"]');
|
||||
|
||||
if (path) $('#modal-widget-selector').find('.bar-tab').removeClass('d-none');
|
||||
else $('#modal-widget-selector').find('.bar-tab').addClass('d-none');
|
||||
|
||||
modal.find('[data-role="none"]').removeClass('d-none');
|
||||
modal.find('[data-role="thumb"]').addClass('d-none').removeClass('animated fadeIn');;
|
||||
modal.find('[data-role="thumb"] img').attr('src','');
|
||||
modal.find('[data-role="readme"]').html('');
|
||||
|
||||
button.attr('data-path',path);
|
||||
button.attr('data-name',name);
|
||||
button.attr('data-id',id);
|
||||
button.attr('data-area',area);
|
||||
|
||||
$.post(rooturl+'/?r='+raccount+'&m=site&a=get_widgetGuide',{
|
||||
widget : path
|
||||
},function(response,status){
|
||||
if(status=='success'){
|
||||
var result = $.parseJSON(response);
|
||||
var readme=result.readme;
|
||||
var thumb=result.thumb;
|
||||
|
||||
modal.find('[data-role="readme"]').html(readme).removeClass('d-none');
|
||||
|
||||
if (!thumb) {
|
||||
modal.find('[data-role="none"]').removeClass('d-none');
|
||||
modal.find('[data-role="thumb"]').addClass('d-none');
|
||||
} else {
|
||||
modal.find('[data-role="none"]').addClass('d-none');
|
||||
modal.find('[data-role="thumb"]').removeClass('d-none').addClass('animated fadeIn');
|
||||
modal.find('[data-role="thumb"] img').attr('src',thumb);
|
||||
}
|
||||
|
||||
} else {
|
||||
alert('위젯설정을 확인해주세요.')
|
||||
return false
|
||||
}
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
modal_widget_selector.find('[data-act="apply"]').click(function(){
|
||||
|
||||
var button = $(this)
|
||||
var path = button.attr('data-path');
|
||||
var name = button.attr('data-name');
|
||||
var id = button.attr('data-id');
|
||||
var area = button.attr('data-area');
|
||||
var wdgvar = '';
|
||||
var modal = $('#modal-widget-selector');
|
||||
|
||||
history.back();
|
||||
|
||||
if (!path) {
|
||||
modal.find('[name="widget_selector"]').focus();
|
||||
console.log('path 정보가 없습니다.')
|
||||
$.notify({message: '다시 시도해 주세요.'},{type: 'default'});
|
||||
return false;
|
||||
}
|
||||
setTimeout(function(){
|
||||
$('#page-widget-view [data-role="form"]').html('');
|
||||
$('#page-widget-list [data-role="item"]').removeClass('active shadow-sm')
|
||||
|
||||
if (path) {
|
||||
setWidgetConfig(id,name,path,wdgvar,area)
|
||||
$('#page-widget-list [data-role="widgetPage"][data-area="'+area+'"] [data-role="addWidget"]').addClass('active');
|
||||
} else {
|
||||
$('#page-widget-view [data-role="widgetConfig"]').addClass('d-none');
|
||||
}
|
||||
}, 10);
|
||||
});
|
||||
|
||||
modal_widget_selector.on('hidden.rc.modal', function (event) {
|
||||
var modal = $(this)
|
||||
var button = modal.find('[data-act="submit"]');
|
||||
var selector = modal.find('[name="widget_selector"]');
|
||||
button.removeAttr('data-path').removeAttr('data-id').removeAttr('data-area').removeAttr('data-name');
|
||||
selector.removeAttr('data-area');
|
||||
modal.find('[name="widget_selector"]').prop('selectedIndex',0);
|
||||
modal.find('[data-role="readme"]').html('');
|
||||
modal.find('[data-role="thumb"]').attr('src','')
|
||||
|
||||
$('[data-role="addWidget"]').removeClass('active');
|
||||
})
|
||||
|
||||
sheet_layoutreset_confirm.find('[data-reset="main"]').click(function(){
|
||||
var page = page_widget_list.find('[name="page"]').val();
|
||||
var area = page_widget_list.find('[name="area"]').val();
|
||||
history.back(); //sheet 내림
|
||||
setTimeout(function(){
|
||||
page_widget_list.find('[data-role="widgetPage"]').loader({ position: 'inside' });
|
||||
$.post(rooturl+'/?r='+raccount+'&m=site&a=deletelayoutpage',{
|
||||
page : page,
|
||||
area : area
|
||||
},function(response,status){
|
||||
if(status=='success'){
|
||||
var result = $.parseJSON(response);
|
||||
var error=result.error;
|
||||
var list=result.list;
|
||||
if (!error) {
|
||||
page_widget_list.find('[data-role="widgetPage"]').html(list).addClass('animated fadeInUp delay-3');
|
||||
page_widget_list.find('[data-role="reset"]').addClass('d-none')
|
||||
}
|
||||
} else {
|
||||
alert('다시시도 해주세요.')
|
||||
return false
|
||||
}
|
||||
});
|
||||
|
||||
}, 300);
|
||||
|
||||
});
|
||||
94
layouts/rc-starter/_js/system.js
Normal file
94
layouts/rc-starter/_js/system.js
Normal file
@@ -0,0 +1,94 @@
|
||||
var page_software_loglist = $('#page-software-loglist');
|
||||
var page_software_logview = $('#page-software-logview');
|
||||
|
||||
$('.markdown-body').markdown();
|
||||
|
||||
$('#sheet-update-confirm [data-act="submit"]').click(function(){
|
||||
history.back();
|
||||
setTimeout(function(){
|
||||
$('.content').loader({ position: 'overlay',text: '잠시만 기다리세요...' });
|
||||
}, 300);
|
||||
setTimeout(function(){
|
||||
$('[name="updateForm"]').submit();
|
||||
}, 1000);
|
||||
});
|
||||
|
||||
$('[data-act="gitinit"]').click(function(){
|
||||
$(this).attr( 'disabled', true );
|
||||
$('.content').loader({ position: 'overlay',text: '잠시만 기다리세요...' });
|
||||
setTimeout(function(){
|
||||
$.post(rooturl+'/?r='+raccount+'&m=admin&a=gitinit',{
|
||||
},function(response,status){
|
||||
if(status=='success'){
|
||||
var result = $.parseJSON(response);
|
||||
var error=result.error;
|
||||
var msg=result.msg;
|
||||
if (error) {
|
||||
$.notify({message: msg},{type: 'default'});
|
||||
$(this).attr( 'disabled', false );
|
||||
return false
|
||||
} else {
|
||||
location.reload();
|
||||
}
|
||||
} else {
|
||||
$.notify({message: '다시 시도해 주세요.'},{type: 'default'});
|
||||
$(this).attr( 'disabled', false );
|
||||
return false
|
||||
}
|
||||
});
|
||||
}, 1000);
|
||||
});
|
||||
|
||||
page_software_loglist.on('show.rc.page', function(event) {
|
||||
var button = $(event.relatedTarget);
|
||||
var page = $(this);
|
||||
page.find('[data-role="list"]').loader({ position: 'inside' });
|
||||
setTimeout(function(){
|
||||
$.post(rooturl+'/?r='+raccount+'&m=admin&a=get_updateList',{
|
||||
},function(response,status){
|
||||
if(status=='success'){
|
||||
var result = $.parseJSON(response);
|
||||
var list=result.list;
|
||||
page.find('[data-role="list"]').html(list)
|
||||
} else {
|
||||
$.notify({message: '다시 시도해 주세요.'},{type: 'danger'});
|
||||
return false
|
||||
}
|
||||
});
|
||||
}, 200);
|
||||
});
|
||||
|
||||
page_software_logview.on('show.rc.page', function(event) {
|
||||
var button = $(event.relatedTarget);
|
||||
var page = $(this);
|
||||
var uid = button.attr('data-uid');
|
||||
|
||||
page.find('[data-role="list"]').loader({ position: 'inside' });
|
||||
setTimeout(function(){
|
||||
$.post(rooturl+'/?r='+raccount+'&m=admin&a=get_updateData',{
|
||||
uid : uid
|
||||
},function(response,status){
|
||||
if(status=='success'){
|
||||
var result = $.parseJSON(response);
|
||||
var version=result.version;
|
||||
var name=result.name;
|
||||
var output=result.output;
|
||||
var d_regis=result.d_regis;
|
||||
page.find('[data-role="version"]').text(version);
|
||||
page.find('[data-role="name"]').text(name);
|
||||
page.find('[data-role="output"]').val(output);
|
||||
page.find('[data-role="d_regis"]').text(d_regis);
|
||||
} else {
|
||||
$.notify({message: '다시 시도해 주세요.'},{type: 'danger'});
|
||||
return false
|
||||
}
|
||||
});
|
||||
}, 200);
|
||||
})
|
||||
|
||||
page_software_logview.on('hidden.rc.page', function(event) {
|
||||
var page = $(this);
|
||||
page.find('[data-role="version"]').html('');
|
||||
page.find('[data-role="output"]').val('');
|
||||
page.find('[data-role="d_regis"]').html('');
|
||||
})
|
||||
20
layouts/rc-starter/_pages/main.php
Normal file
20
layouts/rc-starter/_pages/main.php
Normal file
@@ -0,0 +1,20 @@
|
||||
<?php
|
||||
if ($my['uid'] && $d['layout']['main_dashboard']=='true') getLink('/dashboard','','','');
|
||||
|
||||
if ($d['layout']['main_type']=='postAllFeed') {
|
||||
getWidget('rc-default/site/cover-default',array());
|
||||
getWidget('rc-default/post/post/all/feed-card',array('wrapper'=>'[data-role="postFeed"].widget','start'=>'#page-main','recnum'=>5));
|
||||
} else {
|
||||
$g['layoutPageVForSite'] = $g['path_var'].'site/'.$r.'/layout.'.$layout.'.main.php'; // 레이아웃 메인페이지 웨젯설정
|
||||
include is_file($g['layoutPageVForSite']) ? $g['layoutPageVForSite'] : $g['dir_layout'].'_var/_var.main.php';
|
||||
getWidgetList($d['layout']['main_widgets']);
|
||||
}
|
||||
?>
|
||||
|
||||
<?php if (!$d['layout']['main_widgets'] && $my['admin'] && $d['layout']['main_type']!='postAllFeed'): ?>
|
||||
<div class="alert alert-danger text-xs-center border-0 rounded-0" role="alert">
|
||||
<a data-href="<?php echo $g['s'].'/?r='.$r.'&layoutPage=settings&prelayout=rc-starter/blank' ?>" class="alert-link">
|
||||
<u>메인 꾸미기가 필요합니다.</u>
|
||||
</a>
|
||||
</div>
|
||||
<?php endif; ?>
|
||||
382
layouts/rc-starter/_pages/settings.php
Normal file
382
layouts/rc-starter/_pages/settings.php
Normal file
@@ -0,0 +1,382 @@
|
||||
<?php
|
||||
checkAdmin(0);
|
||||
include $g['dir_layout'].'_var/_var.config.php';
|
||||
?>
|
||||
|
||||
<section class="page center" id="page-layout-settings">
|
||||
<header class="bar bar-nav bar-light bg-white p-x-0">
|
||||
<a data-href="/" class="icon icon-home pull-left p-x-1" role="button"></a>
|
||||
<button class="btn btn-link btn-nav pull-right px-4" data-act="submit">
|
||||
<span class="not-loading">
|
||||
저장
|
||||
</span>
|
||||
<span class="is-loading">
|
||||
<div class="spinner-border spinner-border-sm text-primary" role="status">
|
||||
<span class="sr-only">저장중...</span>
|
||||
</div>
|
||||
</span>
|
||||
</button>
|
||||
<h1 class="title">
|
||||
<a data-location="reload" data-text="새로고침..">
|
||||
레이아웃 편집
|
||||
</a>
|
||||
</h1>
|
||||
</header>
|
||||
|
||||
<main class="content bg-faded">
|
||||
|
||||
<form action="<?php echo $g['s']?>/" method="post" enctype="multipart/form-data" target="_action_frame_<?php echo $m?>">
|
||||
<input type="hidden" name="r" value="<?php echo $r?>">
|
||||
<input type="hidden" name="m" value="<?php echo $m?>">
|
||||
<input type="hidden" name="a" value="regislayoutsite">
|
||||
<input type="hidden" name="send_mod" value="ajax">
|
||||
|
||||
<ul class="table-view table-view-full border-top-0 bg-white" id="layout-settings-panels">
|
||||
<?php $_i=1;foreach($d['layout']['dom'] as $_key => $_val):$__i=sprintf('%02d',$_i)?>
|
||||
<li class="table-view-cell">
|
||||
<a class="navigate-right collapsed"
|
||||
data-toggle="collapse"
|
||||
data-parent="#layout-settings-panels"
|
||||
data-target="#layout-settings-<?php echo $__i?>-body"
|
||||
aria-expanded="true">
|
||||
<?php echo $_val[0]?>
|
||||
</a>
|
||||
<ul class="table-view collapse" id="layout-settings-<?php echo $__i?>-body" style="padding-right: 3.9rem">
|
||||
<li class="table-view-cell">
|
||||
<p class="text-muted small mb-1"><?php echo $_val[1]?></p>
|
||||
<?php if(count($_val[2])):?>
|
||||
<?php foreach($_val[2] as $_v):?>
|
||||
<div class="form-group">
|
||||
<?php if($_v[1]!='hidden'):?>
|
||||
<label><?php echo $_v[2]?></label>
|
||||
<?php endif?>
|
||||
|
||||
<?php if($_v[1]=='hidden'):?>
|
||||
<input type="hidden" name="layout_<?php echo $_key?>_<?php echo $_v[0]?>" value="<?php echo $d['layout'][$_key.'_'.$_v[0]]?>">
|
||||
<?php endif?>
|
||||
|
||||
<?php if($_v[1]=='input'):?>
|
||||
<input type="text" class="form-control" name="layout_<?php echo $_key?>_<?php echo $_v[0]?>" value="<?php echo stripslashes($d['layout'][$_key.'_'.$_v[0]])?>" autocomplete="off">
|
||||
<?php endif?>
|
||||
|
||||
<?php if($_v[1]=='color'):?>
|
||||
<div class="input-group">
|
||||
<input type="text" class="form-control" name="layout_<?php echo $_key?>_<?php echo $_v[0]?>" id="layout_<?php echo $_key?>_<?php echo $_v[0]?>" value="<?php echo $d['layout'][$_key.'_'.$_v[0]]?>">
|
||||
<span class="input-group-append">
|
||||
<button class="btn btn-light" type="button" data-toggle="modal" data-target=".bs-example-modal-sm" onclick="getColorLayer(getId('layout_<?php echo $_key?>_<?php echo $_v[0]?>').value.replace('#',''),'layout_<?php echo $_key?>_<?php echo $_v[0]?>');"><i class="fa fa-tint"></i></button>
|
||||
</span>
|
||||
</div>
|
||||
<?php endif?>
|
||||
|
||||
<?php if($_v[1]=='date'):?>
|
||||
<div class="input-group input-daterange">
|
||||
<input type="text" class="form-control" name="layout_<?php echo $_key?>_<?php echo $_v[0]?>" id="layout_<?php echo $_key?>_<?php echo $_v[0]?>" value="<?php echo $d['layout'][$_key.'_'.$_v[0]]?>">
|
||||
<span class="input-group-append">
|
||||
<button class="btn btn-light" type="button" onclick="getCalCheck('<?php echo $_key?>_<?php echo $_v[0]?>');"><i class="fa fa-calendar"></i></button>
|
||||
</span>
|
||||
</div>
|
||||
<?php endif?>
|
||||
|
||||
<?php if($_v[1]=='mediaset'):?>
|
||||
<div class="input-group">
|
||||
<input type="text" class="form-control rb-modal-photo-drop js-tooltip" name="layout_<?php echo $_key?>_<?php echo $_v[0]?>" id="layout_<?php echo $_key?>_<?php echo $_v[0]?>" value="<?php echo $d['layout'][$_key.'_'.$_v[0]]?>" onmousedown="_mediasetField='layout_<?php echo $_key?>_<?php echo $_v[0]?>&dfiles='+this.value;" title="선택된 사진" data-toggle="modal" data-target="#modal_window">
|
||||
<span class="input-group-append">
|
||||
<button onmousedown="_mediasetField='layout_<?php echo $_key?>_<?php echo $_v[0]?>';" class="btn btn-light rb-modal-photo-drop js-tooltip" type="button" title="포토셋" data-toggle="modal" data-target="#modal_window"><i class="fa fa-picture-o"></i></button>
|
||||
</span>
|
||||
</div>
|
||||
<?php endif?>
|
||||
|
||||
<?php if($_v[1]=='videoset'):?>
|
||||
<div class="input-group">
|
||||
<input type="text" class="form-control rb-modal-video-drop js-tooltip" name="layout_<?php echo $_key?>_<?php echo $_v[0]?>" id="layout_<?php echo $_key?>_<?php echo $_v[0]?>" value="<?php echo $d['layout'][$_key.'_'.$_v[0]]?>" onmousedown="_mediasetField='layout_<?php echo $_key?>_<?php echo $_v[0]?>&dfiles='+this.value;" title="선택된 비디오" data-toggle="modal" data-target="#modal_window">
|
||||
<span class="input-group-append">
|
||||
<button onmousedown="_mediasetField='layout_<?php echo $_key?>_<?php echo $_v[0]?>';" class="btn btn-light rb-modal-video-drop js-tooltip" type="button" title="비디오셋" data-toggle="modal" data-target="#modal_window"><i class="fa fa-video-camera"></i></button>
|
||||
</span>
|
||||
</div>
|
||||
<?php endif?>
|
||||
|
||||
<?php if($_v[1]=='file'):?>
|
||||
<div class="input-group">
|
||||
<input type="text" class="form-control" id="layout_<?php echo $_key?>_<?php echo $_v[0]?>_name" value="<?php echo $d['layout'][$_key.'_'.$_v[0]]?>" onclick="$('#layout_<?php echo $_key?>_<?php echo $_v[0]?>').click();">
|
||||
<input type="file" class="d-none" name="layout_<?php echo $_key?>_<?php echo $_v[0]?>" id="layout_<?php echo $_key?>_<?php echo $_v[0]?>" onchange="getId('layout_<?php echo $_key?>_<?php echo $_v[0]?>_name').value='파일 선택됨';">
|
||||
<span class="input-group-btn">
|
||||
<button class="btn btn-secondary" type="button" onclick="$('#layout_<?php echo $_key?>_<?php echo $_v[0]?>').click();" style="padding: 0.5rem 0.75rem;font-size: 1rem;">
|
||||
파일첨부
|
||||
</button>
|
||||
</span>
|
||||
</div>
|
||||
<?php if($d['layout'][$_key.'_'.$_v[0]]):?>
|
||||
<div style="padding:3px 0 0 2px;"><input type="checkbox" name="layout_<?php echo $_key?>_<?php echo $_v[0]?>_del" value="1"> 현재파일 삭제</div>
|
||||
<?php endif?>
|
||||
<?php endif?>
|
||||
|
||||
<?php if($_v[1]=='textarea'):?>
|
||||
<textarea type="text" rows="<?php echo $_v[3]?>" class="form-control" name="layout_<?php echo $_key?>_<?php echo $_v[0]?>"><?php echo stripslashes($d['layout'][$_key.'_'.$_v[0]])?></textarea>
|
||||
<?php endif?>
|
||||
|
||||
<?php if($_v[1]=='select'):?>
|
||||
<select name="layout_<?php echo $_key?>_<?php echo $_v[0]?>" class="form-control custom-select">
|
||||
<?php $_sk=explode(',',$_v[3])?>
|
||||
<?php foreach($_sk as $_sa):?>
|
||||
<?php $_sa1=explode('=',$_sa)?>
|
||||
<option value="<?php echo $_sa1[1]?>"<?php if($d['layout'][$_key.'_'.$_v[0]] == $_sa1[1]):?> selected<?php endif?>><?php echo $_sa1[0]?></option>
|
||||
<?php endforeach?>
|
||||
</select>
|
||||
<?php endif?>
|
||||
|
||||
<?php if($_v[1]=='radio'):?>
|
||||
<?php $_sk=explode(',',$_v[3])?>
|
||||
<?php foreach($_sk as $_sa):?>
|
||||
<?php $_sa1=explode('=',$_sa)?>
|
||||
<label class="rb-rabel"><input type="radio" name="layout_<?php echo $_key?>_<?php echo $_v[0]?>" value="<?php echo $_sa1[1]?>"<?php if($d['layout'][$_key.'_'.$_v[0]] == $_sa1[1]):?> checked<?php endif?>> <?php echo $_sa1[0]?></label>
|
||||
<?php endforeach?>
|
||||
<?php endif?>
|
||||
|
||||
<?php if($_v[1]=='checkbox'):?>
|
||||
<?php $_sk=explode(',',$_v[3])?>
|
||||
<?php foreach($_sk as $_sa):?>
|
||||
<?php $_sa1=explode('=',$_sa)?>
|
||||
<label class="rb-rabel"><input type="checkbox" name="layout_<?php echo $_key?>_<?php echo $_v[0]?>_chk[]" value="<?php echo $_sa1[1]?>"<?php if(strstr($d['layout'][$_key.'_'.$_v[0]],$_sa1[1])):?> checked<?php endif?>> <?php echo $_sa1[0]?></label>
|
||||
<?php endforeach?>
|
||||
<?php endif?>
|
||||
|
||||
<?php if($_v[1]=='menu'):?>
|
||||
<select name="layout_<?php echo $_key?>_<?php echo $_v[0]?>" class="form-control custom-select">
|
||||
<option value="">사용안함</option>
|
||||
<option value="" disabled>--------------------------------</option>
|
||||
<?php include_once $g['path_core'].'function/menu1.func.php'?>
|
||||
<?php $cat=$d['layout'][$_key.'_'.$_v[0]]?>
|
||||
<?php getMenuShowSelectCode($s,$table['s_menu'],0,0,0,0,0,'')?>
|
||||
</select>
|
||||
<?php endif?>
|
||||
|
||||
<?php if($_v[1]=='bbs'):?>
|
||||
<select name="layout_<?php echo $_key?>_<?php echo $_v[0]?>" class="form-control custom-select">
|
||||
<option value="">사용안함</option>
|
||||
<option value="" disabled>----------------------------------</option>
|
||||
<?php $BBSLIST = getDbArray($table['bbslist'],'','*','gid','asc',0,1)?>
|
||||
<?php while($R=db_fetch_array($BBSLIST)):?>
|
||||
<option value="<?php echo $R['id']?>"<?php if($d['layout'][$_key.'_'.$_v[0]]==$R['id']):?> selected="selected"<?php endif?>>
|
||||
ㆍ<?php echo $R['name']?>(<?php echo $R['id']?>)
|
||||
</option>
|
||||
<?php endwhile?>
|
||||
</select>
|
||||
<?php endif?>
|
||||
|
||||
</div>
|
||||
<?php endforeach?>
|
||||
<?php endif?>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
<?php $_i++;endforeach?>
|
||||
|
||||
</ul>
|
||||
|
||||
<ul class="table-view table-view-full bg-white<?php echo $d['layout']['main_type']=='widget'?'':' d-none' ?>">
|
||||
<li class="table-view-cell" data-toggle="page" data-target="#page-widget-list" data-start="#page-layout-settings">
|
||||
<a class="navigate-right">
|
||||
<strong>메인 꾸미기</strong>
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</form>
|
||||
|
||||
</main>
|
||||
</section>
|
||||
|
||||
<section class="page right" id="page-widget-list">
|
||||
<header class="bar bar-nav bar-light bg-white p-x-0">
|
||||
<a class="icon material-icons pull-left px-3" role="button" data-history="back">arrow_back</a>
|
||||
<button class="btn btn-link btn-nav pull-right px-4" data-act="submit">
|
||||
<span class="not-loading">
|
||||
저장
|
||||
</span>
|
||||
<span class="is-loading">
|
||||
<div class="spinner-border spinner-border-sm text-primary" role="status">
|
||||
<span class="sr-only">저장중...</span>
|
||||
</div>
|
||||
</span>
|
||||
</button>
|
||||
<h1 class="title title-left" data-history="back">
|
||||
메인 꾸미기
|
||||
</h1>
|
||||
</header>
|
||||
|
||||
<nav class="bar bar-tab bg-white shadow-sm">
|
||||
<a class="tab-item text-reset" role="button"
|
||||
data-toggle="sheet"
|
||||
href="#sheet-layoutreset-confirm"
|
||||
data-role="reset">
|
||||
초기화
|
||||
</a>
|
||||
<a class="tab-item text-reset border-left" role="button"
|
||||
data-toggle="modal"
|
||||
href="#modal-widget-selector"
|
||||
data-area="main">
|
||||
위젯 추가
|
||||
</a>
|
||||
</nav>
|
||||
|
||||
<main class="content bg-faded">
|
||||
|
||||
<form name="layoutMainPage" method="post" action="<?php echo $g['s']?>/" target="_action_frame_<?php echo $m?>" class="" role="form">
|
||||
<input type="hidden" name="r" value="<?php echo $r?>">
|
||||
<input type="hidden" name="a" value="regislayoutpage">
|
||||
<input type="hidden" name="m" value="site">
|
||||
<input type="hidden" name="page" value="main">
|
||||
<input type="hidden" name="area" value="main_widgets">
|
||||
<input type="hidden" name="main_widgets" value="">
|
||||
<div data-role="widgetPage" data-plugin="sortable" data-area="main" class="mx-4"></div>
|
||||
</form>
|
||||
|
||||
</main>
|
||||
</section>
|
||||
|
||||
<section class="page right" id="page-widget-view">
|
||||
<header class="bar bar-nav bar-light bg-white px-0">
|
||||
<a class="icon material-icons pull-left px-3" role="button" data-history="back">arrow_back</a>
|
||||
<button class="btn btn-link btn-nav pull-right px-4" data-act="save">
|
||||
<span class="not-loading">
|
||||
저장
|
||||
</span>
|
||||
<span class="is-loading">
|
||||
<div class="spinner-border spinner-border-sm text-primary" role="status">
|
||||
<span class="sr-only">저장중...</span>
|
||||
</div>
|
||||
</span>
|
||||
</button>
|
||||
<h1 class="title title-left" data-history="back">
|
||||
위젯 설정 <small class="text-muted ml-2" data-role="title"></small>
|
||||
</h1>
|
||||
</header>
|
||||
<div class="content bg-white" data-role="widgetConfig">
|
||||
<div class="content-padded pb-4" data-role="form">
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section class="page right" id="page-widget-makelist">
|
||||
<header class="bar bar-nav bar-light bg-white px-0">
|
||||
<a class="icon material-icons pull-left px-3" role="button" data-history="back">arrow_back</a>
|
||||
<button class="btn btn-link btn-nav pull-right px-4" data-act="submit">
|
||||
<span class="not-loading">
|
||||
만들기
|
||||
</span>
|
||||
<span class="is-loading">
|
||||
<div class="spinner-border spinner-border-sm text-primary" role="status">
|
||||
<span class="sr-only">생성중...</span>
|
||||
</div>
|
||||
</span>
|
||||
</button>
|
||||
<h1 class="title title-left" data-history="back">
|
||||
새 리스트
|
||||
</h1>
|
||||
</header>
|
||||
<main class="content bg-white">
|
||||
|
||||
<div class="form-list floating">
|
||||
<div class="input-row position-relative" style="padding: 6px 0 5px 16px;">
|
||||
<label class="w-100">리스트 명</label>
|
||||
<input type="text" placeholder="리스트 명" name="name" autocomplete="off">
|
||||
<div class="invalid-tooltip"></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</main>
|
||||
</section>
|
||||
|
||||
<section class="page right" id="page-widget-makebbs">
|
||||
<header class="bar bar-nav bar-light bg-white px-0">
|
||||
<a class="icon material-icons pull-left px-3" role="button" data-history="back">arrow_back</a>
|
||||
<button class="btn btn-link btn-nav pull-right px-4" data-act="submit">
|
||||
<span class="not-loading">
|
||||
만들기
|
||||
</span>
|
||||
<span class="is-loading">
|
||||
<div class="spinner-border spinner-border-sm text-primary" role="status">
|
||||
<span class="sr-only">생성중...</span>
|
||||
</div>
|
||||
</span>
|
||||
</button>
|
||||
<h1 class="title title-left" data-history="back">
|
||||
새 게시판
|
||||
</h1>
|
||||
</header>
|
||||
<main class="content bg-white">
|
||||
<form class="">
|
||||
<div class="form-list floating">
|
||||
<div class="input-row position-relative" style="padding: 6px 0 5px 16px;">
|
||||
<label class="w-100">게시판 아이디 <span class="ml-1">(영문 또는 숫자만)</span></label>
|
||||
<input type="text" placeholder="게시판 아이디" name="id" autocomplete="off">
|
||||
<div class="invalid-tooltip"></div>
|
||||
</div>
|
||||
<div class="input-row position-relative" style="padding: 6px 0 5px 16px;">
|
||||
<label class="w-100">게시판 이름</label>
|
||||
<input type="text" placeholder="게시판 이름" name="name" autocomplete="off">
|
||||
<div class="invalid-tooltip"></div>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</main>
|
||||
</section>
|
||||
|
||||
<!-- 레이아웃 위젯탐색기 -->
|
||||
<section id="modal-widget-selector" class="modal fast">
|
||||
<header class="bar bar-nav bar-light bg-white px-0">
|
||||
<a class="icon material-icons pull-left px-3" role="button" data-history="back">arrow_back</a>
|
||||
<h1 class="title title-left" data-history="back">위젯 찾아보기</h1>
|
||||
</header>
|
||||
<div class="bar bar-standard bar-header-secondary bar-light bg-white px-0">
|
||||
<select class="form-control custom-select border-0" name="widget_selector" data-area="">
|
||||
<option value="">선택하세요.</option>
|
||||
<?php include $g['dir_layout'].'_var/_var.config.php'; ?>
|
||||
<?php $_i=1;foreach($d['layout']['widget'] as $_key => $_val):$__i=sprintf('%02d',$_i)?>
|
||||
<optgroup label="<?php echo $_val[0]?>">
|
||||
<?php foreach($_val[1] as $_v):?>
|
||||
<option value="<?php echo $_key ?>/<?php echo $_v[0]?>"><?php echo $_v[1]?></option>
|
||||
<?php endforeach?>
|
||||
</optgroup>
|
||||
<?php $_i++;endforeach?>
|
||||
</select>
|
||||
</div>
|
||||
<nav class="bar bar-tab bar-dark bg-primary d-none">
|
||||
<a class="tab-item" role="button" data-act="apply">
|
||||
다음
|
||||
</a>
|
||||
</nav>
|
||||
<main class="content bg-faded">
|
||||
<blockquote class="content-padded py-3 blockquote text-muted" data-role="readme"></blockquote>
|
||||
<div data-role="none">
|
||||
<div class="d-flex justify-content-center align-items-center bg-light" style="height:370px">
|
||||
<div class="text-muted">
|
||||
<p>위젯을 선택해주세요.</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="card mt-2 p-2 shadow-sm d-none" data-role="thumb">
|
||||
<img src="" alt="" class="img-fluid" style="filter: grayscale(100%);">
|
||||
</div>
|
||||
</main>
|
||||
</section>
|
||||
|
||||
<section id="sheet-layoutreset-confirm" class="sheet" style="top: 70vh;">
|
||||
<header class="bar bar-nav bar-inverse bg-primary">
|
||||
<h1 class="title title-left px-3">초기화 전 유의사항</h1>
|
||||
</header>
|
||||
<nav class="bar bar-tab bar-light bg-white">
|
||||
<a class="tab-item text-reset" role="button" data-history="back">
|
||||
취소
|
||||
</a>
|
||||
<a class="tab-item text-primary border-left" role="button" data-reset="main">
|
||||
확인
|
||||
</a>
|
||||
</nav>
|
||||
<main>
|
||||
<div class="content-padded py-3 text-xs-center text-muted">
|
||||
<p>모바일 메인 페이지를 초기 상태로 되돌립니다.</p>
|
||||
</div>
|
||||
</main>
|
||||
</section>
|
||||
|
||||
<script src="<?php echo $g['url_layout']?>/_js/settings.js<?php echo $g['wcache']?>"></script>
|
||||
206
layouts/rc-starter/_pages/system.php
Normal file
206
layouts/rc-starter/_pages/system.php
Normal file
@@ -0,0 +1,206 @@
|
||||
<script type="text/javascript">
|
||||
putCookieAlert('system_update_result');
|
||||
</script>
|
||||
|
||||
<?php
|
||||
checkAdmin(0);
|
||||
include $g['path_module'].'admin/var/var.version.php';
|
||||
include $g['path_core'].'function/rss.func.php';
|
||||
$lastest_version = trim(getUrlData('https://kimsq.github.io/rb2/lastest.txt'.$g['wcache'],10));
|
||||
$current_version = $_SESSION['current_version']?$_SESSION['current_version']:$d['admin']['version'];
|
||||
$_current_version = str_replace('.','',$current_version);
|
||||
$_lastest_version = str_replace('.','',$lastest_version);
|
||||
$git_version = shell_exec('git --version');
|
||||
if ($_lastest_version-$_current_version > 0) $try_update = true;
|
||||
else $try_update = false;
|
||||
|
||||
$LASTUID = getDbCnt($table['s_gitlog'],'max(uid)','');
|
||||
$R = getUidData($table['s_gitlog'],$LASTUID);
|
||||
$d_last = $LASTUID?getDateFormat($R['d_regis'],'Y.m.d H:i'):'';
|
||||
$_SESSION['current_version'] = '';
|
||||
?>
|
||||
|
||||
<link href="<?php echo $g['s']?>/_core/css/github-markdown.css" rel="stylesheet">
|
||||
|
||||
<section class="page center" id="page-software-main">
|
||||
<header class="bar bar-nav bar-light bg-faded px-0">
|
||||
<a data-href="/" class="icon icon-home pull-left p-x-1" role="button"></a>
|
||||
<a class="icon icon-refresh pull-right p-x-1" data-location="reload" data-text="업데이트를 확인하는 중.." role="button"></a>
|
||||
<h1 class="title" data-location="reload" data-text="업데이트를 확인하는 중..">시스템 정보</h1>
|
||||
</header>
|
||||
<div class="content bg-faded">
|
||||
|
||||
<form name="updateForm" method="post" action="<?php echo $g['s']?>/" target="_action_frame_site" class="py-4">
|
||||
<input type="hidden" name="r" value="<?php echo $r?>">
|
||||
<input type="hidden" name="m" value="admin">
|
||||
<input type="hidden" name="a" value="update">
|
||||
<input type="hidden" name="remote" value="https://github.com/kimsQ/rb2.git">
|
||||
<input type="hidden" name="current_version" value="<?php echo $current_version?>">
|
||||
<input type="hidden" name="lastest_version" value="<?php echo $lastest_version?>">
|
||||
|
||||
<div class="text-xs-center">
|
||||
<i class="h1 kf kf-bi-01"></i>
|
||||
<strong class="d-block mt-2">
|
||||
현재 버전 <?php echo $current_version?>
|
||||
</strong>
|
||||
|
||||
<?php if ($try_update): ?>
|
||||
<small class="d-block text-muted">최신 버전 <?php echo $lastest_version ?></small>
|
||||
|
||||
<?php if ($git_version): ?>
|
||||
<?php if (is_dir('./.git')): ?>
|
||||
<a data-toggle="sheet" href="#sheet-update-confirm" class="btn btn-primary mt-3">
|
||||
업데이트
|
||||
</a>
|
||||
<?php else: ?>
|
||||
<button type="button" data-act="gitinit" class="btn btn-outline-success mt-3">
|
||||
업데이트 환경 초기화
|
||||
</button>
|
||||
<?php endif; ?>
|
||||
<?php else: ?>
|
||||
<div class="alert alert-danger content-padded f14" role="alert">
|
||||
<strong>[git 설치필요]</strong> 버전관리를 위해 git 설치가 필요합니다. 호스팅 제공업체 또는 서버 관리자에게 요청해주세요.
|
||||
</div>
|
||||
<?php endif; ?>
|
||||
<?php else: ?>
|
||||
<small class="d-block text-muted mt-2">최신 버전 입니다.</small>
|
||||
<?php endif; ?>
|
||||
|
||||
</div>
|
||||
</form>
|
||||
|
||||
<ul class="table-view text-xs-left bg-white">
|
||||
<?php if ($d_last): ?>
|
||||
<li class="table-view-cell">
|
||||
<a class="navigate-right" data-toggle="page" data-target="#page-software-loglist" data-start="#page-software-main">
|
||||
<span class="badge badge-default badge-inverted"><?php echo $d_last ?></span>
|
||||
업데이트 이력
|
||||
</a>
|
||||
</li>
|
||||
<?php endif; ?>
|
||||
<li class="table-view-cell">
|
||||
<a class="navigate-right" data-toggle="page" data-target="#page-software-kimsq" data-start="#page-software-main">
|
||||
설명서
|
||||
</a>
|
||||
</li>
|
||||
<li class="table-view-cell">
|
||||
<a class="navigate-right" data-toggle="page" data-target="#page-software-license" data-start="#page-software-main">
|
||||
라이센스
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
<ul class="table-view text-xs-left bg-white">
|
||||
<li class="table-view-cell">
|
||||
<span class="badge badge-default badge-inverted"><?php echo $_SERVER['SERVER_SOFTWARE']?></span>
|
||||
웹서버
|
||||
</li>
|
||||
<li class="table-view-cell">
|
||||
<span class="badge badge-default badge-inverted">PHP <?php echo phpversion()?></span>
|
||||
개발언어
|
||||
</li>
|
||||
<li class="table-view-cell">
|
||||
<span class="badge badge-default badge-inverted"><?php echo db_info()?> (<?php echo $DB['type']?>)</span>
|
||||
데이터베이스
|
||||
</li>
|
||||
<li class="table-view-cell">
|
||||
<span class="badge badge-default badge-inverted"><?php echo $git_version?$git_version:'git 미설치'?></span>
|
||||
버전관리
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section class="page right" id="page-software-loglist">
|
||||
<header class="bar bar-nav bar-light bg-white px-0">
|
||||
<a class="icon material-icons pull-left px-3" role="button" data-history="back">arrow_back</a>
|
||||
<h1 class="title title-left" data-history="back">업데이트 이력</h1>
|
||||
</header>
|
||||
<div class="content">
|
||||
<ul class="table-view mt-0 border-top-0 bg-white" data-role="list">
|
||||
</ul>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section class="page right" id="page-software-logview">
|
||||
<header class="bar bar-nav bar-light bg-white px-0">
|
||||
<a class="icon material-icons pull-left px-3" role="button" data-history="back">arrow_back</a>
|
||||
<h1 class="title title-left" data-history="back">업데이트 상세내역 <small class="ml-2 text-muted" data-role="title"></small></h1>
|
||||
</header>
|
||||
<div class="content text-xs-left bg-white">
|
||||
<table class="table f14 bg-white border-bottom mb-1" style="margin-top:-1px">
|
||||
<colgroup>
|
||||
<col width="25%">
|
||||
<col>
|
||||
</colgroup>
|
||||
<tbody>
|
||||
<tr>
|
||||
<th scope="row" class="text-xs-center">버전</th>
|
||||
<td><span data-role="version"></span></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row" class="text-xs-center">일시</th>
|
||||
<td><span data-role="d_regis"></span></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row" class="text-xs-center">작업자</th>
|
||||
<td><span data-role="name"></span></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<div class="">
|
||||
<textarea class="form-control border-0 f14" style="height:60vh" data-role="output"></textarea>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section class="page right" id="page-software-kimsq">
|
||||
<header class="bar bar-nav bar-light bg-white px-0">
|
||||
<a class="icon material-icons pull-left px-3" role="button" data-history="back">arrow_back</a>
|
||||
<h1 class="title title-left" data-history="back">설명서</h1>
|
||||
</header>
|
||||
<div class="content">
|
||||
|
||||
<div class="content-padded markdown-body text-xs-left">
|
||||
<?php readfile('./README.md')?>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section class="page right" id="page-software-license">
|
||||
<header class="bar bar-nav bar-light bg-white px-0">
|
||||
<a class="icon material-icons pull-left px-3" role="button" data-history="back">arrow_back</a>
|
||||
<h1 class="title title-left" data-history="back">라이센스</h1>
|
||||
</header>
|
||||
<div class="content">
|
||||
|
||||
<textarea class="form-control border-0" style="height:90vh"><?php readfile('./LICENSE')?></textarea>
|
||||
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<div id="sheet-update-confirm" class="sheet" style="top: 50vh;">
|
||||
<header class="bar bar-nav bar-inverse bg-primary">
|
||||
<h1 class="title title-left px-3">업데이트 전 유의사항</h1>
|
||||
</header>
|
||||
<nav class="bar bar-tab bar-light bg-white">
|
||||
<a class="tab-item text-muted" role="button" data-history="back">
|
||||
취소
|
||||
</a>
|
||||
<a class="tab-item text-primary border-left" role="button" data-act="submit">
|
||||
확인 했습니다.
|
||||
</a>
|
||||
</nav>
|
||||
<main>
|
||||
<div class="content-padded">
|
||||
<p>업데이트시 최신 코드가 적용됩니다.</p>
|
||||
<p>기본 패키지 파일에 직접 수정하거나 추가한 코드가 포함된 파일이 업데이트 내역에 포함되어 있을 경우, 해당사항이 덧씌워 집니다.</p>
|
||||
<p><mark>업데이트 전에 반드시 코드를 별도파일로 분리하거나 파일명을 변경한 후 업데이트 해주세요.</mark></p>
|
||||
</div>
|
||||
</main>
|
||||
</div>
|
||||
|
||||
<?php getImport('jquery-markdown','jquery.markdown','0.0.10','js')?>
|
||||
|
||||
<script src="<?php echo $g['url_layout']?>/_js/system.js<?php echo $g['wcache']?>"></script>
|
||||
153
layouts/rc-starter/_var/_var.config.php
Normal file
153
layouts/rc-starter/_var/_var.config.php
Normal file
@@ -0,0 +1,153 @@
|
||||
<?php
|
||||
if(!defined('__KIMS__')) exit;
|
||||
|
||||
//***********************************************************************************
|
||||
// 여기에 이 레이아웃에서 사용할 변수들을 정의합니다.
|
||||
// 변수 작성법은 매뉴얼을 참고하세요.
|
||||
//***********************************************************************************
|
||||
|
||||
$d['layout']['show'] = true; // 관리패널에 레이아웃 관리탭을 보여주기
|
||||
$d['layout']['date'] = false; // 데이트픽커 사용
|
||||
|
||||
//***********************************************************************************
|
||||
// 설정배열
|
||||
//***********************************************************************************
|
||||
|
||||
$d['layout']['dom'] = array(
|
||||
|
||||
/* 헤더 */
|
||||
'header' => array(
|
||||
'헤더',
|
||||
'',
|
||||
array(
|
||||
array('title','input','사이트 제목',''),
|
||||
array('file','file','이미지 로고',''),
|
||||
array('search','select','검색버튼 출력','예=true,아니오=false'),
|
||||
array('noti','select','알림버튼 출력','예=true,아니오=false'),
|
||||
),
|
||||
),
|
||||
|
||||
/* 메인 페이지 */
|
||||
'main' => array(
|
||||
'메인',
|
||||
'',
|
||||
array(
|
||||
array('type','select','타입','기본=postAllFeed,직접 꾸미기=widget'),
|
||||
),
|
||||
),
|
||||
|
||||
'company' => array(
|
||||
'기업정보',
|
||||
'',
|
||||
array(
|
||||
array('name','input','회사명',''),
|
||||
array('ceo','input','대표자',''),
|
||||
array('num','input','사업자등록번호',''),
|
||||
array('num2','input','통신판매업',''),
|
||||
array('manager','input','개인정보보호책임자',''),
|
||||
array('addr','textarea','주소','3'),
|
||||
),
|
||||
),
|
||||
|
||||
'contact' => array(
|
||||
'고객센터',
|
||||
'',
|
||||
array(
|
||||
array('tel','input','전화번호',''),
|
||||
array('email','input','이메일',''),
|
||||
array('fax','input','팩스',''),
|
||||
),
|
||||
),
|
||||
|
||||
'sns' => array(
|
||||
'소셜미디어',
|
||||
'URL을 입력하세요.',
|
||||
array(
|
||||
array('youtube','input','유튜브',''),
|
||||
array('instagram','input','인스타그램',''),
|
||||
array('facebook','input','페이스북',''),
|
||||
array('nblog','input','네이버블로그',''),
|
||||
array('ncafe','input','네이버카페',''),
|
||||
array('dcafe','input','다음카페',''),
|
||||
array('band','input','밴드',''),
|
||||
),
|
||||
),
|
||||
|
||||
);
|
||||
|
||||
$d['layout']['widget'] = array (
|
||||
|
||||
'post' => array(
|
||||
'포스트',
|
||||
array(
|
||||
array('rc-default/post/post/all/list-default','최근 리스트 기본'),
|
||||
array('rc-default/post/post/all/list-highlight','최근 리스트 강조'),
|
||||
array('rc-default/post/post/all/gallery-default','최근 갤러리'),
|
||||
array('rc-default/post/post/all/gallery-grid','최근 그리드'),
|
||||
array('rc-default/post/post/all/gallery-gridSwipe','최근 그리드 스와이프'),
|
||||
array('rc-default/post/post/all/medialist-default','최근 미디어 리스트'),
|
||||
array('rc-default/post/post/all/swipe-default','최근 스와이프 기본'),
|
||||
array('rc-default/post/post/all/swipe-jumbotron','최근 스와이프 점보트론'),
|
||||
array('rc-default/post/post/all/swipe-multi','최근 스와이프 멀티'),
|
||||
|
||||
array('rc-default/post/post/best/list-default','인기 리스트'),
|
||||
array('rc-default/post/post/best/list-highlight','인기 리스트 강조'),
|
||||
array('rc-default/post/post/best/medialist-default','인기 미디어 리스트'),
|
||||
array('rc-default/post/post/best/gallery-default','인기 갤러리'),
|
||||
array('rc-default/post/post/best/gallery-grid','인기 그리드'),
|
||||
array('rc-default/post/post/best/gallery-gridSwipe','인기 그리드 스와이프'),
|
||||
array('rc-default/post/post/best/swipe-default','인기 스와이프 기본'),
|
||||
array('rc-default/post/post/best/swipe-multi','인기 스와이프 멀티'),
|
||||
|
||||
array('rc-default/post/post/tag/list-default','태그 리스트'),
|
||||
array('rc-default/post/post/tag/list-highlight','태그 리스트 강조'),
|
||||
|
||||
array('rc-default/post/post/cat/list-default','카테고리 리스트'),
|
||||
|
||||
array('rc-default/post/list/view/list-default','리스트뷰 리스트 기본'),
|
||||
array('rc-default/post/list/view/list-highlight','리스트뷰 리스트 강조'),
|
||||
array('rc-default/post/list/view/gallery-default','리스트뷰 갤러리'),
|
||||
|
||||
// array('list/view-card','특정 리스트'),
|
||||
// array('list/req-banner','기간별 추천 포스트'),
|
||||
// array('list/req-swipe','최근 리스트'),
|
||||
// array('post/cat-collapse','특정 리스트'),
|
||||
// array('post/req-card','특정 키워드'),
|
||||
// array('post/req-swipe','특정 키워드'),
|
||||
),
|
||||
),
|
||||
|
||||
|
||||
'bbs' => array(
|
||||
'게시판',
|
||||
array(
|
||||
array('rc-default/bbs/all/list-default','최근 리스트 기본'),
|
||||
),
|
||||
),
|
||||
|
||||
'member' => array(
|
||||
'프로필',
|
||||
array(
|
||||
array('rc-default/member/my/card-default','나의 프로필 카드')
|
||||
),
|
||||
),
|
||||
|
||||
'site' => array(
|
||||
'사이트',
|
||||
array(
|
||||
array('rc-default/site/cover-default','사이트 커버 기본형')
|
||||
),
|
||||
),
|
||||
|
||||
'search' => array(
|
||||
'검색',
|
||||
array(
|
||||
array('rc-default/search/tag/ranking-top10','기간별 주요 키워드')
|
||||
),
|
||||
),
|
||||
);
|
||||
|
||||
|
||||
|
||||
//***********************************************************************************
|
||||
?>
|
||||
3
layouts/rc-starter/_var/_var.main.php
Normal file
3
layouts/rc-starter/_var/_var.main.php
Normal file
@@ -0,0 +1,3 @@
|
||||
<?php
|
||||
$d['layout']['main_widgets'] = "";
|
||||
?>
|
||||
8
layouts/rc-starter/_var/_var.php
Normal file
8
layouts/rc-starter/_var/_var.php
Normal file
@@ -0,0 +1,8 @@
|
||||
<?php
|
||||
$d['layout']['header_title'] = "마이홈";
|
||||
$d['layout']['header_file'] = "";
|
||||
$d['layout']['header_search'] = "true";
|
||||
$d['layout']['header_noti'] = "true";
|
||||
$d['layout']['main_type'] = "postAllFeed";
|
||||
$d['layout']['kakao_key'] = "";
|
||||
?>
|
||||
1
layouts/rc-starter/_var/nopanel.txt
Normal file
1
layouts/rc-starter/_var/nopanel.txt
Normal file
@@ -0,0 +1 @@
|
||||
nopanel.txt
|
||||
42
layouts/rc-starter/blank-drawer.php
Normal file
42
layouts/rc-starter/blank-drawer.php
Normal file
@@ -0,0 +1,42 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="ko">
|
||||
<head>
|
||||
<?php include $g['dir_layout'].'/_includes/_import.head.php' ?>
|
||||
<!-- snap 서랍형 사이드메뉴 -->
|
||||
<?php getImport('snap','rc-snap','1.9.3','css')?>
|
||||
<?php getImport('snap','rc-snap','1.9.3','js')?>
|
||||
|
||||
</head>
|
||||
<body class="rb-layout-blank-drawer">
|
||||
|
||||
<div data-role="edge_android">
|
||||
<img src="<?php echo $g['img_core']?>/androidscroll.png" id="topEdge">
|
||||
<img src="<?php echo $g['img_core']?>/androidscroll.png" id="bottomEdge">
|
||||
</div>
|
||||
|
||||
<div class="page center" id="page-main">
|
||||
<div class="snap-drawers">
|
||||
<div class="snap-drawer snap-drawer-left" id="drawer-left">
|
||||
<?php include $g['dir_layout'].'/_includes/drawer-left.php' ?>
|
||||
</div>
|
||||
<div class="snap-drawer snap-drawer-right bg-faded" id="drawer-right">
|
||||
<?php include $g['dir_layout'].'/_includes/drawer-right.php' ?>
|
||||
</div>
|
||||
</div>
|
||||
<div class="snap-content" data-extension="drawer" data-snap-ignore="true">
|
||||
<?php include __KIMS_CONTENT__ ?>
|
||||
</div><!-- /.snap-content -->
|
||||
</div><!-- /.page -->
|
||||
|
||||
<?php include $g['dir_layout'].'/_includes/component.php' ?>
|
||||
<?php include $g['dir_layout'].'/_includes/_import.foot.php' ?>
|
||||
<script>
|
||||
$(function() {
|
||||
RC_initDrawer({
|
||||
disable : 'right'
|
||||
}); // 드로어 플러그인 초기화
|
||||
});
|
||||
</script>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
14
layouts/rc-starter/blank.php
Normal file
14
layouts/rc-starter/blank.php
Normal file
@@ -0,0 +1,14 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="ko">
|
||||
<head>
|
||||
<?php include $g['dir_layout'].'/_includes/_import.head.php' ?>
|
||||
</head>
|
||||
<body class="rb-layout-blank">
|
||||
|
||||
<?php include __KIMS_CONTENT__ ?>
|
||||
|
||||
<?php include $g['dir_layout'].'/_includes/component.php' ?>
|
||||
<?php include $g['dir_layout'].'/_includes/_import.foot.php' ?>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
63
layouts/rc-starter/default.php
Normal file
63
layouts/rc-starter/default.php
Normal file
@@ -0,0 +1,63 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="ko">
|
||||
<head>
|
||||
|
||||
<?php include $g['dir_layout'].'/_includes/_import.head.php' ?>
|
||||
<?php include $g['dir_layout'].'/_includes/component.php' ?>
|
||||
|
||||
<!-- snap 서랍형 사이드메뉴 -->
|
||||
<?php getImport('snap','rc-snap','1.9.3','css')?>
|
||||
<?php getImport('snap','rc-snap','1.9.3','js')?>
|
||||
|
||||
</head>
|
||||
<body class="rb-layout-default">
|
||||
|
||||
<div data-role="edge_android">
|
||||
<img src="<?php echo $g['img_core']?>/androidscroll.png" id="topEdge">
|
||||
<img src="<?php echo $g['img_core']?>/androidscroll.png" id="bottomEdge">
|
||||
</div>
|
||||
|
||||
<div class="page center" id="page-main">
|
||||
<div class="snap-drawers">
|
||||
<div class="snap-drawer snap-drawer-left" id="drawer-left">
|
||||
<?php include $g['dir_layout'].'/_includes/drawer-left.php' ?>
|
||||
</div>
|
||||
<div class="snap-drawer snap-drawer-right bg-faded" id="drawer-right">
|
||||
<?php include $g['dir_layout'].'/_includes/drawer-right.php' ?>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="snap-content" data-extension="drawer">
|
||||
|
||||
<?php include $g['dir_layout'].'/_includes/header.php' ?>
|
||||
|
||||
<?php if ($c): ?>
|
||||
<div class="bar bar-standard bar-header-secondary bar-light bg-white animated fadeIn delay-1" data-snap-ignore="true">
|
||||
<h1 class="title"><?php echo $_HM['name']?></h1>
|
||||
</div>
|
||||
<?php endif; ?>
|
||||
|
||||
<main role="main" class="content bg-faded" data-snap-ignore="true">
|
||||
|
||||
<article class="animated fadeIn delay-1 " style="min-height:250px" role="article">
|
||||
<?php include __KIMS_CONTENT__ ?>
|
||||
</article>
|
||||
<?php include $g['dir_layout'].'/_includes/footer.php' ?>
|
||||
</main>
|
||||
|
||||
|
||||
</div><!-- /.snap-content -->
|
||||
</div><!-- /.page -->
|
||||
|
||||
<?php include $g['dir_layout'].'/_includes/_import.foot.php' ?>
|
||||
|
||||
<script src="<?php echo $g['url_layout']?>/_js/component.js"></script>
|
||||
|
||||
<script>
|
||||
$(function() {
|
||||
RC_initDrawer(); // 드로어 플러그인 초기화
|
||||
});
|
||||
</script>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
1
layouts/rc-starter/name.txt
Normal file
1
layouts/rc-starter/name.txt
Normal file
@@ -0,0 +1 @@
|
||||
모바일 시작하기 레이아웃
|
||||
Reference in New Issue
Block a user