OLDBOY/skin/board/daily/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']);
$x2_txt_raw = isset($view['x2_txt']) ? $view['x2_txt'] : '';
$code_filename = $board['bo_subject'].'-'.date("Y-m-d", strtotime($view['wr_datetime'])).'.txt';
$tag_items = array_filter(array_map('trim', explode(',', isset($view['wr_1']) ? $view['wr_1'] : '')));

$line_items = array();
if (!empty($view['x2_line'])) {
    $line_tokens = explode('@', $view['x2_line']);
    foreach ($line_tokens as $line_token) {
        if (trim($line_token) === '') continue;
        $line_parts = explode('^', $line_token, 2);
        $line_content = isset($line_parts[0]) ? trim($line_parts[0]) : '';
        if ($line_content === '') continue;
        $line_time = isset($line_parts[1]) && trim($line_parts[1]) !== '' ? trim($line_parts[1]) : date('Y-m-d H:i:s');
        $line_items[] = array(
            'content' => $line_content,
            'time' => $line_time
        );
    }
}

$memo_text = isset($view['x2_memo']) ? trim($view['x2_memo']) : '';
$memo_clean = isset($view['x2_memo_clean']) && $view['x2_memo_clean'] === '1';

$x2_daily_text = isset($view['x2_daily']) ? trim($view['x2_daily']) : '';
$x2_key_text = isset($view['x2_key']) ? trim($view['x2_key']) : '';
$x2_ess_text = isset($view['x2_ess']) ? trim($view['x2_ess']) : (isset($view['x2_Ess']) ? trim($view['x2_Ess']) : '');

$explode_pipe_values = function($raw_text) {
    $result = array();
    if (trim($raw_text) === '') return $result;
    $tokens = explode('|', $raw_text);
    foreach ($tokens as $token) {
        $token = trim($token);
        if ($token === '') continue;
        $result[] = $token;
    }
    return $result;
};

$x2_routine_values = $explode_pipe_values(isset($view['x2_routine']) ? $view['x2_routine'] : '');
$x2_health_values = $explode_pipe_values(isset($view['x2_health']) ? $view['x2_health'] : '');
$x2_way_values = $explode_pipe_values(isset($view['x2_way']) ? $view['x2_way'] : '');
$x2_point_values = $explode_pipe_values(isset($view['x2_point']) ? $view['x2_point'] : '');
$x2_healing_values = $explode_pipe_values(isset($view['x2_healing']) ? $view['x2_healing'] : '');

$render_haran_list = function($values, $icon_class) {
    if (empty($values)) {
        return '';
    }
    $items = array();
    foreach ($values as $value) {
        $items[] = '<li class="haran-list-item"><i class="fa-solid ' . $icon_class . '"></i><span>' . get_text($value) . '</span></li>';
    }
    return '<ul class="haran-list">' . implode('', $items) . '</ul>';
};

$week_days = array('월', '화', '수', '목', '금', '토', '일');
$x2_week_rows = array_fill(0, 7, '');
$week_has_any_value = false;
$x2_week_raw_rows = array();
if (!empty($view['x2_week'])) {
    $x2_week_raw_rows = explode('^', $view['x2_week']);
}
for ($week_idx = 0; $week_idx < 7; $week_idx++) {
    $week_row_value = isset($x2_week_raw_rows[$week_idx]) ? trim($x2_week_raw_rows[$week_idx]) : '';
    $x2_week_rows[$week_idx] = $week_row_value;
    if ($week_row_value !== '') {
        $week_has_any_value = true;
    }
}

$has_meta_section = (!empty($view['x2_ca4']) || !empty($view['x2_top']) || !empty($view['x2_label']) || !empty($view['x2_ca2']) || !empty($view['x2_ca3']));

 // 이전 데이터
$board_pre = sql_fetch(" select * from $write_table where wr_id = $next[wr_id] ");
?>

<article id="VIEW">

    <div class="Board-Info-Header">
        <div>
            <span class="terminal-label">CORE TERMINAL</span>
            <div class="board-title">
                <i class="fa-solid fa-database board-title-icon"></i><?php echo $board['bo_subject']; ?>
            </div>
        </div>
        <div class="Btns-Right">
            <button onclick="location.href='<?php echo $list_href; ?>'"><i class="fa-solid fa-list"></i> LIST</button>
            <?php if ($update_href) { ?><button onclick="location.href='<?php echo $update_href; ?>'"><i class="fa-solid fa-pen-to-square"></i> EDIT</button><?php } ?>
            <?php if ($write_href) { ?><button onclick="location.href='<?php echo $write_href; ?>'" class="Write-Btn"><i class="fa-solid fa-pen"></i> WRITE</button><?php } ?>
        </div>
    </div>

    <header class="Header-Main-Section">
        <h1><?php echo get_text($view['wr_subject']); ?></h1>
        <div class="wr-datetime">
            <i class="fa-regular fa-clock datetime-icon"></i>
            DATE: <?php echo date("Y-m-d H:i", strtotime($view['wr_datetime'])); ?>
        </div>
        <?php if (!empty($view['x2_project'])) { ?>
        <div class="wr-project">PROJECT: <?php echo get_text($view['x2_project']); ?></div>
        <?php } ?>
    </header>

    <?php if ($board_pre['x2_extra1']) { ?>
        <section class="to_day">
            <i class="fa fa-clock-o" aria-hidden="true"></i> 오늘 할 일 : <?php echo $board_pre['x2_extra1']; ?>                 
        </section>
    <?php } ?>
                         
    <?php if ($has_meta_section) { ?>
    <section class="Extra-Category-Area meta-section">
        <div class="section-title-row"><i class="fa-solid fa-table-list"></i> 분류 정보</div>
        <div class="meta-item-grid">
            <?php if($view['x2_ca4']) { ?>
            <a href="<?php echo G5_BBS_URL; ?>/board.php?bo_table=<?php echo $bo_table; ?>&s_ca4=<?php echo urlencode($view['x2_ca4']); ?>" class="meta-item ca-link status-tag">
                <span class="item-label">상태</span>
                <span class="item-value"><?php echo get_text($view['x2_ca4']); ?></span>
            </a>
            <?php } ?>

            <?php if($view['x2_top']) { ?>
            <span class="meta-item top-badge">
                <span class="item-label">우선</span>
                <span class="item-value"><i class="fa-solid fa-thumbtack"></i> TOP</span>
            </span>
            <?php } ?>

            <?php if($view['x2_label']) { ?>
            <a href="<?php echo G5_BBS_URL; ?>/board.php?bo_table=<?php echo $bo_table; ?>&is_label=y" class="meta-item ca-link label-badge" title="LABEL">
                <span class="item-label">라벨</span>
                <span class="item-value"><i class="fa-solid fa-star"></i> LABEL</span>
            </a>
            <?php } ?>

            <?php if($view['x2_ca2']) { ?>
            <a href="<?php echo G5_BBS_URL; ?>/board.php?bo_table=<?php echo $bo_table; ?>&s_ca2=<?php echo urlencode($view['x2_ca2']); ?>" class="meta-item ca-link">
                <span class="item-label">종류</span>
                <span class="item-value"><?php echo get_text($view['x2_ca2']); ?></span>
            </a>
            <?php } ?>

            <?php if($view['x2_ca3']) { ?>
            <a href="<?php echo G5_BBS_URL; ?>/board.php?bo_table=<?php echo $bo_table; ?>&s_ca2=<?php echo urlencode($view['x2_ca2']); ?>&s_ca3=<?php echo urlencode($view['x2_ca3']); ?>" class="meta-item ca-link">
                <span class="item-label">형태</span>
                <span class="item-value"><?php echo get_text($view['x2_ca3']); ?></span>
            </a>
            <?php } ?>
        </div>
    </section>
    <?php } ?>

    <?php if ($x2_daily_text !== '' || $x2_key_text !== '' || $x2_ess_text !== '') { ?>
    <section class="View-Option-Area option-primary-area">
        <div class="section-title-row"><i class="fa-solid fa-circle-info"></i> 핵심 항목</div>
        <div class="option-item-grid">
        <?php if ($x2_daily_text !== '') { ?>
        <div class="ca-tag-item option-chip chip-daily">
            <i class="fa-solid fa-book-open"></i>
            <span class="option-chip-label">일상</span>
            <span class="option-chip-value"><?php echo get_text($x2_daily_text); ?></span>
        </div>
        <?php } ?>
        <?php if ($x2_key_text !== '') { ?>
        <div class="ca-tag-item option-chip chip-key">
            <i class="fa-solid fa-key"></i>
            <span class="option-chip-label">중요</span>
            <span class="option-chip-value"><?php echo get_text($x2_key_text); ?></span>
        </div>
        <?php } ?>
        <?php if ($x2_ess_text !== '') { ?>
        <div class="ca-tag-item option-chip chip-ess">
            <i class="fa-solid fa-shield-heart"></i>
            <span class="option-chip-label">필수</span>
            <span class="option-chip-value"><?php echo get_text($x2_ess_text); ?></span>
        </div>
        <?php } ?>
        </div>
    </section>
    <?php } ?>
    <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>

                <?php if($view['x2_txt']) { ?>
                <div class="Additional-Code-Area">
                    <div class="code-header">
                        <span class="code-title"><i class="fa-solid fa-code"></i> ADDITIONAL SOURCE CODE</span>
                        <div class="code-actions">
                            <button type="button" class="code-action-btn" id="copyX2TxtBtn"><i class="fa-regular fa-copy"></i> COPY</button>
                            <button type="button" class="code-action-btn" id="downloadX2TxtBtn"><i class="fa-solid fa-download"></i> DOWNLOAD</button>
                        </div>
                    </div>
                    <pre class="code-body"><code><?php echo htmlspecialchars($view['x2_txt']); ?></code></pre>
                </div>
                <?php } ?>

                <?php if (!empty($line_items)) { ?>
                <div class="Work-Line-View-Area">
                    <div class="work-line-title"><i class="fa-solid fa-list-check"></i> WORK LINE</div>
                    <ul class="work-line-list">
                        <?php foreach ($line_items as $line_item) { ?>
                        <li class="work-line-item">
                            <div class="work-line-time"><?php echo get_text($line_item['time']); ?></div>
                            <div class="work-line-content"><?php echo nl2br(get_text($line_item['content'])); ?></div>
                        </li>
                        <?php } ?>
                    </ul>
                </div>
                <?php } ?>

                <?php if ($memo_text !== '') { ?>
                <div class="Work-Memo-View-Area <?php echo $memo_clean ? 'is-cleaned' : ''; ?>">
                    <div class="work-memo-title"><i class="fa-solid fa-note-sticky"></i> MEMO</div>
                    <?php if ($memo_clean) { ?>
                    <div class="memo-clean-badge"><i class="fa-solid fa-trash-can"></i> 메모 삭제 상태</div>
                    <?php } ?>
                    <div class="work-memo-content"><?php echo nl2br(get_text($memo_text)); ?></div>
                </div>
                <?php } ?>
            </div>
        </div>
    </div>

    <?php if (!empty($x2_routine_values) || !empty($x2_health_values) || !empty($x2_way_values) || !empty($x2_point_values) || !empty($x2_healing_values) || $week_has_any_value) { ?>
    <section class="View-Option-Area option-secondary-area">
        <div class="section-title-row"><i class="fa-solid fa-layer-group"></i> 확장 항목</div>
        <?php if (!empty($x2_routine_values) || !empty($x2_health_values) || !empty($x2_way_values) || !empty($x2_point_values) || !empty($x2_healing_values)) { ?>
        <div class="haran-grid">
            <?php if (!empty($x2_routine_values)) { ?>
                <div class="haran-card haran-routine">
                    <div class="haran-title"><i class="fa-solid fa-repeat"></i> 루틴</div>
                    <?php echo $render_haran_list($x2_routine_values, 'fa-repeat'); ?>
                </div>
            <?php } ?>

            <?php if (!empty($x2_health_values)) { ?>
                <div class="haran-card haran-health">
                    <div class="haran-title"><i class="fa-solid fa-heart-pulse"></i> 건강</div>
                    <?php echo $render_haran_list($x2_health_values, 'fa-heart-pulse'); ?>
                </div>
            <?php } ?>

            <?php if (!empty($x2_way_values)) { ?>
                <div class="haran-card haran-way">
                    <div class="haran-title"><i class="fa-solid fa-route"></i> 길</div>
                    <?php echo $render_haran_list($x2_way_values, 'fa-route'); ?>
                </div>
            <?php } ?>

            <?php if (!empty($x2_point_values)) { ?>
                <div class="haran-card haran-point">
                    <div class="haran-title"><i class="fa-solid fa-location-crosshairs"></i> 포인트</div>
                    <?php echo $render_haran_list($x2_point_values, 'fa-location-crosshairs'); ?>
                </div>
            <?php } ?>

            <?php if (!empty($x2_healing_values)) { ?>
                <div class="haran-card haran-healing">
                    <div class="haran-title"><i class="fa-solid fa-leaf"></i> 힐링</div>
                    <?php echo $render_haran_list($x2_healing_values, 'fa-leaf'); ?>
                </div>
            <?php } ?>
        </div>
        <?php } ?>

        <?php if ($week_has_any_value) { ?>
        <div class="haran-week-wrap">
            <div class="haran-card week-card">
                <div class="haran-title"><i class="fa-solid fa-calendar-days"></i> 요일</div>
                <div class="week-calendar">
                    <div class="week-calendar-inner">
                        <div class="week-calendar-head">
                            <?php for ($week_idx = 0; $week_idx < 7; $week_idx++) { ?>
                                <div class="week-day-head"><?php echo $week_days[$week_idx]; ?></div>
                            <?php } ?>
                        </div>
                        <div class="week-calendar-body">
                            <?php for ($week_idx = 0; $week_idx < 7; $week_idx++) {
                                $has_week_value = $x2_week_rows[$week_idx] !== '';
                                $week_value = $has_week_value ? nl2br(get_text($x2_week_rows[$week_idx])) : '';
                                $week_class = $has_week_value ? 'has-value' : 'is-empty';
                            ?>
                                <div class="week-cell <?php echo $week_class; ?>">
                                    <div class="week-cell-title"><?php echo $week_days[$week_idx]; ?></div>
                                    <div class="week-cell-value"><?php echo $week_value; ?></div>
                                </div>
                            <?php } ?>
                        </div>
                    </div>
                </div>
            </div>
        </div>
        <?php } ?>
    </section>
    <?php } ?>

    <?php if ($view['x2_extra2']) { ?>
        <section class="thought">
            <i class="fa fa-commenting-o"></i> <?php echo $view['x2_extra2']; ?>                 
        </section>
    <?php } ?>

    <?php if (!empty($tag_items)) { ?>
    <div class="View-Tag-Area">
        <?php foreach ($tag_items as $tag) { ?>
            <a href="<?php echo G5_BBS_URL; ?>/board.php?bo_table=<?php echo $bo_table; ?>&sfl=wr_1&stx=<?php echo urlencode($tag); ?>" class="tag-item"><?php echo get_text($tag); ?></a>
        <?php } ?>
    </div>
    <?php } ?>
    <div class="View-Tag-Area Ver">
        버전: <?php echo get_text($view['x2_ver']); ?>
    </div>


    <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">LINK <i class="fa-solid fa-arrow-up-right-from-square link-arrow-icon"></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="data-description"><?php echo $view['file'][$i]['bf_content']; ?></span>
                        <?php } ?>
                    </div>
                </div>
                <div class="data-meta">
                    <span class="meta-size"><?php echo $view['file'][$i]['size']; ?></span>
                    <span><i class="fa-solid fa-eye meta-eye-icon"></i> <?php echo $view['file'][$i]['download']; ?></span>
                </div>
            </a>
        <?php
                }
            }
        }
        ?>
    </div>

    <nav class="Post-Navigation">
        <?php if ($prev_href) { ?>
            <a href="<?php echo $prev_href; ?>" class="prev-link">
                <span class="nav-label"><i class="fa-solid fa-chevron-left"></i> PREVIOUS POST</span>
                <p class="nav-subject"><?php echo $prev_wr_subject; ?></p>
            </a>
        <?php } else { ?>
            <div class="nav-empty prev-empty">FIRST POST</div>
        <?php } ?>

        <?php if ($next_href) { ?>
            <a href="<?php echo $next_href; ?>" class="next-link">
                <span class="nav-label">NEXT POST <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 next-empty">LAST POST</div>
        <?php } ?>
    </nav>

    <footer class="View-Bottom-Control">
        <div class="Admin-Control">
            <?php if ($delete_href) { ?><button onclick="if(confirm('정말 삭제하시겠습니까?')) location.href='<?php echo $delete_href; ?>';"><i class="fa-solid fa-trash-can"></i> DELETE</button><?php } ?>
            <?php if ($copy_href) { ?><button onclick="window.open('<?php echo $copy_href; ?>', 'copy_win', 'width=600,height=500');"><i class="fa-solid fa-copy"></i> COPY</button><?php } ?>
            <?php if ($move_href) { ?><button onclick="window.open('<?php echo $move_href; ?>', 'move_win', 'width=600,height=500');"><i class="fa-solid fa-truck-moving"></i> MOVE</button><?php } ?>
        </div>
        <button onclick="location.href='<?php echo $list_href; ?>'" class="List-Btn-Footer"><i class="fa-solid fa-list-ul"></i> BACK TO LIST</button>
    </footer>
</article>

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