OLDBOY/skin/board/oldboy_setting/view.skin.php
<?php
if (!defined('_GNUBOARD_')) exit;

add_stylesheet('<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css">', 0);
include_once(G5_LIB_PATH.'/thumbnail.lib.php');

// 스타일시트 유지
add_stylesheet('<link rel="stylesheet" href="'.$board_skin_url.'/style.view.css">', 0);

$view_content = get_view_thumbnail($view['content']);
$view_content_plain = trim(preg_replace('/(&nbsp;|\s|<br\s*\/?>)+/iu', '', strip_tags($view_content)));
$has_view_content = ($view_content_plain !== '');
$has_attachment_data = false;

if (!empty($view['link']) && is_array($view['link'])) {
    for ($i=1; $i<=count($view['link']); $i++) {
        if (!empty($view['link'][$i])) {
            $has_attachment_data = true;
            break;
        }
    }
}

if (!$has_attachment_data && !empty($view['file']['count'])) {
    for ($i=0; $i<count($view['file']); $i++) {
        if (isset($view['file'][$i]['source']) && !isset($view['file'][$i]['view'])) {
            $has_attachment_data = true;
            break;
        }
    }
}

$has_top = !empty($view['x2_top']);
$has_label = !empty($view['x2_label']);
$has_core = !empty($view['x2_core']);

$memo_text = isset($view['x2_memo']) ? trim($view['x2_memo']) : '';
$memo_clean = !empty($view['x2_memo_clean']);
$show_memo_block = ($memo_text !== '' || $memo_clean);

// 추가 항목 수량 계산 (wr_1_subj ~ wr_20_subj 또는 wr_1 ~ wr_20 에 값이 있는 경우)
$ex_field_count = 0;
for ($i=1; $i<=20; $i++) {
    if (trim($view['wr_'.$i.'_subj']) || trim($view['wr_'.$i])) {
        $ex_field_count++;
    }
}
?>

<article id="VIEW">
    <div class="Board-Info-Header">
        <div class="header-left">
            <div class="header-title">
                <i class="fa-solid fa-microchip"></i><?php echo $board['bo_subject']; ?>
            </div>
        </div>
        <div class="Btns-Right">
            <button class="head-btn" onclick="location.href='<?php echo $list_href; ?>'"><i class="fa-solid fa-list"></i> 목록</button>
            <?php if ($update_href) { ?><button class="head-btn" onclick="location.href='<?php echo $update_href; ?>'"><i class="fa-solid fa-pen-to-square"></i> 수정</button><?php } ?>
            <?php if ($write_href) { ?><button onclick="location.href='<?php echo $write_href; ?>'" class="Write-Btn"><i class="fa-solid fa-pen"></i> 글쓰기</button><?php } ?>
        </div>
    </div>

    <!-- 데이터 박스 대시보드 영역 -->
    <section class="Data-Dashboard-Section">
        <div class="info-box subject-box" style="margin-right:0;">
            <div class="value"><?php echo get_text($view['wr_subject']); ?></div>
            <div class="subject-time" style="display:flex; align-items:center; justify-content:space-between; gap:10px; flex-wrap:wrap;">
                <span><i class="fa-regular fa-clock"></i> 타임스탬프: <?php echo date("Y-m-d H:i:s", strtotime($view['wr_datetime'])); ?></span>
                <?php if ($has_top || $has_label || $has_core) { ?>
                <span style="display:inline-flex; align-items:center; gap:8px;">
                    <?php if ($has_top) { ?><i class="fa-solid fa-arrow-up-wide-short" title="우선" style="color:#f59e0b;"></i><?php } ?>
                    <?php if ($has_label) { ?><i class="fa-solid fa-tag" title="라벨" style="color:#38bdf8;"></i><?php } ?>
                    <?php if ($has_core) { ?><i class="fa-solid fa-gem" title="핵심" style="color:#10b981;"></i><?php } ?>
                </span>
                <?php } ?>
            </div>
        </div>

        <div class="info-box">
            <span class="label"><i class="fa-solid fa-layer-group"></i> 대분류</span>
            <span class="value"><?php echo ($view['ca_name']) ? $view['ca_name'] : '없음'; ?></span>
        </div>

        <div class="info-box">
            <span class="label"><i class="fa-solid fa-cart-shopping"></i> 중분류</span>
            <span class="value"><?php echo ($view['as_mid_cat']) ? $view['as_mid_cat'] : '-'; ?></span>
        </div>

        <div class="info-box">
            <span class="label"><i class="fa-solid fa-hourglass-half"></i> 소분류</span>
            <span class="value"><?php echo ($view['as_sub_cat']) ? $view['as_sub_cat'] : '-'; ?></span>
        </div>

        <div class="info-box" style="margin-right:0;">
            <span class="label"><i class="fa-solid fa-coins"></i> 수량</span>
            <span class="value"><?php echo $ex_field_count; ?></span>
        </div>
    </section>

    <section class="wr_val">
        <?php 
        for ($i=1; $i<=20; $i++) {
            $subj = trim($view['wr_'.$i.'_subj']);
            $val = trim($view['wr_'.$i]);
            if ($subj || $val) {
        ?>
            <div class="wr_list">
                <label class="wr_title"><i class="fa-solid fa-hashtag"></i>&nbsp;&nbsp;&nbsp;<?php echo 'wr_'.$i.'_subj'; ?></label>
                <label><span><i class="fa-solid fa-circle-info"></i>&nbsp;&nbsp;&nbsp;<?php echo $subj ? get_text($subj) : '항목 '.$i; ?></span></label>
                <label class="wr_title wr_title_val"><i class="fa-solid fa-hashtag"></i>&nbsp;&nbsp;&nbsp;<?php echo 'wr_'.$i; ?></label>
                <label><span class="val_box"><?php echo $val ? get_text($val) : '-'; ?></span></label>
            </div>
        <?php 
            }
        } 
        ?>
    </section>

    <?php if ($has_view_content) { ?>
    <div class="View-Content">
        <div class="View-Body-Inner">
            <div id="bo_v_atc">
                <div id="bo_v_img">
                    <?php
                    if ($view['file']['count']) {
                        for ($i=0; $i<count($view['file']); $i++) {
                            if (isset($view['file'][$i]['view']) && $view['file'][$i]['view']) {
                                echo get_view_thumbnail($view['file'][$i]['view']);
                            }
                        }
                    }
                    ?>
                </div>
                <div id="bo_v_con">
                    <?php echo $view_content; ?>
                </div>
            </div>
        </div>
    </div>
    <?php } ?>

    <?php if ($show_memo_block) { ?>
    <div class="View-Content memo-content-wrap" style="margin-top:0;">
        <div class="View-Body-Inner">
            <div id="bo_v_memo">
                <div class="label memo-title"><i class="fa-solid fa-note-sticky"></i> 메모</div>
                <?php if ($memo_clean) { ?>
                    <div style="font-size:0.9rem; color:#f87171;"><i class="fa-solid fa-trash-can"></i> 메모가 삭제되었습니다.</div>
                    <?php if ($memo_text !== '') { ?>
                    <div style="margin-top:8px; font-size:1.02rem; line-height:1.8; color:#94a3b8; white-space:pre-wrap; word-break:break-word; text-decoration:line-through;"><?php echo get_text($memo_text, 0); ?></div>
                    <?php } ?>
                <?php } else if ($memo_text !== '') { ?>
                    <div style="font-size:1.02rem; line-height:1.8; color:#e2e8f0; white-space:pre-wrap; word-break:break-word;"><?php echo get_text($memo_text, 0); ?></div>
                <?php } ?>
            </div>
        </div>
    </div>
    <?php } ?>

    <?php if ($has_attachment_data) { ?>
    <div class="View-Attached-Data">
        <?php
        for ($i=1; $i<=count($view['link']); $i++) {
            if ($view['link'][$i]) {
                $link = cut_str($view['link'][$i], 70);
        ?>
            <a href="<?php echo $view['link_href'][$i] ?>" target="_blank" class="data-item">
                <div class="data-info">
                    <i class="fa-solid fa-link"></i>
                    <span class="data-name"><?php echo $link ?></span>
                </div>
                <span class="data-meta">링크 연결 <i class="fa-solid fa-arrow-up-right-from-square data-meta-ico"></i></span>
            </a>
        <?php
            }
        }
        ?>

        <?php
        if ($view['file']['count']) {
            for ($i=0; $i<count($view['file']); $i++) {
                if (isset($view['file'][$i]['source']) && !isset($view['file'][$i]['view'])) {
        ?>
            <a href="<?php echo $view['file'][$i]['href']; ?>" class="data-item">
                <div class="data-info">
                    <i class="fa-solid fa-download"></i>
                    <div>
                        <span class="data-name"><?php echo $view['file'][$i]['source']; ?></span>
                        <?php if($view['file'][$i]['bf_content']) { ?>
                        <span class="file-desc"><?php echo $view['file'][$i]['bf_content']; ?></span>
                        <?php } ?>
                    </div>
                </div>
                <div class="data-meta">
                    <span class="data-size"><?php echo $view['file'][$i]['size']; ?></span>
                    <span>다운로드: <?php echo $view['file'][$i]['download']; ?></span>
                </div>
            </a>
        <?php
                }
            }
        }
        ?>
    </div>
    <?php } ?>

    <!-- x2_tag 출력 영역 -->
    <?php if ($view['x2_tag']) { ?>
    <div class="Custom-Tag-Area">
        <?php
        $tags = explode(',', $view['x2_tag']); 
        foreach($tags as $tag_val) {
            $tag_val = trim($tag_val);
            if($tag_val) {
                echo '<a href="'.G5_BBS_URL.'/board.php?bo_table='.$bo_table.'&amp;stx='.urlencode($tag_val).'&amp;sfl=wr_subject||wr_content" class="x2-tag-item">#'.$tag_val.'</a>';
            }
        }
        ?>
    </div>
    <?php } ?>

    <nav class="Post-Navigation">
        <?php if ($prev_href) { ?>
            <a href="<?php echo $prev_href; ?>" class="nav-prev">
                <span class="nav-label"><i class="fa-solid fa-chevron-left"></i> 이전글</span>
                <p class="nav-subject"><?php echo $prev_wr_subject; ?></p>
            </a>
        <?php } else { ?>
            <div class="nav-empty nav-prev">첫 번째 게시물입니다.</div>
        <?php } ?>

        <?php if ($next_href) { ?>
            <a href="<?php echo $next_href; ?>" class="nav-next">
                <span class="nav-label">다음글 <i class="fa-solid fa-chevron-right"></i></span>
                <p class="nav-subject"><?php echo $next_wr_subject; ?></p>
            </a>
        <?php } else { ?>
            <div class="nav-empty nav-next">마지막 게시물입니다.</div>
        <?php } ?>
    </nav>

    <footer class="View-Bottom-Control">
        <div class="Admin-Control">
            <?php if ($delete_href) { ?><button class="admin-btn" onclick="if(confirm('정말 삭제하시겠습니까?')) location.href='<?php echo $delete_href; ?>';">삭제</button><?php } ?>
            <?php if ($copy_href) { ?><button class="admin-btn" onclick="window.open('<?php echo $copy_href; ?>', 'copy_win', 'width=600,height=500');">복사</button><?php } ?>
            <?php if ($move_href) { ?><button class="admin-btn" onclick="window.open('<?php echo $move_href; ?>', 'move_win', 'width=600,height=500');">이동</button><?php } ?>
        </div>
        <button onclick="location.href='<?php echo $list_href; ?>'" class="List-Btn-Footer">
            <i class="fa-solid fa-list-ul"></i> 목록으로 돌아가기
        </button>
    </footer>
</article>

<script src="<?php echo G5_JS_URL; ?>/viewimageresize.js"></script>
<?php include_once($board_skin_path.'/view/view.script.php'); ?>