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
@@ -0,0 +1,95 @@
<?php
if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가
include_once(G5_LIB_PATH.'/thumbnail.lib.php');
// 💡 [핵심] 라이브러리 함수를 사용하여 모듈 설정 로드
$rb_skin = get_rb_module_config($options);
// 💡 [핵심] 설정값 적용 (없으면 기본값)
$thumb_width = (int)($rb_skin['md_width'] ? $rb_skin['md_width'] : 100);
$thumb_height = (int)($rb_skin['md_height'] ? $rb_skin['md_height'] : 100);
$list_count = (is_array($list) && $list) ? count($list) : 0;
// 모듈 타이틀 설정
if(isset($rb_skin['md_title']) && $rb_skin['md_title']) {
$bo_subject = $rb_skin['md_title'];
}
// 카테고리 링크 설정
if(isset($rb_skin['md_sca']) && $rb_skin['md_sca']) {
$links_url = get_pretty_url($bo_table,'','sca='.urlencode($rb_skin['md_sca']));
} else {
$links_url = get_pretty_url($bo_table);
}
// 💡 [추가] CSS/JS 로드
add_stylesheet('<link rel="stylesheet" href="'.$latest_skin_url.'/style.css?ver='.G5_SERVER_TIME.'">', 0);
if(file_exists($latest_skin_path.'/script.js')) {
add_javascript('<script src="'.$latest_skin_url.'/script.js?ver='.G5_SERVER_TIME.'"></script>', 0);
}
// 💡 [추가] 동적 그리드 변수 설정 (기본값 1열)
$pc_columns = (isset($rb_skin['md_col']) && (int)$rb_skin['md_col'] > 0) ? (int)$rb_skin['md_col'] : 1;
$mo_columns = (isset($rb_skin['md_col_mo']) && (int)$rb_skin['md_col_mo'] > 0) ? (int)$rb_skin['md_col_mo'] : 1;
$css_vars = "--pc-columns: {$pc_columns}; --mo-columns: {$mo_columns};";
/*
모듈설정 연동 변수
... (주석 생략) ...
*/
?>
<link rel="stylesheet" href="<?php echo $latest_skin_url ?>/style.css?ver=<?php echo G5_SERVER_TIME ?>">
<div class="latest-pic-list-skin" style="<?php echo $css_vars; ?>">
<!-- { -->
<ul class="bbs_main_wrap_tit" style="display:<?php echo (isset($rb_skin['md_title_hide']) && $rb_skin['md_title_hide'] == '1') ? 'none' : 'block'; ?>">
<li class="bbs_main_wrap_tit_l">
<!-- 타이틀 { -->
<a href="<?php echo $links_url; ?>">
<h2 class="<?php echo isset($rb_skin['md_title_font']) ? $rb_skin['md_title_font'] : 'font-B'; ?>" style="color:<?php echo isset($rb_skin['md_title_color']) ? $rb_skin['md_title_color'] : '#25282b'; ?>; font-size:<?php echo isset($rb_skin['md_title_size']) ? $rb_skin['md_title_size'] : '20'; ?>px; "><?php echo $bo_subject ?></h2>
</a>
<!-- } -->
</li>
<li class="bbs_main_wrap_tit_r">
<button type="button" class="more_btn" onclick="location.href='<?php echo $links_url ?>';">리스트 +</button>
</li>
<div class="cb"></div>
</ul>
<!-- } -->
<ul class="pic-list-grid">
<?php
for ($i=0; $i<$list_count; $i++) {
$thumb = get_list_thumbnail($bo_table, $list[$i]['wr_id'], $thumb_width, $thumb_height, false, true);
// 💡 [수정] 제목 길이 10자로 제한
$subject = cut_str(strip_tags($list[$i]['wr_subject']), 10);
?>
<li>
<?php if ($rb_skin['md_thumb_is']) { ?>
<a href="<?php echo $list[$i]['href']; ?>" class="lt_img">
<?php
if ($thumb['src']) {
echo "<img src=\"".$thumb['src']."\" alt=\"".$thumb['alt']."\">";
} else {
echo "<span>No Image</span>";
}
?>
</a>
<?php } ?>
<div class="lt_txt_wrap">
<a href="<?php echo $list[$i]['href']; ?>" class="lt_tit"><?php echo $subject; ?></a>
<?php if ($rb_skin['md_date_is']) { ?>
<span class="lt_date"><?php echo $list[$i]['datetime2'] ?></span>
<?php } ?>
</div>
</li>
<?php } ?>
<?php if ($list_count == 0) { ?>
<li class="empty_li">게시물이 없습니다.</li>
<?php } ?>
</ul>
</div>
@@ -0,0 +1,62 @@
/* Latest Pic List Skin Style - Final Layout Fix */
.latest-pic-list-skin {
width: 100%;
box-sizing: border-box;
position: relative;
overflow: hidden;
background: #fff;
padding: 15px;
/* 💡 [핵심 수정] Flexbox 컬럼 방향으로 설정하여 세로 배치 강제 */
display: flex;
flex-direction: column;
}
.latest-pic-list-skin .bbs_main_wrap_tit {
display: flex;
justify-content: space-between;
align-items: center;
margin-bottom: 15px;
padding-bottom: 10px;
border-bottom: 2px solid #333;
flex-shrink: 0;
}
.latest-pic-list-skin .bbs_main_wrap_tit_l { min-width: 0; }
.latest-pic-list-skin .bbs_main_wrap_tit_l h2 { margin: 0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.latest-pic-list-skin .bbs_main_wrap_tit_r { flex-shrink: 0; margin-left: 15px; }
.latest-pic-list-skin .more_btn {
position: relative; /* 💡 [핵심 수정] absolute 속성 덮어쓰기 */
background: none;
border: 1px solid #ddd;
padding: 5px 10px;
font-size: 12px;
color: #666;
cursor: pointer;
border-radius: 3px;}
.latest-pic-list-skin .cb { display: none; }
.pic-list-grid {
list-style: none;
padding: 0;
margin: 0;
display: grid;
grid-template-columns: repeat(var(--pc-columns, 1), 1fr);
gap: 15px;
}
.latest-pic-list-skin li { display: flex; align-items: flex-start; padding: 15px 0; border-bottom: 1px solid #f0f0f0; }
.latest-pic-list-skin li:last-child { border-bottom: 1px solid #f0f0f0; }
.latest-pic-list-skin .lt_img { display: block; width: 100px; height: 75px; flex-shrink: 0; margin-right: 15px; border-radius: 4px; overflow: hidden; background: #f8f8f8; }
.latest-pic-list-skin .lt_img img { width: 100%; height: 100%; object-fit: cover; transition: transform 0.3s; }
.latest-pic-list-skin li:hover .lt_img img { transform: scale(1.05); }
.latest-pic-list-skin .lt_txt_wrap { flex-grow: 1; min-width: 0; }
.latest-pic-list-skin .lt_tit { display: block; font-size: 15px; font-weight: 600; color: #333; text-decoration: none; margin-bottom: 5px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.latest-pic-list-skin .lt_date { font-size: 12px; color: #999; display: block; }
.empty_li { grid-column: 1 / -1; text-align: center; padding: 50px 0; color: #999; }
@media (max-width: 1024px) {
.pic-list-grid {
grid-template-columns: repeat(var(--mo-columns, 1), 1fr);
}
}