Files
2026-06-11 18:47:38 +09:00

67 lines
2.7 KiB
PHP

<?php
if (!defined("_GNUBOARD_")) exit; // 개별 페이지 접근 불가
// 💡 [핵심] 스킨이 의존하는 전역 변수들을 명시적으로 선언합니다.
global $row_mod, $rb_module_table;
// 💡 [초기화] $rb_skin 변수를 빈 배열로 먼저 선언합니다.
// 이렇게 하면, 아래에서 설정을 불러오지 못하더라도 다른 부분에서 오류가 발생하지 않습니다.
$rb_skin = array();
// 💡 [핵심 수정] Rebuilder 모듈 변수($row_mod)가 존재하고, 그 안에 md_id 값이 있을 때만 DB 조회를 실행합니다.
// 이렇게 하면 $row_mod가 null일 때 발생하는 오류를 원천적으로 방지할 수 있습니다.
if (isset($row_mod['md_id']) && $row_mod['md_id'] && isset($rb_module_table) && $rb_module_table) {
$rb_skin = sql_fetch("SELECT * FROM {$rb_module_table} WHERE md_id = '{$row_mod['md_id']}'");
}
// 💡 [개선] $rb_skin['md_banner_bg'] 값이 없을 경우를 대비하여 기본값을 설정합니다.
$md_banner_bg = isset($rb_skin['md_banner_bg']) ? $rb_skin['md_banner_bg'] : '';
?>
<style>
.basic_item {margin-top: 10px;}
.basic_item:first-child {margin-top: 0px;}
</style>
<?php
$i = 0; // $i 변수를 초기화
while ($row = sql_fetch_array($result)) {
$bn_border = isset($row['bn_border']) && $row['bn_border'] ? ' bn_border' : '';
$bn_radius = isset($row['bn_radius']) && $row['bn_radius'] ? ' bn_radius' : '';
// 새창 옵션
$bn_new_win = isset($row['bn_new_win']) && $row['bn_new_win'] ? ' target="_blank"' : '';
// 💡 [개선] 배경색($md_banner_bg)이 있을 때만 style 속성을 출력하도록 수정합니다.
if ($i == 0) {
$bg_style = $md_banner_bg ? ' style="background-color:'.$md_banner_bg.'"' : '';
echo '<div class="mod_bn_wrap"'.$bg_style.'>'.PHP_EOL;
}
$bimg = G5_DATA_PATH.'/banners/'.$row['bn_id'];
if (file_exists($bimg)) {
$banner = '';
$size = getimagesize($bimg);
echo '<div class="basic_item top_ad '.$bn_border.$bn_radius.'">'.PHP_EOL;
if ($row['bn_url'][0] == '#')
$banner .= '<a href="'.$row['bn_url'].'">';
else if ($row['bn_url'] && $row['bn_url'] != 'http://') {
$banner .= '<a href="'.G5_URL.'/rb/rb.mod/banner/bannerhit.php?bn_id='.$row['bn_id'].'"'.$bn_new_win.'>';
}
echo $banner.'<img src="'.G5_DATA_URL.'/banners/'.$row['bn_id'].'?ver='.G5_SERVER_TIME.'" title="'.get_text($row['bn_alt']).'" width="100%">';
if ($banner) {
echo '</a>'.PHP_EOL;
}
if (isset($row['bn_ad_ico']) && $row['bn_ad_ico']) {
echo '<span class="ico_ad">AD</span>'.PHP_EOL;
}
echo '</div>'.PHP_EOL;
}
$i++;
}
if ($i > 0) echo '</div>'.PHP_EOL;
?>