GNU/skin/board/outline_target/ajax.list.php
<?php
include_once('./_common.php');

// =================================================================
// 1. [구멍 뚫기] 오빠의 UPBIT DB (upbit_data) 연결
// =================================================================
include_once('/home/www/DB/db_upbit.php'); 

if (!isset($pdo)) {
    die("오빠! ajax 호출인데 db_upbit.php 연결이 안 됐어!");
}
$db_upbit = $pdo; // ★ UPBIT 전용 DB 핸들러

$page = (int)$_GET['page'];
if ($page < 1) $page = 1;
$limit = 15;
$start = ($page - 1) * $limit;

$sql_where = " WHERE wr_is_comment = '0' AND wr_parent = wr_id AND IFNULL(TRIM(x2_top), '') <> '1' "; // 댓글/답글 제외 + 상단 고정 제외

if (!function_exists('work_project_icon')) {
    function work_project_icon($project_name) {
        $project_name = strtolower(trim((string)$project_name));
        if ($project_name === '') return '';
        if (strpos($project_name, 'api') !== false || strpos($project_name, 'server') !== false) return 'fa-solid fa-server';
        if (strpos($project_name, 'mobile') !== false || strpos($project_name, 'app') !== false) return 'fa-solid fa-mobile-screen-button';
        if (strpos($project_name, 'db') !== false || strpos($project_name, 'data') !== false) return 'fa-solid fa-database';
        if (strpos($project_name, 'web') !== false || strpos($project_name, 'site') !== false) return 'fa-solid fa-globe';
        return 'fa-solid fa-diagram-project';
    }
}

// 필터 조건 반영
if($_GET['s_ca2']) $sql_where .= " AND x2_ca2 = '".sql_real_escape_string($_GET['s_ca2'])."' ";
if($_GET['s_ca3']) $sql_where .= " AND x2_ca3 = '".sql_real_escape_string($_GET['s_ca3'])."' ";
if($_GET['s_ca4']) $sql_where .= " AND x2_ca4 = '".sql_real_escape_string($_GET['s_ca4'])."' ";
if($_GET['is_ing'] == 'y') $sql_where .= " AND x2_ca4 <> '완료' ";
if($_GET['is_project'] == 'y') $sql_where .= " AND TRIM(IFNULL(x2_project, '')) <> '' ";
if($_GET['is_label'] == 'y') $sql_where .= " AND x2_label = '1' ";

// 검색어(stx) 반영
$stx = isset($_GET['stx']) ? sql_real_escape_string($_GET['stx']) : '';
if($stx) {
    $sql_where .= " AND (wr_subject LIKE '%{$stx}%' OR wr_content LIKE '%{$stx}%') ";
}

$sql = " SELECT * FROM {$write_table} {$sql_where} ORDER BY wr_id DESC LIMIT {$start}, {$limit} ";
$result = sql_query($sql);

$i = 0;
while($row = sql_fetch_array($result)) {
    $delay = ($i * 0.04) + 0.1;
    $st_class = "st_default";
    if($row['x2_ca4'] == "진행") $st_class = "st_blue";
    else if($row['x2_ca4'] == "완료") $st_class = "st_purple";
    
    $href = get_pretty_url($bo_table, $row['wr_id']);
    $clean_subject = preg_replace('/^\[[^\]]+\]\s*/', '', $row['wr_subject']);
    $project_icon = work_project_icon($row['x2_project']);
?>
<tr onclick="location.href='<?php echo $href; ?>'" class="<?php echo (!empty($row['x2_see']) && $row['x2_see'] == '1') ? 'see-row' : ''; ?>" style="animation: listFadeUp 0.6s ease forwards; animation-delay: <?php echo $delay; ?>s;">
    <td class="Num"><?php echo $row['wr_id']; ?></td>
    <td class="Subject">
        <?php echo $clean_subject; ?>
        <?php if ($row['wr_comment']) echo "<span class='subject-comment'>[".$row['wr_comment']."]</span>"; ?>
    </td>
    <td class="Day">
        <span class="item-icons">
            <?php if($project_icon) echo '<i class="'.$project_icon.'" title="PROJECT: '.get_text($row['x2_project']).'"></i>'; ?>
            <?php if($row['x2_label']) echo '<i class="fa-solid fa-star label-star-icon" title="LABEL"></i>'; ?>
            <?php if($row['wr_link1'] || $row['wr_link2']) echo '<i class="fa-solid fa-link" title="링크"></i>'; ?>
            <?php if($row['wr_file']) echo '<i class="fa-solid fa-paperclip" title="첨부파일"></i>'; ?>
            <?php if(trim($row['x2_txt'])) echo '<i class="fa-solid fa-code" title="추가 코드"></i>'; ?>
            <?php if(trim($row['x2_memo'])) echo '<i class="fa-solid fa-note-sticky" title="메모"></i>'; ?>
            <?php if(trim($row['x2_line'])) echo '<i class="fa-solid fa-list-check" title="작업라인"></i>'; ?>
        </span>
        <?php if($row['x2_ca4']) { ?><span class="st_badge <?php echo $st_class; ?>"><?php echo $row['x2_ca4']; ?></span><?php } ?>
        <?php echo substr($row['wr_datetime'], 2, 8); ?>
    </td>
</tr>
<?php 
    $i++; 
} 
?>