Files
firstgarden-web-gnu/theme/rb.basic/skin/board/rb.contents_bbs/view.skin.php
2025-07-02 14:13:16 +09:00

535 lines
20 KiB
PHP
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?php
if (!defined("_GNUBOARD_")) exit; // 개별 페이지 접근 불가
include_once(G5_LIB_PATH.'/thumbnail.lib.php');
// add_stylesheet('css 구문', 출력순서); 숫자가 작을 수록 먼저 출력됨
add_stylesheet('<link rel="stylesheet" href="'.$board_skin_url.'/style.css">', 0);
//필드분할
$wr_1 = isset($view["wr_1"]) ? explode("|", $view["wr_1"]) : [];
$wr_2 = isset($view["wr_2"]) ? explode("|", $view["wr_2"]) : [];
$wr_3 = isset($view["wr_3"]) ? explode("|", $view["wr_3"]) : [];
?>
<style>
#scroll_container {margin-top: 20px;}
#scroll_container .rb_bbs_top{display: none;}
.v_maps {display: none !important;}
</style>
<script src="<?php echo G5_JS_URL; ?>/viewimageresize.js"></script>
<div class="rb_bbs_wrap" style="width:<?php echo $width; ?>">
<div class="btns_gr_wrap">
<!-- $rb_core['sub_width'] 는 반드시 포함해주세요 (환경설정 > 서브가로폭에 따른 버튼의 위치 설정) -->
<div class="sub" style="width:<?php echo $rb_core['sub_width'] ?>px;">
<div class="btns_gr">
<?php if ($admin_href) { ?>
<button type="button" class="fl_btns" onclick="window.open('<?php echo $admin_href ?>');">
<img src="<?php echo $board_skin_url ?>/img/ico_set.svg">
<span class="tooltips">관리</span>
</button>
<?php } ?>
<?php if ($list_href) { ?>
<button type="button" class="fl_btns" onclick="location.href='<?php echo $list_href ?>';">
<img src="<?php echo $board_skin_url ?>/img/ico_list.svg">
<span class="tooltips">목록</span>
</button>
<?php } ?>
<?php if ($write_href) { ?>
<button type="button" class="fl_btns main_color_bg" onclick="location.href='<?php echo $write_href ?>';">
<img src="<?php echo $board_skin_url ?>/img/ico_write.svg">
<span class="tooltips">등록</span>
</button>
<?php } ?>
</div>
<div class="cb"></div>
</div>
</div>
<div class="bbs_sv_wrap">
<ul class="bbs_sv_wrap_ul2">
<div class="gap_btm_bd flex_top_cat">
<?php if ($category_name) { ?>
<li class="view_info_span"><?php echo $view['ca_name'] ?></li>
<?php } ?>
<li class="rb_bbs_for_mem_names">
<?php
$view['icon_new'] = "";
if ($view['wr_datetime'] >= date("Y-m-d H:i:s", G5_SERVER_TIME - ($board['bo_new'] * 3600)))
$view['icon_new'] = "<span class=\"lb_ico_new\">신규</span>";
$view['icon_hot'] = "";
if ($board['bo_hot'] > 0 && $view['wr_hit'] >= $board['bo_hot'])
$view['icon_hot'] = "<span class=\"lb_ico_hot\">인기</span>";
echo $view['icon_new']; //뉴아이콘
echo $view['icon_hot']; //인기아이콘
?>
</li>
<div id="bo_v_share">
<?php include_once(G5_SNS_PATH."/view.sns.skin.php"); ?>
<ul class="copy_urls">
<li>
<a href="javascript:void(0);" id="data-copy">
<img src="<?php echo $board_skin_url ?>/img/ico_sha.png" alt="공유링크 복사" width="32">
</a>
</li>
<?php
$currents_url = G5_URL.$_SERVER['REQUEST_URI'];
?>
<input type="hidden" id="data-area" class="data-area" value="<?php echo $currents_url ?>">
<script>
$(document).ready(function() {
$('#data-copy').click(function() {
$('#data-area').attr('type', 'text'); // 화면에서 hidden 처리한 input box type을 text로 일시 변환
$('#data-area').select(); // input에 담긴 데이터를 선택
var copy = document.execCommand('copy'); // clipboard에 데이터 복사
$('#data-area').attr('type', 'hidden'); // input box를 다시 hidden 처리
if (copy) {
alert("공유 링크가 복사 되었습니다."); // 사용자 알림
}
});
});
</script>
</ul>
</div>
</div>
<div class="gap_btm_bd">
<ul class="font-B view_info_tit"><?php echo get_text($view['wr_subject']);?></ul>
<?php if(isset($view['wr_6']) && $view['wr_6']) { ?>
<ul class="view_info_sub"><?php echo isset($view['wr_6']) ? nl2br($view['wr_6']) : ''; ?></ul>
<?php } ?>
<?php if(isset($wr_1[0]) && $wr_1[0] || isset($wr_1[1]) && $wr_1[1]) { ?>
<ul class="font-B view_info_pri1 main_color">
<?php if(isset($wr_1[0]) && $wr_1[0]) { ?>
<li><?php echo isset($wr_1[0]) ? $wr_1[0] : ''; ?></li>
<?php } ?>
<?php if(isset($wr_1[0]) && $wr_1[0]) { ?>
<li class="view_info_pri1 labels main_color font-B"><?php echo isset($wr_1[1]) ? $wr_1[1] : ''; ?></li>
<?php } ?>
</ul>
<?php } ?>
</div>
<?php if(isset($wr_3[0]) && $wr_3[0] || isset($wr_3[2]) && $wr_3[2] || isset($wr_3[4]) && $wr_3[4] || isset($wr_3[6]) && $wr_3[6] || isset($wr_3[8]) && $wr_3[8]) { ?>
<div class="gap_btm_bd">
<?php if(isset($wr_3[0]) && $wr_3[0]) { ?>
<ul class="opt_box_wrap">
<li class="font-B"><?php echo isset($wr_3[0]) ? $wr_3[0] : ''; ?></li><li><?php echo isset($wr_3[1]) ? $wr_3[1] : ''; ?></li>
</ul>
<?php } ?>
<?php if(isset($wr_3[2]) && $wr_3[2]) { ?>
<ul class="opt_box_wrap">
<li class="font-B"><?php echo isset($wr_3[2]) ? $wr_3[2] : ''; ?></li><li><?php echo isset($wr_3[3]) ? $wr_3[3] : ''; ?></li>
</ul>
<?php } ?>
<?php if(isset($wr_3[4]) && $wr_3[4]) { ?>
<ul class="opt_box_wrap">
<li class="font-B"><?php echo isset($wr_3[4]) ? $wr_3[4] : ''; ?></li><li><?php echo isset($wr_3[5]) ? $wr_3[5] : ''; ?></li>
</ul>
<?php } ?>
<?php if(isset($wr_3[6]) && $wr_3[6]) { ?>
<ul class="opt_box_wrap">
<li class="font-B"><?php echo isset($wr_3[6]) ? $wr_3[6] : ''; ?></li><li><?php echo isset($wr_3[7]) ? $wr_3[7] : ''; ?></li>
</ul>
<?php } ?>
<?php if(isset($wr_3[8]) && $wr_3[8]) { ?>
<ul class="opt_box_wrap">
<li class="font-B"><?php echo isset($wr_3[8]) ? $wr_3[8] : ''; ?></li><li><?php echo isset($wr_3[9]) ? $wr_3[9] : ''; ?></li>
</ul>
<?php } ?>
</div>
<?php } ?>
<?php
if(isset($board['bo_use_signature']) && $board['bo_use_signature']) {
// 서명 출력
include_once(G5_PATH.'/rb/rb.mod/signature/signature.skin.php');
}
?>
<!-- 첨부파일 / 링크 { -->
<?php
$cnt = 0;
if ($view['file']['count']) {
for ($i=0; $i<count($view['file']); $i++) {
if (isset($view['file'][$i]['source']) && $view['file'][$i]['source'] && !$view['file'][$i]['view'])
//if (isset($view['file'][$i]['source']) && $view['file'][$i]['source'])
$cnt++;
}
}
?>
<?php if($cnt) { ?>
<div class="down_link_wrap">
<h2 id="container_title" class="none_btm_pd font-R">다운로드</h2>
<div class="rb_bbs_file">
<?php
// 가변 파일
for ($i=0; $i<count($view['file']); $i++) {
if (isset($view['file'][$i]['source']) && $view['file'][$i]['source'] && !$view['file'][$i]['view']) {
//if (isset($view['file'][$i]['source']) && $view['file'][$i]['source']) {
?>
<ul class="rb_bbs_file_for view_file_download" onclick="location.href='<?php echo $view['file'][$i]['href']; ?>';">
<i><img src="<?php echo $board_skin_url ?>/img/ico_file.svg"></i>
<a href="javascript:void(0);"><?php echo $view['file'][$i]['source'] ?></a> <?php echo number_format($view['file'][$i]['download']); ?>회
<?php if($view['file'][$i]['content']) { ?>
<li class="file_contents"><?php echo $view['file'][$i]['content'] ?></li>
<?php } ?>
</ul>
<?php
}
}
?>
</div>
</div>
<?php } ?>
<?php if(isset($view['link']) && array_filter($view['link'])) { ?>
<div class="down_link_wrap">
<h2 id="container_title" class="none_btm_pd font-R">링크</h2>
<div class="rb_bbs_file">
<?php
// 링크
$cnt = 0;
for ($i=1; $i<=count($view['link']); $i++) {
if ($view['link'][$i]) {
$cnt++;
$link = cut_str($view['link'][$i], 70);
?>
<ul class="rb_bbs_file_for" onclick="window.open('<?php echo $view['link_href'][$i]; ?>');">
<i><img src="<?php echo $board_skin_url ?>/img/ico_link.svg"></i>
<a href="javascript:void(0);"><?php echo $link ?></a> <?php echo $view['link_hit'][$i] ?>회
</ul>
<?php
}
}
?>
</div>
</div>
<?php } ?>
</ul>
<ul class="bbs_sv_wrap_ul1">
<div>
<?php
$v_img_count = count($view['file']);
if ($v_img_count > 0) {
echo "<div class=\"swiper-container swiper-container-pf\"><ul class=\"swiper-wrapper swiper-wrapper-pf\">\n";
for ($i = 0; $i < $v_img_count; $i++) {
// Check if $view['file'][$i]['view'] exists and is not empty
if (isset($view['file'][$i]['view']) && $view['file'][$i]['view']) {
echo "<li class=\"swiper-slide swiper-slide-pf\">" . get_view_thumbnail($view['file'][$i]['view']) . "</li>";
}
}
echo "</ul><div class=\"swiper-pagination swiper-pagination-pf\"></div></div>\n";
?>
<script>
var swiper = new Swiper('.swiper-container-pf', {
slidesPerView: 1, //가로갯수
spaceBetween: 0, // 간격
observer: true, //리셋
observeParents: true, //리셋
touchRatio: 1, // 드래그 가능여부
autoHeight: true,
autoplay: { //오토플레이
delay: 3000, //시간
disableOnInteraction: false, //마우스온여부
},
pagination: {
el: '.swiper-pagination-pf',
dynamicBullets: true,
clickable: true,
}
});
</script>
<?php
}
?>
</div>
<?php if(isset($view['wr_5']) && $view['wr_5']) { ?>
<div class="at_cont">
<?php echo isset($view['wr_5']) ? nl2br($view['wr_5']) : ''; ?>
</div>
<?php } ?>
<!-- 본문 내용 시작 { -->
<div id="bo_v_con">
<?php if(isset($view['wr_7']) && $view['wr_7']) { ?>
<?php
$input = $view['wr_7']; // 동영상 ID 자체 혹은 URL
$videoId = getYouTubeVideoId($input);
?>
<div class="youtube_wrap">
<div class="youtube">
<iframe src="https://www.youtube.com/embed/<?php echo $videoId; ?>" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
</div>
<?php if (strlen($view['wr_7']) == 11) { // 아이디만 입력했을 경우 ?>
<a href="https://youtu.be/<?php echo $view['wr_1']; ?>" class="urls font-B" target="_blank">https://youtu.be/<span class="main_color"><?php echo $view['wr_1']; ?></span></a>
<?php } else { ?>
<a href="<?php echo $view['wr_7']; ?>" class="urls font-B" target="_blank"><?php echo $view['wr_7']; ?></a>
<?php } ?>
</div>
<?php } ?>
<?php $original_content = isset($view['content']) ? $view['content'] : ''; ?>
<?php echo get_view_thumbnail($view['content']); ?>
</div>
<div>
<ul class="btm_btns">
<dd class="btm_btns_right">
<?php if ($list_href) { ?>
<a href="<?php echo $list_href ?>" type="button" class="fl_btns font-B">목록</a>
<?php } ?>
<?php if ($write_href) { ?>
<button type="button" name="btn_submit" class="fl_btns main_color_bg" onclick="location.href='<?php echo $write_href ?>';">
<img src="<?php echo $board_skin_url ?>/img/ico_write.svg">
<span class="font-R">등록</span>
</button>
<?php } ?>
<div class="cb"></div>
</dd>
<div id="bo_v_btns">
<?php ob_start(); ?>
<?php if($update_href || $delete_href || $copy_href || $move_href || $search_href) { ?>
<?php if ($reply_href) { ?>
<!-- // 답글을 사용하지 않음
<a href="<?php echo $reply_href ?>" class="fl_btns">
<span class="font-B">답글</span>
</a>
-->
<?php } ?>
<?php if ($update_href) { ?>
<a href="<?php echo $update_href ?>" class="fl_btns">
<span class="font-B">수정</span>
</a>
<?php } ?>
<?php if ($copy_href) { ?>
<a href="<?php echo $copy_href ?>" onclick="board_move(this.href); return false;" class="fl_btns">
<span class="font-B">복사</span>
</a>
<?php } ?>
<?php if ($move_href) { ?>
<a href="<?php echo $move_href ?>" onclick="board_move(this.href); return false;" class="fl_btns">
<span class="font-B">이동</span>
</a>
<?php } ?>
<?php if ($delete_href) { ?>
<a href="<?php echo $delete_href ?>" onclick="del(this.href); return false;" class="fl_btns">
<span class="font-B">삭제</span>
</a>
<?php } ?>
<?php } ?>
<?php
$link_buttons = ob_get_contents();
ob_end_flush();
?>
</div>
<dd class="cb"></dd>
</ul>
<!-- 배너 {
<ul class="bbs_bn_box">
배너를 추가해보세요.
</ul>
} -->
</div>
</ul>
<div class="cb"></div>
</div>
</div>
<script>
<?php if ($board['bo_download_point'] < 0) { ?>
$(function() {
$("a.view_file_download").click(function() {
if(!g5_is_member) {
alert("다운로드 권한이 없습니다.\n회원이시라면 로그인 후 이용해 보십시오.");
return false;
}
var msg = "파일을 다운로드 하시면 포인트가 차감(<?php echo number_format($board['bo_download_point']) ?>점)됩니다.\n\n포인트는 게시물당 한번만 차감되며 다음에 다시 다운로드 하셔도 중복하여 차감하지 않습니다.\n\n그래도 다운로드 하시겠습니까?";
if(confirm(msg)) {
var href = $(this).attr("href")+"&js=on";
$(this).attr("href", href);
return true;
} else {
return false;
}
});
});
<?php } ?>
function board_move(href)
{
window.open(href, "boardmove", "left=50, top=50, width=500, height=550, scrollbars=1");
}
</script>
<script>
$(function() {
$("a.view_image").click(function() {
window.open(this.href, "large_image", "location=yes,links=no,toolbar=no,top=10,left=10,width=10,height=10,resizable=yes,scrollbars=no,status=no");
return false;
});
// 추천, 비추천
$("#good_button, #nogood_button").click(function() {
var $tx;
if(this.id == "good_button")
$tx = $("#bo_v_act_good");
else
$tx = $("#bo_v_act_nogood");
excute_good(this.href, $(this), $tx);
return false;
});
// 이미지 리사이즈
$("#bo_v_atc").viewimageresize();
});
function excute_good(href, $el, $tx)
{
$.post(
href,
{ js: "on" },
function(data) {
if(data.error) {
alert(data.error);
return false;
}
if(data.count) {
$el.find("strong").text(number_format(String(data.count)));
if($tx.attr("id").search("nogood") > -1) {
$tx.text("이 글을 비추천하셨습니다.");
$tx.fadeIn(200).delay(2500).fadeOut(200);
} else {
$tx.text("이 글을 추천하셨습니다.");
$tx.fadeIn(200).delay(2500).fadeOut(200);
}
}
}, "json"
);
}
</script>
<!-- } 게시글 읽기 끝 -->