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,70 @@
<?php
if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가
// 💡 [핵심] 이 푸터 레이아웃 스킨 전용 CSS 파일을 불러옵니다.
add_stylesheet('<link rel="stylesheet" href="'.G5_THEME_URL.'/rb.layout_ft/'.$rb_core['layout_ft'].'/style.css?ver='.G5_TIME_YMDHIS.'">', 0);
?>
<!-- 📌 [전체 수정] 관리자 기능이 연동된 새로운 트렌디 푸터 -->
<footer class="main-footer">
<div class="container">
<div class="footer-content">
<!-- 1. 좌측: 로고 및 회사 정보 -->
<div class="footer-left">
<a href="<?php echo G5_URL ?>" class="footer-logo">
<?php // 관리자 > 빌더설정 > 로고(흰색)
if (!empty($rb_builder['bu_logo_pc_w'])) { ?>
<img src="<?php echo G5_URL ?>/data/logos/pc_w?ver=<?php echo G5_SERVER_TIME ?>" alt="<?php echo $config['cf_title']; ?>">
<?php } else { ?>
<img src="<?php echo G5_THEME_URL ?>/rb.img/logos/pc_w.png?ver=<?php echo G5_SERVER_TIME ?>" alt="<?php echo $config['cf_title']; ?>">
<?php } ?>
</a>
<div class="footer-info">
<?php if (!empty($rb_builder['bu_1'])) { ?><p><strong><?php echo $rb_builder['bu_1'] ?></strong></p><?php } ?>
<?php if (!empty($rb_builder['bu_10'])) { ?><p>주소: <?php if (!empty($rb_builder['bu_9'])) { ?>(<?php echo $rb_builder['bu_9'] ?>) <?php } ?><?php echo $rb_builder['bu_10'] ?></p><?php } ?>
<p>
<?php if (!empty($rb_builder['bu_2'])) { ?><span>대표: <?php echo $rb_builder['bu_2'] ?></span><?php } ?>
<?php if (!empty($rb_builder['bu_3'])) { ?><span>T. <?php echo $rb_builder['bu_3'] ?></span><?php } ?>
<?php if (!empty($rb_builder['bu_4'])) { ?><span>F. <?php echo $rb_builder['bu_4'] ?></span><?php } ?>
</p>
<p>
<?php if (!empty($rb_builder['bu_5'])) { ?><span>사업자등록번호: <?php echo $rb_builder['bu_5'] ?></span><?php } ?>
<?php if (!empty($rb_builder['bu_6'])) { ?><span>통신판매업: <?php echo $rb_builder['bu_6'] ?></span><?php } ?>
</p>
<?php if (!empty($rb_builder['bu_11'])) { ?><p>개인정보보호책임자: <?php echo $rb_builder['bu_11'] ?></p><?php } ?>
</div>
</div>
<!-- 2. 우측: 바로가기 링크 및 SNS -->
<div class="footer-right">
<div class="footer-links">
<a href="<?php echo get_pretty_url('content', 'provision'); ?>">이용약관</a>
<a href="<?php echo get_pretty_url('content', 'privacy'); ?>">개인정보처리방침</a>
<a href="#" id="open-contact-modal">1:1 문의</a>
</div>
<div class="footer-sns" itemscope itemtype="http://schema.org/Organization">
<link itemprop="url" href="<?php echo G5_URL ?>">
<?php if (!empty($rb_builder['bu_sns1'])) { ?><a href="<?php echo $rb_builder['bu_sns1'] ?>" target="_blank" title="카카오 채널" itemprop="sameAs"><i class="fab fa-kickstarter-k"></i></a><?php } ?>
<?php if (!empty($rb_builder['bu_sns3'])) { ?><a href="<?php echo $rb_builder['bu_sns3'] ?>" target="_blank" title="유튜브" itemprop="sameAs"><i class="fab fa-youtube"></i></a><?php } ?>
<?php if (!empty($rb_builder['bu_sns4'])) { ?><a href="<?php echo $rb_builder['bu_sns4'] ?>" target="_blank" title="인스타그램" itemprop="sameAs"><i class="fab fa-instagram"></i></a><?php } ?>
<?php if (!empty($rb_builder['bu_sns5'])) { ?><a href="<?php echo $rb_builder['bu_sns5'] ?>" target="_blank" title="페이스북" itemprop="sameAs"><i class="fab fa-facebook-f"></i></a><?php } ?>
<?php if (!empty($rb_builder['bu_sns7'])) { ?><a href="<?php echo $rb_builder['bu_sns7'] ?>" target="_blank" title="네이버 블로그" itemprop="sameAs"><i class="fab fa-blogger-b"></i></a><?php } ?>
</div>
</div>
</div>
<div class="footer-bottom">
<p class="footer-copyright">
<?php if (!empty($rb_builder['bu_12'])) { ?>
<?php echo $rb_builder['bu_12'] ?>
<?php } else { ?>
Copyright &copy; <?php echo date('Y'); ?> <?php echo $config['cf_title'] ?>. All Rights Reserved.
<?php } ?>
</p>
</div>
</div>
</footer>
<?php
?>
@@ -0,0 +1,201 @@
/* ==========================================================================
💡 [추가] 트렌디 푸터 (Trendy Footer) 스타일 - 완성본
========================================================================== */
.main-footer {
background-color: #2c3e50; /* 어두운 배경색 */
color: #bdc3c7; /* 밝은 회색 계열 글자색 */
padding: 60px 0 40px;
font-size: 14px;
line-height: 1.8;
}
/* 💡 [핵심 수정] .container 스타일 강제 적용 */
.main-footer .container {
display: block !important; /* 다른 CSS의 display: inline 무력화 */
width: 100%;
max-width: 1200px;
margin: 0 auto;
padding: 0 15px;
box-sizing: border-box;
}
.main-footer .footer-content {
display: flex;
justify-content: space-between;
align-items: flex-start;
flex-wrap: wrap; /* 모바일에서 줄바꿈 */
gap: 40px;
padding-bottom: 40px;
margin-bottom: 40px;
border-bottom: 1px solid #34495e;
}
.main-footer .footer-left {
flex: 1;
min-width: 300px;
}
.main-footer .footer-right {
flex-shrink: 0;
text-align: right;
}
.main-footer .footer-logo {
display: block;
margin-bottom: 20px;
}
.main-footer .footer-logo img {
height: 30px;
opacity: 0.8;
}
.main-footer .footer-info p {
margin: 0 0 5px;
font-size: 13px;
}
.main-footer .footer-info span {
margin-right: 15px;
display: inline-block;
}
.main-footer .footer-info strong {
color: #ecf0f1;
font-weight: 700;
}
.main-footer .footer-links {
margin-bottom: 20px;
}
.main-footer .footer-links a {
color: #bdc3c7;
text-decoration: none;
margin-left: 25px;
font-weight: 500;
transition: color 0.3s;
}
.main-footer .footer-links a:hover {
color: #fff;
}
.main-footer .footer-sns {
display: flex;
justify-content: flex-end;
gap: 15px;
}
.main-footer .footer-sns a {
color: #bdc3c7;
font-size: 20px;
transition: color 0.3s, transform 0.3s;
}
.main-footer .footer-sns a:hover {
color: #fff;
transform: translateY(-2px);
}
.main-footer .footer-bottom {
text-align: center;
}
.main-footer .footer-copyright {
font-size: 12px;
color: #7f8c8d;
}
/* 팝업(모달) 스타일 */
.modal-overlay {
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
background-color: rgba(0, 0, 0, 0.6);
display: flex;
justify-content: center;
align-items: center;
z-index: 2000;
opacity: 0;
visibility: hidden;
transition: opacity 0.3s ease, visibility 0.3s ease;
}
.modal-overlay.active {
opacity: 1;
visibility: visible;
}
.modal-content {
background-color: #fff;
padding: 40px;
border-radius: 12px;
width: 90%;
max-width: 900px;
max-height: 90vh;
overflow-y: auto;
position: relative;
transform: scale(0.9);
transition: transform 0.3s ease;
}
.modal-overlay.active .modal-content {
transform: scale(1);
}
.modal-close {
position: absolute;
top: 15px;
right: 15px;
background: none;
border: none;
font-size: 2rem;
color: #aaa;
cursor: pointer;
}
.contact-wrapper {
display: flex;
gap: 40px;
margin-top: 30px;
}
.contact-info, .contact-form {
flex: 1;
}
.contact-info h3, .contact-form h3 {
font-size: 1.5rem;
margin-bottom: 20px;
border-bottom: 2px solid #eee;
padding-bottom: 10px;
}
.info-item {
margin-bottom: 15px;
}
.info-item strong {
display: block;
font-weight: 700;
margin-bottom: 5px;
}
.contact-form input, .contact-form textarea {
width: 100%;
padding: 12px;
border: 1px solid #ddd;
border-radius: 4px;
margin-bottom: 15px;
font-size: 1rem;
}
.cta-button {
display: inline-block;
background-color: #0056b3;
color: #fff;
padding: 12px 25px;
border-radius: 5px;
text-decoration: none;
font-weight: 700;
border: none;
cursor: pointer;
width: 100%;
text-align: center;
}
/* 반응형 스타일 */