first commit 2

This commit is contained in:
hmw1001
2026-06-11 18:47:38 +09:00
parent c768729ce6
commit 6f534e33a6
11095 changed files with 1595758 additions and 0 deletions
+168
View File
@@ -0,0 +1,168 @@
<?php
if (!defined("_GNUBOARD_")) exit; // 개별 페이지 접근 불가
include_once(G5_LIB_PATH.'/thumbnail.lib.php');
// 이 페이지에서도 스킨의 CSS 파일을 불러옵니다.
add_stylesheet('<link rel="stylesheet" href="' . $board_skin_url . '/style.css?ver=' . time() . '">', 0);
?>
<section id="bo_v">
<h2 id="bo_v_title">
<?php if ($category_name) { ?><span class="item-category"><?php echo $view['ca_name']; ?></span><?php } ?>
<?php echo cut_str(get_text($view['wr_subject']), 70); // 글제목 출력 ?>
</h2>
<div id="bo_v_info">
<!-- 예약 노출 여부 표시 -->
<label class="frm_label"><?php echo $board['bo_1_subj'] ?></label>
<div class="option_group">
<label>
<input type="radio" name="wr_1_view" value="IMMEDIATE"
<?php echo ($view['wr_1'] !== 'RESERVED') ? 'checked' : ''; ?>
disabled> 즉시 노출
</label>
<label>
<input type="radio" name="wr_1_view" value="RESERVED"
<?php echo ($view['wr_1'] === 'RESERVED') ? 'checked' : ''; ?>
disabled> 예약 노출
</label>
</div>
<?php if ($view['wr_1'] === 'RESERVED') { ?>
<div id="reservation_fields" class="write_div">
<div class="date_picker_group">
<div class="date_item">
<label class="frm_label"><?php echo $board['bo_2_subj'] ?></label>
<div class="frm_static"><?php echo $view['wr_2']; ?></div>
</div>
<span class="date_divider">~</span>
<div class="date_item">
<label class="frm_label"><?php echo $board['bo_3_subj'] ?></label>
<div class="frm_static"><?php echo $view['wr_3']; ?></div>
</div>
</div>
</div>
<?php } ?>
</div>
<div id="bo_v_atc">
<!-- --><?php
// // 📌 [핵심] 첫번째 첨부파일을 메인 비주얼로 상단에 크게 표시합니다.
// if (isset($view['file'][0]['file']) && $view['file'][0]['file']) {
// $file = $view['file'][0];
// $file_ext = strtolower(pathinfo($file['file'], PATHINFO_EXTENSION));
// $is_video = in_array($file_ext, ['mp4', 'mov', 'webm']);
// $file_url = $file['path'].'/'.$file['file'];
//
// echo "<div id=\"bo_v_main_visual\">\n";
// if ($is_video) {
// // 동영상 파일일 경우 video 태그로 출력
// echo '<video src="'.$file_url.'" controls preload="metadata" playsinline></video>';
// } else {
// // 이미지 파일일 경우 img 태그로 출력
// echo '<img src="'.$file_url.'" alt="'.get_text($file['source']).'">';
// }
// echo "</div>\n";
// }
// ?>
<!-- 본문 내용 -->
<div class="write_div">
<label for="wr_content" class="frm_label">상세 내용</label>
<div class="view_content">
<?php echo conv_content($view['wr_content'], 1); ?>
</div>
</div>
<!-- <div id="bo_v_con">-->
<!-- --><?php //echo get_view_thumbnail($view['content']); ?>
<!-- </div>-->
<?php
// 📌 [핵심] 두번째 첨부파일부터는 하단에 갤러리 형태로 표시합니다.
if (isset($view['file']) && count($view['file']) > 0) {
echo "<div id=\"bo_v_gallery\">\n";
echo "<h3>첨부 파일</h3>";
echo "<div class='gallery_grid'>";
// 첫 번째 파일(메인 비주얼)을 제외하고 루프를 시작합니다.
for ($i = 0; $i < $view['file']['count']; $i++) {
$file = $view['file'][$i];
if (empty($file['file'])) continue;
$file_ext = strtolower(pathinfo($file['file'], PATHINFO_EXTENSION));
$is_image = in_array($file_ext, ['gif', 'jpg', 'jpeg', 'png', 'webp']);
$file_url = $file['path'].'/'.$file['file'];
if ($is_image) {
// 썸네일 생성
$source_path = G5_DATA_PATH.'/file/'.$bo_table;
$thumb = thumbnail($file['file'], $source_path, $source_path, 200, 200, false, true);
$thumb_url = G5_DATA_URL.'/file/'.$bo_table.'/'.$thumb;
echo '<a href="'.$file_url.'" class="view_image_link">';
echo '<img src="'.$thumb_url.'" alt="'.get_text($file['source']).'">';
echo '</a>';
} else {
// 이미지가 아닌 파일은 다운로드 링크 제공
echo '<div class="gallery_item_other">';
echo '<a href="'.$file['href'].'" class="view_file_link">';
echo '<i class="fa fa-download"></i> '.get_text($file['source']);
echo '</a>';
echo '</div>';
}
}
echo "</div>"; // .gallery_grid
echo "</div>\n"; // #bo_v_gallery
}
?>
</div>
<div id="bo_v_bot">
<div class="btn_area">
<?php if ($update_href) { ?><a href="<?php echo $update_href ?>" class="btn_b02 btn">수정</a><?php } ?>
<?php if ($delete_href) { ?><a href="<?php echo $delete_href ?>" onclick="del(this.href); return false;" class="btn_b02 btn">삭제</a><?php } ?>
<?php if ($write_href) { ?><a href="<?php echo $write_href ?>" class="btn_b02 btn">글쓰기</a><?php } ?>
<a href="<?php echo $list_href ?>" class="btn_b01 btn">목록</a>
</div>
</div>
</section>
<!-- 이미지 팝업(라이트박스) HTML과 스크립트 -->
<div id="image_lightbox" class="image_lightbox">
<span class="lightbox_close">&times;</span>
<img class="lightbox_content" id="lightbox_image">
</div>
<script>
document.addEventListener('DOMContentLoaded', function() {
const lightbox = document.getElementById('image_lightbox');
const lightboxImage = document.getElementById('lightbox_image');
const imageLinks = document.querySelectorAll('.view_image_link');
const closeBtn = document.querySelector('.lightbox_close');
if (!lightbox || !imageLinks.length) return;
imageLinks.forEach(link => {
link.addEventListener('click', function(e) {
e.preventDefault();
lightboxImage.src = this.href;
lightbox.style.display = 'flex';
});
});
function closeModal() {
lightbox.style.display = 'none';
lightboxImage.src = '';
}
if(closeBtn) {
closeBtn.addEventListener('click', closeModal);
}
lightbox.addEventListener('click', function(e) {
if (e.target === lightbox) {
closeModal();
}
});
document.addEventListener('keydown', function(e) {
if (e.key === 'Escape' && lightbox.style.display === 'flex') {
closeModal();
}
});
});
</script>