first
This commit is contained in:
18
modules/post/themes/_desktop/bs4-default/_404.php
Normal file
18
modules/post/themes/_desktop/bs4-default/_404.php
Normal file
@@ -0,0 +1,18 @@
|
||||
<div class="jumbotron jumbotron-fluid bg-white py-5 mb-0">
|
||||
<div class="container">
|
||||
<h1 class="display-2 text-center">404</h1>
|
||||
<p class="lead text-center text-muted">잘못된 주소이거나 비공개 또는 삭제된 글입니다.</p>
|
||||
|
||||
<div class="text-center">
|
||||
<?php if (!$my['uid']): ?>
|
||||
<button type="button" class="btn btn-primary" data-toggle="modal" data-target="#modal-login">로그인 하기</button>
|
||||
<?php endif; ?>
|
||||
<button type="button" class="btn btn-light" onclick="history.back();">이전가기</button>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script type="text/javascript">
|
||||
document.title = 'Page not found · 킴스큐';
|
||||
</script>
|
||||
98
modules/post/themes/_desktop/bs4-default/_comment.php
Normal file
98
modules/post/themes/_desktop/bs4-default/_comment.php
Normal file
@@ -0,0 +1,98 @@
|
||||
<?php
|
||||
|
||||
// 댓글 일반 사항
|
||||
/*
|
||||
1) 댓글 저장 테이블 : rb_s_comment
|
||||
2) 한줄의견 저장 테이블 : rb_s_oneline
|
||||
3) rb_s_comment 의 parent 필드 저장형식 ==> p_modulep_uid
|
||||
예를 들어, 게시판 모듈의 uid = 3 인 글의 댓글은 아래와 같이 저장됩니다.
|
||||
====> bbs3
|
||||
4) 테마 css 는 테마/css/style.css 이며 댓글박스 가져올때 자동으로 함께 링크를 가져옵니다.
|
||||
이 css 를 삭제하면 안되며 필요없는 경우 공백으로 처리하는 방법으로 하시기 바랍니다.
|
||||
현재, notify 부분에 대한 css 가 있어서 삭제하면 안됩니다.
|
||||
*/
|
||||
|
||||
// 댓글 출력 함수
|
||||
// 함수 호출 방식으로 하면 모달 호출시에도 적용하기 편합니다.
|
||||
/*
|
||||
1) module = 부모모듈 : 댓글의 부모 모듈 id ( ex: bbs, post, forum ...)
|
||||
2) parent_uid = 부모 uid : 댓글의 부모 포스트 uid
|
||||
3) parent_table = 부모 테이블 : p_uid 가 소속된 테이블명 ( ex : rb_bbs_data, rb_blog_data, rb_chanel_data ...)
|
||||
(댓글, 한줄의견 추가/삭제시 합계 업데이트시 필요)
|
||||
*/
|
||||
|
||||
$comment_theme = '_desktop/bs4-default'; // 댓글 테마
|
||||
?>
|
||||
|
||||
|
||||
<div id="commentting-container">
|
||||
<!-- 댓글 출력 -->
|
||||
</div>
|
||||
|
||||
<link href="<?php echo $g['url_root']?>/modules/comment/themes/<?php echo $comment_theme?>/css/style.css" rel="stylesheet">
|
||||
|
||||
|
||||
|
||||
<script>
|
||||
|
||||
var attach_file_saveDir = '<?php echo $g['path_file']?>comment/';// 파일 업로드 폴더
|
||||
var attach_module_theme = '_desktop/bs4-default-attach';// attach 모듈 테마
|
||||
|
||||
$(function() {
|
||||
|
||||
// 댓글 출력 함수 실행
|
||||
var p_module = '<?php echo $m?>';
|
||||
var p_table = '<?php echo $table[$m.'data']?>';
|
||||
var p_uid = '<?php echo $R['uid']?>';
|
||||
var theme = '<?php echo $comment_theme ?>';
|
||||
var agent = navigator.userAgent.toLowerCase();
|
||||
|
||||
var commentting_container = $('#commentting-container');
|
||||
|
||||
var get_Rb_Comment = function(p_module,p_table,p_uid,theme){
|
||||
commentting_container.Rb_comment({
|
||||
moduleName : 'comment', // 댓글 모듈명 지정 (수정금지)
|
||||
parent : p_module+'-'+p_uid, // rb_s_comment parent 필드에 저장되는 형태가 p_modulep_uid 형태임 참조.(- 는 저장시 제거됨)
|
||||
parent_table : p_table, // 부모 uid 가 저장된 테이블 (게시판인 경우 rb_bbs_data : 댓글, 한줄의견 추가/삭제시 전체 합계 업데이트용)
|
||||
theme_name : theme, // 댓글 테마
|
||||
containerClass :'rb-commentting', // 본 엘리먼트(#commentting-container)에 추가되는 class
|
||||
recnum: 15, // 출력갯수
|
||||
commentPlaceHolder : '댓글을 입력해 주세요..',
|
||||
noMoreCommentMsg : '댓글 없음 ',
|
||||
commentLength : 500, // 댓글 입력 글자 수 제한
|
||||
toolbar : ['heading','strikethrough','imageUpload','link','bulletedList', 'numberedList', 'blockQuote','|','alignment:left','alignment:center','|','Highlight','Code','insertTable'] // 툴바 항목
|
||||
});
|
||||
}
|
||||
|
||||
get_Rb_Comment(p_module,p_table,p_uid,theme);
|
||||
|
||||
$('[data-toggle="tooltip"]').tooltip()
|
||||
|
||||
// 댓글이 등록된 후에
|
||||
$('#commentting-container').on('saved.rb.comment',function(){
|
||||
// $.notify({message:'댓글이 등록 되었습니다.'});
|
||||
$('[data-toggle="tooltip"]').tooltip()
|
||||
|
||||
$(document).on('click','.add-comment',function(){
|
||||
var uid = $(this).data('parent')
|
||||
var textarea = $('[data-role="oneline-input-'+uid+'"]')
|
||||
setTimeout(function(){ textarea.focus(); }, 200); // 한줄의견 추가시에 textarea focus 처리하기
|
||||
});
|
||||
|
||||
})
|
||||
// 댓글이 수정된 후에
|
||||
$('#commentting-container').on('edited.rb.comment',function(){
|
||||
$.notify({message: '댓글이 수정 되었습니다.'},{type: 'success'});
|
||||
})
|
||||
|
||||
// 한줄의견이 등록된 후에
|
||||
$('#commentting-container').on('saved.rb.oneline',function(){
|
||||
$('[data-toggle="tooltip"]').tooltip()
|
||||
})
|
||||
$('#commentting-container').on('edited.rb.oneline',function(){
|
||||
$.notify({message: '의견이 수정 되었습니다.'},{type: 'success'});
|
||||
})
|
||||
|
||||
});
|
||||
|
||||
</script>
|
||||
@@ -0,0 +1,43 @@
|
||||
<li class="list-group-item media align-items-center serial"
|
||||
data-role="item"
|
||||
data-subject="{$subject}"
|
||||
data-featured_img="{$featured_img}">
|
||||
<div class="pr-3 text-muted counter"></div>
|
||||
<a href="{$link}" class="position-relative mr-3" target="_blank">
|
||||
<img class="border" src="{$featured_img}" alt="" style="width:100px">
|
||||
<time class="badge badge-dark rounded-0 position-absolute" style="right:1px;bottom:1px">{$time}</time>
|
||||
</a>
|
||||
<div class="media-body">
|
||||
<h5 class="f14 my-1 line-clamp-2">
|
||||
<a href="{$edit_link}" class="font-weight-light muted-link">
|
||||
{$subject}
|
||||
</a>
|
||||
</h5>
|
||||
<div class="mb-1">
|
||||
<ul class="list-inline d-inline-block f12 text-muted">
|
||||
<li class="list-inline-item">조회 {$hit}</li>
|
||||
<li class="list-inline-item">
|
||||
<a href="#modal-post-opinion" data-toggle="modal" data-backdrop="static" data-uid="{$uid}" data-opinion="like" class="text-reset">
|
||||
좋아요 {$likes}
|
||||
</a>
|
||||
</li>
|
||||
<li class="list-inline-item">
|
||||
<a href="#modal-post-opinion" data-toggle="modal" data-backdrop="static" data-uid="{$uid}" data-opinion="dislike" class="text-reset">
|
||||
싫어요 {$dislikes}
|
||||
</a>
|
||||
</li>
|
||||
<li class="list-inline-item">댓글 {$comment}</li>
|
||||
<li class="list-inline-item">
|
||||
<time data-plugin="timeago" datetime="{$d_modify}"></time>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="ml-3 align-self-center form-inline">
|
||||
<span class="text-muted mr-1 f14 rounded-0 px-2 align-middle">{$num}</span>
|
||||
<button type="button" class="btn btn-white btn-sm" data-target="#modal-post-analytics" data-toggle="modal" data-backdrop="static" data-uid="{$uid}">
|
||||
<i class="fa fa-bar-chart" aria-hidden="true"></i>
|
||||
</button>
|
||||
</div>
|
||||
</li>
|
||||
@@ -0,0 +1,11 @@
|
||||
<a class="list-group-item list-group-item-action" href="{$profile_link}" class="media" target="_blank">
|
||||
<div class="position-relative pull-left mr-2">
|
||||
<img class="media-object border rounded-circle" src="{$avatar}" style="width:42px" data-toggle="tooltip" title="{$nic}" role="button">
|
||||
<i class="position-absolute fa fa-heart text-danger" aria-hidden="true" style="bottom:0;right:0"></i>
|
||||
</div>
|
||||
|
||||
<div class="media-body">
|
||||
{$nic}
|
||||
<div><time data-plugin="timeago" class="small">{$d_regis}</time></div>
|
||||
</div>
|
||||
</a>
|
||||
104
modules/post/themes/_desktop/bs4-default/_linkshare.php
Normal file
104
modules/post/themes/_desktop/bs4-default/_linkshare.php
Normal file
@@ -0,0 +1,104 @@
|
||||
<?php
|
||||
$_WTIT=strip_tags($g['meta_tit']);
|
||||
$link_url = explode("?", $g['url_root'].$_SERVER['REQUEST_URI']); // 파라미터 제외
|
||||
$_link_url = $link_url[0] ;
|
||||
?>
|
||||
|
||||
<ul class="list-inline" data-role="linkshare">
|
||||
<li data-toggle="tooltip" title="페이스북" class="list-inline-item">
|
||||
<a href="" role="button" onclick="snsWin('fb');">
|
||||
<img src="<?php echo $g['img_core']?>/sns/facebook.png" alt="페이스북공유" class="rounded-circle" width="50">
|
||||
</a>
|
||||
</li>
|
||||
<li data-toggle="tooltip" title="카카오스토리" class="list-inline-item">
|
||||
<a href="" role="button" onclick="snsWin('ks');">
|
||||
<img src="<?php echo $g['img_core']?>/sns/kakaostory.png" alt="카카오스토리" class="rounded-circle" width="50">
|
||||
</a>
|
||||
</li>
|
||||
<li data-toggle="tooltip" title="네이버" class="list-inline-item">
|
||||
<a href="" role="button" onclick="snsWin('nv');">
|
||||
<img src="<?php echo $g['img_core']?>/sns/naver.png" alt="네이버" class="rounded-circle" width="50">
|
||||
</a>
|
||||
</li>
|
||||
<li data-toggle="tooltip" title="트위터" class="list-inline-item">
|
||||
<a href="" role="button" onclick="snsWin('tt');">
|
||||
<img src="<?php echo $g['img_core']?>/sns/twitter.png" alt="트위터" class="rounded-circle" width="50">
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<div class="mt-5 mb-4">
|
||||
<div class="input-group mt-3" data-role="ref_selector">
|
||||
<div class="input-group-prepend">
|
||||
<button class="btn btn-white dropdown-toggle text-primary" type="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
|
||||
선택
|
||||
</button>
|
||||
<div class="dropdown-menu shadow" data-url="<?php echo $_link_url?>">
|
||||
<a class="dropdown-item" href="#" data-ref="kt">카카오톡</a>
|
||||
<a class="dropdown-item" href="#" data-ref="yt">유튜브</a>
|
||||
<a class="dropdown-item" href="#" data-ref="fb">페이스북</a>
|
||||
<a class="dropdown-item" href="#" data-ref="ig">인스타그램</a>
|
||||
<a class="dropdown-item" href="#" data-ref="nb">네이버 블로그</a>
|
||||
<a class="dropdown-item" href="#" data-ref="ks">카카오스토리</a>
|
||||
<a class="dropdown-item" href="#" data-ref="tt">트위터</a>
|
||||
<div role="separator" class="dropdown-divider"></div>
|
||||
<a class="dropdown-item" href="#" data-ref="em">이메일</a>
|
||||
<a class="dropdown-item" href="#" data-ref="sm">SMS</a>
|
||||
<a class="dropdown-item" href="#" data-ref="et">기타</a>
|
||||
</div>
|
||||
</div>
|
||||
<input type="text" class="form-control" readonly value="<?php echo $_link_url?>" id="_url_">
|
||||
<div class="input-group-append">
|
||||
<button class="btn btn-white js-clipboard js-tooltip" type="button" title="클립보드에 복사" data-clipboard-target="#_url_">
|
||||
<i class="fa fa-clone" aria-hidden="true"></i>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
<span class="form-text text-muted mt-3 f13">통계분석을 위해 매체별 전용URL 사용해주세요.</span>
|
||||
</div>
|
||||
|
||||
<?php getImport('clipboard','clipboard.min','2.0.4','js'); ?>
|
||||
|
||||
<script type="text/javascript">
|
||||
|
||||
// sns 이벤트
|
||||
function snsWin(sns) {
|
||||
var snsset = new Array();
|
||||
var enc_sbj = "<?php echo urlencode($_WTIT)?>";
|
||||
var enc_url = "<?php echo $_link_url?>?ref="+sns;
|
||||
var enc_tag = "<?php echo urlencode(str_replace(',',' ',$R['tag']))?>";
|
||||
snsset['tt'] = 'https://twitter.com/intent/tweet?url=' + enc_url + '&text=' + enc_sbj;
|
||||
snsset['fb'] = 'http://www.facebook.com/sharer.php?u=' + enc_url;
|
||||
snsset['nv'] = 'http://share.naver.com/web/shareView.nhn?url=' + enc_url + '&title=' + enc_sbj;
|
||||
snsset['ks'] = 'https://story.kakao.com/share?url=' + enc_url + '&title=' + enc_sbj;
|
||||
window.open(snsset[sns]);
|
||||
}
|
||||
|
||||
$( document ).ready(function() {
|
||||
|
||||
var clipboard = new ClipboardJS('.js-clipboard');
|
||||
clipboard.on('success', function (e) {
|
||||
$(e.trigger)
|
||||
.attr('title', '복사완료!')
|
||||
.tooltip('_fixTitle')
|
||||
.tooltip('show')
|
||||
.attr('title', '클립보드 복사')
|
||||
.tooltip('_fixTitle')
|
||||
|
||||
e.clearSelection()
|
||||
})
|
||||
|
||||
$('[data-role="ref_selector"]').find('.dropdown-item').click(function(){
|
||||
var item = $(this)
|
||||
var selector = $('[data-role="ref_selector"]')
|
||||
var ref = item.attr('data-ref');
|
||||
var url = selector.find('.dropdown-menu').attr('data-url');
|
||||
var label = item.text();
|
||||
selector.find('[data-toggle="dropdown"]').text(label)
|
||||
selector.find('[type="text"]').val(url+'?ref='+ref)
|
||||
selector.find('.js-tooltip').click();
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
</script>
|
||||
23
modules/post/themes/_desktop/bs4-default/_listadd.php
Normal file
23
modules/post/themes/_desktop/bs4-default/_listadd.php
Normal file
@@ -0,0 +1,23 @@
|
||||
<?php
|
||||
$listque = 'mbruid='.$my['uid'];
|
||||
$_RCD = getDbArray($table[$m.'list'],$listque,'*','gid','asc',30,1);
|
||||
$NUM = getDbRows($table[$m.'list'],$listque);
|
||||
?>
|
||||
|
||||
<div data-role="list-selector">
|
||||
<?php foreach($_RCD as $_R):?>
|
||||
<?php $is_list = getDbRows($table[$m.'list_index'],'data='.$R['uid'].' and list='.$_R['uid']) ?>
|
||||
<div class="d-flex justify-content-between align-items-center px-3 py-2">
|
||||
<div class="custom-control custom-checkbox">
|
||||
<input type="checkbox" id="listRadio<?php echo $_R['uid'] ?>" name="postlist_members[]" value="<?php echo $_R['uid'] ?>" class="custom-control-input" <?php echo $is_list?' checked':'' ?>>
|
||||
<label class="custom-control-label" for="listRadio<?php echo $_R['uid'] ?>"><?php echo $_R['name'] ?></label>
|
||||
</div>
|
||||
<i class="material-icons text-muted mr-2" data-toggle="tooltip" title="<?php echo $g['displaySet']['label'][$_R['display']] ?>"><?php echo $g['displaySet']['icon'][$_R['display']] ?></i>
|
||||
</div>
|
||||
<?php endforeach?>
|
||||
|
||||
</div>
|
||||
|
||||
<?php if(!$NUM):?>
|
||||
<div class="text-center text-muted p-5">리스트가 없습니다.</div>
|
||||
<?php endif?>
|
||||
244
modules/post/themes/_desktop/bs4-default/_main.css
Normal file
244
modules/post/themes/_desktop/bs4-default/_main.css
Normal file
@@ -0,0 +1,244 @@
|
||||
/* form */
|
||||
.dropdown-filter .dropdown-toggle {
|
||||
position: relative;
|
||||
text-align: left;
|
||||
min-width: 10rem
|
||||
}
|
||||
|
||||
.dropdown-filter .dropdown-toggle::after {
|
||||
position: absolute;
|
||||
top: 50%;
|
||||
right: 10px;
|
||||
margin-top: -2px;
|
||||
}
|
||||
|
||||
.dropdown-filter.show .dropdown-toggle::after {
|
||||
border-bottom: .3em solid;
|
||||
border-top: 0;
|
||||
}
|
||||
|
||||
.dropdown-menu {
|
||||
border-radius: 0;
|
||||
}
|
||||
|
||||
.input-group .form-control:focus {
|
||||
border-color: #ced4da;
|
||||
outline: 0;
|
||||
box-shadow: none;
|
||||
}
|
||||
.input-group .btn:hover {
|
||||
background-color: inherit;
|
||||
border-color: rgba(27,31,35,0.2);
|
||||
}
|
||||
|
||||
/*attach*/
|
||||
.post-section .gallery figure,
|
||||
.post-section .gallery .card {
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.post-section .gallery figcaption,
|
||||
.post-section .gallery .card-img-overlay {
|
||||
opacity: 0;
|
||||
position: absolute;
|
||||
top:0;
|
||||
left: 0;
|
||||
right: 0;
|
||||
bottom: 0;
|
||||
background-color: rgba(0, 0, 0, 0.5);
|
||||
word-break: break-all;
|
||||
cursor: pointer;
|
||||
transition-timing-function: ease-in;
|
||||
transition-duration: .3s;
|
||||
transition-property: all;
|
||||
transition-delay: 0s;
|
||||
}
|
||||
|
||||
.post-section .gallery figcaption {
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
.post-section .gallery .card-img-overlay:hover,
|
||||
.post-section .gallery figcaption:hover {
|
||||
opacity: 1 !important;
|
||||
-webkit-transform: translate(0, 0);
|
||||
-ms-transform: translate(0, 0);
|
||||
transform: translate(0, 0);
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
.post-section .gallery .card-img-overlay:hover {
|
||||
background-color: #fff !important
|
||||
}
|
||||
|
||||
.post-section .gallery [data-role="caption"] {
|
||||
display: none;
|
||||
}
|
||||
.post-section .clearfix .float-left:first-child {
|
||||
margin-right: 10px
|
||||
}
|
||||
|
||||
.card__corner {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
right: 0;
|
||||
width: 2em;
|
||||
height: 2em;
|
||||
background-color: #e6e7e8;
|
||||
border: 1px solid rgba(0,0,0,.045);
|
||||
border-top: 0;
|
||||
}
|
||||
.card .card__corner {
|
||||
top: -1px;
|
||||
right: -1px;
|
||||
}
|
||||
|
||||
.card__corner .card__corner-triangle {
|
||||
position: absolute;
|
||||
width: 0;
|
||||
height: 0;
|
||||
border-style: solid;
|
||||
border-width: 0 2em 2em 0;
|
||||
border-color: transparent #fff transparent transparent;
|
||||
}
|
||||
|
||||
.post-section .gallery .card:hover .card__corner,
|
||||
.post-section .gallery figure:hover .card__corner {
|
||||
display: none
|
||||
}
|
||||
|
||||
/* 보기 */
|
||||
.serial {
|
||||
counter-increment: Serial;
|
||||
}
|
||||
.serial .counter:before {
|
||||
content: counter(Serial);
|
||||
}
|
||||
.serial.active .counter:before {
|
||||
content: '▶';
|
||||
}
|
||||
|
||||
[data-role="follow"].active {
|
||||
background-color: #e0e0e0 !important;
|
||||
color: #696969 !important;
|
||||
border: none !important
|
||||
}
|
||||
[data-role="follow"].active::after {
|
||||
content: '중'
|
||||
}
|
||||
|
||||
/* 쓰기 */
|
||||
.rb-post-write header {
|
||||
position: fixed;
|
||||
top: 0;
|
||||
left: 0;
|
||||
right:0;
|
||||
bottom:auto
|
||||
}
|
||||
|
||||
.rb-post-write aside {
|
||||
position: fixed;
|
||||
top: 64px;
|
||||
bottom: 0;
|
||||
right:0;
|
||||
left: auto;
|
||||
width: 350px;
|
||||
z-index: 99
|
||||
}
|
||||
|
||||
.rb-post-write aside .inner {
|
||||
position: relative;
|
||||
height: 100%
|
||||
}
|
||||
|
||||
.rb-post-write aside .nav-tabs {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left:0;
|
||||
right:0
|
||||
}
|
||||
|
||||
.rb-post-write aside .tab-content {
|
||||
position: absolute;
|
||||
top: 40px;
|
||||
left: 0;
|
||||
right:0;
|
||||
bottom:0;
|
||||
overflow-x: hidden;
|
||||
overflow-y: auto;
|
||||
}
|
||||
|
||||
.nav-tabs .nav-link {
|
||||
border: 1px solid transparent;
|
||||
border-top-left-radius: 0;
|
||||
border-top-right-radius: 0;
|
||||
color: #999;
|
||||
background-color: rgba(0,0,0,.03);
|
||||
}
|
||||
.nav-tabs .nav-item.show .nav-link,
|
||||
.nav-tabs .nav-link.active {
|
||||
color: #495057;
|
||||
background-color: #fff;
|
||||
border-color: #fff #dee2e6 #fff;
|
||||
}
|
||||
|
||||
.nav-tabs .nav-item:first-child.show .nav-link,
|
||||
.nav-tabs .nav-item:first-child .nav-link.active {
|
||||
border-color: #fff #dee2e6 #fff #fff;
|
||||
}
|
||||
|
||||
.nav-tabs .nav-link:focus,
|
||||
.nav-tabs .nav-link:hover {
|
||||
border-top-left-radius: 0;
|
||||
border-top-right-radius: 0;
|
||||
}
|
||||
|
||||
.nav-tabs .nav-link.disabled {
|
||||
color: #ccc;
|
||||
background-color: rgba(0,0,0,.03);
|
||||
}
|
||||
|
||||
.document-editor {
|
||||
position: absolute;
|
||||
top: 104px;
|
||||
right: 350px;
|
||||
bottom: 0;
|
||||
left: 0;
|
||||
overflow: auto;
|
||||
}
|
||||
.document-editor__toolbar {
|
||||
position: fixed;
|
||||
top: 64px;
|
||||
right: 350px;
|
||||
left: 0;
|
||||
}
|
||||
|
||||
.rb-post-write [name="subject"] {
|
||||
border-color: #fff;
|
||||
color: #000;
|
||||
font-size: 18px;
|
||||
height: calc(1.5em + .5rem + 2px);
|
||||
padding: .3rem .5rem;
|
||||
font-size: 18px;
|
||||
line-height: 1.5;
|
||||
}
|
||||
.rb-post-write [name="subject"]:hover {
|
||||
border-color: #ced4da
|
||||
}
|
||||
|
||||
.rb-post-write fieldset:disabled button {
|
||||
opacity: 0
|
||||
}
|
||||
|
||||
/* 관리 */
|
||||
.modal .nav-tabs .nav-link {
|
||||
border: 1px solid transparent;
|
||||
color: #999;
|
||||
background-color: transparent;
|
||||
}
|
||||
.modal .nav-tabs .nav-item.show .nav-link,
|
||||
.modal .nav-tabs .nav-link.active {
|
||||
color: #495057;
|
||||
background-color: #fff;
|
||||
border-color: #dee2e6 #dee2e6 #fff;
|
||||
}
|
||||
196
modules/post/themes/_desktop/bs4-default/_main.js
Normal file
196
modules/post/themes/_desktop/bs4-default/_main.js
Normal file
@@ -0,0 +1,196 @@
|
||||
var submitFlag = false;
|
||||
|
||||
function listCheckedNum() {
|
||||
var checked_num = $('[data-role="list-selector"] :checkbox:checked').length;
|
||||
if(checked_num==0) checked_num='';
|
||||
$('[data-role="list_num"]').text(checked_num);
|
||||
}
|
||||
|
||||
function doToc() {
|
||||
Toc.init({
|
||||
$nav: $("#toc"),
|
||||
$scope: $(".document-editor__editable-container h2, .document-editor__editable-container h3, .document-editor__editable-container h4")
|
||||
});
|
||||
}
|
||||
|
||||
function showSaveButton(changed) {
|
||||
if (changed) {
|
||||
$('[data-role="postsubmit"]').removeClass('d-none');
|
||||
$('[data-role="library"]').addClass('d-none');
|
||||
} else {
|
||||
$('[data-role="postsubmit"]').addClass('d-none');
|
||||
$('[data-role="library"]').removeClass('d-none');
|
||||
}
|
||||
}
|
||||
|
||||
function savePost(f) {
|
||||
|
||||
if (submitFlag == true) {
|
||||
alert('포스트를 등록하고 있습니다. 잠시만 기다려 주세요.');
|
||||
return false;
|
||||
}
|
||||
|
||||
// if (f.subject.value == '') {
|
||||
// alert('제목 입력해 주세요.');
|
||||
// f.subject.focus();
|
||||
// return false;
|
||||
// }
|
||||
|
||||
var editorData = editor.getData();
|
||||
|
||||
if (editorData == '')
|
||||
{
|
||||
$.notify({message: '본문 입력후 저장해 주세요.'},{type: 'primary'});
|
||||
editor.editing.view.focus();
|
||||
return false;
|
||||
} else {
|
||||
$('[name="content"]').val(editorData)
|
||||
}
|
||||
|
||||
// 카테고리 체크
|
||||
var cat_sel=$('input[name="tree_members[]"]');
|
||||
var cat_sel_n=cat_sel.length;
|
||||
var cat_arr=$('input[name="tree_members[]"]:checked').map(function(){return $(this).val();}).get();
|
||||
var cat_n=cat_arr.length;
|
||||
|
||||
// if(cat_sel_n>0 && cat_arr==''){
|
||||
// alert('지정된 카테고리가 없습니다.\n적어도 하나이상의 카테고리를 지정해 주세요.');
|
||||
// $('#advan').tab('show')
|
||||
// return false;
|
||||
// }
|
||||
|
||||
var s='';
|
||||
for (var i=0;i <cat_n;i++) {
|
||||
if(cat_arr[i]!='') s += '['+cat_arr[i]+']';
|
||||
}
|
||||
f.category_members.value = s;
|
||||
|
||||
|
||||
// 리스트 체크
|
||||
var list_sel=$('input[name="postlist_members[]"]');
|
||||
var list_arr=$('input[name="postlist_members[]"]:checked').map(function(){return $(this).val();}).get();
|
||||
var list_n=list_arr.length;
|
||||
var l='';
|
||||
for (var i=0;i <list_n;i++) {
|
||||
if(list_arr[i]!='') l += '['+list_arr[i]+']';
|
||||
}
|
||||
$('input[name="list_members"]').val(l);
|
||||
|
||||
// 대표이미지가 없을 경우, 첫번째 업로드 사진을 지정함
|
||||
var featured_img_input = $('input[name="featured_img"]'); // 대표이미지 input
|
||||
var featured_img_uid = $(featured_img_input).val();
|
||||
if(featured_img_uid ==0){ // 대표이미지로 지정된 값이 없는 경우
|
||||
var first_attach_img_li = $('.rb-attach-featured li:first'); // 첫번째 첨부된 이미지 리스트 li
|
||||
var first_attach_img_uid = $(first_attach_img_li).attr('data-id');
|
||||
featured_img_input.val(first_attach_img_uid);
|
||||
}
|
||||
|
||||
// 첨부파일 uid 를 upfiles 값에 추가하기
|
||||
var attachfiles=$('input[name="attachfiles[]"]').map(function(){return $(this).val()}).get();
|
||||
var new_upfiles='';
|
||||
if(attachfiles){
|
||||
for(var i=0;i<attachfiles.length;i++) {
|
||||
new_upfiles+=attachfiles[i];
|
||||
}
|
||||
$('input[name="upload"]').val(new_upfiles);
|
||||
}
|
||||
|
||||
// 공유회원 uid 를 members 값에 추가하기
|
||||
var postmembers=$('input[name="postmembers[]"]').map(function(){return $(this).val()}).get();
|
||||
var new_members='';
|
||||
if(postmembers){
|
||||
for(var i=0;i<postmembers.length;i++) {
|
||||
new_members+=postmembers[i];
|
||||
}
|
||||
$('input[name="members"]').val(new_members);
|
||||
}
|
||||
|
||||
// 첨부상품 uid 를 gooods 값에 추가하기
|
||||
var postgoods=$('input[name="attachGoods[]"]').map(function(){return $(this).val()}).get();
|
||||
var new_goods='';
|
||||
if(postgoods){
|
||||
for(var i=0;i<postgoods.length;i++) {
|
||||
new_goods+=postgoods[i];
|
||||
}
|
||||
$('input[name="goods"]').val(new_goods);
|
||||
}
|
||||
|
||||
checkUnload = false;
|
||||
$('[data-role="postsubmit"]').attr( 'disabled', true );
|
||||
|
||||
var form = $('[name="writeForm"]')
|
||||
var uid = form.find('[name="uid"]').val();
|
||||
var category_members = form.find('[name="category_members"]').val();
|
||||
var list_members = form.find('[name="list_members"]').val();
|
||||
var members = form.find('[name="members"]').val();
|
||||
var upload = form.find('[name="upload"]').val();
|
||||
var featured_img = form.find('[name="featured_img"]').val();
|
||||
var html = form.find('[name="html"]').val();
|
||||
var subject = form.find('[name="subject"]').val();
|
||||
var review = form.find('[name="review"]').val();
|
||||
var tag = form.find('[name="tag"]').val();
|
||||
var display = form.find('[name="display"]').val();
|
||||
var format = form.find('[name="format"]').val();
|
||||
var goods = form.find('[name="goods"]').val();
|
||||
|
||||
var dis_rating = form.find('[name="use_rating"]').is(":checked")?0:1;
|
||||
var dis_like = form.find('[name="use_like"]').is(":checked")?0:1;
|
||||
var dis_comment = form.find('[name="use_comment"]').is(":checked")?0:1;
|
||||
var dis_listadd = form.find('[name="use_listadd"]').is(":checked")?0:1;
|
||||
|
||||
if (uid) {
|
||||
setTimeout(function(){
|
||||
|
||||
$.post(rooturl+'/?r='+raccount+'&m=post&a=write',{
|
||||
content : editorData,
|
||||
uid : uid,
|
||||
category_members : category_members,
|
||||
list_members : list_members,
|
||||
members : members,
|
||||
upload : upload,
|
||||
featured_img : featured_img,
|
||||
html : html,
|
||||
subject : subject,
|
||||
review : review,
|
||||
tag : tag,
|
||||
format : format,
|
||||
goods : goods,
|
||||
display : display,
|
||||
dis_rating : dis_rating,
|
||||
dis_like : dis_like,
|
||||
dis_comment : dis_comment,
|
||||
dis_listadd : dis_listadd
|
||||
},function(response,status){
|
||||
if(status=='success'){
|
||||
var result = $.parseJSON(response);
|
||||
var error=result.error;
|
||||
if (!error) {
|
||||
var d_modify=result.d_modify;
|
||||
form.find('[data-role="postsubmit"]').attr( 'disabled', false );
|
||||
form.find('[data-role="d_modify"]').attr('data-original-title',d_modify);
|
||||
form.find('[data-plugin="timeago"]').timeago("update", new Date());
|
||||
form.find('[data-role="postsubmit"]').addClass('d-none');
|
||||
form.find('[data-role="library"]').removeClass('d-none');
|
||||
form.find('[data-role="share"]').removeClass('d-none');
|
||||
} else {
|
||||
alert(error);
|
||||
}
|
||||
} else {
|
||||
alert(status);
|
||||
}
|
||||
});
|
||||
}, 200);
|
||||
|
||||
} else {
|
||||
|
||||
form.find('[name="dis_rating"]').val(1); //평점 사용안함
|
||||
form.find('[name="dis_like"]').val(dis_like);
|
||||
form.find('[name="dis_comment"]').val(dis_comment);
|
||||
form.find('[name="dis_listadd"]').val(dis_listadd);
|
||||
|
||||
setTimeout(function(){
|
||||
getIframeForAction(f);
|
||||
f.submit()
|
||||
}, 200);
|
||||
}
|
||||
}
|
||||
54
modules/post/themes/_desktop/bs4-default/_newList.php
Normal file
54
modules/post/themes/_desktop/bs4-default/_newList.php
Normal file
@@ -0,0 +1,54 @@
|
||||
<?php
|
||||
$wdgvar['limit'] = 3; //전체 출력수
|
||||
$wdgvar['title'] ='최근 리스트';
|
||||
$listque = 'mbruid='.$M1['memberuid'].' and site='.$s;
|
||||
|
||||
if ($my['uid']) $listque .= ' and display > 3'; // 회원공개와 전체공개 포스트 출력
|
||||
else $listque .= ' and display = 5'; // 전체공개 포스트만 출력
|
||||
|
||||
if ($list) $listque .= ' and id <>'.$list;
|
||||
|
||||
$_RCD=getDbArray($table['postlist'],$listque,'*','gid','asc',$wdgvar['limit'],1);
|
||||
$_NUM = getDbRows($table['postlist'],$listque);
|
||||
?>
|
||||
|
||||
<section class="widget-post-card-01">
|
||||
<header class="d-flex justify-content-between align-items-center py-2">
|
||||
<span><?php echo $wdgvar['title']?></span>
|
||||
</header>
|
||||
|
||||
<?php if ($_NUM): ?>
|
||||
<ul class="list-unstyled">
|
||||
|
||||
<?php $i=0;foreach($_RCD as $LIST):$i++;?>
|
||||
<li class="media mb-2">
|
||||
|
||||
<a href="<?php echo getListLink($LIST,1) ?>" class="position-relative mr-2">
|
||||
<img class="" src="<?php echo getPreviewResize(getListImageSrc($LIST['uid']),'160x90') ?>" alt="">
|
||||
<span class="list_mask">
|
||||
<span class="txt"><?php echo $LIST['num']?><i class="fa fa-list-ul d-block" aria-hidden="true"></i></span>
|
||||
</span>
|
||||
</a>
|
||||
|
||||
<div class="media-body">
|
||||
<h5 class="h6 my-1 font-weight-light line-clamp-3">
|
||||
<a href="<?php echo getListLink($LIST,1) ?>" class="text-reset" ><?php echo $LIST['name']?></a>
|
||||
</h5>
|
||||
<div class="mb-1">
|
||||
<ul class="list-inline d-inline-block f13 text-muted">
|
||||
<li class="list-inline-item">
|
||||
<time data-plugin="timeago" datetime="<?php echo getDateFormat($LIST['d_regis'],'c')?>"></time>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</li>
|
||||
<?php endforeach?>
|
||||
</ul>
|
||||
<?php else: ?>
|
||||
<div class="p-5 text-muted text-center border mb-3">
|
||||
리스트가 없습니다.
|
||||
</div>
|
||||
<?php endif; ?>
|
||||
</section><!-- /.widget -->
|
||||
60
modules/post/themes/_desktop/bs4-default/_newPost.php
Normal file
60
modules/post/themes/_desktop/bs4-default/_newPost.php
Normal file
@@ -0,0 +1,60 @@
|
||||
<?php
|
||||
$wdgvar['limit'] = 3; //전체 출력수
|
||||
$wdgvar['title'] = $M1[$_HS['nametype']].'님의 포스트';
|
||||
$postque = 'mbruid='.$M1['memberuid'].' and site='.$s.' and data <>'.$R['uid'];
|
||||
|
||||
if ($my['uid']) $postque .= ' and display > 3'; // 회원공개와 전체공개 포스트 출력
|
||||
else $postque .= ' and display = 5'; // 전체공개 포스트만 출력
|
||||
|
||||
$_RCD=getDbArray($table['postmember'],$postque,'*','gid','asc',$wdgvar['limit'],1);
|
||||
while($_R = db_fetch_array($_RCD)) $RCD[] = getDbData($table['postdata'],'gid='.$_R['gid'],'*');
|
||||
|
||||
$_NUM = getDbRows($table['postmember'],$postque);
|
||||
?>
|
||||
|
||||
<section class="widget-post-card-01">
|
||||
<header class="d-flex justify-content-between align-items-center pb-2">
|
||||
<span><?php echo $wdgvar['title']?></span>
|
||||
<?php if($wdgvar['link']):?>
|
||||
<a href="<?php echo $wdgvar['link']?>" class="muted-link small">
|
||||
더보기 <i class="fa fa-angle-right" aria-hidden="true"></i>
|
||||
</a>
|
||||
<?php endif?>
|
||||
</header>
|
||||
|
||||
<?php if ($_NUM): ?>
|
||||
<ul class="list-unstyled">
|
||||
|
||||
<?php $i=0;foreach($RCD as $POST):$i++;?>
|
||||
<li class="media mb-2">
|
||||
|
||||
<a href="<?php echo getPostLink($POST,0) ?>" class="position-relative mr-2">
|
||||
<img class="" src="<?php echo getPreviewResize(getUpImageSrc($POST),'160x90') ?>" alt="" >
|
||||
<time class="badge badge-dark rounded-0 position-absolute" style="right:1px;bottom:1px"><?php echo getUpImageTime($POST) ?></time>
|
||||
</a>
|
||||
|
||||
<div class="media-body">
|
||||
<h5 class="h6 my-1 font-weight-light line-clamp-3">
|
||||
<a href="<?php echo getPostLink($POST,0) ?>" class="text-reset" ><?php echo stripslashes($POST['subject'])?></a>
|
||||
</h5>
|
||||
<div class="mb-1">
|
||||
<ul class="list-inline d-inline-block f13 text-muted">
|
||||
<li class="list-inline-item">조회수 <?php echo $POST['hit']?>회 </li>
|
||||
<li class="list-inline-item">
|
||||
<time data-plugin="timeago" datetime="<?php echo getDateFormat($POST['d_regis'],'c')?>"></time>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</li>
|
||||
<?php endforeach?>
|
||||
|
||||
</ul>
|
||||
<?php else: ?>
|
||||
<div class="p-5 text-muted text-center border mb-3">
|
||||
내역이 없습니다.
|
||||
</div>
|
||||
<?php endif; ?>
|
||||
|
||||
</section><!-- /.widget -->
|
||||
43
modules/post/themes/_desktop/bs4-default/_report.php
Normal file
43
modules/post/themes/_desktop/bs4-default/_report.php
Normal file
@@ -0,0 +1,43 @@
|
||||
<div class="custom-control custom-radio my-1">
|
||||
<input type="radio" id="report-radio-01" name="report-radio" class="custom-control-input">
|
||||
<label class="custom-control-label" for="report-radio-01">성적인 콘텐츠</label>
|
||||
</div>
|
||||
<div class="custom-control custom-radio my-1">
|
||||
<input type="radio" id="report-radio-02" name="report-radio" class="custom-control-input">
|
||||
<label class="custom-control-label" for="report-radio-02">폭력적 또는 혐오스러운 콘텐츠</label>
|
||||
</div>
|
||||
<div class="custom-control custom-radio my-1">
|
||||
<input type="radio" id="report-radio-03" name="report-radio" class="custom-control-input">
|
||||
<label class="custom-control-label" for="report-radio-03">증오 또는 악의적인 콘텐츠</label>
|
||||
</div>
|
||||
<div class="custom-control custom-radio my-1">
|
||||
<input type="radio" id="report-radio-04" name="report-radio" class="custom-control-input">
|
||||
<label class="custom-control-label" for="report-radio-04">유해한 위험 행위</label>
|
||||
</div>
|
||||
<div class="custom-control custom-radio my-1">
|
||||
<input type="radio" id="report-radio-05" name="report-radio" class="custom-control-input">
|
||||
<label class="custom-control-label" for="report-radio-05">아동 학대</label>
|
||||
</div>
|
||||
<div class="custom-control custom-radio my-1">
|
||||
<input type="radio" id="report-radio-06" name="report-radio" class="custom-control-input">
|
||||
<label class="custom-control-label" for="report-radio-06">테러 조장</label>
|
||||
</div>
|
||||
<div class="custom-control custom-radio my-1">
|
||||
<input type="radio" id="report-radio-07" name="report-radio" class="custom-control-input">
|
||||
<label class="custom-control-label" for="report-radio-07">스팸 또는 사용자를 현혹하는 콘텐츠</label>
|
||||
</div>
|
||||
<div class="custom-control custom-radio my-1">
|
||||
<input type="radio" id="report-radio-08" name="report-radio" class="custom-control-input">
|
||||
<label class="custom-control-label" for="report-radio-08">권리 침해</label>
|
||||
</div>
|
||||
<div class="custom-control custom-radio my-1">
|
||||
<input type="radio" id="report-radio-09" name="report-radio" class="custom-control-input">
|
||||
<label class="custom-control-label" for="report-radio-09">기타</label>
|
||||
</div>
|
||||
|
||||
<div class="mt-3">
|
||||
<small class="text-muted">
|
||||
운영팀 팀에서는 신고된 동영상 및 사용자의 커뮤니티 가이드 위반 여부를 판단하기 위해 연중무휴 24시간 검토 작업을 하고 있습니다.
|
||||
커뮤니티 가이드를 위반한 계정은 제재를 받게 되며 심각하거나 반복적인 위반 행위에 대해서는 계정 해지 조치가 취해질 수 있습니다.
|
||||
</small>
|
||||
</div>
|
||||
39
modules/post/themes/_desktop/bs4-default/_uploader.php
Normal file
39
modules/post/themes/_desktop/bs4-default/_uploader.php
Normal file
@@ -0,0 +1,39 @@
|
||||
<div data-role="attach">
|
||||
|
||||
<?php if($d['theme']['perm_photo']<=$my['level']):?>
|
||||
|
||||
<?php endif?>
|
||||
|
||||
<!--
|
||||
module : 첨부파일 사용 모듈 ,
|
||||
theme : 첨부파일 테마 ,
|
||||
attach_handler_file : 파일첨부 실행 엘리먼트 ,
|
||||
attach_handler_photo : 사진첨부 실행 엘리먼트 ,
|
||||
parent_data : 수정시 필요한 해당 포스트 데이타 배열 변수,
|
||||
attach_handler_getModalList : 업로드 리스트 모달로 호출용 엘리먼트 (class 인 경우 . 까지 넘긴다.) -->
|
||||
|
||||
<?php
|
||||
// 설정값 세팅
|
||||
// $parent_table=$wdgvar['parent_table'];
|
||||
// $parent_uid=$wdgvar['parent_uid'];
|
||||
// $parent_field=$wdgvar['parent_field'];
|
||||
// $attach_mod=$wdgvar['attach_mod']; // main, list...
|
||||
// $attach_object_type=$wdgvar['attach_object_type'];//첨부 대상에 따른 분류 : photo, file, link, video....
|
||||
// $attach_tmpcode=$wdgvar['attach_tmpcode'];//첨부 대상에 따른 분류 : photo, file, link, video....
|
||||
// $attach_featuredImg_form_name=$wdgvar['featuredImg_form_name'];//첨부 대상에 따른 분류 : photo, file, link, video....
|
||||
// $attach_wdgvar_id=$wdgvar['widget_uid'];
|
||||
|
||||
$attachSkin = "_desktop/bs4-default-attach"; // 업로드 테마
|
||||
$parent_module=$m; // 첨부파일 사용하는 모듈
|
||||
$parent_data=$R; // 해당 포스트 데이타 (수정시 필요)
|
||||
$attach_module_theme=$attachSkin; // 첨부파일 테마
|
||||
$attach_handler_file='[data-role="attach-handler-file"]'; //파일첨부 실행 엘리먼트 button or 기타 엘리먼트 data-role="" 형태로 하는 것을 권고
|
||||
$attach_handler_photo='[data-role="attach-handler-photo"]'; // 사진첨부 실행 엘리먼트 button or 기타 엘리먼트 data-role="" 형태로 하는 것을 권고
|
||||
$attach_handler_getModalList='.getModalList'; // 첨부파일 리스트 호출 handler
|
||||
$editor_type=$editor_type; // 에디터 타입 : html,markdown
|
||||
$attach_object_type= 'photo';//첨부 대상에 따른 분류 : photo, file, link, video....
|
||||
|
||||
include $g['path_module'].'mediaset/attach.php'; // 함수 인클루드
|
||||
?>
|
||||
|
||||
</div>
|
||||
3
modules/post/themes/_desktop/bs4-default/_var.php
Normal file
3
modules/post/themes/_desktop/bs4-default/_var.php
Normal file
@@ -0,0 +1,3 @@
|
||||
<?php
|
||||
$d['theme']['format'] = "doc,video,adv"; // 포맷 (문서형,비디오형,포토갤러리형,카드형) , 테마폴더 view_doc.php .. 연계
|
||||
?>
|
||||
142
modules/post/themes/_desktop/bs4-default/_view_attach.php
Normal file
142
modules/post/themes/_desktop/bs4-default/_view_attach.php
Normal file
@@ -0,0 +1,142 @@
|
||||
|
||||
<!-- 사진 -->
|
||||
<?php if ($R['upload']): ?>
|
||||
|
||||
<?php
|
||||
$img_files = array();
|
||||
$audio_files = array();
|
||||
$video_files = array();
|
||||
$down_files = array();
|
||||
foreach($d['upload']['data'] as $_u){
|
||||
if($_u['type']==2 and $_u['hidden']==0) array_push($img_files,$_u);
|
||||
else if($_u['type']==4 and $_u['hidden']==0) array_push($audio_files,$_u);
|
||||
else if($_u['type']==5 and $_u['hidden']==0) array_push($video_files,$_u);
|
||||
else if($_u['type']==1 || $_u['type']==6 || $_u['type']==7 and $_u['hidden']==0) array_push($down_files,$_u);
|
||||
}
|
||||
$attach_photo_num = count ($img_files);
|
||||
$attach_video_num = count ($video_files);
|
||||
$attach_audio_num = count ($audio_files);
|
||||
$attach_down_num = count ($down_files);
|
||||
?>
|
||||
|
||||
|
||||
<div class="clearfix">
|
||||
|
||||
<?php if($attach_photo_num>0):?>
|
||||
<div class="float-left">
|
||||
<ul class="list-inline mb-1 gallery animated fadeIn delay-1" data-plugin="photoswipe">
|
||||
<?php foreach($img_files as $_u):?>
|
||||
|
||||
<?php
|
||||
$img_origin=$_u['src'];
|
||||
$thumb_list=getPreviewResize($img_origin,'180x120'); // 미리보기 사이즈 조정 (이미지 업로드시 썸네일을 만들 필요 없다.)
|
||||
$thumb_modal=getPreviewResize($img_origin,'c'); // 정보수정 모달용 사이즈 조정 (이미지 업로드시 썸네일을 만들 필요 없다.)
|
||||
?>
|
||||
<figure class="list-inline-item">
|
||||
<a class="" href="<?php echo $img_origin ?>" data-size="<?php echo $_u['width']?>x<?php echo $_u['height']?>" title="<?php echo $_u['name']?>">
|
||||
<img src="<?php echo $thumb_list ?>" alt="" class="border">
|
||||
</a>
|
||||
<figcaption itemprop="caption description" class="f12 p-3">
|
||||
<div class="media">
|
||||
<div class="mr-2"><i class="fa fa-file-image-o fa-lg text-primary" aria-hidden="true"></i></div>
|
||||
<div class="media-body">
|
||||
<p class="mb-2 font-weight-bold"><?php echo $_u['name']?></p>
|
||||
<small data-role="caption"><?php echo $_u['caption']?></small>
|
||||
<small><?php echo getSizeFormat($_u['size'],1)?></small>
|
||||
</div>
|
||||
</div>
|
||||
</figcaption>
|
||||
<div class="card__corner">
|
||||
<div class="card__corner-triangle"></div>
|
||||
</div>
|
||||
</figure>
|
||||
<?php endforeach?>
|
||||
</ul>
|
||||
</div>
|
||||
<?php endif?>
|
||||
|
||||
<?php if($attach_down_num>0):?>
|
||||
<div class="float-left">
|
||||
<ul class="list-inline mb-1 gallery animated fadeIn delay-1">
|
||||
<?php foreach($down_files as $_u):?>
|
||||
<?php
|
||||
$ext_to_fa=array('xls'=>'excel','xlsx'=>'excel','ppt'=>'powerpoint','pptx'=>'powerpoint','txt'=>'text','pdf'=>'pdf','zip'=>'archive','doc'=>'word');
|
||||
$ext_icon=in_array($_u['ext'],array_keys($ext_to_fa))?'-'.$ext_to_fa[$_u['ext']]:'';
|
||||
?>
|
||||
<li class="list-inline-item">
|
||||
<div class="card f12" style="width: 180px">
|
||||
<div class="card__corner">
|
||||
<div class="card__corner-triangle"></div>
|
||||
</div>
|
||||
<div class="card-block d-flex justify-content-center align-items-center" style="height:87px">
|
||||
<i class="fa fa-3x fa-file<?php echo $ext_icon?>-o text-muted"></i>
|
||||
</div>
|
||||
<div class="card-footer p-2 text-truncate text-muted bg-light">
|
||||
<i class="fa fa-download" aria-hidden="true"></i> <?php echo $_u['name']?>
|
||||
</div>
|
||||
<a href="<?php echo $g['s']?>/?r=<?php echo $r?>&m=mediaset&a=download&uid=<?php echo $_u['uid']?>" class="card-img-overlay bg-light text-muted p-3">
|
||||
<div class="media">
|
||||
<div class="mr-2"><i class="fa fa-file<?php echo $ext_icon?>-o fa-lg text-primary" aria-hidden="true"></i></div>
|
||||
<div class="media-body">
|
||||
<p class="mb-2 font-weight-bold"><?php echo $_u['name']?></p>
|
||||
<small data-role="caption"><?php echo $_u['caption']?></small>
|
||||
<small><?php echo getSizeFormat($_u['size'],1)?></small>
|
||||
<span class="ml-2">
|
||||
<i class="fa fa-download" aria-hidden="true"></i>
|
||||
<small class="text-muted"><?php echo number_format($_u['down'])?></small>
|
||||
</span>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</a>
|
||||
|
||||
</div>
|
||||
</li>
|
||||
<?php endforeach?>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<?php endif?>
|
||||
|
||||
<?php if($attach_video_num>0):?>
|
||||
<div class="card-deck">
|
||||
<?php foreach($video_files as $_u):?>
|
||||
<?php
|
||||
$ext_to_fa=array('xls'=>'excel','xlsx'=>'excel','ppt'=>'powerpoint','pptx'=>'powerpoint','txt'=>'text','pdf'=>'pdf','zip'=>'archive','doc'=>'word');
|
||||
$ext_icon=in_array($_u['ext'],array_keys($ext_to_fa))?'-'.$ext_to_fa[$_u['ext']]:'';
|
||||
?>
|
||||
<div class="card">
|
||||
<video width="320" height="240" controls data-plugin="mediaelement" class="card-img-top">
|
||||
<source src="<?php echo $_u['url']?><?php echo $_u['folder']?>/<?php echo $_u['tmpname']?>" type="video/<?php echo $_u['ext']?>">
|
||||
</video>
|
||||
<div class="card-body">
|
||||
<h6 class="card-title"><?php echo $_u['name']?></h6>
|
||||
<p class="card-text"><small class="text-muted">(<?php echo getSizeFormat($_u['size'],1)?>)</small></p>
|
||||
</div><!-- /.card-block -->
|
||||
</div><!-- /.card -->
|
||||
<?php endforeach?>
|
||||
</div><!-- /.card-deck -->
|
||||
<?php endif?>
|
||||
|
||||
|
||||
<?php if($attach_audio_num>0):?>
|
||||
<?php foreach($audio_files as $_u):?>
|
||||
<?php
|
||||
$ext_to_fa=array('xls'=>'excel','xlsx'=>'excel','ppt'=>'powerpoint','pptx'=>'powerpoint','txt'=>'text','pdf'=>'pdf','zip'=>'archive','doc'=>'word');
|
||||
$ext_icon=in_array($_u['ext'],array_keys($ext_to_fa))?'-'.$ext_to_fa[$_u['ext']]:'';
|
||||
?>
|
||||
<div class="card">
|
||||
<audio controls data-plugin="mediaelement" class="card-img-top w-100">
|
||||
<source src="<?php echo $_u['url']?><?php echo $_u['folder']?>/<?php echo $_u['tmpname']?>" type="audio/mp3">
|
||||
</audio>
|
||||
<div class="card-body">
|
||||
<h6 class="card-title"><?php echo $_u['name']?></h6>
|
||||
<p class="card-text"><small class="text-muted">(<?php echo getSizeFormat($_u['size'],1)?>)</small></p>
|
||||
</div><!-- /.card-block -->
|
||||
</div><!-- /.card -->
|
||||
<?php endforeach?>
|
||||
|
||||
<?php endif?>
|
||||
|
||||
</div>
|
||||
<?php endif; ?>
|
||||
205
modules/post/themes/_desktop/bs4-default/category.php
Normal file
205
modules/post/themes/_desktop/bs4-default/category.php
Normal file
@@ -0,0 +1,205 @@
|
||||
<?php
|
||||
switch ($sort) {
|
||||
case 'gid' : $sort_txt='생성순';break;
|
||||
case 'd_modify' : $sort_txt='최신순';break;
|
||||
case 'hit' : $sort_txt='조회순';break;
|
||||
case 'likes' : $sort_txt='좋아요순';break;
|
||||
case 'comment' : $sort_txt='댓글순';break;
|
||||
}
|
||||
?>
|
||||
|
||||
<section>
|
||||
|
||||
<div class="row">
|
||||
<div class="col-3">
|
||||
|
||||
<div class="card">
|
||||
<div class="card-header">
|
||||
<a href="<?php echo RW('m=post&mod=category') ?>" class="muted-link" title="전체보기">카테고리</a>
|
||||
</div>
|
||||
<div class="card-body">
|
||||
<?php $_treeOptions=array('site'=>$s,'table'=>$table[$m.'category'],'dispNum'=>$my['uid']?true:false,'dispHidden'=>true,'dispCheckbox'=>false,'allOpen'=>true)?>
|
||||
<?php $_treeOptions['link'] = RW('m=post&cat=')?>
|
||||
<?php echo getTreeCategory($_treeOptions,$code,0,0,'')?>
|
||||
</div>
|
||||
</div><!-- /.card -->
|
||||
|
||||
</div>
|
||||
<div class="col-9">
|
||||
|
||||
<header class="d-flex justify-content-between align-items-center border-bottom border-dark mt-2 pb-2">
|
||||
<h3 class="mb-0">
|
||||
<?php echo $CAT['name']?$CAT['name']:'전체 카테고리' ?>
|
||||
</h3>
|
||||
<div class="">
|
||||
</div>
|
||||
</header>
|
||||
|
||||
<div class="d-flex align-items-center py-3" role="filter">
|
||||
<span class="f18">전체 <span class="text-primary"><?php echo number_format($NUM)?></span> 개</span>
|
||||
|
||||
|
||||
<form name="postsearchf" action="<?php echo $g['page_reset'] ?>" method="get" class="form-inline ml-auto">
|
||||
|
||||
<?php if ($_HS['rewrite']): ?>
|
||||
<input type="hidden" name="sort" value="<?php echo $sort?>">
|
||||
<?php else: ?>
|
||||
<input type="hidden" name="r" value="<?php echo $r?>">
|
||||
<?php if($_mod):?>
|
||||
<input type="hidden" name="mod" value="<?php echo $_mod?>">
|
||||
<?php else:?>
|
||||
<input type="hidden" name="m" value="<?php echo $m?>">
|
||||
<input type="hidden" name="front" value="<?php echo $front?>">
|
||||
<?php endif?>
|
||||
<input type="hidden" name="page" value="<?php echo $page?>">
|
||||
<input type="hidden" name="sort" value="<?php echo $sort?>">
|
||||
<input type="hidden" name="orderby" value="<?php echo $orderby?>">
|
||||
<input type="hidden" name="recnum" value="<?php echo $recnum?>">
|
||||
<input type="hidden" name="type" value="<?php echo $type?>" />
|
||||
<input type="hidden" name="mbrid" value="<?php echo $_MP['id']?>">
|
||||
<?php endif; ?>
|
||||
<input type="hidden" name="code" value="<?php echo $code?>">
|
||||
|
||||
<label class="mt-1 mr-2 sr-only">정열</label>
|
||||
<div class="dropdown" data-role="sort">
|
||||
<a class="btn btn-white dropdown-toggle" href="#" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
|
||||
정열 : <?php echo $sort_txt ?>
|
||||
</a>
|
||||
|
||||
<div class="dropdown-menu shadow-sm" aria-labelledby="dropdownMenuLink" style="min-width: 116px;">
|
||||
<button class="dropdown-item d-flex justify-content-between align-items-center<?php echo $sort=='gid'?' active':'' ?>" type="button" data-value="gid">
|
||||
생성순
|
||||
</button>
|
||||
<button class="dropdown-item d-flex justify-content-between align-items-center<?php echo $sort=='d_modify'?' active':'' ?>" type="button" data-value="d_modify">
|
||||
최신순
|
||||
</button>
|
||||
<button class="dropdown-item d-flex justify-content-between align-items-center<?php echo $sort=='hit'?' active':'' ?>" type="button" data-value="hit">
|
||||
조회순
|
||||
</button>
|
||||
<button class="dropdown-item d-flex justify-content-between align-items-center<?php echo $sort=='likes'?' active':'' ?>" type="button" data-value="likes">
|
||||
좋아요순
|
||||
</button>
|
||||
<button class="dropdown-item d-flex justify-content-between align-items-center<?php echo $sort=='comment'?' active':'' ?>" type="button" data-value="comment">
|
||||
댓글순
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="input-group ml-2">
|
||||
<input type="text" name="keyword" class="form-control" placeholder="제목,요약,태그 검색" value="<?php echo $_keyword?>">
|
||||
<div class="input-group-append">
|
||||
<button class="btn btn-white text-muted border-left-0" type="submit">
|
||||
<i class="fa fa-search" aria-hidden="true"></i>
|
||||
</button>
|
||||
<?php if ($keyword): ?>
|
||||
<a class="btn btn-white ml-1" href="<?php echo $g['post_reset'] ?>">리셋</a>
|
||||
<?php endif; ?>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</form><!-- /.form-inline -->
|
||||
</div><!-- /.d-flex -->
|
||||
|
||||
<?php if ($NUM): ?>
|
||||
<ul class="list-unstyled" data-plugin="markjs">
|
||||
<?php foreach($RCD as $R):?>
|
||||
<li class="media my-4">
|
||||
<?php if ($R['featured_img']): ?>
|
||||
<a href="<?php echo getPostLink($R,0) ?>" class="position-relative mr-3">
|
||||
<img src="<?php echo checkPostPerm($R) ?getPreviewResize(getUpImageSrc($R),'180x100'):getPreviewResize('/files/noimage.png','180x100') ?>" alt="">
|
||||
<time class="badge badge-dark rounded-0 position-absolute f14" style="right:1px;bottom:1px"><?php echo checkPostPerm($R)?getUpImageTime($R):'' ?></time>
|
||||
</a>
|
||||
<?php endif; ?>
|
||||
|
||||
<div class="media-body">
|
||||
<h5 class="mt-0 mb-1">
|
||||
<a class="text-decoration-none text-reset" href="<?php echo getPostLink($R,0) ?>">
|
||||
<?php echo checkPostPerm($R)?stripslashes($R['subject']):'[비공개 포스트]'?>
|
||||
</a>
|
||||
</h5>
|
||||
<?php if (checkPostPerm($R)): ?>
|
||||
<div class="mb-1">
|
||||
<ul class="list-inline d-inline-block f13 text-muted">
|
||||
<li class="list-inline-item">조회 <?php echo $R['hit']?> </li>
|
||||
<li class="list-inline-item">좋아요 <?php echo $R['likes']?> </li>
|
||||
<li class="list-inline-item">댓글 <?php echo $R['comment']?> </li>
|
||||
<li class="list-inline-item">
|
||||
<time class="text-muted" data-plugin="timeago" datetime="<?php echo getDateFormat($R['d_modify']?$R['d_modify']:$R['d_regis'],'c')?>"></time>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<?php if ($R['category']): ?>
|
||||
<span class="ml-2 f13 text-muted">
|
||||
<i class="fa fa-folder-o mr-1" aria-hidden="true"></i> <?php echo getAllPostCat($m,$R['category']) ?>
|
||||
</span>
|
||||
|
||||
<?php endif; ?>
|
||||
|
||||
<span class="ml-2 f13 text-muted">
|
||||
<!-- 태그 -->
|
||||
<?php $_tags=explode(',',$R['tag'])?>
|
||||
<?php $_tagn=count($_tags)?>
|
||||
<?php $i=0;for($i = 0; $i < $_tagn; $i++):?>
|
||||
<?php $_tagk=trim($_tags[$i])?>
|
||||
<a class="badge badge-light" href="<?php echo RW('m=post&mod=keyword&') ?>keyword=<?php echo urlencode($_tagk)?>"><?php echo $_tagk?></a>
|
||||
<?php endfor?>
|
||||
</span>
|
||||
<span class="badge badge-secondary ml-2"><?php echo checkPostOwner($R) && $R['display']!=5?$g['displaySet']['label'][$R['display']]:'' ?></span>
|
||||
</div>
|
||||
</div>
|
||||
<?php else: ?>
|
||||
<p class="text-muted py-3">
|
||||
이 포스트에 대한 액세스 권한이 없습니다.
|
||||
</p>
|
||||
<?php endif; ?>
|
||||
|
||||
</li>
|
||||
<?php endforeach?>
|
||||
</ul>
|
||||
|
||||
<?php else: ?>
|
||||
<div class="d-flex align-items-center justify-content-center" style="height: 50vh">
|
||||
<div class="text-muted">
|
||||
포스트가 없습니다.
|
||||
</div>
|
||||
</div>
|
||||
<?php endif; ?>
|
||||
|
||||
<footer class="d-flex justify-content-between mt-5">
|
||||
<div class=""></div>
|
||||
|
||||
<?php if ($NUM > $recnum): ?>
|
||||
<ul class="pagination mb-0">
|
||||
<?php echo getPageLink(10,$p,$TPG,$_N)?>
|
||||
</ul>
|
||||
<?php endif; ?>
|
||||
|
||||
<div class="">
|
||||
</div>
|
||||
</footer>
|
||||
|
||||
</div>
|
||||
</div><!-- /.row -->
|
||||
|
||||
</section>
|
||||
|
||||
<script>
|
||||
|
||||
$( document ).ready(function() {
|
||||
|
||||
// 툴바
|
||||
$('[name="postsearchf"] .dropdown-item').click(function(){
|
||||
var form = $('[name="postsearchf"]');
|
||||
var value = $(this).attr('data-value');
|
||||
var role = $(this).closest('.dropdown').attr('data-role');
|
||||
form.find('[name="'+role+'"]').val(value)
|
||||
form.submit();
|
||||
});
|
||||
|
||||
// marks.js
|
||||
$('[data-plugin="markjs"]').mark("<?php echo $keyword ?>");
|
||||
|
||||
});
|
||||
|
||||
|
||||
</script>
|
||||
192
modules/post/themes/_desktop/bs4-default/component.php
Normal file
192
modules/post/themes/_desktop/bs4-default/component.php
Normal file
@@ -0,0 +1,192 @@
|
||||
<div class="modal" id="modal-post-share" tabindex="-1" role="dialog">
|
||||
<div class="modal-dialog modal-dialog-centered" role="document" style="width: 400px">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<h5 class="modal-title">공유하기</h5>
|
||||
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
|
||||
<span aria-hidden="true">×</span>
|
||||
</button>
|
||||
</div>
|
||||
<div class="modal-body text-center p-5">
|
||||
<?php include $g['dir_module_skin'].'_linkshare.php'?>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="modal" id="modal-post-listadd" tabindex="-1" role="dialog">
|
||||
<div class="modal-dialog modal-dialog-centered" role="document" style="width: 400px">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<h5 class="modal-title">저장하기</h5>
|
||||
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
|
||||
<span aria-hidden="true">×</span>
|
||||
</button>
|
||||
</div>
|
||||
<div class="modal-body p-2" style="min-height: 200px">
|
||||
<?php if ($my['uid']) include $g['dir_module_skin'].'_listadd.php'?>
|
||||
</div>
|
||||
<div class="modal-footer py-2 f13">
|
||||
<button type="button" class="btn btn-link mr-auto text-reset text-decoration-none" data-role="list-add-button">
|
||||
<i class="material-icons text-muted align-bottom mr-1">add</i>
|
||||
새 리스트 만들기
|
||||
</button>
|
||||
|
||||
<div class="input-group my-2 d-none" data-role="list-add-input">
|
||||
<input type="text" class="form-control" placeholder="리스트명 입력" name="list_name">
|
||||
<div class="input-group-append">
|
||||
<button class="btn btn-white" type="button" data-act="list-add-submit">
|
||||
<span class="not-loading">
|
||||
추가
|
||||
</span>
|
||||
<span class="is-loading">
|
||||
<span class="spinner-border spinner-border-sm" role="status" aria-hidden="true"></span>
|
||||
</span>
|
||||
</button>
|
||||
<button class="btn btn-white" type="button" data-act="list-add-cancel">취소</button>
|
||||
</div>
|
||||
</div><!-- /.input-group -->
|
||||
|
||||
<button type="button" class="btn btn-link" data-act="submit">
|
||||
<span class="not-loading">
|
||||
저장하기
|
||||
</span>
|
||||
<span class="is-loading">
|
||||
<span class="spinner-border spinner-border-sm mr-1" role="status" aria-hidden="true"></span>
|
||||
저장중...
|
||||
</span>
|
||||
</button>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="modal" id="modal-post-report" tabindex="-1" role="dialog">
|
||||
<div class="modal-dialog modal-dialog-centered" role="document" style="width: 400px">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<h5 class="modal-title">신고하기</h5>
|
||||
</div>
|
||||
<div class="modal-body" style="min-height: 200px">
|
||||
<?php include $g['dir_module_skin'].'_report.php'?>
|
||||
</div>
|
||||
<div class="modal-footer py-2">
|
||||
<button type="button" class="btn btn-link text-muted" data-dismiss="modal">취소</button>
|
||||
<button type="button" class="btn btn-link">접수하기</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script>
|
||||
|
||||
$( document ).ready(function() {
|
||||
|
||||
$('#modal-post-listadd').on('show.bs.modal', function (e) {
|
||||
var modal = $(this);
|
||||
var button = $(e.relatedTarget);
|
||||
var uid = button.attr('data-uid');
|
||||
var submit = modal.find('[data-act="submit"]')
|
||||
modal.attr('data-uid',uid);
|
||||
submit.attr('disabled',false );
|
||||
|
||||
})
|
||||
|
||||
$('#modal-post-listadd').find('[data-act="submit"]').click(function(){
|
||||
var modal = $('#modal-post-listadd');
|
||||
var uid = modal.attr('data-uid');
|
||||
|
||||
// 리스트 체크
|
||||
var list_sel=$('input[name="postlist_members[]"]');
|
||||
var list_arr=$('input[name="postlist_members[]"]:checked').map(function(){return $(this).val();}).get();
|
||||
var list_n=list_arr.length;
|
||||
var list_members='';
|
||||
for (var i=0;i <list_n;i++) {
|
||||
if(list_arr[i]!='') list_members += '['+list_arr[i]+']';
|
||||
}
|
||||
|
||||
$(this).attr('disabled',true );
|
||||
|
||||
setTimeout(function(){
|
||||
$.post(rooturl+'/?r='+raccount+'&m=post&a=update_listindex',{
|
||||
uid : uid,
|
||||
list_members : list_members
|
||||
},function(response,status){
|
||||
if(status=='success'){
|
||||
modal.modal('hide');
|
||||
$.notify({message: '리스트에 저장되었습니다.'},{type: 'default'});
|
||||
} else {
|
||||
alert(status);
|
||||
}
|
||||
});
|
||||
}, 500);
|
||||
|
||||
});
|
||||
|
||||
$('#modal-post-listadd').find('[data-role="list-add-button"]').click( function() {
|
||||
$(this).addClass('d-none');
|
||||
$('#modal-post-listadd').find('[data-role="list-add-input"]').removeClass('d-none');
|
||||
$('#modal-post-listadd').find('[data-act="submit"]').addClass('d-none');
|
||||
$('#modal-post-listadd').find('[data-role="list-add-input"]').find('.form-control').val('').focus();
|
||||
} );
|
||||
$('#modal-post-listadd').find('[data-act="list-add-cancel"]').click( function() {
|
||||
$('#modal-post-listadd').find('[data-role="list-add-button"]').removeClass('d-none');
|
||||
$('#modal-post-listadd').find('[data-act="submit"]').removeClass('d-none');
|
||||
$('#modal-post-listadd').find('[data-role="list-add-input"]').addClass('d-none')
|
||||
} );
|
||||
|
||||
$('#modal-post-listadd').find('[data-act="list-add-submit"]').click(function(e){
|
||||
var modal = $('#modal-post-listadd');
|
||||
var button = $(this)
|
||||
var input = modal.find('[name="list_name"]');
|
||||
var list = $('[data-role="list-selector"]');
|
||||
var checked_num = list.find('[data-role="list_num"]');
|
||||
var checked_num_val = Number(checked_num.text());
|
||||
var name = input.val();
|
||||
|
||||
if (!name) {
|
||||
input.focus();
|
||||
return false
|
||||
}
|
||||
button.attr( 'disabled', true );
|
||||
|
||||
setTimeout(function(){
|
||||
|
||||
$.post(rooturl+'/?r='+raccount+'&m=post&a=regis_list',{
|
||||
name : name,
|
||||
send_mod : 'ajax'
|
||||
},function(response,status){
|
||||
if(status=='success'){
|
||||
var result = $.parseJSON(response);
|
||||
var uid=result.uid;
|
||||
var icon=result.icon;
|
||||
var label=result.label;
|
||||
var item = '<div class="d-flex justify-content-between align-items-center px-3 py-2"><div class="custom-control custom-checkbox">'+
|
||||
'<input type="checkbox" id="listRadio'+uid+'" name="postlist_members[]" value="'+uid+'" class="custom-control-input" checked>'+
|
||||
'<label class="custom-control-label" for="listRadio'+uid+'">'+name+'</label>'+
|
||||
'</div><i class="material-icons text-muted mr-2" data-toggle="tooltip" title="" data-original-title="'+label+'">'+icon+'</i></div>';
|
||||
button.attr( 'disabled', false );
|
||||
input.val('');
|
||||
$('#modal-post-listadd').find('[data-role="list-add-button"]').removeClass('d-none');
|
||||
$('#modal-post-listadd').find('[data-role="list-add-input"]').addClass('d-none')
|
||||
$('#modal-post-listadd').find('[data-act="submit"]').removeClass('d-none');
|
||||
list.append(item);
|
||||
$('#modal-post-listadd').find('[data-toggle="tooltip"]').tooltip();
|
||||
} else {
|
||||
alert(status);
|
||||
}
|
||||
});
|
||||
}, 200);
|
||||
});
|
||||
|
||||
$('#modal-post-report').on('show.bs.modal', function (e) {
|
||||
if (!memberid) {
|
||||
alert('로그인 해주세요.');
|
||||
return false;
|
||||
}
|
||||
})
|
||||
|
||||
});
|
||||
|
||||
</script>
|
||||
97
modules/post/themes/_desktop/bs4-default/keyword.php
Normal file
97
modules/post/themes/_desktop/bs4-default/keyword.php
Normal file
@@ -0,0 +1,97 @@
|
||||
<section>
|
||||
|
||||
<h1 class="h4 my-5 text-center">'<?php echo $keyword ?>' <small class="text-muted">포스트 검색결과 <?php echo $NUM ?>개</small></h1>
|
||||
|
||||
<hr>
|
||||
<?php if ($NUM): ?>
|
||||
<ul class="list-unstyled" data-plugin="markjs">
|
||||
<?php foreach($RCD as $R):?>
|
||||
<?php $R['mobile']=isMobileConnect($R['agent'])?>
|
||||
|
||||
<li class="media my-4">
|
||||
<?php if ($R['featured_img']): ?>
|
||||
|
||||
<a href="<?php echo getPostLink($R,0) ?>" class="position-relative mr-3">
|
||||
<img src="<?php echo checkPostPerm($R) ?getPreviewResize(getUpImageSrc($R),'180x100'):getPreviewResize('/files/noimage.png','180x100') ?>" alt="">
|
||||
<time class="badge badge-dark rounded-0 position-absolute f14" style="right:1px;bottom:1px"><?php echo checkPostPerm($R)?getUpImageTime($R):'' ?></time>
|
||||
</a>
|
||||
<?php endif; ?>
|
||||
|
||||
<div class="media-body">
|
||||
<h5 class="mt-0 mb-1">
|
||||
<a href="<?php echo getPostLink($R,0) ?>">
|
||||
<?php echo checkPostPerm($R)?stripslashes($R['subject']):'[비공개 포스트]'?>
|
||||
</a>
|
||||
</h5>
|
||||
<?php if (checkPostPerm($R)): ?>
|
||||
<div class="text-muted mb-1"><?php echo $R['review']?></div>
|
||||
<div class="mb-1">
|
||||
<ul class="list-inline d-inline-block ml-2 f13 text-muted">
|
||||
<li class="list-inline-item">조회 <?php echo $R['hit']?> </li>
|
||||
<li class="list-inline-item">좋아요 <?php echo $R['likes']?> </li>
|
||||
<li class="list-inline-item">댓글 <?php echo $R['comment']?> </li>
|
||||
<li class="list-inline-item"><?php echo getDateFormat($R['d_regis'],'Y.m.d H:i')?></li>
|
||||
</ul>
|
||||
<span class="ml-2 f13 text-muted">
|
||||
<i class="fa fa-folder-o mr-1" aria-hidden="true"></i> <?php echo getAllPostCat($m,$R['category']) ?>
|
||||
</span>
|
||||
<span class="ml-2 f13 text-muted">
|
||||
<!-- 태그 -->
|
||||
<?php $_tags=explode(',',$R['tag'])?>
|
||||
<?php $_tagn=count($_tags)?>
|
||||
<?php $i=0;for($i = 0; $i < $_tagn; $i++):?>
|
||||
<?php $_tagk=trim($_tags[$i])?>
|
||||
<a class="badge badge-light" href="<?php echo RW('m=post&mod=keyword&') ?>keyword=<?php echo urlencode($_tagk)?>">
|
||||
# <?php echo $_tagk?>
|
||||
</a>
|
||||
<?php endfor?>
|
||||
</span>
|
||||
<span class="badge badge-secondary ml-2"><?php echo checkPostOwner($R) && $R['display']!=5?$g['displaySet']['label'][$R['display']]:'' ?></span>
|
||||
</div>
|
||||
<?php else: ?>
|
||||
<div class="text-muted py-3">
|
||||
이 포스트에 대한 액세스 권한이 없습니다.
|
||||
</div>
|
||||
<?php endif; ?>
|
||||
</div>
|
||||
|
||||
</li>
|
||||
<?php endforeach?>
|
||||
</ul>
|
||||
|
||||
<?php else: ?>
|
||||
|
||||
<div class="p-5 text-center text-muted">
|
||||
자료가 없습니다.
|
||||
</div>
|
||||
|
||||
<?php endif; ?>
|
||||
|
||||
<footer class="d-flex justify-content-between mt-5">
|
||||
<div class=""></div>
|
||||
|
||||
<?php if ($NUM > $recnum): ?>
|
||||
<ul class="pagination mb-0">
|
||||
<?php echo getPageLink(10,$p,$TPG,'')?>
|
||||
</ul>
|
||||
<?php endif; ?>
|
||||
|
||||
<div class="">
|
||||
</div>
|
||||
</footer>
|
||||
|
||||
</section>
|
||||
|
||||
<!-- markjs js : https://github.com/julmot/mark.js -->
|
||||
<?php getImport('markjs','jquery.mark.min','8.11.1','js')?>
|
||||
|
||||
<script>
|
||||
|
||||
$( document ).ready(function() {
|
||||
|
||||
// marks.js
|
||||
$('[data-plugin="markjs"]').mark("<?php echo $keyword ?>");
|
||||
|
||||
});
|
||||
|
||||
</script>
|
||||
161
modules/post/themes/_desktop/bs4-default/list.php
Normal file
161
modules/post/themes/_desktop/bs4-default/list.php
Normal file
@@ -0,0 +1,161 @@
|
||||
<?php
|
||||
$c_recnum = $d['post']['rownum']; // 한 열에 출력할 카드 갯수
|
||||
$totalCardDeck=ceil($NUM/$c_recnum); // card-deck 갯수 ($NUM 은 해당 데이타의 총 card 갯수 getDbRows 이용)
|
||||
$total_card_num = $totalCardDeck*$c_recnum;// 총 출력되야 할 card 갯수(빈카드 포함)
|
||||
$print_card_num = 0; // 실제 출력된 카드 숫자 (아래 card 출력될 때마다 1 씩 증가)
|
||||
$lack_card_num = $total_card_num;
|
||||
|
||||
switch ($sort) {
|
||||
case 'gid' : $sort_txt='생성순';break;
|
||||
case 'd_last' : $sort_txt='최신순';break;
|
||||
}
|
||||
?>
|
||||
|
||||
<section>
|
||||
|
||||
<div class="d-flex justify-content-between align-items-center mt-4">
|
||||
<h3 class="mb-0">
|
||||
전체 리스트
|
||||
</h3>
|
||||
<div class="">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="d-flex align-items-center border-top border-dark pt-4 pb-3" role="filter">
|
||||
<span class="f18">전체 <span class="text-primary"><?php echo number_format($NUM)?></span> 개</span>
|
||||
|
||||
<form name="listsearchf" action="<?php echo $g['page_reset'] ?>" method="get" class="form-inline ml-auto">
|
||||
|
||||
<?php if ($_HS['rewrite']): ?>
|
||||
<input type="hidden" name="sort" value="<?php echo $sort?>">
|
||||
<?php else: ?>
|
||||
<input type="hidden" name="r" value="<?php echo $r?>">
|
||||
<?php if($_mod):?>
|
||||
<input type="hidden" name="mod" value="<?php echo $_mod?>">
|
||||
<?php else:?>
|
||||
<input type="hidden" name="m" value="<?php echo $m?>">
|
||||
<input type="hidden" name="front" value="<?php echo $front?>">
|
||||
<?php endif?>
|
||||
<input type="hidden" name="page" value="<?php echo $page?>">
|
||||
<input type="hidden" name="sort" value="<?php echo $sort?>">
|
||||
<input type="hidden" name="orderby" value="<?php echo $orderby?>">
|
||||
<input type="hidden" name="recnum" value="<?php echo $recnum?>">
|
||||
<input type="hidden" name="type" value="<?php echo $type?>" />
|
||||
<input type="hidden" name="mbrid" value="<?php echo $_MP['id']?>">
|
||||
<?php endif; ?>
|
||||
|
||||
<label class="mt-1 mr-2 sr-only">정열</label>
|
||||
<div class="dropdown" data-role="sort">
|
||||
<a class="btn btn-white dropdown-toggle" href="#" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
|
||||
정열 : <?php echo $sort_txt ?>
|
||||
</a>
|
||||
|
||||
<div class="dropdown-menu shadow-sm" aria-labelledby="dropdownMenuLink" style="min-width: 116px;">
|
||||
<button class="dropdown-item d-flex justify-content-between align-items-center<?php echo $sort=='gid'?' active':'' ?>" type="button" data-value="gid">
|
||||
생성순
|
||||
</button>
|
||||
<button class="dropdown-item d-flex justify-content-between align-items-center<?php echo $sort=='d_last'?' active':'' ?>" type="button" data-value="d_last">
|
||||
최신순
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="input-group ml-2">
|
||||
<input type="text" name="keyword" class="form-control" placeholder="리스트명 검색" value="<?php echo $_keyword?>">
|
||||
<div class="input-group-append">
|
||||
<button class="btn btn-white text-muted border-left-0" type="submit">
|
||||
<i class="fa fa-search" aria-hidden="true"></i>
|
||||
</button>
|
||||
<?php if ($keyword): ?>
|
||||
<a class="btn btn-white ml-1" href="<?php echo $g['post_reset'] ?>">리셋</a>
|
||||
<?php endif; ?>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</form><!-- /.form-inline -->
|
||||
</div><!-- /.d-flex -->
|
||||
|
||||
<?php if ($NUM): ?>
|
||||
|
||||
<div class="card-deck" data-plugin="markjs">
|
||||
|
||||
<?php $i=0;foreach($RCD as $R):$i++?>
|
||||
<div class="card mb-3">
|
||||
<a href="<?php echo getListLink($R,0) ?>" class="position-relative">
|
||||
<img src="<?php echo getPreviewResize(getListImageSrc($R['uid']),'320x180') ?>" class="img-fluid" alt="">
|
||||
<span class="list_mask">
|
||||
<span class="txt"><?php echo $R['num']?><i class="fa fa-list-ul d-block" aria-hidden="true"></i></span>
|
||||
</span>
|
||||
<img class="list_avatar shadow-sm" src="<?php echo getAvatarSrc($R['mbruid'],'50') ?>" width="50" height="50" alt="">
|
||||
</a>
|
||||
|
||||
<div class="card-body pt-5 p-3">
|
||||
<h5 class="card-title h6 mb-1">
|
||||
<a class="muted-link" href="<?php echo getListLink($R,0) ?>">
|
||||
<?php echo $R['name']?>
|
||||
</a>
|
||||
</h5>
|
||||
<span class="small text-muted">업데이트: <time class="text-muted" data-plugin="timeago" datetime="<?php echo getDateFormat($R['d_last'],'c')?>"></time></span>
|
||||
<?php if(getNew($R['d_last'],$d['post']['newtime'])):?><span class="rb-new ml-1"></span><?php endif?>
|
||||
</div><!-- /.card-body -->
|
||||
</div><!-- /.card -->
|
||||
|
||||
<?php
|
||||
$print_card_num++; // 카드 출력될 때마 1씩 증가
|
||||
$lack_card_num = $total_card_num - $print_card_num;
|
||||
?>
|
||||
|
||||
<?php if(!($i%$c_recnum)):?></div><div class="card-deck mt-3" data-role="post-list"><?php endif?>
|
||||
<?php endforeach?>
|
||||
|
||||
<?php if($lack_card_num ):?>
|
||||
<?php for($j=0;$j<$lack_card_num;$j++):$i++;?>
|
||||
<div class="card border-0" style="background-color: transparent"></div>
|
||||
<?php if(!($i%$c_recnum)):?></div><div class="card-deck mt-3" data-role="post-list"><?php endif?>
|
||||
<?php endfor?>
|
||||
<?php endif?>
|
||||
</div><!-- /.card-deck -->
|
||||
|
||||
|
||||
<?php else: ?>
|
||||
|
||||
<div class="p-5 text-center text-muted">
|
||||
등록된 리스트가 없습니다.
|
||||
</div>
|
||||
|
||||
<?php endif; ?>
|
||||
|
||||
<footer class="d-flex justify-content-between mt-5">
|
||||
<div class=""></div>
|
||||
|
||||
<?php if ($NUM > $recnum): ?>
|
||||
<ul class="pagination mb-0">
|
||||
<?php echo getPageLink(10,$p,$TPG,$_N)?>
|
||||
</ul>
|
||||
<?php endif; ?>
|
||||
|
||||
<div class="">
|
||||
</div>
|
||||
</footer>
|
||||
|
||||
</section>
|
||||
|
||||
<script>
|
||||
|
||||
$( document ).ready(function() {
|
||||
|
||||
// 툴바
|
||||
$('[name="listsearchf"] .dropdown-item').click(function(){
|
||||
var form = $('[name="listsearchf"]');
|
||||
var value = $(this).attr('data-value');
|
||||
var role = $(this).closest('.dropdown').attr('data-role');
|
||||
form.find('[name="'+role+'"]').val(value)
|
||||
form.submit();
|
||||
});
|
||||
|
||||
// marks.js
|
||||
$('[data-plugin="markjs"]').mark("<?php echo $keyword ?>");
|
||||
|
||||
});
|
||||
|
||||
</script>
|
||||
114
modules/post/themes/_desktop/bs4-default/list_view.php
Normal file
114
modules/post/themes/_desktop/bs4-default/list_view.php
Normal file
@@ -0,0 +1,114 @@
|
||||
<?php
|
||||
$c_recnum = $d['post']['rownum']; // 한 열에 출력할 카드 갯수
|
||||
$totalCardDeck=ceil($NUM/$c_recnum); // card-deck 갯수 ($NUM 은 해당 데이타의 총 card 갯수 getDbRows 이용)
|
||||
$total_card_num = $totalCardDeck*$c_recnum;// 총 출력되야 할 card 갯수(빈카드 포함)
|
||||
$print_card_num = 0; // 실제 출력된 카드 숫자 (아래 card 출력될 때마다 1 씩 증가)
|
||||
$lack_card_num = $total_card_num;
|
||||
?>
|
||||
|
||||
<section>
|
||||
|
||||
<div class="d-flex justify-content-between align-items-center py-2 mt-3 mb-4 border-bottom border-dark">
|
||||
<h3 class="h4 mb-0">
|
||||
<a href="<?php echo getProfileLink($LIST['mbruid'])?><?php echo $_HS['rewrite']?'/':'&page=' ?>list" data-toggle="tooltip" title="<?php echo $MBR['name'] ?>의 리스트" class="d-inline-block align-bottom">
|
||||
<img src="<?php echo getAvatarSrc($LIST['mbruid'],'30') ?>" width="30" height="30" alt="<?php echo $MBR['name'] ?>" class="mr-1 rounded-circle">
|
||||
</a>
|
||||
<?php echo $LIST['name'] ?> <small class="text-muted"><?php echo $NUM ?>개</small>
|
||||
</h3>
|
||||
<div class="">
|
||||
<a class="btn btn-white" href="/list">전체 리스트</a>
|
||||
<button class="btn btn-white" data-history="back" type="button">이전</button>
|
||||
<?php if ($_perm['list_owner']): ?>
|
||||
<a class="btn btn-white" href="<?php echo RW('mod=dashboard&page=list_view&id='.$listid)?>">관리</a>
|
||||
<?php endif; ?>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<p>
|
||||
<?php echo $LIST['review'] ?>
|
||||
</p>
|
||||
|
||||
<!-- 태그 -->
|
||||
<?php if ($LIST['tag']): ?>
|
||||
<div class="my-4">
|
||||
<?php $_tags=explode(',',$LIST['tag'])?>
|
||||
<?php $_tagn=count($_tags)?>
|
||||
<?php $i=0;for($i = 0; $i < $_tagn; $i++):?>
|
||||
<?php $_tagk=trim($_tags[$i])?>
|
||||
<a class="badge badge-light rounded-0 f15 font-weight-light bg-light border-0 py-2" href="<?php echo RW('m=post&mod=keyword&') ?>keyword=<?php echo urlencode($_tagk)?>">
|
||||
#<?php echo $_tagk?>
|
||||
</a>
|
||||
<?php endfor?>
|
||||
</div>
|
||||
<?php endif; ?>
|
||||
|
||||
<?php if ($NUM): ?>
|
||||
|
||||
<div class="card-deck">
|
||||
|
||||
<?php $i=0;foreach($RCD as $R):$i++?>
|
||||
|
||||
<div class="card mb-3">
|
||||
<?php if ($R['featured_img']): ?>
|
||||
<a href="<?php echo getPostLink($R,$mbrid?1:0).($GLOBALS['_HS']['rewrite']?'?':'&').'list='.$listid ?>" class="position-relative">
|
||||
<img src="<?php echo checkPostPerm($R)?getPreviewResize(getUpImageSrc($R),'320x180'):getPreviewResize('/files/noimage.png','320x180') ?>" class="img-fluid" alt="">
|
||||
<time class="badge badge-dark rounded-0 position-absolute f14" style="right:1px;bottom:1px"><?php echo checkPostPerm($R)?getUpImageTime($R):'' ?></time>
|
||||
</a>
|
||||
<?php endif; ?>
|
||||
<div class="card-body p-3">
|
||||
<h5 class="card-title h6 mb-1 line-clamp-2">
|
||||
<a class="muted-link" href="<?php echo getPostLink($R,$mbrid?1:0).($GLOBALS['_HS']['rewrite']?'?':'&').'list='.$listid ?>">
|
||||
<?php echo checkPostPerm($R)?stripslashes($R['subject']):'[비공개 포스트]'?>
|
||||
</a>
|
||||
</h5>
|
||||
<?php if (checkPostPerm($R)): ?>
|
||||
<ul class="list-inline f13 text-muted mb-0">
|
||||
<li class="list-inline-item">조회 <?php echo $R['hit']?> </li>
|
||||
<li class="list-inline-item">좋아요 <?php echo $R['likes']?> </li>
|
||||
<li class="list-inline-item">댓글 <?php echo $R['comment']?> </li>
|
||||
</ul>
|
||||
<time class="text-muted small" data-plugin="timeago" datetime="<?php echo getDateFormat($R['d_regis'],'c')?>"></time>
|
||||
<?php if(getNew($R['d_regis'],$d['post']['newtime'])):?><span class="rb-new ml-1"></span><?php endif?>
|
||||
<span class="badge badge-secondary ml-2"><?php echo checkPostOwner($R) && $R['display']!=5?$g['displaySet']['label'][$R['display']]:'' ?></span>
|
||||
<?php endif; ?>
|
||||
|
||||
</div><!-- /.card-body -->
|
||||
</div><!-- /.card -->
|
||||
<?php
|
||||
$print_card_num++; // 카드 출력될 때마 1씩 증가
|
||||
$lack_card_num = $total_card_num - $print_card_num;
|
||||
?>
|
||||
|
||||
<?php if(!($i%$c_recnum)):?></div><div class="card-deck mt-3" data-role="post-list"><?php endif?>
|
||||
<?php endforeach?>
|
||||
|
||||
<?php if($lack_card_num ):?>
|
||||
<?php for($j=0;$j<$lack_card_num;$j++):$i++;?>
|
||||
<div class="card border-0" style="background-color: transparent"></div>
|
||||
<?php if(!($i%$c_recnum)):?></div><div class="card-deck mt-3" data-role="post-list"><?php endif?>
|
||||
<?php endfor?>
|
||||
<?php endif?>
|
||||
</div><!-- /.card-deck -->
|
||||
|
||||
<?php else: ?>
|
||||
|
||||
<div class="p-5 text-center text-muted">
|
||||
등록된 포스트가 없습니다.
|
||||
</div>
|
||||
|
||||
<?php endif; ?>
|
||||
|
||||
<footer class="d-flex justify-content-between mt-5">
|
||||
<div class=""></div>
|
||||
|
||||
<?php if ($NUM > $recnum): ?>
|
||||
<ul class="pagination mb-0">
|
||||
<?php echo getPageLink(10,$p,$TPG,$_N)?>
|
||||
</ul>
|
||||
<?php endif; ?>
|
||||
|
||||
<div class="">
|
||||
</div>
|
||||
</footer>
|
||||
|
||||
</section>
|
||||
1
modules/post/themes/_desktop/bs4-default/name.txt
Normal file
1
modules/post/themes/_desktop/bs4-default/name.txt
Normal file
@@ -0,0 +1 @@
|
||||
BS4 기본테마
|
||||
183
modules/post/themes/_desktop/bs4-default/post.php
Normal file
183
modules/post/themes/_desktop/bs4-default/post.php
Normal file
@@ -0,0 +1,183 @@
|
||||
<?php
|
||||
$c_recnum = $d['post']['rownum']; // 한 열에 출력할 카드 갯수
|
||||
$totalCardDeck=ceil($NUM/$c_recnum); // card-deck 갯수 ($NUM 은 해당 데이타의 총 card 갯수 getDbRows 이용)
|
||||
$total_card_num = $totalCardDeck*$c_recnum;// 총 출력되야 할 card 갯수(빈카드 포함)
|
||||
$print_card_num = 0; // 실제 출력된 카드 숫자 (아래 card 출력될 때마다 1 씩 증가)
|
||||
$lack_card_num = $total_card_num;
|
||||
|
||||
switch ($sort) {
|
||||
case 'gid' : $sort_txt='생성순';break;
|
||||
case 'd_modify' : $sort_txt='최신순';break;
|
||||
case 'hit' : $sort_txt='조회순';break;
|
||||
case 'likes' : $sort_txt='좋아요순';break;
|
||||
case 'dislikes' : $sort_txt='싫어요순';break;
|
||||
case 'comment' : $sort_txt='댓글순';break;
|
||||
}
|
||||
?>
|
||||
|
||||
<section>
|
||||
|
||||
<div class="d-flex justify-content-between align-items-center mt-4">
|
||||
<h3 class="mb-0">
|
||||
전체 포스트
|
||||
</h3>
|
||||
<div class="">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="d-flex align-items-center border-top border-dark pt-4 pb-3" role="filter">
|
||||
<span class="f18">전체 <span class="text-primary"><?php echo number_format($NUM)?></span> 개</span>
|
||||
|
||||
<form name="postsearchf" action="<?php echo $g['page_reset'] ?>" method="get" class="form-inline ml-auto">
|
||||
|
||||
<?php if ($_HS['rewrite']): ?>
|
||||
<input type="hidden" name="sort" value="<?php echo $sort?>">
|
||||
<?php else: ?>
|
||||
<input type="hidden" name="r" value="<?php echo $r?>">
|
||||
<?php if($_mod):?>
|
||||
<input type="hidden" name="mod" value="<?php echo $_mod?>">
|
||||
<?php else:?>
|
||||
<input type="hidden" name="m" value="<?php echo $m?>">
|
||||
<input type="hidden" name="front" value="<?php echo $front?>">
|
||||
<?php endif?>
|
||||
<input type="hidden" name="page" value="<?php echo $page?>">
|
||||
<input type="hidden" name="sort" value="<?php echo $sort?>">
|
||||
<input type="hidden" name="orderby" value="<?php echo $orderby?>">
|
||||
<input type="hidden" name="recnum" value="<?php echo $recnum?>">
|
||||
<input type="hidden" name="type" value="<?php echo $type?>" />
|
||||
<?php endif; ?>
|
||||
|
||||
<label class="mt-1 mr-2 sr-only">정열</label>
|
||||
<div class="dropdown" data-role="sort">
|
||||
<a class="btn btn-white dropdown-toggle" href="#" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
|
||||
정열 : <?php echo $sort_txt ?>
|
||||
</a>
|
||||
|
||||
<div class="dropdown-menu shadow-sm" aria-labelledby="dropdownMenuLink" style="min-width: 116px;">
|
||||
<button class="dropdown-item d-flex justify-content-between align-items-center<?php echo $sort=='gid'?' active':'' ?>" type="button" data-value="gid">
|
||||
생성순
|
||||
</button>
|
||||
<button class="dropdown-item d-flex justify-content-between align-items-center<?php echo $sort=='d_modify'?' active':'' ?>" type="button" data-value="d_modify">
|
||||
최신순
|
||||
</button>
|
||||
<button class="dropdown-item d-flex justify-content-between align-items-center<?php echo $sort=='hit'?' active':'' ?>" type="button" data-value="hit">
|
||||
조회순
|
||||
</button>
|
||||
<button class="dropdown-item d-flex justify-content-between align-items-center<?php echo $sort=='likes'?' active':'' ?>" type="button" data-value="likes">
|
||||
좋아요순
|
||||
</button>
|
||||
<button class="dropdown-item d-flex justify-content-between align-items-center<?php echo $sort=='dislikes'?' active':'' ?>" type="button" data-value="dislikes">
|
||||
싫어요순
|
||||
</button>
|
||||
<button class="dropdown-item d-flex justify-content-between align-items-center<?php echo $sort=='comment'?' active':'' ?>" type="button" data-value="comment">
|
||||
댓글순
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="input-group ml-2">
|
||||
<input type="text" name="keyword" class="form-control" placeholder="제목,리뷰,태그 검색" value="<?php echo $_keyword?>">
|
||||
<div class="input-group-append">
|
||||
<button class="btn btn-white text-muted border-left-0" type="submit">
|
||||
<i class="fa fa-search" aria-hidden="true"></i>
|
||||
</button>
|
||||
<?php if ($keyword): ?>
|
||||
<a class="btn btn-white ml-1" href="<?php echo $g['post_reset'] ?>">리셋</a>
|
||||
<?php endif; ?>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</form><!-- /.form-inline -->
|
||||
</div><!-- /.d-flex -->
|
||||
|
||||
<?php if ($NUM): ?>
|
||||
|
||||
<div class="card-deck" data-role="post-list" data-plugin="markjs">
|
||||
|
||||
<?php $i=0;foreach($RCD as $R):$i++?>
|
||||
|
||||
<div class="card mb-3">
|
||||
<?php if ($R['featured_img']): ?>
|
||||
<a href="<?php echo getPostLink($R,0) ?>" class="position-relative">
|
||||
<img src="<?php echo checkPostPerm($R)?getPreviewResize(getUpImageSrc($R),'400x225'):getPreviewResize('/files/noimage.png','300x168') ?>" class="img-fluid" alt="">
|
||||
<time class="badge badge-dark rounded-0 position-absolute f14" style="right:1px;bottom:1px"><?php echo checkPostPerm($R)?getUpImageTime($R):'' ?></time>
|
||||
</a>
|
||||
<?php endif; ?>
|
||||
<div class="card-body p-3">
|
||||
<h5 class="card-title h6 mb-1 line-clamp-2">
|
||||
<a class="muted-link" href="<?php echo getPostLink($R,0) ?>">
|
||||
<?php echo checkPostPerm($R)?stripslashes($R['subject']):'[비공개 포스트]'?>
|
||||
</a>
|
||||
</h5>
|
||||
<?php if (checkPostPerm($R)): ?>
|
||||
<ul class="list-inline f13 text-muted mb-0">
|
||||
<li class="list-inline-item">조회 <?php echo $R['hit']?> </li>
|
||||
<li class="list-inline-item">좋아요 <?php echo $R['likes']?> </li>
|
||||
<li class="list-inline-item">댓글 <?php echo $R['comment']?> </li>
|
||||
</ul>
|
||||
<time class="text-muted small" data-plugin="timeago" datetime="<?php echo getDateFormat($R['d_regis'],'c')?>"></time>
|
||||
<?php if(getNew($R['d_regis'],$d['post']['newtime'])):?><i class="material-icons align-middle">fiber_new</i><?php endif?>
|
||||
<span class="badge badge-secondary ml-2"><?php echo checkPostOwner($R) && $R['display']!=5?$g['displaySet']['label'][$R['display']]:'' ?></span>
|
||||
<?php endif; ?>
|
||||
|
||||
</div><!-- /.card-body -->
|
||||
</div><!-- /.card -->
|
||||
<?php
|
||||
$print_card_num++; // 카드 출력될 때마 1씩 증가
|
||||
$lack_card_num = $total_card_num - $print_card_num;
|
||||
?>
|
||||
|
||||
<?php if(!($i%$c_recnum)):?></div><div class="card-deck mt-3" data-role="post-list" data-plugin="markjs"><?php endif?>
|
||||
<?php endforeach?>
|
||||
|
||||
<?php if($lack_card_num ):?>
|
||||
<?php for($j=0;$j<$lack_card_num;$j++):$i++;?>
|
||||
<div class="card border-0" style="background-color: transparent"></div>
|
||||
<?php if(!($i%$c_recnum)):?></div><div class="card-deck mt-3" data-role="post-list" data-plugin="markjs"><?php endif?>
|
||||
<?php endfor?>
|
||||
<?php endif?>
|
||||
</div><!-- /.card-deck -->
|
||||
|
||||
|
||||
<?php else: ?>
|
||||
|
||||
<div class="p-5 text-center text-muted">
|
||||
등록된 포스트가 없습니다.
|
||||
</div>
|
||||
|
||||
<?php endif; ?>
|
||||
|
||||
<footer class="d-flex justify-content-between mt-5">
|
||||
<div class=""></div>
|
||||
|
||||
<?php if ($NUM > $recnum): ?>
|
||||
<ul class="pagination mb-0">
|
||||
<?php echo getPageLink(10,$p,$TPG,$_N)?>
|
||||
</ul>
|
||||
<?php endif; ?>
|
||||
|
||||
<div class="">
|
||||
</div>
|
||||
</footer>
|
||||
|
||||
</section>
|
||||
|
||||
<script>
|
||||
|
||||
$( document ).ready(function() {
|
||||
|
||||
// 툴바
|
||||
$('[name="postsearchf"] .dropdown-item').click(function(){
|
||||
var form = $('[name="postsearchf"]');
|
||||
var value = $(this).attr('data-value');
|
||||
var role = $(this).closest('.dropdown').attr('data-role');
|
||||
form.find('[name="'+role+'"]').val(value)
|
||||
form.submit();
|
||||
});
|
||||
|
||||
// marks.js
|
||||
$('[data-plugin="markjs"]').mark("<?php echo $keyword ?>");
|
||||
|
||||
});
|
||||
|
||||
</script>
|
||||
32
modules/post/themes/_desktop/bs4-default/view.php
Normal file
32
modules/post/themes/_desktop/bs4-default/view.php
Normal file
@@ -0,0 +1,32 @@
|
||||
<?php
|
||||
include $g['dir_module_skin'].'_header.php';
|
||||
$formats = explode(',', $d['theme']['format']);array_unshift($formats,'');
|
||||
include $g['dir_module_skin'].'view_'.$formats[$R['format']].'.php';
|
||||
include $g['dir_module_skin'].'_footer.php';
|
||||
include $g['dir_module_skin'].'component.php';
|
||||
|
||||
if ($_perm['post_owner']) {
|
||||
include_once $g['dir_module'].'mod/_component.desktop.php';
|
||||
getImport('Chart.js','Chart.bundle.min','2.8.0','js');
|
||||
}
|
||||
|
||||
?>
|
||||
|
||||
<script>
|
||||
|
||||
putCookieAlert('post_action_result') // 실행결과 알림 메시지 출력
|
||||
|
||||
$( document ).ready(function() {
|
||||
|
||||
$('[data-toggle="print"]').click(function() {
|
||||
window.print()
|
||||
});
|
||||
|
||||
$('[data-toggle="actionIframe"] , [data-act="actionIframe"]').click(function() {
|
||||
getIframeForAction('');
|
||||
frames.__iframe_for_action__.location.href = $(this).attr("data-url");
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
</script>
|
||||
231
modules/post/themes/_desktop/bs4-default/view_adv.php
Normal file
231
modules/post/themes/_desktop/bs4-default/view_adv.php
Normal file
@@ -0,0 +1,231 @@
|
||||
<section class="post-section row">
|
||||
|
||||
<div class="col-8">
|
||||
|
||||
<h2 class="h3"><?php echo stripslashes($R['subject']) ?></h2>
|
||||
|
||||
<div class="page-meta f13">
|
||||
<div class="page-meta-body">
|
||||
<div class="project-meta">
|
||||
|
||||
<span class="badge badge-light align-middle border border-success text-success mr-1"><?php echo $g['projectSet']['type'][$R['type']] ?></span>
|
||||
<time class="js-timeago mr-1 text-muted js-tooltip" title="등록일시">
|
||||
<i class="fa fa-clock-o" aria-hidden="true"></i> <?php echo getDateFormat($R['d_regis'],'Y-m-d H:i') ?>
|
||||
</time>
|
||||
<?php if($R['d_modify']):?>
|
||||
<time class="text-muted f12">
|
||||
(<?php echo '수정 : '.getDateFormat($R['d_modify'],'Y-m-d H:i') ?>)
|
||||
</time>
|
||||
<?php endif?>
|
||||
|
||||
<?php if (!$R['disabled_comment']): ?>
|
||||
<span class="ml-2">· 댓글 : <a class="muted-link" href="#comments"><?php echo $R['comment']?></a></span>
|
||||
<?php endif; ?>
|
||||
|
||||
<span class="ml-2">
|
||||
조회 : <?php echo $R['hit']?>
|
||||
</span>
|
||||
|
||||
<?php if (!$R['disabled_like']): ?>
|
||||
<span class="ml-2">· <i class="fa fa-thumbs-o-up" aria-hidden="true"></i> <span class="text-muted" data-role=like_num><?php echo $R['likes']?></span></span>
|
||||
<?php endif; ?>
|
||||
|
||||
<?php if ($R['num_rating'] && !$R['disabled_rating']): ?>
|
||||
<span class="ml-2" data-toggle="tooltip" title="참여: <?php echo $R['num_rating'] ?>명 , 평점 <?php echo $R['rating']/$R['num_rating']?>" role="button">· <i class="fa fa-star-o" aria-hidden="true"></i>
|
||||
<a href="#" class="muted-link"> <?php echo $R['rating']/$R['num_rating']?></a></span>
|
||||
<?php endif; ?>
|
||||
|
||||
</div>
|
||||
</div><!-- /.page-meta-body -->
|
||||
</div>
|
||||
|
||||
<blockquote class="blockquote mt-4">
|
||||
<?php echo $R['review'] ?>
|
||||
</blockquote>
|
||||
|
||||
<!-- 본문 -->
|
||||
<article class="py-4 rb-article">
|
||||
<?php echo getContents($R['content'],$R['html'])?>
|
||||
</article>
|
||||
|
||||
<section class="mt-4">
|
||||
<?php include $g['dir_module_skin'].'_view_attach.php'?>
|
||||
</section>
|
||||
|
||||
<div class="my-4 text-center d-print-none">
|
||||
<!-- 스크탭-->
|
||||
<button type="button" class="btn btn-white <?php if($is_saved):?> active<?php endif?>"
|
||||
data-toggle="button"
|
||||
data-act="actionIframe"
|
||||
data-url="<?php echo $g['post_action']?>saved&uid=<?php echo $R['uid']?>"
|
||||
data-role="btn_post_saved">
|
||||
<i class="material-icons align-middle">bookmark_border</i> 저장
|
||||
</button>
|
||||
|
||||
<!-- 좋아요 or 싫어요 -->
|
||||
<?php if (!$R['dis_like']): ?>
|
||||
<button type="button" class="btn btn-white<?php if($is_liked):?> active<?php endif?>"
|
||||
data-toggle="button"
|
||||
data-act="actionIframe"
|
||||
data-url="<?php echo $g['post_action']?>opinion&opinion=like&uid=<?php echo $R['uid']?>&effect=heartbeat"
|
||||
data-role="btn_post_like">
|
||||
<i class="material-icons align-middle">thumb_up</i> <strong></strong>
|
||||
<span data-role='likes_<?php echo $R['uid']?>' class="badge badge-inverted"><?php echo $R['likes']?></span>
|
||||
</button>
|
||||
|
||||
<button type="button" class="btn btn btn-white<?php if($is_disliked):?> active<?php endif?>"
|
||||
data-toggle="button"
|
||||
data-act="actionIframe"
|
||||
data-url="<?php echo $g['post_action']?>opinion&opinion=dislike&uid=<?php echo $R['uid']?>&effect=heartbeat"
|
||||
data-role="btn_post_dislike">
|
||||
<i class="material-icons align-middle">thumb_down</i> <strong></strong>
|
||||
<span data-role='dislikes_<?php echo $R['uid']?>' class="badge badge-inverted"><?php echo $R['dislikes']?></span>
|
||||
</button>
|
||||
<?php endif; ?>
|
||||
</div>
|
||||
|
||||
<!-- 태그 -->
|
||||
<?php if ($R['tag']): ?>
|
||||
<div class="">
|
||||
<?php $_tags=explode(',',$R['tag'])?>
|
||||
<?php $_tagn=count($_tags)?>
|
||||
<?php $i=0;for($i = 0; $i < $_tagn; $i++):?>
|
||||
<?php $_tagk=trim($_tags[$i])?>
|
||||
<a class="badge badge-light rounded-0 f15 font-weight-light bg-light border-0 py-2" href="<?php echo RW('m=post&mod=keyword&') ?>keyword=<?php echo urlencode($_tagk)?>">
|
||||
#<?php echo $_tagk?>
|
||||
</a>
|
||||
<?php endfor?>
|
||||
</div>
|
||||
<?php endif; ?>
|
||||
|
||||
<!-- 작성자 정보 -->
|
||||
<div class="text-center my-4 py-5 border-top">
|
||||
<a href="<?php echo getProfileLink($R['mbruid']) ?>" class="text-reset text-decoration-none">
|
||||
<img class="mb-3 rounded-circle border" src="<?php echo getAvatarSrc($R['mbruid'],'64') ?>" width="64" height="64" alt="<?php echo $M1[$_HS['nametype']] ?>의 프로필">
|
||||
<h5 class="mb-1"><?php echo $M1[$_HS['nametype']] ?></h5>
|
||||
<span class="f13 text-muted"><?php echo $M1['bio'] ?></span>
|
||||
</a>
|
||||
</div>
|
||||
|
||||
<!-- 링크 공유 -->
|
||||
<div class="my-4 d-print-none text-center">
|
||||
<?php include $g['dir_module_skin'].'_linkshare.php'?>
|
||||
</div>
|
||||
|
||||
<footer class="d-flex justify-content-between align-items-center my-5 d-print-none">
|
||||
<div data-role="item" data-featured_img="<?php echo getPreviewResize(getUpImageSrc($R),'180x100') ?>" data-subject="<?php echo $R['subject'] ?>">
|
||||
<?php if($_perm['post_owner']):?>
|
||||
|
||||
<?php if ($R['likes'] || $R['dislikes']): ?>
|
||||
<button type="button" class="btn btn btn-outline-primary"
|
||||
data-target="#modal-post-opinion"
|
||||
data-opinion="like"
|
||||
data-toggle="modal"
|
||||
data-uid="<?php echo $R['uid'] ?>">
|
||||
좋아요 내역
|
||||
</button>
|
||||
<?php endif; ?>
|
||||
|
||||
<?php if ($d['post']['writeperm']): ?>
|
||||
<button type="button" class="btn btn btn-outline-primary"
|
||||
data-target="#modal-post-analytics"
|
||||
data-toggle="modal"
|
||||
data-uid="<?php echo $R['uid'] ?>">
|
||||
분석
|
||||
</button>
|
||||
|
||||
<a href="<?php echo RW('m=post&mod=write&cid='.$R['cid']) ?>" class="btn btn-primary">수정</a>
|
||||
<?php endif; ?>
|
||||
|
||||
<?php endif?>
|
||||
</div>
|
||||
<div class="">
|
||||
<button type="button" class="btn btn-white" data-history="back">이전가기</button>
|
||||
</div>
|
||||
|
||||
</footer>
|
||||
|
||||
<?php if (!$R['dis_comment']): ?>
|
||||
<aside class="border-top mt-4 pt-4">
|
||||
<?php include $g['dir_module_skin'].'_comment.php'?>
|
||||
</aside>
|
||||
<?php endif; ?>
|
||||
|
||||
|
||||
</div><!-- /.col -->
|
||||
|
||||
<div class="col-4 pr-0">
|
||||
|
||||
<?php if ($list): ?>
|
||||
<?php
|
||||
$LIST=getDbData($table[$m.'list'],"id='".$list."'",'*');
|
||||
$_WHERE = 'site='.$s;
|
||||
$_WHERE .= ' and list="'.$LIST['uid'].'"';
|
||||
$TCD = getDbArray($table[$m.'list_index'],$_WHERE,'*','gid','asc',11,1);
|
||||
$NUM = getDbRows($table[$m.'list_index'],$_WHERE);
|
||||
while($_R = db_fetch_array($TCD)) $LCD[] = getDbData($table[$m.'data'],'uid='.$_R['data'],'*');
|
||||
?>
|
||||
|
||||
<div class="card mb-4 shadow-sm">
|
||||
<div class="card-body px-2 pt-2 pb-1">
|
||||
|
||||
<a href="<?php echo getListLink($LIST,$mbrid?1:0) ?>" class="media text-reset text-decoration-none">
|
||||
<i class="material-icons mr-1 text-muted" style="font-size: 34px;">playlist_play</i>
|
||||
<div class="media-body">
|
||||
<h5 class="h6 mb-0">
|
||||
<?php echo $LIST['name'] ?>
|
||||
</h5>
|
||||
<small class="text-muted"><?php echo $MBR['name'] ?></small>
|
||||
</div>
|
||||
</a><!-- /.media -->
|
||||
|
||||
</div>
|
||||
<ul class="list-group list-group-flush">
|
||||
<?php foreach($LCD as $_L): ?>
|
||||
<a href="<?php echo getPostLink($_L,$mbrid?1:0).($GLOBALS['_HS']['rewrite']?'?':'&').'list='.$list ?>"
|
||||
class="list-group-item list-group-item-action p-1 pr-3 serial<?php echo $_L['cid']==$cid?' active':' bg-light' ?>">
|
||||
<div class="media">
|
||||
<span class="align-self-center pr-2 pl-1 f12 counter"></span>
|
||||
<span class="position-relative mr-2">
|
||||
<img class="" src="<?php echo getPreviewResize(getUpImageSrc($_L),'100x56') ?>" alt="">
|
||||
<time class="badge badge-dark rounded-0 position-absolute" style="right:1px;bottom:1px"><?php echo getUpImageTime($_L) ?></time>
|
||||
</span>
|
||||
|
||||
<div class="media-body">
|
||||
<h5 class="f13 my-1 font-weight-light line-clamp-2">
|
||||
<?php echo stripslashes($_L['subject'])?>
|
||||
</h5>
|
||||
<ul class="list-inline d-inline-block f13">
|
||||
<li class="list-inline-item">
|
||||
<time data-plugin="timeago" datetime="<?php echo getDateFormat($_L['d_regis'],'c')?>"></time>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</a>
|
||||
<?php endforeach; ?>
|
||||
|
||||
</ul>
|
||||
</div>
|
||||
<?php endif; ?>
|
||||
|
||||
<?php include $g['dir_module_skin'].'_newPost.php' ?>
|
||||
|
||||
|
||||
<?php include $g['dir_module_skin'].'_newList.php' ?>
|
||||
|
||||
|
||||
</div><!-- /.col -->
|
||||
|
||||
</section>
|
||||
|
||||
|
||||
<!-- jquery.shorten : https://github.com/viralpatel/jquery.shorten -->
|
||||
<?php getImport('jquery.shorten','jquery.shorten.min','1.0','js')?>
|
||||
|
||||
<script>
|
||||
$('[data-plugin="shorten"]').shorten({
|
||||
moreText: '더보기',
|
||||
lessText: ''
|
||||
});
|
||||
</script>
|
||||
230
modules/post/themes/_desktop/bs4-default/view_doc.php
Normal file
230
modules/post/themes/_desktop/bs4-default/view_doc.php
Normal file
@@ -0,0 +1,230 @@
|
||||
<section class="post-section row">
|
||||
|
||||
<div class="col-8">
|
||||
|
||||
<h2 class="h3"><?php echo stripslashes($R['subject']) ?></h2>
|
||||
|
||||
<div class="page-meta f13">
|
||||
<div class="page-meta-body">
|
||||
<div class="project-meta">
|
||||
|
||||
<span class="badge badge-light align-middle border border-success text-success mr-1"><?php echo $g['projectSet']['type'][$R['type']] ?></span>
|
||||
<time class="js-timeago mr-1 text-muted js-tooltip" title="등록일시">
|
||||
<i class="fa fa-clock-o" aria-hidden="true"></i> <?php echo getDateFormat($R['d_regis'],'Y-m-d H:i') ?>
|
||||
</time>
|
||||
<?php if($R['d_modify']):?>
|
||||
<time class="text-muted f12">
|
||||
(<?php echo '수정 : '.getDateFormat($R['d_modify'],'Y-m-d H:i') ?>)
|
||||
</time>
|
||||
<?php endif?>
|
||||
|
||||
<?php if (!$R['disabled_comment']): ?>
|
||||
<span class="ml-2">· 댓글 : <a class="muted-link" href="#comments"><?php echo $R['comment']?></a></span>
|
||||
<?php endif; ?>
|
||||
|
||||
<span class="ml-2">
|
||||
조회 : <?php echo $R['hit']?>
|
||||
</span>
|
||||
|
||||
<?php if (!$R['disabled_like']): ?>
|
||||
<span class="ml-2">· <i class="fa fa-thumbs-o-up" aria-hidden="true"></i> <span class="text-muted" data-role=like_num><?php echo $R['likes']?></span></span>
|
||||
<?php endif; ?>
|
||||
|
||||
<?php if ($R['num_rating'] && !$R['disabled_rating']): ?>
|
||||
<span class="ml-2" data-toggle="tooltip" title="참여: <?php echo $R['num_rating'] ?>명 , 평점 <?php echo $R['rating']/$R['num_rating']?>" role="button">· <i class="fa fa-star-o" aria-hidden="true"></i>
|
||||
<a href="#" class="muted-link"> <?php echo $R['rating']/$R['num_rating']?></a></span>
|
||||
<?php endif; ?>
|
||||
|
||||
</div>
|
||||
</div><!-- /.page-meta-body -->
|
||||
</div>
|
||||
|
||||
<blockquote class="blockquote mt-4">
|
||||
<?php echo $R['review'] ?>
|
||||
</blockquote>
|
||||
|
||||
<!-- 본문 -->
|
||||
<article class="py-4 rb-article">
|
||||
<?php echo getContents($R['content'],$R['html'])?>
|
||||
</article>
|
||||
|
||||
<section class="mt-4">
|
||||
<?php include $g['dir_module_skin'].'_view_attach.php'?>
|
||||
</section>
|
||||
|
||||
<div class="my-4 text-center d-print-none">
|
||||
<!-- 스크탭-->
|
||||
<button type="button" class="btn btn-white <?php if($is_saved):?> active<?php endif?>"
|
||||
data-toggle="button"
|
||||
data-act="actionIframe"
|
||||
data-url="<?php echo $g['post_action']?>saved&uid=<?php echo $R['uid']?>"
|
||||
data-role="btn_post_saved">
|
||||
<i class="material-icons align-middle">bookmark_border</i> 저장
|
||||
</button>
|
||||
|
||||
<!-- 좋아요 or 싫어요 -->
|
||||
<?php if (!$R['dis_like']): ?>
|
||||
<button type="button" class="btn btn-white<?php if($is_liked):?> active<?php endif?>"
|
||||
data-toggle="button"
|
||||
data-act="actionIframe"
|
||||
data-url="<?php echo $g['post_action']?>opinion&opinion=like&uid=<?php echo $R['uid']?>&effect=heartbeat"
|
||||
data-role="btn_post_like">
|
||||
<i class="material-icons align-middle">thumb_up</i> <strong></strong>
|
||||
<span data-role='likes_<?php echo $R['uid']?>' class="badge badge-inverted"><?php echo $R['likes']?></span>
|
||||
</button>
|
||||
|
||||
<button type="button" class="btn btn btn-white<?php if($is_disliked):?> active<?php endif?>"
|
||||
data-toggle="button"
|
||||
data-act="actionIframe"
|
||||
data-url="<?php echo $g['post_action']?>opinion&opinion=dislike&uid=<?php echo $R['uid']?>&effect=heartbeat"
|
||||
data-role="btn_post_dislike">
|
||||
<i class="material-icons align-middle">thumb_down</i> <strong></strong>
|
||||
<span data-role='dislikes_<?php echo $R['uid']?>' class="badge badge-inverted"><?php echo $R['dislikes']?></span>
|
||||
</button>
|
||||
<?php endif; ?>
|
||||
</div>
|
||||
|
||||
<!-- 태그 -->
|
||||
<?php if ($R['tag']): ?>
|
||||
<div class="">
|
||||
<?php $_tags=explode(',',$R['tag'])?>
|
||||
<?php $_tagn=count($_tags)?>
|
||||
<?php $i=0;for($i = 0; $i < $_tagn; $i++):?>
|
||||
<?php $_tagk=trim($_tags[$i])?>
|
||||
<a class="badge badge-light rounded-0 f15 font-weight-light bg-light border-0 py-2" href="<?php echo RW('m=post&mod=keyword&') ?>keyword=<?php echo urlencode($_tagk)?>">
|
||||
#<?php echo $_tagk?>
|
||||
</a>
|
||||
<?php endfor?>
|
||||
</div>
|
||||
<?php endif; ?>
|
||||
|
||||
<!-- 작성자 정보 -->
|
||||
<div class="text-center my-4 py-5 border-top">
|
||||
<a href="<?php echo getProfileLink($R['mbruid']) ?>" class="text-reset text-decoration-none">
|
||||
<img class="mb-3 rounded-circle border" src="<?php echo getAvatarSrc($R['mbruid'],'64') ?>" width="64" height="64" alt="<?php echo $M1[$_HS['nametype']] ?>의 프로필">
|
||||
<h5 class="mb-1"><?php echo $M1[$_HS['nametype']] ?></h5>
|
||||
<span class="f13 text-muted"><?php echo $M1['bio'] ?></span>
|
||||
</a>
|
||||
</div>
|
||||
|
||||
<!-- 링크 공유 -->
|
||||
<div class="my-4 d-print-none text-center">
|
||||
<?php include $g['dir_module_skin'].'_linkshare.php'?>
|
||||
</div>
|
||||
|
||||
<footer class="d-flex justify-content-between align-items-center my-5 d-print-none">
|
||||
<div data-role="item" data-featured_img="<?php echo getPreviewResize(getUpImageSrc($R),'180x100') ?>" data-subject="<?php echo $R['subject'] ?>">
|
||||
<?php if($_perm['post_owner']):?>
|
||||
|
||||
<?php if ($R['likes'] || $R['dislikes']): ?>
|
||||
<button type="button" class="btn btn btn-outline-primary"
|
||||
data-target="#modal-post-opinion"
|
||||
data-opinion="like"
|
||||
data-toggle="modal"
|
||||
data-uid="<?php echo $R['uid'] ?>">
|
||||
좋아요 내역
|
||||
</button>
|
||||
<?php endif; ?>
|
||||
|
||||
<?php if ($d['post']['writeperm']): ?>
|
||||
<button type="button" class="btn btn btn-outline-primary"
|
||||
data-target="#modal-post-analytics"
|
||||
data-toggle="modal"
|
||||
data-uid="<?php echo $R['uid'] ?>">
|
||||
분석
|
||||
</button>
|
||||
|
||||
<a href="<?php echo RW('m=post&mod=write&cid='.$R['cid']) ?>" class="btn btn-primary">수정</a>
|
||||
<?php endif; ?>
|
||||
<?php endif?>
|
||||
</div>
|
||||
<div class="">
|
||||
<button type="button" class="btn btn-white" data-history="back">이전가기</button>
|
||||
</div>
|
||||
|
||||
</footer>
|
||||
|
||||
<?php if (!$R['dis_comment']): ?>
|
||||
<aside class="border-top mt-4 pt-4">
|
||||
<?php include $g['dir_module_skin'].'_comment.php'?>
|
||||
</aside>
|
||||
<?php endif; ?>
|
||||
|
||||
|
||||
</div><!-- /.col -->
|
||||
|
||||
<div class="col-4 pr-0">
|
||||
|
||||
<?php if ($list): ?>
|
||||
<?php
|
||||
$LIST=getDbData($table[$m.'list'],"id='".$list."'",'*');
|
||||
$_WHERE = 'site='.$s;
|
||||
$_WHERE .= ' and list="'.$LIST['uid'].'"';
|
||||
$TCD = getDbArray($table[$m.'list_index'],$_WHERE,'*','gid','asc',11,1);
|
||||
$NUM = getDbRows($table[$m.'list_index'],$_WHERE);
|
||||
while($_R = db_fetch_array($TCD)) $LCD[] = getDbData($table[$m.'data'],'uid='.$_R['data'],'*');
|
||||
?>
|
||||
|
||||
<div class="card mb-4 shadow-sm">
|
||||
<div class="card-body px-2 pt-2 pb-1">
|
||||
|
||||
<a href="<?php echo getListLink($LIST,$mbrid?1:0) ?>" class="media text-reset text-decoration-none">
|
||||
<i class="material-icons mr-1 text-muted" style="font-size: 34px;">playlist_play</i>
|
||||
<div class="media-body">
|
||||
<h5 class="h6 mb-0">
|
||||
<?php echo $LIST['name'] ?>
|
||||
</h5>
|
||||
<small class="text-muted"><?php echo $MBR['name'] ?></small>
|
||||
</div>
|
||||
</a><!-- /.media -->
|
||||
|
||||
</div>
|
||||
<ul class="list-group list-group-flush">
|
||||
<?php foreach($LCD as $_L): ?>
|
||||
<a href="<?php echo getPostLink($_L,$mbrid?1:0).($GLOBALS['_HS']['rewrite']?'?':'&').'list='.$list ?>"
|
||||
class="list-group-item list-group-item-action p-1 pr-3 serial<?php echo $_L['cid']==$cid?' active':' bg-light' ?>">
|
||||
<div class="media">
|
||||
<span class="align-self-center pr-2 pl-1 f12 counter"></span>
|
||||
<span class="position-relative mr-2">
|
||||
<img class="" src="<?php echo getPreviewResize(getUpImageSrc($_L),'100x56') ?>" alt="">
|
||||
<time class="badge badge-dark rounded-0 position-absolute" style="right:1px;bottom:1px"><?php echo getUpImageTime($_L) ?></time>
|
||||
</span>
|
||||
|
||||
<div class="media-body">
|
||||
<h5 class="f13 my-1 font-weight-light line-clamp-2">
|
||||
<?php echo stripslashes($_L['subject'])?>
|
||||
</h5>
|
||||
<ul class="list-inline d-inline-block f13">
|
||||
<li class="list-inline-item">
|
||||
<time data-plugin="timeago" datetime="<?php echo getDateFormat($_L['d_regis'],'c')?>"></time>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</a>
|
||||
<?php endforeach; ?>
|
||||
|
||||
</ul>
|
||||
</div>
|
||||
<?php endif; ?>
|
||||
|
||||
<?php include $g['dir_module_skin'].'_newPost.php' ?>
|
||||
|
||||
|
||||
<?php include $g['dir_module_skin'].'_newList.php' ?>
|
||||
|
||||
|
||||
</div><!-- /.col -->
|
||||
|
||||
</section>
|
||||
|
||||
|
||||
<!-- jquery.shorten : https://github.com/viralpatel/jquery.shorten -->
|
||||
<?php getImport('jquery.shorten','jquery.shorten.min','1.0','js')?>
|
||||
|
||||
<script>
|
||||
$('[data-plugin="shorten"]').shorten({
|
||||
moreText: '더보기',
|
||||
lessText: ''
|
||||
});
|
||||
</script>
|
||||
332
modules/post/themes/_desktop/bs4-default/view_video.php
Normal file
332
modules/post/themes/_desktop/bs4-default/view_video.php
Normal file
@@ -0,0 +1,332 @@
|
||||
<section class="post-section row">
|
||||
|
||||
<div class="col-8">
|
||||
|
||||
<div class="mb-4">
|
||||
<oembed url="<?php echo getFeaturedimgMeta($R,'linkurl') ?>">
|
||||
<div class="bg-black d-flex align-items-center justify-content-center text-muted" style="height: 360px">
|
||||
<div class="spinner-border" role="status">
|
||||
<span class="sr-only">Loading...</span>
|
||||
</div>
|
||||
</div>
|
||||
</oembed>
|
||||
</div>
|
||||
|
||||
<!-- 태그 -->
|
||||
<?php if ($R['tag']): ?>
|
||||
<div>
|
||||
<?php $_tags=explode(',',$R['tag'])?>
|
||||
<?php $_tagn=count($_tags)?>
|
||||
<?php $i=0;for($i = 0; $i < $_tagn; $i++):?>
|
||||
<?php $_tagk=trim($_tags[$i])?>
|
||||
<a class="badge bg-white rounded-0 f13 font-weight-light border-0" href="<?php echo RW('m=post&mod=keyword&') ?>keyword=<?php echo urlencode($_tagk)?>">
|
||||
#<?php echo $_tagk?>
|
||||
</a>
|
||||
<?php endfor?>
|
||||
</div>
|
||||
<?php endif; ?>
|
||||
|
||||
<h2 class="h5"><?php echo stripslashes($R['subject']) ?></h2>
|
||||
|
||||
<div class="page-meta border-bottom pb-1 mb-4">
|
||||
<div class="d-flex justify-content-between align-items-center">
|
||||
|
||||
<div class="mt-1 text-muted">
|
||||
<span>조회수 <?php echo number_format($R['hit'])?>회</span>
|
||||
<span class="badge badge-light align-middle border border-success text-success mr-1"><?php echo $g['projectSet']['type'][$R['type']] ?></span>
|
||||
<time class="mr-1">
|
||||
•<?php echo getDateFormat($R['d_modify']?$R['d_modify']:$R['d_regis'],'Y-m-d H:i') ?>
|
||||
</time>
|
||||
</div>
|
||||
<div class="">
|
||||
|
||||
<!-- 좋아요 or 싫어요 -->
|
||||
<?php if (!$R['dis_like']): ?>
|
||||
<span class="dropdown">
|
||||
<button type="button" class="btn btn-link muted-link px-2 text-decoration-none<?php if($is_liked):?> active<?php endif?>"
|
||||
data-toggle="<?php echo $my['uid']?'button':'dropdown' ?>"
|
||||
data-act="<?php echo $my['uid']?'actionIframe':'dropdown'?>"
|
||||
data-url="<?php echo $g['post_action']?>opinion&opinion=like&uid=<?php echo $R['uid']?>&effect=heartbeat"
|
||||
data-role="btn_post_like">
|
||||
<i class="material-icons align-text-bottom">thumb_up</i>
|
||||
<span data-role='likes_<?php echo $R['uid']?>' class="ml-1 f13 text-muted"><?php echo $R['likes']?$R['likes']:'좋아요'?></span>
|
||||
</button>
|
||||
<div class="dropdown-menu shadow" style="min-width: 300px;">
|
||||
<div class="py-3 px-4">
|
||||
<h6>포스트가 마음에 드시나요?</h6>
|
||||
<p class="f13 text-muted mb-0">로그인하여 의견을 알려주세요.</p>
|
||||
</div>
|
||||
<div class="dropdown-divider"></div>
|
||||
<div class="px-3">
|
||||
<button type="button" class="btn btn-link btn-sm" data-toggle="modal" data-target="#modal-login">
|
||||
로그인
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</span>
|
||||
|
||||
<span class="dropdown">
|
||||
<button type="button" class="btn btn-link muted-link px-2 text-decoration-none<?php if($is_disliked):?> active<?php endif?>"
|
||||
data-toggle="<?php echo $my['uid']?'button':'dropdown' ?>"
|
||||
data-act="<?php echo $my['uid']?'actionIframe':'dropdown'?>"
|
||||
data-url="<?php echo $g['post_action']?>opinion&opinion=dislike&uid=<?php echo $R['uid']?>&effect=heartbeat"
|
||||
data-role="btn_post_dislike">
|
||||
<i class="material-icons align-text-bottom">thumb_down</i>
|
||||
<span data-role='dislikes_<?php echo $R['uid']?>' class="ml-1 f13 text-muted"><?php echo $R['dislikes']?$R['dislikes']:'싫어요'?></span>
|
||||
</button>
|
||||
<div class="dropdown-menu shadow" style="min-width: 300px;">
|
||||
<div class="py-3 px-4">
|
||||
<h6>포스트가 마음에 안 드시나요?</h6>
|
||||
<p class="f13 text-muted mb-0">로그인하여 의견을 알려주세요.</p>
|
||||
</div>
|
||||
<div class="dropdown-divider"></div>
|
||||
<div class="px-3">
|
||||
<button type="button" class="btn btn-link btn-sm" data-toggle="modal" data-target="#modal-login">
|
||||
로그인
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</span>
|
||||
<?php endif; ?>
|
||||
|
||||
<?php if (!$R['dis_share']): ?>
|
||||
<button type="button" class="btn btn-link muted-link px-2 text-decoration-none"
|
||||
data-toggle="modal" data-target="#modal-post-share">
|
||||
<i class="material-icons align-text-bottom mirror">reply</i>
|
||||
<span class="f13 text-muted">공유</span>
|
||||
</button>
|
||||
<?php endif; ?>
|
||||
|
||||
<?php if (!$R['dis_listadd']): ?>
|
||||
<span class="dropdown" data-role="listadd">
|
||||
<button type="button" class="btn btn-link muted-link px-2 text-decoration-none"
|
||||
data-toggle="<?php echo $my['uid']?'modal':'dropdown'?>"
|
||||
data-target="<?php echo $my['uid']?'#modal-post-listadd':''?>"
|
||||
data-uid="<?php echo $R['uid']?>">
|
||||
<i class="material-icons align-text-bottom">playlist_add</i>
|
||||
<span class="f13 text-muted">저장</span>
|
||||
</button>
|
||||
<div class="dropdown-menu shadow" style="min-width: 300px;">
|
||||
<div class="py-3 px-4">
|
||||
<h6>나중에 다시 보고 싶으신가요?</h6>
|
||||
<p class="f13 text-muted mb-0">로그인하여 포스트를 리스트에 추가하세요.</p>
|
||||
</div>
|
||||
<div class="dropdown-divider"></div>
|
||||
<div class="px-3">
|
||||
<button type="button" class="btn btn-link btn-sm" data-toggle="modal" data-target="#modal-login">
|
||||
로그인
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</span>
|
||||
<?php endif; ?>
|
||||
|
||||
<?php if ($R['num_rating'] && !$R['disabled_rating']): ?>
|
||||
<span class="ml-2" data-toggle="tooltip" title="참여: <?php echo $R['num_rating'] ?>명 , 평점 <?php echo $R['rating']/$R['num_rating']?>" role="button">· <i class="fa fa-star-o" aria-hidden="true"></i>
|
||||
<a href="#" class="muted-link"> <?php echo $R['rating']/$R['num_rating']?></a></span>
|
||||
<?php endif; ?>
|
||||
|
||||
<div class="dropdown d-inline">
|
||||
<button class="btn btn-link muted-link px-2" type="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
|
||||
<i class="material-icons">more_horiz</i>
|
||||
</button>
|
||||
<div class="dropdown-menu dropdown-menu-right shadow">
|
||||
<a class="dropdown-item" href="#modal-post-report" data-toggle="modal" data-uid="<?php echo $R['uid']?>">
|
||||
신고하기
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div><!-- /.page-meta-body -->
|
||||
</div>
|
||||
|
||||
<div class="d-flex justify-content-between">
|
||||
|
||||
<div class="media w-100" data-mbruid="<?php echo $R['mbruid'] ?>">
|
||||
<a href="<?php echo getProfileLink($R['mbruid']) ?>" class="mr-3">
|
||||
<img src="<?php echo getAvatarSrc($R['mbruid'],'48') ?>" class="rounded-circle" width="48" height="48" alt="<?php echo $M1[$_HS['nametype']] ?>의 프로필">
|
||||
</a>
|
||||
<div class="media-body pt-1">
|
||||
|
||||
<div class="d-flex justify-content-between">
|
||||
<div class="mb-2">
|
||||
<h6 class="mb-1">
|
||||
<a href="<?php echo getProfileLink($R['mbruid']) ?>" class="text-reset text-decoration-none"><?php echo $M1[$_HS['nametype']] ?></a>
|
||||
</h6>
|
||||
<p class="mb-0 text-muted f12">
|
||||
<?php if ($M1['num_follower']): ?>
|
||||
<a class="text-reset text-decoration-none" href="<?php echo getProfileLink($R['mbruid'])?>/follower">
|
||||
구독자
|
||||
<span data-role="num_follower"><?php echo number_format($M1['num_follower'])?></span>
|
||||
명
|
||||
</a>
|
||||
<?php else: ?>
|
||||
구독자 <span data-role="num_follower">없음</span>
|
||||
<?php endif; ?>
|
||||
</p>
|
||||
</div>
|
||||
<div data-role="item" data-featured_img="<?php echo getPreviewResize(getUpImageSrc($R),'180x100') ?>" data-subject="<?php echo stripslashes($R['subject'])?>">
|
||||
|
||||
<?php if($_perm['post_owner']):?>
|
||||
|
||||
<?php if ($R['likes'] || $R['dislikes']): ?>
|
||||
<button type="button" class="btn btn btn-outline-primary"
|
||||
data-target="#modal-post-opinion"
|
||||
data-opinion="like"
|
||||
data-toggle="modal"
|
||||
data-uid="<?php echo $R['uid'] ?>">
|
||||
좋아요 내역
|
||||
</button>
|
||||
<?php endif; ?>
|
||||
|
||||
<?php if ($d['post']['writeperm']): ?>
|
||||
<button type="button" class="btn btn btn-outline-primary"
|
||||
data-target="#modal-post-analytics"
|
||||
data-toggle="modal"
|
||||
data-uid="<?php echo $R['uid'] ?>">
|
||||
분석
|
||||
</button>
|
||||
<a href="<?php echo RW('m=post&mod=write&cid='.$R['cid']) ?>" class="btn btn-outline-primary">수정</a>
|
||||
<?php endif; ?>
|
||||
|
||||
<?php endif?>
|
||||
|
||||
<?php if($my['uid']!=$R['mbruid']):?>
|
||||
<button type="button" class="btn btn-primary<?php echo $_isFollowing ?' active':''?>"
|
||||
data-act="<?php echo $my['uid']?'actionIframe':'' ?>"
|
||||
data-toggle="<?php echo $my['uid']?'button':'dropdown' ?>"
|
||||
data-role="follow"
|
||||
data-url="<?php echo $g['s'].'/?r='.$r.'&m=member&a=profile_follow&mbruid='.$M1['memberuid']?>">
|
||||
구독
|
||||
</button>
|
||||
<div class="dropdown-menu dropdown-menu-right shadow" style="min-width: 350px;">
|
||||
<div class="py-3 px-4">
|
||||
<h6><?php echo $M1[$_HS['nametype']] ?>님의 포스트를 구독하시겠습니까?</h6>
|
||||
<p class="f13 text-muted mb-0">구독하려면 로그인하세요.</p>
|
||||
</div>
|
||||
<div class="dropdown-divider"></div>
|
||||
<div class="px-3 text-right">
|
||||
<button type="button" class="btn btn-link btn-sm" data-toggle="modal" data-target="#modal-login">
|
||||
로그인
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
<?php endif?>
|
||||
</div>
|
||||
</div><!-- /.flex -->
|
||||
|
||||
<!-- 본문 -->
|
||||
<article class="rb-article" data-plugin="shorten">
|
||||
<?php echo getContents($R['content'],$R['html'])?>
|
||||
|
||||
<?php if ($R['category']): ?>
|
||||
<span class="ml-2 f13 text-muted">
|
||||
<i class="fa fa-folder-o mr-1" aria-hidden="true"></i> <?php echo getAllPostCat($m,$R['category']) ?>
|
||||
</span>
|
||||
<?php endif; ?>
|
||||
|
||||
</article>
|
||||
|
||||
<section class="mt-1">
|
||||
<?php include $g['dir_module_skin'].'_view_attach.php'?>
|
||||
</section>
|
||||
|
||||
</div>
|
||||
</div><!-- /.media -->
|
||||
|
||||
</div><!-- /.d-flex -->
|
||||
|
||||
<?php if (!$R['dis_comment']): ?>
|
||||
<aside class="border-top mt-4 pt-4">
|
||||
<?php include $g['dir_module_skin'].'_comment.php'?>
|
||||
</aside>
|
||||
<?php endif; ?>
|
||||
|
||||
|
||||
</div><!-- /.col -->
|
||||
|
||||
<div class="col-4 pr-0">
|
||||
|
||||
<?php if ($list): ?>
|
||||
<?php
|
||||
$LIST=getDbData($table[$m.'list'],"id='".$list."'",'*');
|
||||
$_WHERE = 'site='.$s;
|
||||
$_WHERE .= ' and list="'.$LIST['uid'].'"';
|
||||
$TCD = getDbArray($table[$m.'list_index'],$_WHERE,'*','gid','asc',11,1);
|
||||
$NUM = getDbRows($table[$m.'list_index'],$_WHERE);
|
||||
while($_R = db_fetch_array($TCD)) $LCD[] = getDbData($table[$m.'data'],'uid='.$_R['data'],'*');
|
||||
?>
|
||||
|
||||
<div class="card mb-4 shadow-sm">
|
||||
<div class="card-body px-2 pt-2 pb-1">
|
||||
|
||||
<a href="<?php echo getListLink($LIST,$mbrid?1:0) ?>" class="media text-reset text-decoration-none">
|
||||
<i class="material-icons mr-1 text-muted" style="font-size: 42px;">playlist_play</i>
|
||||
<div class="media-body">
|
||||
<h5 class="h6 mb-0 pb-0 pt-1">
|
||||
<?php echo $LIST['name'] ?>
|
||||
</h5>
|
||||
<small class="text-muted line-clamp-1"><?php echo $LIST['review']?$LIST['review']:getProfileInfo($LIST['mbruid'],'name') ?></small>
|
||||
</div>
|
||||
</a><!-- /.media -->
|
||||
|
||||
</div>
|
||||
<ul class="list-group list-group-flush">
|
||||
<?php foreach($LCD as $_L): ?>
|
||||
<a href="<?php echo getPostLink($_L,$mbrid?1:0).($GLOBALS['_HS']['rewrite']?'?':'&').'list='.$list ?>"
|
||||
class="list-group-item list-group-item-action p-1 pr-3 serial<?php echo $_L['cid']==$cid?' active':' bg-light' ?>">
|
||||
<div class="media">
|
||||
<span class="align-self-center pr-2 pl-1 f12 counter" style="width:20px"></span>
|
||||
<span class="position-relative mr-2">
|
||||
<img class="" src="<?php echo getPreviewResize(getUpImageSrc($_L),'100x56') ?>" alt="">
|
||||
<time class="badge badge-dark rounded-0 position-absolute" style="right:1px;bottom:1px"><?php echo getUpImageTime($_L) ?></time>
|
||||
</span>
|
||||
|
||||
<div class="media-body">
|
||||
<h5 class="f13 my-1 font-weight-light line-clamp-2">
|
||||
<?php echo stripslashes($_L['subject'])?>
|
||||
</h5>
|
||||
<ul class="list-inline d-inline-block f13">
|
||||
<li class="list-inline-item">
|
||||
<time data-plugin="timeago" datetime="<?php echo getDateFormat($_L['d_regis'],'c')?>"></time>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</a>
|
||||
<?php endforeach; ?>
|
||||
|
||||
</ul>
|
||||
</div>
|
||||
<?php endif; ?>
|
||||
|
||||
<?php include $g['dir_module_skin'].'_newPost.php' ?>
|
||||
|
||||
|
||||
<?php include $g['dir_module_skin'].'_newList.php' ?>
|
||||
|
||||
|
||||
</div><!-- /.col -->
|
||||
|
||||
</section>
|
||||
|
||||
|
||||
<!-- jquery.shorten : https://github.com/viralpatel/jquery.shorten -->
|
||||
<?php getImport('jquery.shorten','jquery.shorten.min','1.0','js')?>
|
||||
|
||||
<script>
|
||||
|
||||
$( document ).ready(function() {
|
||||
|
||||
$('[data-plugin="shorten"]').shorten({
|
||||
moreText: '더보기',
|
||||
lessText: ''
|
||||
});
|
||||
|
||||
$('.rb-article').linkify({
|
||||
target: "_blank"
|
||||
});
|
||||
|
||||
});
|
||||
</script>
|
||||
1136
modules/post/themes/_desktop/bs4-default/write.php
Normal file
1136
modules/post/themes/_desktop/bs4-default/write.php
Normal file
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user