first commit 2
This commit is contained in:
@@ -0,0 +1,306 @@
|
||||
<?php
|
||||
if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가
|
||||
|
||||
// 레이아웃 폴더내 style.css 파일
|
||||
add_stylesheet('<link rel="stylesheet" href="'.G5_THEME_URL.'/rb.layout_hd/'.$rb_core['layout_hd'].'/style.css?ver='.G5_TIME_YMDHIS.'">', 0);
|
||||
|
||||
?>
|
||||
|
||||
<!--
|
||||
<header id="header">내용</header>
|
||||
<header>는 반드시 포함해주세요.
|
||||
-->
|
||||
|
||||
<!-- 헤더 { -->
|
||||
<header id="header">
|
||||
|
||||
<!-- GNB { -->
|
||||
<div class="gnb_wrap">
|
||||
|
||||
<div class="inner" style="width:<?php echo $tb_width_inner ?>; <?php echo $tb_width_padding ?>">
|
||||
|
||||
<!-- 토글메뉴 { -->
|
||||
<ul class="tog_wrap mobile">
|
||||
<li>
|
||||
<button type="button" alt="메뉴열기" id="tog_gnb_mobile">
|
||||
<svg width="18" height="16" viewBox="0 0 18 16" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M17 14C17.2549 14.0003 17.5 14.0979 17.6854 14.2728C17.8707 14.4478 17.9822 14.687 17.9972 14.9414C18.0121 15.1958 17.9293 15.4464 17.7657 15.6418C17.6021 15.8373 17.3701 15.9629 17.117 15.993L17 16H1C0.74512 15.9997 0.499968 15.9021 0.314632 15.7272C0.129296 15.5522 0.017765 15.313 0.00282788 15.0586C-0.0121092 14.8042 0.0706746 14.5536 0.234265 14.3582C0.397855 14.1627 0.629904 14.0371 0.883 14.007L1 14H17ZM17 7C17.2652 7 17.5196 7.10536 17.7071 7.29289C17.8946 7.48043 18 7.73478 18 8C18 8.26522 17.8946 8.51957 17.7071 8.70711C17.5196 8.89464 17.2652 9 17 9H1C0.734784 9 0.48043 8.89464 0.292893 8.70711C0.105357 8.51957 0 8.26522 0 8C0 7.73478 0.105357 7.48043 0.292893 7.29289C0.48043 7.10536 0.734784 7 1 7H17ZM17 0C17.2652 0 17.5196 0.105357 17.7071 0.292893C17.8946 0.48043 18 0.734784 18 1C18 1.26522 17.8946 1.51957 17.7071 1.70711C17.5196 1.89464 17.2652 2 17 2H1C0.734784 2 0.48043 1.89464 0.292893 1.70711C0.105357 1.51957 0 1.26522 0 1C0 0.734784 0.105357 0.48043 0.292893 0.292893C0.48043 0.105357 0.734784 0 1 0H17Z" fill="#09244B"/>
|
||||
</svg>
|
||||
</button>
|
||||
|
||||
<script>
|
||||
$(document).ready(function() {
|
||||
$('#tog_gnb_mobile').click(function() {
|
||||
$('#cbp-hrmenu-btm').addClass('active');
|
||||
$('#m_gnb_close_btn').addClass('active');
|
||||
$('main').addClass('moves');
|
||||
$('header').addClass('moves');
|
||||
});
|
||||
});
|
||||
</script>
|
||||
</li>
|
||||
</ul>
|
||||
<!-- } -->
|
||||
|
||||
<!-- 로고 { -->
|
||||
<ul class="logo_wrap">
|
||||
<li>
|
||||
<a href="<?php echo G5_URL ?>" alt="<?php echo $config['cf_title']; ?>">
|
||||
|
||||
<picture id="logo_img">
|
||||
|
||||
<?php if (!empty($rb_builder['bu_logo_mo']) && !empty($rb_builder['bu_logo_mo_w'])) { ?>
|
||||
<source id="sourceSmall" srcset="<?php echo G5_URL ?>/data/logos/mo?ver=<?php echo G5_SERVER_TIME ?>" media="(max-width: 1024px)">
|
||||
<?php } else { ?>
|
||||
<source id="sourceSmall" srcset="<?php echo G5_THEME_URL ?>/rb.img/logos/mo.png?ver=<?php echo G5_SERVER_TIME ?>" media="(max-width: 1024px)">
|
||||
<?php } ?>
|
||||
|
||||
<?php if (!empty($rb_builder['bu_logo_pc']) && !empty($rb_builder['bu_logo_pc_w'])) { ?>
|
||||
<source id="sourceLarge" srcset="<?php echo G5_URL ?>/data/logos/pc?ver=<?php echo G5_SERVER_TIME ?>" media="(min-width: 1025px)">
|
||||
<?php } else { ?>
|
||||
<source id="sourceLarge" srcset="<?php echo G5_THEME_URL ?>/rb.img/logos/pc.png?ver=<?php echo G5_SERVER_TIME ?>" media="(max-width: 1024px)">
|
||||
<?php } ?>
|
||||
|
||||
<?php if (!empty($rb_builder['bu_logo_pc']) && !empty($rb_builder['bu_logo_pc_w'])) { ?>
|
||||
<img id="fallbackImage" src="<?php echo G5_URL ?>/data/logos/pc?ver=<?php echo G5_SERVER_TIME ?>" alt="<?php echo $config['cf_title']; ?>" class="responsive-image">
|
||||
<?php } else { ?>
|
||||
<img id="fallbackImage" src="<?php echo G5_THEME_URL ?>/rb.img/logos/pc.png?ver=<?php echo G5_SERVER_TIME ?>" alt="<?php echo $config['cf_title']; ?>" class="responsive-image">
|
||||
<?php } ?>
|
||||
|
||||
</picture>
|
||||
|
||||
</a>
|
||||
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
|
||||
|
||||
<nav id="cbp-hrmenu" class="cbp-hrmenu pc">
|
||||
<ul>
|
||||
<?php
|
||||
if(IS_MOBILE()) {
|
||||
$menu_datas = get_menu_db(1, true);
|
||||
} else {
|
||||
$menu_datas = get_menu_db(0, true);
|
||||
}
|
||||
|
||||
$gnb_zindex = 999;
|
||||
$i = 0;
|
||||
foreach($menu_datas as $row) {
|
||||
if(empty($row)) continue;
|
||||
|
||||
// 1차 메뉴 권한 체크
|
||||
if (!$is_admin && isset($row['me_level']) && $row['me_level'] > 0) {
|
||||
if (isset($row['me_level_opt']) && $row['me_level_opt'] == 2) {
|
||||
if ($row['me_level'] != $member['mb_level']) continue;
|
||||
} else {
|
||||
if ($row['me_level'] > $member['mb_level']) continue;
|
||||
}
|
||||
}
|
||||
?>
|
||||
<li>
|
||||
ㅇㅀㄶㄹㄴㅇㅀ
|
||||
<a href="<?php echo $row['me_link']; ?>" target="_<?php echo $row['me_target']; ?>" class="font-B"><?php echo $row['me_name'] ?></a>
|
||||
<?php
|
||||
$k = 0;
|
||||
foreach((array)$row['sub'] as $row2) {
|
||||
if(empty($row2)) continue;
|
||||
|
||||
// 2차 메뉴 권한 체크
|
||||
if (!$is_admin && isset($row2['me_level']) && $row2['me_level'] > 0) {
|
||||
if (isset($row2['me_level_opt']) && $row2['me_level_opt'] == 2) {
|
||||
if ($row2['me_level'] != $member['mb_level']) continue;
|
||||
} else {
|
||||
if ($row2['me_level'] > $member['mb_level']) continue;
|
||||
}
|
||||
}
|
||||
|
||||
if($k == 0)
|
||||
echo '<div class="cbp-hrsub"><div class="cbp-hrsub-inner"><div><ul>'.PHP_EOL;
|
||||
?>
|
||||
<li><a href="<?php echo $row2['me_link']; ?>" target="_<?php echo $row2['me_target']; ?>"><?php echo $row2['me_name'] ?></a></li>
|
||||
<?php
|
||||
$k++;
|
||||
}
|
||||
|
||||
if($k > 0)
|
||||
echo '</ul></div></div></div>'.PHP_EOL;
|
||||
?>
|
||||
</li>
|
||||
<?php
|
||||
$i++;
|
||||
}
|
||||
|
||||
if ($i == 0) {
|
||||
?>
|
||||
<li><a href="javascript:void(0);">메뉴 준비 중입니다.</a></li>
|
||||
<?php } ?>
|
||||
</ul>
|
||||
</nav>
|
||||
|
||||
|
||||
|
||||
<!-- 퀵메뉴 { -->
|
||||
<ul class="snb_wrap">
|
||||
<li class="qm_wrap">
|
||||
|
||||
<?php if($is_member) { ?>
|
||||
|
||||
<a href="<?php echo G5_BBS_URL ?>/scrap.php" target="_blank" id="ol_after_scrap" class="win_scrap" alt="스크랩">
|
||||
|
||||
<svg width="18" height="18" viewBox="0 0 18 18" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M12.8683 0.586248C12.5278 0.245586 12.0759 0.0392126 11.5955 0.00504274C11.1151 -0.0291271 10.6385 0.111202 10.2533 0.400248L7.34029 2.58525C6.13019 3.49303 4.7108 4.08115 3.21329 4.29525L1.03629 4.60525C0.306288 4.71025 -0.228712 5.49625 0.123288 6.26725C0.454288 6.99025 1.50829 8.89625 4.48329 11.9872L0.305288 16.1652C0.209778 16.2575 0.133596 16.3678 0.0811869 16.4898C0.0287779 16.6118 0.00119157 16.7431 3.77567e-05 16.8758C-0.00111606 17.0086 0.0241857 17.1403 0.0744666 17.2632C0.124747 17.3861 0.199001 17.4977 0.292893 17.5916C0.386786 17.6855 0.498438 17.7598 0.621334 17.8101C0.744231 17.8604 0.87591 17.8857 1.00869 17.8845C1.14147 17.8833 1.27269 17.8558 1.39469 17.8033C1.5167 17.7509 1.62704 17.6748 1.71929 17.5792L5.89729 13.4012C8.98829 16.3762 10.8943 17.4302 11.6173 17.7612C12.3873 18.1132 13.1743 17.5782 13.2783 16.8482L13.5893 14.6712C13.8034 13.1737 14.3915 11.7543 15.2993 10.5442L17.4833 7.63125C17.7723 7.24602 17.9127 6.76942 17.8785 6.28902C17.8443 5.80862 17.6379 5.35669 17.2973 5.01625L12.8673 0.586248H12.8683ZM11.4533 2.00125L15.8833 6.43125L13.6993 9.34525C12.5898 10.8242 11.871 12.559 11.6093 14.3892L11.4663 15.3902C10.4863 14.7662 8.86329 13.5532 6.59729 11.2872C4.33329 9.02125 3.11929 7.39925 2.49529 6.41925L3.49529 6.27625C5.3259 6.01471 7.06103 5.29589 8.54029 4.18625L11.4533 2.00125Z" fill="black"/>
|
||||
</svg>
|
||||
|
||||
</a>
|
||||
|
||||
|
||||
<a href="<?php echo G5_BBS_URL ?>/memo.php" alt="쪽지" onclick="win_memo(this.href); return false;">
|
||||
<svg width="18" height="18" viewBox="0 0 18 18" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M15.2715 2.33675L2.67946 6.88975L6.87446 9.31775L10.5735 5.61775C10.7611 5.43024 11.0155 5.32495 11.2808 5.32505C11.5461 5.32514 11.8005 5.43061 11.988 5.61825C12.1755 5.80589 12.2808 6.06033 12.2807 6.3256C12.2806 6.59087 12.1751 6.84524 11.9875 7.03275L8.28746 10.7328L10.7175 14.9268L15.2715 2.33675ZM15.5945 0.0927503C16.7895 -0.34025 17.9475 0.81775 17.5145 2.01275L12.2325 16.6178C11.7985 17.8158 10.1625 17.9618 9.52346 16.8587L6.30646 11.3008L0.748462 8.08375C-0.354538 7.44475 -0.208537 5.80875 0.989463 5.37475L15.5945 0.0927503Z" fill="#09244B"/>
|
||||
</svg>
|
||||
<?php if($memo_not_read > 0) { ?>
|
||||
<span class="font-H"><?php echo $memo_not_read ?></span>
|
||||
<?php } ?>
|
||||
</a>
|
||||
<?php } ?>
|
||||
|
||||
<button type="button" alt="검색" id="search_top_btn">
|
||||
<svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M8.49928 1.91687e-08C7.14387 0.000115492 5.80814 0.324364 4.60353 0.945694C3.39893 1.56702 2.36037 2.46742 1.57451 3.57175C0.788656 4.67609 0.278287 5.95235 0.0859852 7.29404C-0.106316 8.63574 0.0250263 10.004 0.469055 11.2846C0.913084 12.5652 1.65692 13.7211 2.63851 14.6557C3.6201 15.5904 4.81098 16.2768 6.11179 16.6576C7.4126 17.0384 8.78562 17.1026 10.1163 16.8449C11.447 16.5872 12.6967 16.015 13.7613 15.176L17.4133 18.828C17.6019 19.0102 17.8545 19.111 18.1167 19.1087C18.3789 19.1064 18.6297 19.0012 18.8151 18.8158C19.0005 18.6304 19.1057 18.3796 19.108 18.1174C19.1102 17.8552 19.0094 17.6026 18.8273 17.414L15.1753 13.762C16.1633 12.5086 16.7784 11.0024 16.9504 9.41573C17.1223 7.82905 16.8441 6.22602 16.1475 4.79009C15.4509 3.35417 14.3642 2.14336 13.0116 1.29623C11.659 0.449106 10.0952 -0.000107143 8.49928 1.91687e-08ZM1.99928 8.5C1.99928 6.77609 2.6841 5.12279 3.90308 3.90381C5.12207 2.68482 6.77537 2 8.49928 2C10.2232 2 11.8765 2.68482 13.0955 3.90381C14.3145 5.12279 14.9993 6.77609 14.9993 8.5C14.9993 10.2239 14.3145 11.8772 13.0955 13.0962C11.8765 14.3152 10.2232 15 8.49928 15C6.77537 15 5.12207 14.3152 3.90308 13.0962C2.6841 11.8772 1.99928 10.2239 1.99928 8.5Z" fill="#09244B"/>
|
||||
</svg>
|
||||
</button>
|
||||
|
||||
|
||||
<div id="search_box_wrap">
|
||||
<form name="fsearchbox" method="get" action="<?php echo G5_BBS_URL ?>/search.php" onsubmit="return fsearchbox_submit(this);">
|
||||
<ul>
|
||||
<input type="text" name="stx" maxlength="20" class="w100 font-B" id="ser_inp_fc" placeholder="통합검색">
|
||||
<button type="submit" alt="검색" class="ser_inner_btn">
|
||||
<svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M8.49928 1.91687e-08C7.14387 0.000115492 5.80814 0.324364 4.60353 0.945694C3.39893 1.56702 2.36037 2.46742 1.57451 3.57175C0.788656 4.67609 0.278287 5.95235 0.0859852 7.29404C-0.106316 8.63574 0.0250263 10.004 0.469055 11.2846C0.913084 12.5652 1.65692 13.7211 2.63851 14.6557C3.6201 15.5904 4.81098 16.2768 6.11179 16.6576C7.4126 17.0384 8.78562 17.1026 10.1163 16.8449C11.447 16.5872 12.6967 16.015 13.7613 15.176L17.4133 18.828C17.6019 19.0102 17.8545 19.111 18.1167 19.1087C18.3789 19.1064 18.6297 19.0012 18.8151 18.8158C19.0005 18.6304 19.1057 18.3796 19.108 18.1174C19.1102 17.8552 19.0094 17.6026 18.8273 17.414L15.1753 13.762C16.1633 12.5086 16.7784 11.0024 16.9504 9.41573C17.1223 7.82905 16.8441 6.22602 16.1475 4.79009C15.4509 3.35417 14.3642 2.14336 13.0116 1.29623C11.659 0.449106 10.0952 -0.000107143 8.49928 1.91687e-08ZM1.99928 8.5C1.99928 6.77609 2.6841 5.12279 3.90308 3.90381C5.12207 2.68482 6.77537 2 8.49928 2C10.2232 2 11.8765 2.68482 13.0955 3.90381C14.3145 5.12279 14.9993 6.77609 14.9993 8.5C14.9993 10.2239 14.3145 11.8772 13.0955 13.0962C11.8765 14.3152 10.2232 15 8.49928 15C6.77537 15 5.12207 14.3152 3.90308 13.0962C2.6841 11.8772 1.99928 10.2239 1.99928 8.5Z" fill="#09244B"/>
|
||||
</svg>
|
||||
</button>
|
||||
</ul>
|
||||
<ul class="ser_ul_pd pt20">
|
||||
<li class="font-B">많이 검색된 키워드</li>
|
||||
<li class="mt-5">
|
||||
<?php echo popular("theme/rb.basic", 5); // 인기검색어 ?>
|
||||
</li>
|
||||
</ul>
|
||||
<ul class="ser_ul_pd">
|
||||
<li class="font-B mt-5">검색조건</li>
|
||||
<li class="mt-10">
|
||||
<select name="sfl" id="sfl" class="select w40">
|
||||
<option value="wr_subject||wr_content"<?php echo get_selected($sfl, "wr_subject||wr_content") ?>>제목+내용</option>
|
||||
<option value="wr_subject"<?php echo get_selected($sfl, "wr_subject") ?>>제목</option>
|
||||
<option value="wr_content"<?php echo get_selected($sfl, "wr_content") ?>>내용</option>
|
||||
<option value="mb_id"<?php echo get_selected($sfl, "mb_id") ?>>회원아이디</option>
|
||||
<option value="wr_name"<?php echo get_selected($sfl, "wr_name") ?>>이름</option>
|
||||
</select>
|
||||
|
||||
<input type="radio" value="and" <?php echo ($sop == "and") ? "checked" : ""; ?> id="sop_and" name="sop">
|
||||
<label for="sop_and">and</label>
|
||||
<input type="radio" value="or" <?php echo ($sop == "or") ? "checked" : ""; ?> id="sop_or" name="sop" >
|
||||
<label for="sop_or">or</label>
|
||||
</li>
|
||||
|
||||
</ul>
|
||||
</form>
|
||||
</div>
|
||||
|
||||
<script>
|
||||
function fsearchbox_submit(f) //검색
|
||||
{
|
||||
var stx = f.stx.value.trim();
|
||||
if (stx.length < 2) {
|
||||
alert("검색어는 두글자 이상 입력해주세요.");
|
||||
f.stx.select();
|
||||
f.stx.focus();
|
||||
return false;
|
||||
}
|
||||
|
||||
// 검색에 많은 부하가 걸리는 경우 이 주석을 제거하세요.
|
||||
var cnt = 0;
|
||||
for (var i = 0; i < stx.length; i++) {
|
||||
if (stx.charAt(i) == ' ')
|
||||
cnt++;
|
||||
}
|
||||
|
||||
if (cnt > 1) {
|
||||
alert("빠른 검색을 위해 공백은 한번만 입력할 수 있어요.");
|
||||
f.stx.select();
|
||||
f.stx.focus();
|
||||
return false;
|
||||
}
|
||||
f.stx.value = stx;
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
//검색창
|
||||
$(document).ready(function() {
|
||||
var isSearchBoxVisible = false;
|
||||
|
||||
$('#search_top_btn').click(function(event) {
|
||||
event.stopPropagation(); // Prevent click event from propagating to document
|
||||
isSearchBoxVisible = !isSearchBoxVisible;
|
||||
if (isSearchBoxVisible) {
|
||||
$('#search_box_wrap').show();
|
||||
$('#search_top_btn').addClass('ser_open');
|
||||
$('#ser_inp_fc').focus();
|
||||
|
||||
} else {
|
||||
$('#search_box_wrap').hide();
|
||||
$('#search_top_btn').removeClass('ser_open');
|
||||
}
|
||||
});
|
||||
|
||||
$(document).click(function() {
|
||||
if (isSearchBoxVisible) {
|
||||
$('#search_box_wrap').hide();
|
||||
$('#search_top_btn').removeClass('ser_open');
|
||||
isSearchBoxVisible = false;
|
||||
}
|
||||
});
|
||||
|
||||
$('#search_box_wrap').click(function(event) {
|
||||
event.stopPropagation(); // Prevent click event from propagating to document
|
||||
});
|
||||
|
||||
$('.ser_label').click(function() {
|
||||
var dataKey = $(this).attr('data-key');
|
||||
$('#ser_inp_fc').val(dataKey);
|
||||
});
|
||||
});
|
||||
</script>
|
||||
|
||||
|
||||
<div class="cb"></div>
|
||||
</li>
|
||||
<li class="member_info_wrap">
|
||||
<?php if($is_member) { ?>
|
||||
<a href="<?php echo G5_BBS_URL ?>/member_confirm.php?url=<?php echo G5_BBS_URL ?>/register_form.php" class="font-B notranslate"><?php echo $member['mb_nick'] ?></a> <a href="<?php echo G5_BBS_URL; ?>/point.php" target="_blank" class="win_point"><span class="font-H"><?php echo number_format($member['mb_point']); ?> P</span></a>
|
||||
<?php } ?>
|
||||
</li>
|
||||
<li class="my_btn_wrap">
|
||||
<?php if($is_member) { ?>
|
||||
<button type="button" alt="로그아웃" class="btn_round" onclick="location.href='<?php echo G5_BBS_URL ?>/logout.php';">로그아웃</button>
|
||||
<button type="button" alt="마이페이지" class="btn_round arr_bg font-B" onclick="location.href='<?php echo G5_URL; ?>/rb/home.php?mb_id=<?php echo $member['mb_id']; ?>';">My</button>
|
||||
<?php } else { ?>
|
||||
<button type="button" alt="로그인" class="btn_round" onclick="location.href='<?php echo G5_BBS_URL ?>/login.php?url=<?php echo urlencode(getCurrentUrl()); ?>';">로그인</button>
|
||||
<button type="button" alt="회원가입" class="btn_round arr_bg font-B" onclick="location.href='<?php echo G5_BBS_URL ?>/register.php';">회원가입</button>
|
||||
<?php } ?>
|
||||
</li>
|
||||
|
||||
<div class="cb"></li>
|
||||
</ul>
|
||||
<!-- } -->
|
||||
|
||||
<div class="cb"></div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- } -->
|
||||
</header>
|
||||
<!-- } -->
|
||||
@@ -0,0 +1 @@
|
||||
/* 레이아웃 CSS */
|
||||
@@ -0,0 +1,249 @@
|
||||
<?php
|
||||
if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가
|
||||
|
||||
// 레이아웃 폴더내 style.css 파일
|
||||
add_stylesheet('<link rel="stylesheet" href="'.G5_THEME_URL.'/rb.layout_hd/'.$rb_core['layout_hd'].'/style.css?ver='.G5_TIME_YMDHIS.'">', 0);
|
||||
|
||||
?>
|
||||
<!--
|
||||
<header id="header">내용</header>
|
||||
<header>는 반드시 포함해주세요.
|
||||
-->
|
||||
|
||||
<!-- 헤더 { -->
|
||||
<header id="header">
|
||||
|
||||
<!-- GNB { -->
|
||||
<div class="gnb_wrap">
|
||||
|
||||
<div class="inner" style="width:<?php echo $tb_width_inner ?>; <?php echo $tb_width_padding ?>">
|
||||
|
||||
<!-- 토글메뉴 { -->
|
||||
<ul class="tog_wrap mobile">
|
||||
<li>
|
||||
<button type="button" alt="메뉴열기" id="tog_gnb_mobile">
|
||||
<svg width="18" height="16" viewBox="0 0 18 16" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M17 14C17.2549 14.0003 17.5 14.0979 17.6854 14.2728C17.8707 14.4478 17.9822 14.687 17.9972 14.9414C18.0121 15.1958 17.9293 15.4464 17.7657 15.6418C17.6021 15.8373 17.3701 15.9629 17.117 15.993L17 16H1C0.74512 15.9997 0.499968 15.9021 0.314632 15.7272C0.129296 15.5522 0.017765 15.313 0.00282788 15.0586C-0.0121092 14.8042 0.0706746 14.5536 0.234265 14.3582C0.397855 14.1627 0.629904 14.0371 0.883 14.007L1 14H17ZM17 7C17.2652 7 17.5196 7.10536 17.7071 7.29289C17.8946 7.48043 18 7.73478 18 8C18 8.26522 17.8946 8.51957 17.7071 8.70711C17.5196 8.89464 17.2652 9 17 9H1C0.734784 9 0.48043 8.89464 0.292893 8.70711C0.105357 8.51957 0 8.26522 0 8C0 7.73478 0.105357 7.48043 0.292893 7.29289C0.48043 7.10536 0.734784 7 1 7H17ZM17 0C17.2652 0 17.5196 0.105357 17.7071 0.292893C17.8946 0.48043 18 0.734784 18 1C18 1.26522 17.8946 1.51957 17.7071 1.70711C17.5196 1.89464 17.2652 2 17 2H1C0.734784 2 0.48043 1.89464 0.292893 1.70711C0.105357 1.51957 0 1.26522 0 1C0 0.734784 0.105357 0.48043 0.292893 0.292893C0.48043 0.105357 0.734784 0 1 0H17Z" fill="#09244B"/>
|
||||
</svg>
|
||||
</button>
|
||||
|
||||
<script>
|
||||
$(document).ready(function() {
|
||||
$('#tog_gnb_mobile').click(function() {
|
||||
$('#cbp-hrmenu-btm').addClass('active');
|
||||
$('#m_gnb_close_btn').addClass('active');
|
||||
$('main').addClass('moves');
|
||||
$('header').addClass('moves');
|
||||
});
|
||||
});
|
||||
</script>
|
||||
</li>
|
||||
</ul>
|
||||
<!-- } -->
|
||||
|
||||
<!-- 로고 { -->
|
||||
<ul class="logo_wrap">
|
||||
<li>
|
||||
<a href="<?php echo G5_URL ?>" alt="<?php echo $config['cf_title']; ?>">
|
||||
|
||||
<picture id="logo_img">
|
||||
|
||||
<?php if (!empty($rb_builder['bu_logo_mo']) && !empty($rb_builder['bu_logo_mo_w'])) { ?>
|
||||
<source id="sourceSmall" srcset="<?php echo G5_URL ?>/data/logos/mo?ver=<?php echo G5_SERVER_TIME ?>" media="(max-width: 1024px)">
|
||||
<?php } else { ?>
|
||||
<source id="sourceSmall" srcset="<?php echo G5_THEME_URL ?>/rb.img/logos/mo.png?ver=<?php echo G5_SERVER_TIME ?>" media="(max-width: 1024px)">
|
||||
<?php } ?>
|
||||
|
||||
<?php if (!empty($rb_builder['bu_logo_pc']) && !empty($rb_builder['bu_logo_pc_w'])) { ?>
|
||||
<source id="sourceLarge" srcset="<?php echo G5_URL ?>/data/logos/pc?ver=<?php echo G5_SERVER_TIME ?>" media="(min-width: 1025px)">
|
||||
<?php } else { ?>
|
||||
<source id="sourceLarge" srcset="<?php echo G5_THEME_URL ?>/rb.img/logos/pc.png?ver=<?php echo G5_SERVER_TIME ?>" media="(max-width: 1024px)">
|
||||
<?php } ?>
|
||||
|
||||
<?php if (!empty($rb_builder['bu_logo_pc']) && !empty($rb_builder['bu_logo_pc_w'])) { ?>
|
||||
<img id="fallbackImage" src="<?php echo G5_URL ?>/data/logos/pc?ver=<?php echo G5_SERVER_TIME ?>" alt="<?php echo $config['cf_title']; ?>" class="responsive-image">
|
||||
<?php } else { ?>
|
||||
<img id="fallbackImage" src="<?php echo G5_THEME_URL ?>/rb.img/logos/pc.png?ver=<?php echo G5_SERVER_TIME ?>" alt="<?php echo $config['cf_title']; ?>" class="responsive-image">
|
||||
<?php } ?>
|
||||
|
||||
</picture>
|
||||
|
||||
</a>
|
||||
|
||||
</li>
|
||||
</ul>
|
||||
<!-- } -->
|
||||
|
||||
|
||||
<!-- 퀵메뉴 { -->
|
||||
<ul class="snb_wrap">
|
||||
<li class="qm_wrap">
|
||||
|
||||
<?php if($is_member) { ?>
|
||||
|
||||
<a href="<?php echo G5_BBS_URL ?>/scrap.php" target="_blank" id="ol_after_scrap" class="win_scrap" alt="스크랩">
|
||||
|
||||
<svg width="18" height="18" viewBox="0 0 18 18" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M12.8683 0.586248C12.5278 0.245586 12.0759 0.0392126 11.5955 0.00504274C11.1151 -0.0291271 10.6385 0.111202 10.2533 0.400248L7.34029 2.58525C6.13019 3.49303 4.7108 4.08115 3.21329 4.29525L1.03629 4.60525C0.306288 4.71025 -0.228712 5.49625 0.123288 6.26725C0.454288 6.99025 1.50829 8.89625 4.48329 11.9872L0.305288 16.1652C0.209778 16.2575 0.133596 16.3678 0.0811869 16.4898C0.0287779 16.6118 0.00119157 16.7431 3.77567e-05 16.8758C-0.00111606 17.0086 0.0241857 17.1403 0.0744666 17.2632C0.124747 17.3861 0.199001 17.4977 0.292893 17.5916C0.386786 17.6855 0.498438 17.7598 0.621334 17.8101C0.744231 17.8604 0.87591 17.8857 1.00869 17.8845C1.14147 17.8833 1.27269 17.8558 1.39469 17.8033C1.5167 17.7509 1.62704 17.6748 1.71929 17.5792L5.89729 13.4012C8.98829 16.3762 10.8943 17.4302 11.6173 17.7612C12.3873 18.1132 13.1743 17.5782 13.2783 16.8482L13.5893 14.6712C13.8034 13.1737 14.3915 11.7543 15.2993 10.5442L17.4833 7.63125C17.7723 7.24602 17.9127 6.76942 17.8785 6.28902C17.8443 5.80862 17.6379 5.35669 17.2973 5.01625L12.8673 0.586248H12.8683ZM11.4533 2.00125L15.8833 6.43125L13.6993 9.34525C12.5898 10.8242 11.871 12.559 11.6093 14.3892L11.4663 15.3902C10.4863 14.7662 8.86329 13.5532 6.59729 11.2872C4.33329 9.02125 3.11929 7.39925 2.49529 6.41925L3.49529 6.27625C5.3259 6.01471 7.06103 5.29589 8.54029 4.18625L11.4533 2.00125Z" fill="black"/>
|
||||
</svg>
|
||||
|
||||
</a>
|
||||
|
||||
|
||||
<a href="<?php echo G5_BBS_URL ?>/memo.php" alt="쪽지" onclick="win_memo(this.href); return false;">
|
||||
<svg width="18" height="18" viewBox="0 0 18 18" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M15.2715 2.33675L2.67946 6.88975L6.87446 9.31775L10.5735 5.61775C10.7611 5.43024 11.0155 5.32495 11.2808 5.32505C11.5461 5.32514 11.8005 5.43061 11.988 5.61825C12.1755 5.80589 12.2808 6.06033 12.2807 6.3256C12.2806 6.59087 12.1751 6.84524 11.9875 7.03275L8.28746 10.7328L10.7175 14.9268L15.2715 2.33675ZM15.5945 0.0927503C16.7895 -0.34025 17.9475 0.81775 17.5145 2.01275L12.2325 16.6178C11.7985 17.8158 10.1625 17.9618 9.52346 16.8587L6.30646 11.3008L0.748462 8.08375C-0.354538 7.44475 -0.208537 5.80875 0.989463 5.37475L15.5945 0.0927503Z" fill="#09244B"/>
|
||||
</svg>
|
||||
<?php if($memo_not_read > 0) { ?>
|
||||
<span class="font-H"><?php echo $memo_not_read ?></span>
|
||||
<?php } ?>
|
||||
</a>
|
||||
<?php } ?>
|
||||
|
||||
<div class="cb"></div>
|
||||
</li>
|
||||
|
||||
<li class="member_info_wrap">
|
||||
<?php if($is_member) { ?>
|
||||
<a href="<?php echo G5_BBS_URL ?>/member_confirm.php?url=<?php echo G5_BBS_URL ?>/register_form.php" class="font-B notranslate"><?php echo $member['mb_nick'] ?></a> <a href="<?php echo G5_BBS_URL; ?>/point.php" target="_blank" class="win_point"><span class="font-H"><?php echo number_format($member['mb_point']); ?> P</span></a>
|
||||
<?php } ?>
|
||||
</li>
|
||||
<li class="my_btn_wrap">
|
||||
<?php if($is_member) { ?>
|
||||
<button type="button" alt="로그아웃" class="btn_round" onclick="location.href='<?php echo G5_BBS_URL ?>/logout.php';">로그아웃</button>
|
||||
<button type="button" alt="마이페이지" class="btn_round arr_bg font-B" onclick="location.href='<?php echo G5_URL; ?>/rb/home.php?mb_id=<?php echo $member['mb_id']; ?>';">My</button>
|
||||
<?php } else { ?>
|
||||
<button type="button" alt="로그인" class="btn_round" onclick="location.href='<?php echo G5_BBS_URL ?>/login.php?url=<?php echo urlencode(getCurrentUrl()); ?>';">로그인</button>
|
||||
<button type="button" alt="회원가입" class="btn_round arr_bg font-B" onclick="location.href='<?php echo G5_BBS_URL ?>/register.php';">회원가입</button>
|
||||
<?php } ?>
|
||||
</li>
|
||||
|
||||
<div class="cb"></li>
|
||||
</ul>
|
||||
<!-- } -->
|
||||
|
||||
<div class="mobile_cb"></div>
|
||||
|
||||
<!-- 검색 { -->
|
||||
<ul class="search_top_wrap">
|
||||
<form name="fsearchbox" method="get" action="<?php echo G5_BBS_URL ?>/search.php" onsubmit="return fsearchbox_submit(this);">
|
||||
<div class="search_top_wrap_inner">
|
||||
<input type="hidden" name="sfl" value="wr_subject||wr_content">
|
||||
<input type="hidden" name="sop" value="and">
|
||||
|
||||
<input type="text" value="" name="stx" class="font-B" placeholder="통합검색" maxlength="20">
|
||||
<button type="submit">
|
||||
<svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M8.49928 1.91687e-08C7.14387 0.000115492 5.80814 0.324364 4.60353 0.945694C3.39893 1.56702 2.36037 2.46742 1.57451 3.57175C0.788656 4.67609 0.278287 5.95235 0.0859852 7.29404C-0.106316 8.63574 0.0250263 10.004 0.469055 11.2846C0.913084 12.5652 1.65692 13.7211 2.63851 14.6557C3.6201 15.5904 4.81098 16.2768 6.11179 16.6576C7.4126 17.0384 8.78562 17.1026 10.1163 16.8449C11.447 16.5872 12.6967 16.015 13.7613 15.176L17.4133 18.828C17.6019 19.0102 17.8545 19.111 18.1167 19.1087C18.3789 19.1064 18.6297 19.0012 18.8151 18.8158C19.0005 18.6304 19.1057 18.3796 19.108 18.1174C19.1102 17.8552 19.0094 17.6026 18.8273 17.414L15.1753 13.762C16.1633 12.5086 16.7784 11.0024 16.9504 9.41573C17.1223 7.82905 16.8441 6.22602 16.1475 4.79009C15.4509 3.35417 14.3642 2.14336 13.0116 1.29623C11.659 0.449106 10.0952 -0.000107143 8.49928 1.91687e-08ZM1.99928 8.5C1.99928 6.77609 2.6841 5.12279 3.90308 3.90381C5.12207 2.68482 6.77537 2 8.49928 2C10.2232 2 11.8765 2.68482 13.0955 3.90381C14.3145 5.12279 14.9993 6.77609 14.9993 8.5C14.9993 10.2239 14.3145 11.8772 13.0955 13.0962C11.8765 14.3152 10.2232 15 8.49928 15C6.77537 15 5.12207 14.3152 3.90308 13.0962C2.6841 11.8772 1.99928 10.2239 1.99928 8.5Z" fill="#09244B"/>
|
||||
</svg>
|
||||
</button>
|
||||
</div>
|
||||
</form>
|
||||
|
||||
<script>
|
||||
function fsearchbox_submit(f) //검색
|
||||
{
|
||||
var stx = f.stx.value.trim();
|
||||
if (stx.length < 2) {
|
||||
alert("검색어는 두글자 이상 입력해주세요.");
|
||||
f.stx.select();
|
||||
f.stx.focus();
|
||||
return false;
|
||||
}
|
||||
|
||||
// 검색에 많은 부하가 걸리는 경우 이 주석을 제거하세요.
|
||||
var cnt = 0;
|
||||
for (var i = 0; i < stx.length; i++) {
|
||||
if (stx.charAt(i) == ' ')
|
||||
cnt++;
|
||||
}
|
||||
|
||||
if (cnt > 1) {
|
||||
alert("빠른 검색을 위해 공백은 한번만 입력할 수 있어요.");
|
||||
f.stx.select();
|
||||
f.stx.focus();
|
||||
return false;
|
||||
}
|
||||
f.stx.value = stx;
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
</script>
|
||||
</ul>
|
||||
<!-- } -->
|
||||
|
||||
<div class="cb"></div>
|
||||
</div>
|
||||
|
||||
<div class="rows_gnb_wrap">
|
||||
<div class="inner row_gnbs" style="width:<?php echo $tb_width_inner ?>; <?php echo $tb_width_padding ?>">
|
||||
<nav id="cbp-hrmenu" class="cbp-hrmenu pc">
|
||||
<ul>
|
||||
<?php
|
||||
if(IS_MOBILE()) {
|
||||
$menu_datas = get_menu_db(1, true);
|
||||
} else {
|
||||
$menu_datas = get_menu_db(0, true);
|
||||
}
|
||||
|
||||
$gnb_zindex = 999; // gnb_1dli z-index 값 설정용
|
||||
$i = 0;
|
||||
foreach ($menu_datas as $row) {
|
||||
if (empty($row)) continue;
|
||||
|
||||
// 1차 메뉴 권한 체크
|
||||
if (!$is_admin && isset($row['me_level']) && $row['me_level'] > 0) {
|
||||
if (isset($row['me_level_opt']) && $row['me_level_opt'] == 2) {
|
||||
if ($row['me_level'] != $member['mb_level']) continue;
|
||||
} else {
|
||||
if ($row['me_level'] > $member['mb_level']) continue;
|
||||
}
|
||||
}
|
||||
?>
|
||||
<li>
|
||||
<a href="<?php echo $row['me_link']; ?>" target="_<?php echo $row['me_target']; ?>" class="font-B"><?php echo $row['me_name'] ?></a>
|
||||
<?php
|
||||
$k = 0;
|
||||
foreach ((array) $row['sub'] as $row2) {
|
||||
if (empty($row2)) continue;
|
||||
|
||||
// 2차 메뉴 권한 체크
|
||||
if (!$is_admin && isset($row2['me_level']) && $row2['me_level'] > 0) {
|
||||
if (isset($row2['me_level_opt']) && $row2['me_level_opt'] == 2) {
|
||||
if ($row2['me_level'] != $member['mb_level']) continue;
|
||||
} else {
|
||||
if ($row2['me_level'] > $member['mb_level']) continue;
|
||||
}
|
||||
}
|
||||
|
||||
if ($k == 0)
|
||||
echo '<div class="cbp-hrsub"><div class="cbp-hrsub-inner"><div><!--<h4 class="font-B">그룹</h4>--><ul>' . PHP_EOL;
|
||||
?>
|
||||
<li><a href="<?php echo $row2['me_link']; ?>" target="_<?php echo $row2['me_target']; ?>"><?php echo $row2['me_name'] ?></a></li>
|
||||
<?php
|
||||
$k++;
|
||||
}
|
||||
|
||||
if ($k > 0)
|
||||
echo '</ul></div></div></div>' . PHP_EOL;
|
||||
?>
|
||||
</li>
|
||||
<?php
|
||||
$i++;
|
||||
}
|
||||
|
||||
if ($i == 0) {
|
||||
?>
|
||||
<li><a href="javascript:void(0);">메뉴 준비 중입니다.</a></li>
|
||||
<?php } ?>
|
||||
</ul>
|
||||
</nav>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<!-- } -->
|
||||
</header>
|
||||
<!-- } -->
|
||||
@@ -0,0 +1,43 @@
|
||||
/* 레이아웃 CSS */
|
||||
.rows_gnb_wrap {border-top:1px solid rgba(255,255,255,0.2); padding-top: 10px; margin-top: 20px;}
|
||||
.row_gnbs {position: relative;}
|
||||
.row_gnbs .cbp-hrmenu > ul, .cbp-hrmenu .cbp-hrsub-inner {padding-left: 0px; padding-right: 0px;}
|
||||
.row_gnbs .cbp-hrmenu > ul > li {padding-left: 0px; padding-right: 30px;}
|
||||
.row_gnbs .cbp-hrmenu > ul {float:none !important; line-height: 100%;}
|
||||
.gnb_wrap .row_gnbs nav {float:none;}
|
||||
.row_gnbs .cbp-hrmenu .cbp-hrsub {top:40px;}
|
||||
|
||||
.search_top_wrap {float:left; position: relative; width: 280px;}
|
||||
.search_top_wrap input {border:0px; background-color: #fff; border-radius: 60px; height:40px; width: 100%; color:#000;}
|
||||
.search_top_wrap input::placeholder{font-family:'font-R',sans-serif; color:#999;}
|
||||
.search_top_wrap button {position: absolute; top:11px; right:15px;}
|
||||
.search_top_wrap input:focus {border:0px !important;}
|
||||
.search_top_wrap_inner {position: relative;}
|
||||
|
||||
/* 게시판 fixed 버튼 위치조정 */
|
||||
.rb_bbs_wrap .btns_gr_wrap {top:185px !important;}
|
||||
|
||||
.co_header0 .rows_gnb_wrap {border-top:1px solid rgba(0,0,0,0.05);}
|
||||
.co_header0 .search_top_wrap input {background-color: rgba(0,0,0,0.05);}
|
||||
.ser_display_none .search_top_wrap_inner {display: none;}
|
||||
|
||||
@media all and (max-width:1024px) {
|
||||
.rows_gnb_wrap {display: none;}
|
||||
.search_top_wrap {width: 30%;}
|
||||
.gnb_wrap .snb_wrap .qm_wrap a {width: auto; padding-left: 0px; margin-left: 20px;}
|
||||
.gnb_wrap .tog_wrap {margin-right: 20px;}
|
||||
|
||||
/* 1.0.1 { */
|
||||
.mobile_cb {clear: both;}
|
||||
.search_top_wrap {display: block; float:none !important; width: 100%; margin-top: 10px;}
|
||||
.gnb_wrap .snb_wrap .my_btn_wrap {display: block;margin-left: 20px;}
|
||||
.gnb_wrap .snb_wrap .my_btn_wrap .btn_round.arr_bg {display: none;}
|
||||
.gnb_wrap .snb_wrap .my_btn_wrap .btn_round {padding-left: 15px; padding-right: 15px; height:35px;}
|
||||
.gnb_wrap .snb_wrap .qm_wrap a span {left: 10px;}
|
||||
/* } */
|
||||
|
||||
/* 1.1.1 { */
|
||||
.gnb_wrap .inner {padding-left: 0px !important; padding-right: 0px !important;}
|
||||
/* } */
|
||||
|
||||
}
|
||||
@@ -0,0 +1,306 @@
|
||||
<?php
|
||||
if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가
|
||||
|
||||
$header_class = '';
|
||||
if (defined('_INDEX_') && !empty($rb_builder['bu_trans_header'])) {
|
||||
$header_class = 'is-transparent';
|
||||
} else {
|
||||
$header_class = 'is-scrolled';
|
||||
}
|
||||
// 💡 [핵심] PC와 모바일에서 공통으로 사용할 메뉴 데이터를 한 번만 불러옵니다.
|
||||
$menu_tree = get_menu_db(0, false); // PC용 메뉴(0), 캐시 사용(true)
|
||||
$menu_tree_mobile = get_menu_db(1, false); // 모바일용 메뉴(1), 캐시 사용(true)
|
||||
// 레이아웃 폴더내 style.css 파일
|
||||
add_stylesheet('<link rel="stylesheet" href="'.G5_THEME_URL.'/rb.layout_hd/'.$rb_core['layout_hd'].'/style.css?ver='.G5_TIME_YMDHIS.'">', 0);
|
||||
?>
|
||||
|
||||
<!-- Corporate Professional Header -->
|
||||
<!--<header class="main-header --><?php //echo $header_class;?><!--">-->
|
||||
<header id="header" class="corporate-pro-header <?php echo $header_class;?>">
|
||||
<!-- 상단 정보바 -->
|
||||
<div class="top-info-bar">
|
||||
<div class="info-content">
|
||||
<div class="info-left">
|
||||
<span class="info-text">전문적인 솔루션을 제공합니다</span>
|
||||
</div>
|
||||
<div class="info-right">
|
||||
<a href="tel:<?php echo !empty($rb_builder['bu_3']) ? $rb_builder['bu_3'] : '02-1234-5678'; ?>" class="info-link">
|
||||
<svg width="16" height="16" viewBox="0 0 16 16" fill="none">
|
||||
<path d="M3.654 1.328a.678.678 0 0 0-1.015-.063L1.605 2.3c-.483.484-.661 1.169-.45 1.77a17.568 17.568 0 0 0 4.168 6.608 17.569 17.569 0 0 0 6.608 4.168c.601.211 1.286.033 1.77-.45l1.034-1.034a.678.678 0 0 0-.063-1.015l-2.307-1.794a.678.678 0 0 0-.58-.122L9.78 11.376a.678.678 0 0 1-.39-.126l-3.433-2.433a.678.678 0 0 1-.126-.39l.122-2.307a.678.678 0 0 0-.122-.58L3.654 1.328z" fill="currentColor"/>
|
||||
</svg>
|
||||
<?php echo !empty($rb_builder['bu_3']) ? $rb_builder['bu_3'] : '02-1234-5678'; ?>
|
||||
</a>
|
||||
<a href="mailto:<?php echo $config['cf_admin_email'] ?>" class="info-link">
|
||||
<svg width="16" height="16" viewBox="0 0 16 16" fill="none">
|
||||
<path d="M0 4a2 2 0 0 1 2-2h12a2 2 0 0 1 2 2v8a2 2 0 0 1-2 2H2a2 2 0 0 1-2-2V4zm2-1a1 1 0 0 0-1 1v.217l7 4.2 7-4.2V4a1 1 0 0 0-1-1H2zm13 2.383-4.708 2.825L15 11.105V5.383zm-.034 6.876-5.64-3.471L8 9.583l-1.326-.795-5.64 3.47A1 1 0 0 0 2 13h12a1 1 0 0 0 .966-.741zM1 11.105l4.708-2.897L1 5.383v5.722z" fill="currentColor"/>
|
||||
</svg>
|
||||
<?php echo $config['cf_admin_email'] ?>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="header-container">
|
||||
<div class="header-content">
|
||||
<!-- 로고 -->
|
||||
<div class="logo-section">
|
||||
<a href="<?php echo G5_URL ?>" class="logo-link">
|
||||
<?php if (!empty($rb_builder['bu_logo_pc']) && !empty($rb_builder['bu_logo_pc_w'])) { ?>
|
||||
<img src="<?php echo G5_URL ?>/data/logos/pc?ver=<?php echo G5_SERVER_TIME ?>" alt="<?php echo $config['cf_title']; ?>" class="logo-img">
|
||||
<?php } else { ?>
|
||||
<img src="<?php echo G5_THEME_URL ?>/rb.img/logos/pc.png?ver=<?php echo G5_SERVER_TIME ?>" alt="<?php echo $config['cf_title']; ?>" class="logo-img">
|
||||
<?php } ?>
|
||||
</a>
|
||||
</div>
|
||||
|
||||
<!-- 네비게이션 -->
|
||||
<nav class="main-navigation gnb pc-only">
|
||||
<ul class="gnb-list nav-menu">
|
||||
<?php
|
||||
foreach ($menu_tree as $row) {
|
||||
$has_sub = isset($row['sub']) && !empty($row['sub']);
|
||||
echo '<li class="gnb-item' . ($has_sub ? ' has-submenu' : '') . '">';
|
||||
$href = $row['me_link'];
|
||||
if (strpos($href, '#') === 0 && strlen($href) > 1) {
|
||||
$href = G5_URL . $href;
|
||||
}
|
||||
echo '<a href="' . $href . '" target="_' . $row['me_target'] . '" class="gnb-link">' . get_text($row['me_name']) . '</a>';
|
||||
if ($has_sub) {
|
||||
echo '<ul class="sub-menu">';
|
||||
foreach ($row['sub'] as $row2) {
|
||||
$href2 = $row2['me_link'];
|
||||
if (strpos($href2, '#') === 0 && strlen($href2) > 1) {
|
||||
$href2 = G5_URL . $href2;
|
||||
}
|
||||
echo '<li><a href="' . $href2 . '" target="_' . $row2['me_target'] . '">' . get_text($row2['me_name']) . '</a></li>';
|
||||
}
|
||||
echo '</ul>';
|
||||
}
|
||||
echo '</li>';
|
||||
}
|
||||
?>
|
||||
</ul>
|
||||
</nav>
|
||||
<!-- <nav class="main-navigation">-->
|
||||
<!-- <ul class="nav-menu">-->
|
||||
<!-- --><?php
|
||||
// if(IS_MOBILE()) {
|
||||
// $menu_datas = get_menu_db(1, true);
|
||||
// } else {
|
||||
// $menu_datas = get_menu_db(0, true);
|
||||
// }
|
||||
//
|
||||
// $gnb_zindex = 999;
|
||||
// $i = 0;
|
||||
// foreach($menu_datas as $row) {
|
||||
// if(empty($row)) continue;
|
||||
//
|
||||
// if (!$is_admin && isset($row['me_level']) && $row['me_level'] > 0) {
|
||||
// if (isset($row['me_level_opt']) && $row['me_level_opt'] == 2) {
|
||||
// if ($row['me_level'] != $member['mb_level']) continue;
|
||||
// } else {
|
||||
// if ($row['me_level'] > $member['mb_level']) continue;
|
||||
// }
|
||||
// }
|
||||
// ?>
|
||||
<!-- <li class="nav-item">-->
|
||||
<!-- <a href="--><?php //echo $row['me_link']; ?><!--" target="_--><?php //echo $row['me_target']; ?><!--" class="nav-link">--><?php //echo $row['me_name'] ?><!--</a>-->
|
||||
<!-- --><?php
|
||||
// $k = 0;
|
||||
// foreach((array)$row['sub'] as $row2) {
|
||||
// if(empty($row2)) continue;
|
||||
//
|
||||
// if (!$is_admin && isset($row2['me_level']) && $row2['me_level'] > 0) {
|
||||
// if (isset($row2['me_level_opt']) && $row2['me_level_opt'] == 2) {
|
||||
// if ($row2['me_level'] != $member['mb_level']) continue;
|
||||
// } else {
|
||||
// if ($row2['me_level'] > $member['mb_level']) continue;
|
||||
// }
|
||||
// }
|
||||
//
|
||||
// if($k == 0)
|
||||
// echo '<ul class="sub-menu">'.PHP_EOL;
|
||||
// ?>
|
||||
<!-- <li><a href="--><?php //echo $row2['me_link']; ?><!--" target="_--><?php //echo $row2['me_target']; ?><!--" class="sub-link">--><?php //echo $row2['me_name'] ?><!--</a></li>-->
|
||||
<!-- --><?php
|
||||
// $k++;
|
||||
// }
|
||||
//
|
||||
// if($k > 0)
|
||||
// echo '</ul>'.PHP_EOL;
|
||||
// ?>
|
||||
<!-- </li>-->
|
||||
<!-- --><?php
|
||||
// $i++;
|
||||
// }
|
||||
//
|
||||
// if ($i == 0) {
|
||||
// ?>
|
||||
<!-- <li class="nav-item"><a href="javascript:void(0);" class="nav-link">메뉴 준비 중입니다.</a></li>-->
|
||||
<!-- --><?php //} ?>
|
||||
<!-- </ul>-->
|
||||
<!-- </nav>-->
|
||||
|
||||
<!-- 헤더 액션 -->
|
||||
<div class="header-actions">
|
||||
<!-- 검색 -->
|
||||
<div class="search-section">
|
||||
<button type="button" class="search-btn" id="search_btn">
|
||||
<svg width="20" height="20" viewBox="0 0 20 20" fill="none">
|
||||
<path d="M8.5 1C4.36 1 1 4.36 1 8.5S4.36 16 8.5 16c1.84 0 3.52-.65 4.85-1.73L18.5 19.5L19.5 18.5L13.27 12.35C14.35 11.02 15 9.34 15 8.5C15 4.36 11.64 1 8.5 1ZM8.5 14C5.46 14 3 11.54 3 8.5S5.46 3 8.5 3S14 5.46 14 8.5S11.54 14 8.5 14Z" fill="currentColor"/>
|
||||
</svg>
|
||||
</button>
|
||||
</div>
|
||||
|
||||
<!-- 회원 정보 -->
|
||||
<div class="member-section">
|
||||
<?php if($is_member) { ?>
|
||||
<div class="member-info">
|
||||
<span class="member-name"><?php echo $member['mb_nick'] ?></span>
|
||||
<span class="member-point"><?php echo number_format($member['mb_point']); ?>P</span>
|
||||
</div>
|
||||
<div class="member-actions">
|
||||
<a href="<?php echo G5_BBS_URL ?>/memo.php" class="action-btn" onclick="win_memo(this.href); return false;">
|
||||
<svg width="18" height="18" viewBox="0 0 18 18" fill="none">
|
||||
<path d="M15.27 2.34L2.68 6.89L6.87 9.32L10.57 5.62C10.76 5.43 11.02 5.32 11.28 5.32C11.54 5.32 11.8 5.43 11.99 5.62C12.18 5.81 12.28 6.06 12.28 6.33C12.28 6.6 12.18 6.85 11.99 7.03L8.29 10.73L10.72 14.93L15.27 2.34Z" fill="currentColor"/>
|
||||
</svg>
|
||||
<?php if($memo_not_read > 0) { ?>
|
||||
<span class="badge"><?php echo $memo_not_read ?></span>
|
||||
<?php } ?>
|
||||
</a>
|
||||
<a href="<?php echo G5_BBS_URL ?>/logout.php" class="action-btn">로그아웃</a>
|
||||
</div>
|
||||
<?php } else { ?>
|
||||
<div class="auth-actions">
|
||||
<a href="<?php echo G5_BBS_URL ?>/login.php" class="auth-btn login-btn">로그인</a>
|
||||
<a href="<?php echo G5_BBS_URL ?>/register.php" class="auth-btn register-btn">회원가입</a>
|
||||
</div>
|
||||
<?php } ?>
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div id="mobile-nav-panel">
|
||||
<div class="mobile-nav-header">
|
||||
<?php if (!$is_member) { ?>
|
||||
<a href="<?php echo G5_BBS_URL ?>/login.php" class="btn-mobile-login">로그인</a>
|
||||
<a href="<?php echo G5_BBS_URL ?>/register.php" class="btn-mobile-join">회원가입</a>
|
||||
<?php } else { ?>
|
||||
<div class="mobile-user-info">
|
||||
<strong><?php echo $member['mb_nick'] ?></strong> 님, 환영합니다.
|
||||
</div>
|
||||
<?php } ?>
|
||||
<button type="button" id="mobile-menu-close" class="mobile-menu-close-btn" aria-label="전체메뉴 닫기">×</button>
|
||||
</div>
|
||||
<nav class="mobile-gnb">
|
||||
<ul>
|
||||
<?php
|
||||
foreach ($menu_tree_mobile as $row) {
|
||||
$has_sub = isset($row['sub']) && !empty($row['sub']);
|
||||
?>
|
||||
<li>
|
||||
<?php
|
||||
$href = $row['me_link'];
|
||||
if (strpos($href, '#') === 0 && strlen($href) > 1) {
|
||||
$href = G5_URL . $href;
|
||||
}
|
||||
?>
|
||||
<a href="<?php echo $href; ?>" target="_<?php echo $row['me_target']; ?>">
|
||||
<?php echo get_text($row['me_name']); ?>
|
||||
<?php if ($has_sub) echo '<span class="sub-menu-indicator"><i class="fa fa-chevron-down"></i></span>'; ?>
|
||||
</a>
|
||||
<?php
|
||||
if ($has_sub) {
|
||||
echo '<ul class="sub-menu">';
|
||||
foreach ($row['sub'] as $row2) {
|
||||
$href2 = $row2['me_link'];
|
||||
if (strpos($href2, '#') === 0 && strlen($href2) > 1) {
|
||||
$href2 = G5_URL . $href2;
|
||||
}
|
||||
echo '<li><a href="' . $href2 . '" target="_' . $row2['me_target'] . '">' . get_text($row2['me_name']) . '</a></li>';
|
||||
}
|
||||
echo '</ul>';
|
||||
}
|
||||
?>
|
||||
</li>
|
||||
<?php } ?>
|
||||
</ul>
|
||||
</nav>
|
||||
</div>
|
||||
</header>
|
||||
<!--</header>-->
|
||||
<script>
|
||||
document.addEventListener('DOMContentLoaded', function() {
|
||||
// PC/모바일 공통: 헤더 스크롤 효과
|
||||
const header = document.getElementById('header');
|
||||
if (header.classList.contains('is-transparent')) {
|
||||
window.addEventListener('scroll', function() {
|
||||
if (window.scrollY > 50) {
|
||||
header.classList.add('is-scrolled');
|
||||
} else {
|
||||
header.classList.remove('is-scrolled');
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
// PC 전용: 검색창 토글
|
||||
const searchToggleBtn = document.querySelector('.search-toggle-btn');
|
||||
const searchBarWrap = document.getElementById('search-bar-wrap');
|
||||
const searchBarClose = document.querySelector('.search-bar-close');
|
||||
|
||||
if (searchToggleBtn && searchBarWrap) {
|
||||
searchToggleBtn.addEventListener('click', function() {
|
||||
searchBarWrap.classList.add('is-active');
|
||||
document.getElementById('search-bar-input').focus();
|
||||
});
|
||||
}
|
||||
if (searchBarClose && searchBarWrap) {
|
||||
searchBarClose.addEventListener('click', function() {
|
||||
searchBarWrap.classList.remove('is-active');
|
||||
});
|
||||
}
|
||||
|
||||
// 모바일 전용: 메뉴 패널 토글
|
||||
const mobileMenuBtn = document.getElementById('mobile-menu-toggle');
|
||||
const mobileMenuCloseBtn = document.getElementById('mobile-menu-close');
|
||||
const navPanel = document.getElementById('mobile-nav-panel');
|
||||
const overlay = document.getElementById('mobile-nav-overlay');
|
||||
const body = document.body;
|
||||
|
||||
function openMenu() {
|
||||
if (navPanel) navPanel.classList.add('is-active');
|
||||
if (overlay) overlay.classList.add('is-active');
|
||||
body.style.overflow = 'hidden'; // 스크롤 방지
|
||||
}
|
||||
|
||||
function closeMenu() {
|
||||
if (navPanel) navPanel.classList.remove('is-active');
|
||||
if (overlay) overlay.classList.remove('is-active');
|
||||
body.style.overflow = ''; // 스크롤 복원
|
||||
}
|
||||
|
||||
if (mobileMenuBtn) mobileMenuBtn.addEventListener('click', openMenu);
|
||||
if (mobileMenuCloseBtn) mobileMenuCloseBtn.addEventListener('click', closeMenu);
|
||||
if (overlay) overlay.addEventListener('click', closeMenu);
|
||||
|
||||
// 모바일 전용: 서브메뉴 토글
|
||||
const subMenuIndicators = document.querySelectorAll('.mobile-gnb .sub-menu-indicator');
|
||||
subMenuIndicators.forEach(indicator => {
|
||||
indicator.addEventListener('click', function(e) {
|
||||
e.preventDefault();
|
||||
e.stopPropagation();
|
||||
const subMenu = this.closest('li').querySelector('.sub-menu');
|
||||
if (subMenu) {
|
||||
const isVisible = subMenu.style.display === 'block';
|
||||
subMenu.style.display = isVisible ? 'none' : 'block';
|
||||
this.querySelector('i').classList.toggle('fa-chevron-up', !isVisible);
|
||||
this.querySelector('i').classList.toggle('fa-chevron-down', isVisible);
|
||||
}
|
||||
});
|
||||
});
|
||||
});
|
||||
</script>
|
||||
|
||||
@@ -0,0 +1,165 @@
|
||||
/* ==========================================================================
|
||||
Corporate Pro Header Style - 최종 수정본
|
||||
========================================================================== */
|
||||
|
||||
/* --------------------------------------------------------------------------
|
||||
1. 기본 구조 및 겹침 문제 해결
|
||||
-------------------------------------------------------------------------- */
|
||||
#header.corporate-pro-header {
|
||||
position: relative !important; /* 💡 공통 CSS 덮어쓰기 */
|
||||
z-index: 100;
|
||||
background-color: #fff;
|
||||
box-shadow: 0 2px 10px rgba(0,0,0,0.05);
|
||||
}
|
||||
|
||||
/* --------------------------------------------------------------------------
|
||||
2. 상단 정보 바
|
||||
-------------------------------------------------------------------------- */
|
||||
.corporate-pro-header .top-info-bar {
|
||||
background-color: #f8f9fa;
|
||||
padding: 8px 20px;
|
||||
border-bottom: 1px solid #f0f0f0;
|
||||
}
|
||||
|
||||
.corporate-pro-header .info-content {
|
||||
max-width: 1400px;
|
||||
margin: 0 auto;
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.corporate-pro-header .info-right {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 24px;
|
||||
}
|
||||
|
||||
.corporate-pro-header .info-link {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 8px;
|
||||
font-size: 13px;
|
||||
color: #555;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
/* --------------------------------------------------------------------------
|
||||
3. 메인 헤더 (로고, 메뉴, 액션)
|
||||
-------------------------------------------------------------------------- */
|
||||
.corporate-pro-header .header-container {
|
||||
max-width: 1400px;
|
||||
margin: 0 auto;
|
||||
}
|
||||
|
||||
.corporate-pro-header .header-content {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
height: 80px;
|
||||
padding: 0 20px;
|
||||
}
|
||||
|
||||
.corporate-pro-header .logo-img {
|
||||
max-height: 35px;
|
||||
}
|
||||
|
||||
/* --------------------------------------------------------------------------
|
||||
4. 데스크탑 메뉴 (GNB)
|
||||
-------------------------------------------------------------------------- */
|
||||
.corporate-pro-header .gnb {
|
||||
flex-grow: 1;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
}
|
||||
|
||||
.corporate-pro-header .gnb-list {
|
||||
display: flex;
|
||||
list-style: none;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
gap: 50px;
|
||||
}
|
||||
|
||||
.corporate-pro-header .gnb-item {
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.corporate-pro-header .gnb-link {
|
||||
display: block;
|
||||
padding: 15px 0;
|
||||
font-size: 17px;
|
||||
font-weight: 600;
|
||||
color: #333;
|
||||
text-decoration: none;
|
||||
position: relative;
|
||||
transition: color 0.3s;
|
||||
}
|
||||
|
||||
.corporate-pro-header .gnb-link:after {
|
||||
content: '';
|
||||
position: absolute;
|
||||
bottom: 10px;
|
||||
left: 50%;
|
||||
width: 0;
|
||||
height: 2px;
|
||||
background-color: #0056b3;
|
||||
transition: all 0.3s;
|
||||
transform: translateX(-50%);
|
||||
}
|
||||
|
||||
.corporate-pro-header .gnb-item:hover > .gnb-link,
|
||||
.corporate-pro-header .gnb-link:hover {
|
||||
color: #0056b3;
|
||||
}
|
||||
|
||||
.corporate-pro-header .gnb-item:hover > .gnb-link:after {
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
/* 2차 메뉴 */
|
||||
.corporate-pro-header .sub-menu {
|
||||
display: none;
|
||||
position: absolute;
|
||||
top: 100%;
|
||||
left: 50%;
|
||||
transform: translateX(-50%);
|
||||
min-width: 200px;
|
||||
background: #fff;
|
||||
border: 1px solid #f0f0f0;
|
||||
box-shadow: 0 8px 20px rgba(0,0,0,0.08);
|
||||
padding: 10px 0;
|
||||
z-index: 101;
|
||||
border-radius: 5px;
|
||||
}
|
||||
|
||||
.corporate-pro-header .gnb-item:hover .sub-menu {
|
||||
display: block;
|
||||
}
|
||||
|
||||
.corporate-pro-header .sub-menu a {
|
||||
display: block;
|
||||
padding: 12px 25px;
|
||||
font-size: 15px;
|
||||
color: #555;
|
||||
text-decoration: none;
|
||||
white-space: nowrap;
|
||||
transition: all 0.2s;
|
||||
}
|
||||
|
||||
.corporate-pro-header .sub-menu a:hover {
|
||||
background-color: #f8f9fa;
|
||||
color: #0056b3;
|
||||
}
|
||||
|
||||
/* --------------------------------------------------------------------------
|
||||
5. 모바일 메뉴
|
||||
-------------------------------------------------------------------------- */
|
||||
.corporate-pro-header .mobile-menu-btn {
|
||||
display: none;
|
||||
}
|
||||
#mobile-nav-panel {
|
||||
display: none; /* 모바일 패널은 JS로 제어 */
|
||||
}
|
||||
|
||||
|
||||
@@ -0,0 +1,66 @@
|
||||
<?php
|
||||
if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가
|
||||
|
||||
// 이 레이아웃 전용 CSS 파일을 불러옵니다.
|
||||
add_stylesheet('<link rel="stylesheet" href="'.G5_THEME_URL.'/rb.layout_hd/creative_portfolio/style.css?ver='.G5_SERVER_TIME.'">', 0);
|
||||
|
||||
// 메뉴 데이터 가져오기
|
||||
$menu_datas = get_menu_db(0, true);
|
||||
?>
|
||||
|
||||
<header id="header" class="creative-portfolio-header">
|
||||
<div class="header-container">
|
||||
<div class="logo-section">
|
||||
<a href="<?php echo G5_URL; ?>" class="logo-link">
|
||||
<img src="<?php echo G5_THEME_URL; ?>/img/logo.png" alt="<?php echo $config['cf_title']; ?>" class="logo-img">
|
||||
</a>
|
||||
</div>
|
||||
|
||||
<!-- 데스크탑 네비게이션 -->
|
||||
<nav class="main-navigation">
|
||||
<ul class="nav-menu">
|
||||
<?php foreach ($menu_datas as $row) { ?>
|
||||
<li class="nav-item <?php echo (isset($row['sub']) && count($row['sub']) > 0) ? 'has-sub' : ''; ?>">
|
||||
<a href="<?php echo $row['me_link']; ?>" target="_<?php echo $row['me_target']; ?>" class="nav-link">
|
||||
<?php echo $row['me_name'] ?>
|
||||
</a>
|
||||
<?php if (isset($row['sub']) && count($row['sub']) > 0) { ?>
|
||||
<ul class="sub-menu">
|
||||
<?php foreach ($row['sub'] as $sub) { ?>
|
||||
<li>
|
||||
<a href="<?php echo $sub['me_link']; ?>" target="_<?php echo $sub['me_target']; ?>" class="sub-link">
|
||||
<?php echo $sub['me_name'] ?>
|
||||
</a>
|
||||
</li>
|
||||
<?php } ?>
|
||||
</ul>
|
||||
<?php } ?>
|
||||
</li>
|
||||
<?php } ?>
|
||||
</ul>
|
||||
</nav>
|
||||
|
||||
<div class="header-actions">
|
||||
<!-- 모바일 메뉴 토글 버튼 -->
|
||||
<button type="button" class="mobile-menu-toggle">
|
||||
<span></span>
|
||||
<span></span>
|
||||
<span></span>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</header>
|
||||
|
||||
<!-- 모바일 메뉴 패널 (공통 구조) -->
|
||||
<div class="mobile-nav-panel">
|
||||
<div class="mobile-nav-header">
|
||||
<a href="<?php echo G5_URL; ?>" class="mobile-logo">
|
||||
<img src="<?php echo G5_THEME_URL; ?>/img/logo.png" alt="<?php echo $config['cf_title']; ?>">
|
||||
</a>
|
||||
<button type="button" class="mobile-menu-close">×</button>
|
||||
</div>
|
||||
<nav class="mobile-navigation">
|
||||
<!-- 모바일 메뉴 내용은 공통 JS에서 자동으로 채웁니다. -->
|
||||
</nav>
|
||||
</div>
|
||||
<div class="mobile-nav-overlay"></div>
|
||||
@@ -0,0 +1,103 @@
|
||||
/* Creative Portfolio Header Style */
|
||||
|
||||
.creative-portfolio-header {
|
||||
background-color: #fff;
|
||||
border-bottom: 1px solid #eee;
|
||||
padding: 20px 0;
|
||||
position: relative;
|
||||
z-index: 100;
|
||||
}
|
||||
|
||||
.creative-portfolio-header .header-container {
|
||||
max-width: 1400px;
|
||||
margin: 0 auto;
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
padding: 0 20px;
|
||||
}
|
||||
|
||||
.creative-portfolio-header .logo-img {
|
||||
max-height: 40px;
|
||||
}
|
||||
|
||||
/* 네비게이션 스타일 */
|
||||
.creative-portfolio-header .main-navigation .nav-menu {
|
||||
display: flex;
|
||||
list-style: none;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
gap: 30px;
|
||||
}
|
||||
|
||||
.creative-portfolio-header .nav-item {
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.creative-portfolio-header .nav-link {
|
||||
display: block;
|
||||
padding: 10px 0;
|
||||
font-size: 16px;
|
||||
font-weight: 500;
|
||||
color: #333;
|
||||
text-decoration: none;
|
||||
transition: color 0.3s;
|
||||
}
|
||||
|
||||
.creative-portfolio-header .nav-link:hover,
|
||||
.creative-portfolio-header .nav-item:hover .nav-link {
|
||||
color: #0056b3;
|
||||
}
|
||||
|
||||
/* 서브 메뉴 스타일 */
|
||||
.creative-portfolio-header .sub-menu {
|
||||
display: none;
|
||||
position: absolute;
|
||||
top: 100%;
|
||||
left: 0;
|
||||
min-width: 180px;
|
||||
background: #fff;
|
||||
border: 1px solid #eee;
|
||||
box-shadow: 0 5px 15px rgba(0,0,0,0.1);
|
||||
padding: 10px 0;
|
||||
z-index: 101;
|
||||
}
|
||||
|
||||
.creative-portfolio-header .nav-item:hover .sub-menu {
|
||||
display: block;
|
||||
}
|
||||
|
||||
.creative-portfolio-header .sub-link {
|
||||
display: block;
|
||||
padding: 10px 20px;
|
||||
font-size: 14px;
|
||||
color: #666;
|
||||
text-decoration: none;
|
||||
transition: background-color 0.2s, color 0.2s;
|
||||
}
|
||||
|
||||
.creative-portfolio-header .sub-link:hover {
|
||||
background-color: #f8f9fa;
|
||||
color: #0056b3;
|
||||
}
|
||||
|
||||
/* 모바일 반응형 스타일 */
|
||||
.creative-portfolio-header .mobile-menu-toggle {
|
||||
display: none;
|
||||
background: transparent;
|
||||
border: none;
|
||||
padding: 5px;
|
||||
cursor: pointer;
|
||||
z-index: 102;
|
||||
}
|
||||
|
||||
.creative-portfolio-header .mobile-menu-toggle span {
|
||||
display: block;
|
||||
width: 24px;
|
||||
height: 2px;
|
||||
background-color: #333;
|
||||
margin: 5px 0;
|
||||
transition: all 0.3s ease;
|
||||
}
|
||||
|
||||
|
||||
@@ -0,0 +1,150 @@
|
||||
<?php
|
||||
if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가
|
||||
|
||||
// 레이아웃 폴더내 style.css 파일
|
||||
add_stylesheet('<link rel="stylesheet" href="'.G5_THEME_URL.'/rb.layout_hd/'.$rb_core['layout_hd'].'/style.css?ver='.G5_TIME_YMDHIS.'">', 0);
|
||||
?>
|
||||
|
||||
<!-- Dark Premium Header -->
|
||||
<header id="header" class="dark-premium-header">
|
||||
<div class="header-background">
|
||||
<div class="header-glow"></div>
|
||||
</div>
|
||||
<div class="header-container">
|
||||
<div class="header-content">
|
||||
<!-- 로고 -->
|
||||
<div class="logo-section">
|
||||
<a href="<?php echo G5_URL ?>" class="logo-link">
|
||||
<?php if (!empty($rb_builder['bu_logo_pc']) && !empty($rb_builder['bu_logo_pc_w'])) { ?>
|
||||
<img src="<?php echo G5_URL ?>/data/logos/pc?ver=<?php echo G5_SERVER_TIME ?>" alt="<?php echo $config['cf_title']; ?>" class="logo-img">
|
||||
<?php } else { ?>
|
||||
<img src="<?php echo G5_THEME_URL ?>/rb.img/logos/pc.png?ver=<?php echo G5_SERVER_TIME ?>" alt="<?php echo $config['cf_title']; ?>" class="logo-img">
|
||||
<?php } ?>
|
||||
</a>
|
||||
</div>
|
||||
|
||||
<!-- 네비게이션 -->
|
||||
<nav class="main-navigation">
|
||||
<ul class="nav-menu">
|
||||
<?php
|
||||
if(IS_MOBILE()) {
|
||||
$menu_datas = get_menu_db(1, true);
|
||||
} else {
|
||||
$menu_datas = get_menu_db(0, true);
|
||||
}
|
||||
|
||||
$gnb_zindex = 999;
|
||||
$i = 0;
|
||||
foreach($menu_datas as $row) {
|
||||
if(empty($row)) continue;
|
||||
|
||||
if (!$is_admin && isset($row['me_level']) && $row['me_level'] > 0) {
|
||||
if (isset($row['me_level_opt']) && $row['me_level_opt'] == 2) {
|
||||
if ($row['me_level'] != $member['mb_level']) continue;
|
||||
} else {
|
||||
if ($row['me_level'] > $member['mb_level']) continue;
|
||||
}
|
||||
}
|
||||
?>
|
||||
<li class="nav-item">
|
||||
<a href="<?php echo $row['me_link']; ?>" target="_<?php echo $row['me_target']; ?>" class="nav-link"><?php echo $row['me_name'] ?></a>
|
||||
<?php
|
||||
$k = 0;
|
||||
foreach((array)$row['sub'] as $row2) {
|
||||
if(empty($row2)) continue;
|
||||
|
||||
if (!$is_admin && isset($row2['me_level']) && $row2['me_level'] > 0) {
|
||||
if (isset($row2['me_level_opt']) && $row2['me_level_opt'] == 2) {
|
||||
if ($row2['me_level'] != $member['mb_level']) continue;
|
||||
} else {
|
||||
if ($row2['me_level'] > $member['mb_level']) continue;
|
||||
}
|
||||
}
|
||||
|
||||
if($k == 0)
|
||||
echo '<ul class="sub-menu">'.PHP_EOL;
|
||||
?>
|
||||
<li><a href="<?php echo $row2['me_link']; ?>" target="_<?php echo $row2['me_target']; ?>" class="sub-link"><?php echo $row2['me_name'] ?></a></li>
|
||||
<?php
|
||||
$k++;
|
||||
}
|
||||
|
||||
if($k > 0)
|
||||
echo '</ul>'.PHP_EOL;
|
||||
?>
|
||||
</li>
|
||||
<?php
|
||||
$i++;
|
||||
}
|
||||
|
||||
if ($i == 0) {
|
||||
?>
|
||||
<li class="nav-item"><a href="javascript:void(0);" class="nav-link">메뉴 준비 중입니다.</a></li>
|
||||
<?php } ?>
|
||||
</ul>
|
||||
</nav>
|
||||
|
||||
<!-- 헤더 액션 -->
|
||||
<div class="header-actions">
|
||||
<!-- 검색 -->
|
||||
<div class="search-section">
|
||||
<button type="button" class="search-btn" id="search_btn">
|
||||
<svg width="20" height="20" viewBox="0 0 20 20" fill="none">
|
||||
<path d="M8.5 1C4.36 1 1 4.36 1 8.5S4.36 16 8.5 16c1.84 0 3.52-.65 4.85-1.73L18.5 19.5L19.5 18.5L13.27 12.35C14.35 11.02 15 9.34 15 8.5C15 4.36 11.64 1 8.5 1ZM8.5 14C5.46 14 3 11.54 3 8.5S5.46 3 8.5 3S14 5.46 14 8.5S11.54 14 8.5 14Z" fill="currentColor"/>
|
||||
</svg>
|
||||
</button>
|
||||
</div>
|
||||
|
||||
<!-- 회원 정보 -->
|
||||
<div class="member-section">
|
||||
<?php if($is_member) { ?>
|
||||
<div class="member-info">
|
||||
<span class="member-name"><?php echo $member['mb_nick'] ?></span>
|
||||
<span class="member-point"><?php echo number_format($member['mb_point']); ?>P</span>
|
||||
</div>
|
||||
<div class="member-actions">
|
||||
<a href="<?php echo G5_BBS_URL ?>/memo.php" class="action-btn" onclick="win_memo(this.href); return false;">
|
||||
<svg width="18" height="18" viewBox="0 0 18 18" fill="none">
|
||||
<path d="M15.27 2.34L2.68 6.89L6.87 9.32L10.57 5.62C10.76 5.43 11.02 5.32 11.28 5.32C11.54 5.32 11.8 5.43 11.99 5.62C12.18 5.81 12.28 6.06 12.28 6.33C12.28 6.6 12.18 6.85 11.99 7.03L8.29 10.73L10.72 14.93L15.27 2.34Z" fill="currentColor"/>
|
||||
</svg>
|
||||
<?php if($memo_not_read > 0) { ?>
|
||||
<span class="badge"><?php echo $memo_not_read ?></span>
|
||||
<?php } ?>
|
||||
</a>
|
||||
<a href="<?php echo G5_BBS_URL ?>/logout.php" class="action-btn neon-btn">로그아웃</a>
|
||||
</div>
|
||||
<?php } else { ?>
|
||||
<div class="auth-actions">
|
||||
<a href="<?php echo G5_BBS_URL ?>/login.php" class="auth-btn login-btn">로그인</a>
|
||||
<a href="<?php echo G5_BBS_URL ?>/register.php" class="auth-btn register-btn neon-btn">회원가입</a>
|
||||
</div>
|
||||
<?php } ?>
|
||||
</div>
|
||||
|
||||
<!-- 모바일 메뉴 토글 -->
|
||||
<button type="button" class="mobile-menu-btn" id="mobile_menu_btn">
|
||||
<span></span>
|
||||
<span></span>
|
||||
<span></span>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</header>
|
||||
|
||||
<script>
|
||||
$(document).ready(function() {
|
||||
// 검색 기능
|
||||
$('#search_btn').click(function() {
|
||||
// 검색 모달 또는 드롭다운 구현
|
||||
alert('검색 기능이 곧 추가됩니다!');
|
||||
});
|
||||
|
||||
// 모바일 메뉴
|
||||
$('#mobile_menu_btn').click(function() {
|
||||
$('.main-navigation').toggleClass('mobile-active');
|
||||
$(this).toggleClass('active');
|
||||
});
|
||||
});
|
||||
</script>
|
||||
|
||||
@@ -0,0 +1,354 @@
|
||||
/* Dark Premium Header Styles */
|
||||
|
||||
.dark-premium-header {
|
||||
background: var(--bg-primary);
|
||||
border-bottom: 1px solid var(--border-color);
|
||||
position: sticky;
|
||||
top: 0;
|
||||
z-index: 1000;
|
||||
backdrop-filter: blur(10px);
|
||||
background: rgba(10, 10, 10, 0.95);
|
||||
position: relative;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.header-background {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
z-index: -1;
|
||||
}
|
||||
|
||||
.header-glow {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
width: 100%;
|
||||
height: 1px;
|
||||
background: linear-gradient(90deg, transparent, var(--primary-color), transparent);
|
||||
animation: glow-pulse 2s ease-in-out infinite;
|
||||
}
|
||||
|
||||
@keyframes glow-pulse {
|
||||
0%, 100% { opacity: 0.5; }
|
||||
50% { opacity: 1; }
|
||||
}
|
||||
|
||||
.header-container {
|
||||
max-width: 1200px;
|
||||
margin: 0 auto;
|
||||
padding: 0 var(--spacing-md);
|
||||
}
|
||||
|
||||
.header-content {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
height: 80px;
|
||||
}
|
||||
|
||||
/* 로고 섹션 */
|
||||
.logo-section {
|
||||
flex-shrink: 0;
|
||||
}
|
||||
|
||||
.logo-link {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
text-decoration: none;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.logo-img {
|
||||
height: 45px;
|
||||
width: auto;
|
||||
object-fit: contain;
|
||||
filter: brightness(1.2);
|
||||
}
|
||||
|
||||
/* 네비게이션 */
|
||||
.main-navigation {
|
||||
flex: 1;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
}
|
||||
|
||||
.nav-menu {
|
||||
display: flex;
|
||||
list-style: none;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
gap: var(--spacing-xl);
|
||||
}
|
||||
|
||||
.nav-item {
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.nav-link {
|
||||
display: block;
|
||||
padding: var(--spacing-sm) 0;
|
||||
color: var(--text-primary);
|
||||
text-decoration: none;
|
||||
font-weight: 500;
|
||||
transition: all 0.3s ease;
|
||||
position: relative;
|
||||
text-transform: uppercase;
|
||||
font-size: 0.875rem;
|
||||
letter-spacing: 0.05em;
|
||||
}
|
||||
|
||||
.nav-link:hover {
|
||||
color: var(--primary-color);
|
||||
text-shadow: 0 0 10px var(--primary-color);
|
||||
}
|
||||
|
||||
.nav-link::after {
|
||||
content: '';
|
||||
position: absolute;
|
||||
bottom: -5px;
|
||||
left: 0;
|
||||
width: 0;
|
||||
height: 2px;
|
||||
background: linear-gradient(90deg, var(--primary-color), var(--secondary-color));
|
||||
transition: width 0.3s ease;
|
||||
box-shadow: 0 0 5px var(--primary-color);
|
||||
}
|
||||
|
||||
.nav-link:hover::after {
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
/* 서브메뉴 */
|
||||
.sub-menu {
|
||||
position: absolute;
|
||||
top: 100%;
|
||||
left: 0;
|
||||
background: var(--bg-card);
|
||||
border: 1px solid var(--border-glow);
|
||||
border-radius: var(--radius-md);
|
||||
box-shadow: var(--shadow-glow);
|
||||
min-width: 200px;
|
||||
opacity: 0;
|
||||
visibility: hidden;
|
||||
transform: translateY(-10px);
|
||||
transition: all 0.3s ease;
|
||||
list-style: none;
|
||||
margin: 0;
|
||||
padding: var(--spacing-sm) 0;
|
||||
z-index: 1001;
|
||||
backdrop-filter: blur(10px);
|
||||
}
|
||||
|
||||
.nav-item:hover .sub-menu {
|
||||
opacity: 1;
|
||||
visibility: visible;
|
||||
transform: translateY(0);
|
||||
}
|
||||
|
||||
.sub-link {
|
||||
display: block;
|
||||
padding: var(--spacing-sm) var(--spacing-md);
|
||||
color: var(--text-secondary);
|
||||
text-decoration: none;
|
||||
transition: all 0.3s ease;
|
||||
font-size: 0.875rem;
|
||||
}
|
||||
|
||||
.sub-link:hover {
|
||||
background: var(--bg-glass);
|
||||
color: var(--primary-color);
|
||||
text-shadow: 0 0 5px var(--primary-color);
|
||||
}
|
||||
|
||||
/* 헤더 액션 */
|
||||
.header-actions {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: var(--spacing-md);
|
||||
}
|
||||
|
||||
/* 검색 섹션 */
|
||||
.search-section {
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.search-btn {
|
||||
background: var(--bg-glass);
|
||||
border: 1px solid var(--border-glow);
|
||||
padding: var(--spacing-sm);
|
||||
cursor: pointer;
|
||||
color: var(--text-primary);
|
||||
transition: all 0.3s ease;
|
||||
border-radius: var(--radius-sm);
|
||||
backdrop-filter: blur(10px);
|
||||
}
|
||||
|
||||
.search-btn:hover {
|
||||
color: var(--primary-color);
|
||||
background: var(--bg-card);
|
||||
box-shadow: var(--shadow-glow);
|
||||
transform: scale(1.05);
|
||||
}
|
||||
|
||||
/* 회원 섹션 */
|
||||
.member-section {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: var(--spacing-sm);
|
||||
}
|
||||
|
||||
.member-info {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: flex-end;
|
||||
margin-right: var(--spacing-sm);
|
||||
}
|
||||
|
||||
.member-name {
|
||||
font-weight: 600;
|
||||
color: var(--text-primary);
|
||||
font-size: 0.875rem;
|
||||
}
|
||||
|
||||
.member-point {
|
||||
font-size: 0.75rem;
|
||||
color: var(--primary-color);
|
||||
text-shadow: 0 0 5px var(--primary-color);
|
||||
}
|
||||
|
||||
.member-actions {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: var(--spacing-sm);
|
||||
}
|
||||
|
||||
.action-btn {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
padding: var(--spacing-xs) var(--spacing-sm);
|
||||
color: var(--text-secondary);
|
||||
text-decoration: none;
|
||||
border-radius: var(--radius-sm);
|
||||
transition: all 0.3s ease;
|
||||
position: relative;
|
||||
font-size: 0.875rem;
|
||||
background: var(--bg-glass);
|
||||
border: 1px solid var(--border-color);
|
||||
backdrop-filter: blur(10px);
|
||||
}
|
||||
|
||||
.action-btn:hover {
|
||||
color: var(--primary-color);
|
||||
background: var(--bg-card);
|
||||
border-color: var(--border-glow);
|
||||
box-shadow: var(--shadow-glow);
|
||||
}
|
||||
|
||||
.neon-btn {
|
||||
background: linear-gradient(135deg, var(--primary-color), var(--secondary-color));
|
||||
color: var(--bg-primary);
|
||||
border: none;
|
||||
box-shadow: var(--shadow-glow);
|
||||
}
|
||||
|
||||
.neon-btn:hover {
|
||||
background: linear-gradient(135deg, var(--secondary-color), var(--primary-color));
|
||||
transform: translateY(-2px);
|
||||
box-shadow: 0 0 20px rgba(0, 212, 255, 0.5);
|
||||
}
|
||||
|
||||
.badge {
|
||||
position: absolute;
|
||||
top: -5px;
|
||||
right: -5px;
|
||||
background: var(--error-color);
|
||||
color: white;
|
||||
font-size: 0.625rem;
|
||||
padding: 2px 6px;
|
||||
border-radius: 10px;
|
||||
min-width: 18px;
|
||||
text-align: center;
|
||||
box-shadow: 0 0 10px var(--error-color);
|
||||
}
|
||||
|
||||
/* 인증 버튼 */
|
||||
.auth-actions {
|
||||
display: flex;
|
||||
gap: var(--spacing-sm);
|
||||
}
|
||||
|
||||
.auth-btn {
|
||||
padding: var(--spacing-xs) var(--spacing-md);
|
||||
border-radius: var(--radius-sm);
|
||||
text-decoration: none;
|
||||
font-weight: 500;
|
||||
font-size: 0.875rem;
|
||||
transition: all 0.3s ease;
|
||||
}
|
||||
|
||||
.login-btn {
|
||||
color: var(--text-secondary);
|
||||
border: 1px solid var(--border-color);
|
||||
background: var(--bg-glass);
|
||||
backdrop-filter: blur(10px);
|
||||
}
|
||||
|
||||
.login-btn:hover {
|
||||
color: var(--primary-color);
|
||||
border-color: var(--border-glow);
|
||||
box-shadow: var(--shadow-glow);
|
||||
}
|
||||
|
||||
.register-btn {
|
||||
background: linear-gradient(135deg, var(--primary-color), var(--secondary-color));
|
||||
color: var(--bg-primary);
|
||||
border: none;
|
||||
box-shadow: var(--shadow-glow);
|
||||
}
|
||||
|
||||
.register-btn:hover {
|
||||
background: linear-gradient(135deg, var(--secondary-color), var(--primary-color));
|
||||
transform: translateY(-2px);
|
||||
box-shadow: 0 0 20px rgba(0, 212, 255, 0.5);
|
||||
}
|
||||
|
||||
/* 모바일 메뉴 버튼 */
|
||||
.mobile-menu-btn {
|
||||
display: none;
|
||||
flex-direction: column;
|
||||
background: var(--bg-glass);
|
||||
border: 1px solid var(--border-glow);
|
||||
cursor: pointer;
|
||||
padding: var(--spacing-sm);
|
||||
gap: 4px;
|
||||
border-radius: var(--radius-sm);
|
||||
backdrop-filter: blur(10px);
|
||||
}
|
||||
|
||||
.mobile-menu-btn span {
|
||||
width: 20px;
|
||||
height: 2px;
|
||||
background: var(--text-primary);
|
||||
transition: all 0.3s ease;
|
||||
}
|
||||
|
||||
.mobile-menu-btn.active span:nth-child(1) {
|
||||
transform: rotate(45deg) translate(5px, 5px);
|
||||
}
|
||||
|
||||
.mobile-menu-btn.active span:nth-child(2) {
|
||||
opacity: 0;
|
||||
}
|
||||
|
||||
.mobile-menu-btn.active span:nth-child(3) {
|
||||
transform: rotate(-45deg) translate(7px, -6px);
|
||||
}
|
||||
|
||||
/* 반응형 디자인 */
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,184 @@
|
||||
<?php
|
||||
if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가
|
||||
|
||||
// 레이아웃 폴더내 style.css 파일
|
||||
add_stylesheet('<link rel="stylesheet" href="'.G5_THEME_URL.'/rb.layout_hd/'.$rb_core['layout_hd'].'/style.css?ver='.G5_TIME_YMDHIS.'">', 0);
|
||||
?>
|
||||
|
||||
<!-- E-commerce Modern Header -->
|
||||
<header id="header" class="ecommerce-modern-header">
|
||||
<!-- 상단 배너 -->
|
||||
<div class="top-banner">
|
||||
<div class="banner-content">
|
||||
<span class="banner-text">무료배송 | 30일 무료반품 | 24시간 고객센터</span>
|
||||
<div class="banner-actions">
|
||||
<a href="#" class="banner-link">회원가입</a>
|
||||
<a href="#" class="banner-link">로그인</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="header-container">
|
||||
<div class="header-content">
|
||||
<!-- 로고 -->
|
||||
<div class="logo-section">
|
||||
<a href="<?php echo G5_URL ?>" class="logo-link">
|
||||
<?php if (!empty($rb_builder['bu_logo_pc']) && !empty($rb_builder['bu_logo_pc_w'])) { ?>
|
||||
<img src="<?php echo G5_URL ?>/data/logos/pc?ver=<?php echo G5_SERVER_TIME ?>" alt="<?php echo $config['cf_title']; ?>" class="logo-img">
|
||||
<?php } else { ?>
|
||||
<img src="<?php echo G5_THEME_URL ?>/rb.img/logos/pc.png?ver=<?php echo G5_SERVER_TIME ?>" alt="<?php echo $config['cf_title']; ?>" class="logo-img">
|
||||
<?php } ?>
|
||||
</a>
|
||||
</div>
|
||||
|
||||
<!-- 검색바 -->
|
||||
<div class="search-section">
|
||||
<form class="search-form" method="get" action="<?php echo G5_BBS_URL ?>/search.php">
|
||||
<div class="search-input-group">
|
||||
<input type="text" name="stx" class="search-input" placeholder="상품명, 브랜드, 카테고리 검색">
|
||||
<button type="submit" class="search-btn">
|
||||
<svg width="20" height="20" viewBox="0 0 20 20" fill="none">
|
||||
<path d="M8.5 1C4.36 1 1 4.36 1 8.5S4.36 16 8.5 16c1.84 0 3.52-.65 4.85-1.73L18.5 19.5L19.5 18.5L13.27 12.35C14.35 11.02 15 9.34 15 8.5C15 4.36 11.64 1 8.5 1ZM8.5 14C5.46 14 3 11.54 3 8.5S5.46 3 8.5 3S14 5.46 14 8.5S11.54 14 8.5 14Z" fill="currentColor"/>
|
||||
</svg>
|
||||
</button>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
|
||||
<!-- 헤더 액션 -->
|
||||
<div class="header-actions">
|
||||
<!-- 회원 정보 -->
|
||||
<div class="member-section">
|
||||
<?php if($is_member) { ?>
|
||||
<div class="member-info">
|
||||
<a href="<?php echo G5_URL; ?>/rb/home.php?mb_id=<?php echo $member['mb_id']; ?>" class="member-link">
|
||||
<svg width="20" height="20" viewBox="0 0 20 20" fill="none">
|
||||
<path d="M10 9C11.6569 9 13 7.65685 13 6C13 4.34315 11.6569 3 10 3C8.34315 3 7 4.34315 7 6C7 7.65685 8.34315 9 10 9Z" fill="currentColor"/>
|
||||
<path d="M3 18C3 14.134 6.13401 11 10 11C13.866 11 17 14.134 17 18H3Z" fill="currentColor"/>
|
||||
</svg>
|
||||
<span><?php echo $member['mb_nick'] ?></span>
|
||||
</a>
|
||||
</div>
|
||||
<?php } else { ?>
|
||||
<div class="auth-actions">
|
||||
<a href="<?php echo G5_BBS_URL ?>/login.php" class="auth-btn login-btn">로그인</a>
|
||||
<a href="<?php echo G5_BBS_URL ?>/register.php" class="auth-btn register-btn">회원가입</a>
|
||||
</div>
|
||||
<?php } ?>
|
||||
</div>
|
||||
|
||||
<!-- 장바구니 -->
|
||||
<div class="cart-section">
|
||||
<a href="<?php echo G5_SHOP_URL ?>/cart.php" class="cart-btn">
|
||||
<svg width="24" height="24" viewBox="0 0 24 24" fill="none">
|
||||
<path d="M7 4V2C7 1.45 7.45 1 8 1H16C16.55 1 17 1.45 17 2V4H20C20.55 4 21 4.45 21 5S20.55 6 20 6H19V19C19 20.1 18.1 21 17 21H7C5.9 21 5 20.1 5 19V6H4C3.45 6 3 5.55 3 5S3.45 4 4 4H7ZM9 3V4H15V3H9ZM7 6V19H17V6H7Z" fill="currentColor"/>
|
||||
</svg>
|
||||
<span class="cart-text">장바구니</span>
|
||||
<span class="cart-count">0</span>
|
||||
</a>
|
||||
</div>
|
||||
|
||||
<!-- 위시리스트 -->
|
||||
<div class="wishlist-section">
|
||||
<a href="<?php echo G5_BBS_URL ?>/scrap.php" class="wishlist-btn">
|
||||
<svg width="20" height="20" viewBox="0 0 20 20" fill="none">
|
||||
<path d="M10 18.35L8.55 17.03C3.4 12.36 0 9.27 0 5.5C0 2.42 2.42 0 5.5 0C7.24 0 8.91 0.81 10 2.08C11.09 0.81 12.76 0 14.5 0C17.58 0 20 2.42 20 5.5C20 9.27 16.6 12.36 11.45 17.03L10 18.35Z" fill="currentColor"/>
|
||||
</svg>
|
||||
<span class="wishlist-text">위시리스트</span>
|
||||
</a>
|
||||
</div>
|
||||
|
||||
<!-- 모바일 메뉴 토글 -->
|
||||
<button type="button" class="mobile-menu-btn" id="mobile_menu_btn">
|
||||
<span></span>
|
||||
<span></span>
|
||||
<span></span>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- 네비게이션 -->
|
||||
<nav class="main-navigation">
|
||||
<div class="nav-container">
|
||||
<ul class="nav-menu">
|
||||
<?php
|
||||
if(IS_MOBILE()) {
|
||||
$menu_datas = get_menu_db(1, true);
|
||||
} else {
|
||||
$menu_datas = get_menu_db(0, true);
|
||||
}
|
||||
|
||||
$gnb_zindex = 999;
|
||||
$i = 0;
|
||||
foreach($menu_datas as $row) {
|
||||
if(empty($row)) continue;
|
||||
|
||||
if (!$is_admin && isset($row['me_level']) && $row['me_level'] > 0) {
|
||||
if (isset($row['me_level_opt']) && $row['me_level_opt'] == 2) {
|
||||
if ($row['me_level'] != $member['mb_level']) continue;
|
||||
} else {
|
||||
if ($row['me_level'] > $member['mb_level']) continue;
|
||||
}
|
||||
}
|
||||
?>
|
||||
<li class="nav-item">
|
||||
<a href="<?php echo $row['me_link']; ?>" target="_<?php echo $row['me_target']; ?>" class="nav-link"><?php echo $row['me_name'] ?></a>
|
||||
<?php
|
||||
$k = 0;
|
||||
foreach((array)$row['sub'] as $row2) {
|
||||
if(empty($row2)) continue;
|
||||
|
||||
if (!$is_admin && isset($row2['me_level']) && $row2['me_level'] > 0) {
|
||||
if (isset($row2['me_level_opt']) && $row2['me_level_opt'] == 2) {
|
||||
if ($row2['me_level'] != $member['mb_level']) continue;
|
||||
} else {
|
||||
if ($row2['me_level'] > $member['mb_level']) continue;
|
||||
}
|
||||
}
|
||||
|
||||
if($k == 0)
|
||||
echo '<ul class="sub-menu">'.PHP_EOL;
|
||||
?>
|
||||
<li><a href="<?php echo $row2['me_link']; ?>" target="_<?php echo $row2['me_target']; ?>" class="sub-link"><?php echo $row2['me_name'] ?></a></li>
|
||||
<?php
|
||||
$k++;
|
||||
}
|
||||
|
||||
if($k > 0)
|
||||
echo '</ul>'.PHP_EOL;
|
||||
?>
|
||||
</li>
|
||||
<?php
|
||||
$i++;
|
||||
}
|
||||
|
||||
if ($i == 0) {
|
||||
?>
|
||||
<li class="nav-item"><a href="javascript:void(0);" class="nav-link">메뉴 준비 중입니다.</a></li>
|
||||
<?php } ?>
|
||||
</ul>
|
||||
</div>
|
||||
</nav>
|
||||
</div>
|
||||
</header>
|
||||
|
||||
<script>
|
||||
$(document).ready(function() {
|
||||
// 모바일 메뉴
|
||||
$('#mobile_menu_btn').click(function() {
|
||||
$('.main-navigation').toggleClass('mobile-active');
|
||||
$(this).toggleClass('active');
|
||||
});
|
||||
|
||||
// 검색 폼 제출
|
||||
$('.search-form').on('submit', function(e) {
|
||||
var stx = $(this).find('input[name="stx"]').val().trim();
|
||||
if (stx.length < 2) {
|
||||
alert("검색어는 두글자 이상 입력해주세요.");
|
||||
e.preventDefault();
|
||||
return false;
|
||||
}
|
||||
});
|
||||
});
|
||||
</script>
|
||||
|
||||
@@ -0,0 +1,388 @@
|
||||
/* E-commerce Modern Header Styles */
|
||||
|
||||
.ecommerce-modern-header {
|
||||
background: var(--bg-primary);
|
||||
border-bottom: 1px solid var(--border-color);
|
||||
position: sticky;
|
||||
top: 0;
|
||||
z-index: 1000;
|
||||
box-shadow: var(--shadow-sm);
|
||||
}
|
||||
|
||||
/* 상단 배너 */
|
||||
.top-banner {
|
||||
background: var(--primary-color);
|
||||
color: white;
|
||||
padding: var(--spacing-xs) 0;
|
||||
font-size: 0.75rem;
|
||||
}
|
||||
|
||||
.banner-content {
|
||||
max-width: 1200px;
|
||||
margin: 0 auto;
|
||||
padding: 0 var(--spacing-md);
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.banner-text {
|
||||
font-weight: 500;
|
||||
}
|
||||
|
||||
.banner-actions {
|
||||
display: flex;
|
||||
gap: var(--spacing-sm);
|
||||
}
|
||||
|
||||
.banner-link {
|
||||
color: white;
|
||||
text-decoration: none;
|
||||
font-size: 0.75rem;
|
||||
transition: opacity 0.3s ease;
|
||||
}
|
||||
|
||||
.banner-link:hover {
|
||||
opacity: 0.8;
|
||||
}
|
||||
|
||||
.header-container {
|
||||
max-width: 1200px;
|
||||
margin: 0 auto;
|
||||
padding: 0 var(--spacing-md);
|
||||
}
|
||||
|
||||
.header-content {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
height: 80px;
|
||||
gap: var(--spacing-lg);
|
||||
}
|
||||
|
||||
/* 로고 섹션 */
|
||||
.logo-section {
|
||||
flex-shrink: 0;
|
||||
}
|
||||
|
||||
.logo-link {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
.logo-img {
|
||||
height: 50px;
|
||||
width: auto;
|
||||
object-fit: contain;
|
||||
}
|
||||
|
||||
/* 검색 섹션 */
|
||||
.search-section {
|
||||
flex: 1;
|
||||
max-width: 600px;
|
||||
}
|
||||
|
||||
.search-form {
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.search-input-group {
|
||||
display: flex;
|
||||
background: var(--bg-secondary);
|
||||
border: 2px solid var(--border-color);
|
||||
border-radius: var(--radius-lg);
|
||||
overflow: hidden;
|
||||
transition: border-color 0.3s ease;
|
||||
}
|
||||
|
||||
.search-input-group:focus-within {
|
||||
border-color: var(--primary-color);
|
||||
box-shadow: 0 0 0 3px rgba(0, 123, 255, 0.1);
|
||||
}
|
||||
|
||||
.search-input {
|
||||
flex: 1;
|
||||
padding: var(--spacing-sm) var(--spacing-md);
|
||||
border: none;
|
||||
background: transparent;
|
||||
font-size: 0.875rem;
|
||||
outline: none;
|
||||
}
|
||||
|
||||
.search-input::placeholder {
|
||||
color: var(--text-light);
|
||||
}
|
||||
|
||||
.search-btn {
|
||||
background: var(--primary-color);
|
||||
border: none;
|
||||
padding: var(--spacing-sm) var(--spacing-md);
|
||||
color: white;
|
||||
cursor: pointer;
|
||||
transition: background 0.3s ease;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
}
|
||||
|
||||
.search-btn:hover {
|
||||
background: var(--secondary-color);
|
||||
}
|
||||
|
||||
/* 헤더 액션 */
|
||||
.header-actions {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: var(--spacing-md);
|
||||
}
|
||||
|
||||
/* 회원 섹션 */
|
||||
.member-section {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.member-link {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: var(--spacing-xs);
|
||||
color: var(--text-primary);
|
||||
text-decoration: none;
|
||||
padding: var(--spacing-xs) var(--spacing-sm);
|
||||
border-radius: var(--radius-sm);
|
||||
transition: all 0.3s ease;
|
||||
font-size: 0.875rem;
|
||||
font-weight: 500;
|
||||
}
|
||||
|
||||
.member-link:hover {
|
||||
background: var(--bg-secondary);
|
||||
color: var(--primary-color);
|
||||
}
|
||||
|
||||
.auth-actions {
|
||||
display: flex;
|
||||
gap: var(--spacing-sm);
|
||||
}
|
||||
|
||||
.auth-btn {
|
||||
padding: var(--spacing-xs) var(--spacing-md);
|
||||
border-radius: var(--radius-sm);
|
||||
text-decoration: none;
|
||||
font-weight: 500;
|
||||
font-size: 0.875rem;
|
||||
transition: all 0.3s ease;
|
||||
}
|
||||
|
||||
.login-btn {
|
||||
color: var(--text-secondary);
|
||||
border: 1px solid var(--border-color);
|
||||
}
|
||||
|
||||
.login-btn:hover {
|
||||
color: var(--primary-color);
|
||||
border-color: var(--primary-color);
|
||||
}
|
||||
|
||||
.register-btn {
|
||||
background: var(--primary-color);
|
||||
color: white;
|
||||
}
|
||||
|
||||
.register-btn:hover {
|
||||
background: var(--secondary-color);
|
||||
}
|
||||
|
||||
/* 장바구니 섹션 */
|
||||
.cart-section {
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.cart-btn {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: var(--spacing-xs);
|
||||
color: var(--text-primary);
|
||||
text-decoration: none;
|
||||
padding: var(--spacing-sm);
|
||||
border-radius: var(--radius-sm);
|
||||
transition: all 0.3s ease;
|
||||
position: relative;
|
||||
background: var(--bg-secondary);
|
||||
border: 1px solid var(--border-color);
|
||||
}
|
||||
|
||||
.cart-btn:hover {
|
||||
background: var(--primary-color);
|
||||
color: white;
|
||||
transform: translateY(-2px);
|
||||
box-shadow: var(--shadow-md);
|
||||
}
|
||||
|
||||
.cart-text {
|
||||
font-size: 0.875rem;
|
||||
font-weight: 500;
|
||||
}
|
||||
|
||||
.cart-count {
|
||||
position: absolute;
|
||||
top: -5px;
|
||||
right: -5px;
|
||||
background: var(--error-color);
|
||||
color: white;
|
||||
font-size: 0.625rem;
|
||||
padding: 2px 6px;
|
||||
border-radius: 10px;
|
||||
min-width: 18px;
|
||||
text-align: center;
|
||||
font-weight: 600;
|
||||
}
|
||||
|
||||
/* 위시리스트 섹션 */
|
||||
.wishlist-section {
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.wishlist-btn {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: var(--spacing-xs);
|
||||
color: var(--text-secondary);
|
||||
text-decoration: none;
|
||||
padding: var(--spacing-sm);
|
||||
border-radius: var(--radius-sm);
|
||||
transition: all 0.3s ease;
|
||||
background: var(--bg-secondary);
|
||||
border: 1px solid var(--border-color);
|
||||
}
|
||||
|
||||
.wishlist-btn:hover {
|
||||
background: var(--error-color);
|
||||
color: white;
|
||||
transform: translateY(-2px);
|
||||
box-shadow: var(--shadow-md);
|
||||
}
|
||||
|
||||
.wishlist-text {
|
||||
font-size: 0.875rem;
|
||||
font-weight: 500;
|
||||
}
|
||||
|
||||
/* 모바일 메뉴 버튼 */
|
||||
.mobile-menu-btn {
|
||||
display: none;
|
||||
flex-direction: column;
|
||||
background: var(--bg-secondary);
|
||||
border: 1px solid var(--border-color);
|
||||
cursor: pointer;
|
||||
padding: var(--spacing-sm);
|
||||
gap: 4px;
|
||||
border-radius: var(--radius-sm);
|
||||
}
|
||||
|
||||
.mobile-menu-btn span {
|
||||
width: 20px;
|
||||
height: 2px;
|
||||
background: var(--text-primary);
|
||||
transition: all 0.3s ease;
|
||||
}
|
||||
|
||||
.mobile-menu-btn.active span:nth-child(1) {
|
||||
transform: rotate(45deg) translate(5px, 5px);
|
||||
}
|
||||
|
||||
.mobile-menu-btn.active span:nth-child(2) {
|
||||
opacity: 0;
|
||||
}
|
||||
|
||||
.mobile-menu-btn.active span:nth-child(3) {
|
||||
transform: rotate(-45deg) translate(7px, -6px);
|
||||
}
|
||||
|
||||
/* 네비게이션 */
|
||||
.main-navigation {
|
||||
background: var(--bg-primary);
|
||||
border-top: 1px solid var(--border-color);
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
.nav-container {
|
||||
max-width: 1200px;
|
||||
margin: 0 auto;
|
||||
padding: 0 var(--spacing-md);
|
||||
}
|
||||
|
||||
.nav-menu {
|
||||
display: flex;
|
||||
list-style: none;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
gap: 0;
|
||||
}
|
||||
|
||||
.nav-item {
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.nav-link {
|
||||
display: block;
|
||||
padding: var(--spacing-md) var(--spacing-lg);
|
||||
color: var(--text-primary);
|
||||
text-decoration: none;
|
||||
font-weight: 500;
|
||||
transition: all 0.3s ease;
|
||||
border-bottom: 3px solid transparent;
|
||||
}
|
||||
|
||||
.nav-link:hover {
|
||||
color: var(--primary-color);
|
||||
background: var(--bg-secondary);
|
||||
border-bottom-color: var(--primary-color);
|
||||
}
|
||||
|
||||
/* 서브메뉴 */
|
||||
.sub-menu {
|
||||
position: absolute;
|
||||
top: 100%;
|
||||
left: 0;
|
||||
background: var(--bg-primary);
|
||||
border: 1px solid var(--border-color);
|
||||
border-radius: var(--radius-md);
|
||||
box-shadow: var(--shadow-lg);
|
||||
min-width: 200px;
|
||||
opacity: 0;
|
||||
visibility: hidden;
|
||||
transform: translateY(-10px);
|
||||
transition: all 0.3s ease;
|
||||
list-style: none;
|
||||
margin: 0;
|
||||
padding: var(--spacing-sm) 0;
|
||||
z-index: 1001;
|
||||
}
|
||||
|
||||
.nav-item:hover .sub-menu {
|
||||
opacity: 1;
|
||||
visibility: visible;
|
||||
transform: translateY(0);
|
||||
}
|
||||
|
||||
.sub-link {
|
||||
display: block;
|
||||
padding: var(--spacing-sm) var(--spacing-md);
|
||||
color: var(--text-secondary);
|
||||
text-decoration: none;
|
||||
transition: all 0.3s ease;
|
||||
font-size: 0.875rem;
|
||||
}
|
||||
|
||||
.sub-link:hover {
|
||||
background: var(--bg-secondary);
|
||||
color: var(--primary-color);
|
||||
}
|
||||
|
||||
/* 반응형 디자인 */
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,235 @@
|
||||
<?php
|
||||
if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가
|
||||
|
||||
add_stylesheet('<link rel="stylesheet" href="'.G5_THEME_URL.'/rb.layout_hd/'.$rb_core['layout_hd'].'/style.css?ver='.G5_TIME_YMDHIS.'">', 0);
|
||||
// 💡 [핵심] 메인 페이지에서는 투명하게 시작하고, 스크롤하면 배경색이 나타나도록 클래스를 동적으로 설정합니다.
|
||||
$header_class = '';
|
||||
if (defined('_INDEX_') && !empty($rb_builder['bu_trans_header'])) {
|
||||
$header_class = 'is-transparent';
|
||||
} else {
|
||||
$header_class = 'is-scrolled';
|
||||
}
|
||||
|
||||
// 💡 [핵심] PC와 모바일에서 공통으로 사용할 메뉴 데이터를 한 번만 불러옵니다.
|
||||
$menu_tree = get_menu_db(0, false); // PC용 메뉴(0), 캐시 사용(true)
|
||||
$menu_tree_mobile = get_menu_db(1, false); // 모바일용 메뉴(1), 캐시 사용(true)
|
||||
|
||||
?>
|
||||
|
||||
<!-- 📌 [전체 수정] 관리자 메뉴와 100% 연동되는 최종 헤더 -->
|
||||
|
||||
<header id="header" class="main-header <?php echo $header_class; ?>">
|
||||
<div class="header-inner container">
|
||||
|
||||
<!-- 1. 좌측: 로고 -->
|
||||
<div class="header-left">
|
||||
<a href="<?php echo G5_URL ?>" class="header-logo" aria-label="메인으로 이동">
|
||||
<picture>
|
||||
<?php if (!empty($rb_builder['bu_logo_mo'])) { ?>
|
||||
<source srcset="<?php echo G5_URL ?>/data/logos/mo?ver=<?php echo G5_SERVER_TIME ?>" media="(max-width: 1024px)">
|
||||
<?php } else { ?>
|
||||
<source srcset="<?php echo G5_THEME_URL ?>/rb.img/logos/mo.png?ver=<?php echo G5_SERVER_TIME ?>" media="(max-width: 1024px)">
|
||||
<?php } ?>
|
||||
|
||||
<?php if (!empty($rb_builder['bu_logo_pc'])) { ?>
|
||||
<img src="<?php echo G5_URL ?>/data/logos/pc?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.png?ver=<?php echo G5_SERVER_TIME ?>" alt="<?php echo $config['cf_title']; ?>">
|
||||
<?php } ?>
|
||||
</picture>
|
||||
</a>
|
||||
</div>
|
||||
|
||||
<!-- 2. 중앙: 메인 내비게이션 (PC) -->
|
||||
<nav class="gnb pc-only">
|
||||
<ul class="gnb-list">
|
||||
<?php
|
||||
foreach ($menu_tree as $row) {
|
||||
$has_sub = isset($row['sub']) && !empty($row['sub']);
|
||||
echo '<li class="gnb-item' . ($has_sub ? ' has-submenu' : '') . '">';
|
||||
$href = $row['me_link'];
|
||||
if (strpos($href, '#') === 0 && strlen($href) > 1) {
|
||||
$href = G5_URL . $href;
|
||||
}
|
||||
echo '<a href="' . $href . '" target="_' . $row['me_target'] . '" class="gnb-link">' . get_text($row['me_name']) . '</a>';
|
||||
if ($has_sub) {
|
||||
echo '<ul class="sub-menu">';
|
||||
foreach ($row['sub'] as $row2) {
|
||||
$href2 = $row2['me_link'];
|
||||
if (strpos($href2, '#') === 0 && strlen($href2) > 1) {
|
||||
$href2 = G5_URL . $href2;
|
||||
}
|
||||
echo '<li><a href="' . $href2 . '" target="_' . $row2['me_target'] . '">' . get_text($row2['me_name']) . '</a></li>';
|
||||
}
|
||||
echo '</ul>';
|
||||
}
|
||||
echo '</li>';
|
||||
}
|
||||
?>
|
||||
</ul>
|
||||
</nav>
|
||||
|
||||
<!-- 3. 우측: 유틸리티 메뉴 -->
|
||||
<div class="header-right">
|
||||
<ul class="utility-nav">
|
||||
<li class="pc-only">
|
||||
<button type="button" class="search-toggle-btn" aria-label="검색창 열기"><i class="fa fa-search" aria-hidden="true"></i></button>
|
||||
</li>
|
||||
<?php if ($is_member) { ?>
|
||||
<li class="user-menu-container">
|
||||
<button type="button" class="user-menu-btn" aria-label="사용자 메뉴 열기"><i class="fa fa-user-circle" aria-hidden="true"></i></button>
|
||||
<div class="user-menu-dropdown">
|
||||
<div class="user-info">
|
||||
<strong><?php echo $member['mb_nick'] ?></strong> 님
|
||||
<a href="<?php echo G5_BBS_URL; ?>/point.php" target="_blank" class="win_point user-points"><?php echo number_format($member['mb_point']); ?> P</a>
|
||||
</div>
|
||||
<ul>
|
||||
<li><a href="<?php echo G5_BBS_URL ?>/memo.php" class="win_memo">쪽지 <?php if ($memo_not_read > 0) echo '<span class="new-badge">' . $memo_not_read . '</span>'; ?></a></li>
|
||||
<li><a href="<?php echo G5_BBS_URL ?>/scrap.php" class="win_scrap">스크랩</a></li>
|
||||
<li><a href="<?php echo G5_URL; ?>/rb/home.php?mb_id=<?php echo $member['mb_id']; ?>">마이페이지</a></li>
|
||||
<li><a href="<?php echo G5_BBS_URL ?>/logout.php">로그아웃</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</li>
|
||||
<?php } else { ?>
|
||||
<li class="pc-only"><a href="<?php echo G5_BBS_URL ?>/login.php?url=<?php echo urlencode(G5_URL); ?>">로그인</a></li>
|
||||
<li class="pc-only"><a href="<?php echo G5_BBS_URL ?>/register.php" class="btn-join">회원가입</a></li>
|
||||
<?php } ?>
|
||||
<li class="mobile-only">
|
||||
<button type="button" id="mobile-menu-toggle" class="mobile-menu-btn" aria-label="전체메뉴 열기"><i class="fa fa-bars" aria-hidden="true"></i></button>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="search-bar-wrap">
|
||||
<form name="fsearchbox" method="get" action="<?php echo G5_BBS_URL ?>/search.php" onsubmit="return fsearchbox_submit(this);">
|
||||
<input type="hidden" name="sfl" value="wr_subject||wr_content">
|
||||
<input type="hidden" name="sop" value="and">
|
||||
<input type="text" name="stx" id="search-bar-input" placeholder="검색어를 입력하세요" maxlength="20">
|
||||
<button type="submit" class="search-bar-submit"><i class="fa fa-search" aria-hidden="true"></i></button>
|
||||
<button type="button" class="search-bar-close">×</button>
|
||||
</form>
|
||||
</div>
|
||||
|
||||
<div id="mobile-nav-overlay"></div>
|
||||
<div id="mobile-nav-panel">
|
||||
<div class="mobile-nav-header">
|
||||
<?php if (!$is_member) { ?>
|
||||
<a href="<?php echo G5_BBS_URL ?>/login.php" class="btn-mobile-login">로그인</a>
|
||||
<a href="<?php echo G5_BBS_URL ?>/register.php" class="btn-mobile-join">회원가입</a>
|
||||
<?php } else { ?>
|
||||
<div class="mobile-user-info">
|
||||
<strong><?php echo $member['mb_nick'] ?></strong> 님, 환영합니다.
|
||||
</div>
|
||||
<?php } ?>
|
||||
<button type="button" id="mobile-menu-close" class="mobile-menu-close-btn" aria-label="전체메뉴 닫기">×</button>
|
||||
</div>
|
||||
<nav class="mobile-gnb">
|
||||
<ul>
|
||||
<?php
|
||||
foreach ($menu_tree_mobile as $row) {
|
||||
$has_sub = isset($row['sub']) && !empty($row['sub']);
|
||||
?>
|
||||
<li>
|
||||
<?php
|
||||
$href = $row['me_link'];
|
||||
if (strpos($href, '#') === 0 && strlen($href) > 1) {
|
||||
$href = G5_URL . $href;
|
||||
}
|
||||
?>
|
||||
<a href="<?php echo $href; ?>" target="_<?php echo $row['me_target']; ?>">
|
||||
<?php echo get_text($row['me_name']); ?>
|
||||
<?php if ($has_sub) echo '<span class="sub-menu-indicator"><i class="fa fa-chevron-down"></i></span>'; ?>
|
||||
</a>
|
||||
<?php
|
||||
if ($has_sub) {
|
||||
echo '<ul class="sub-menu">';
|
||||
foreach ($row['sub'] as $row2) {
|
||||
$href2 = $row2['me_link'];
|
||||
if (strpos($href2, '#') === 0 && strlen($href2) > 1) {
|
||||
$href2 = G5_URL . $href2;
|
||||
}
|
||||
echo '<li><a href="' . $href2 . '" target="_' . $row2['me_target'] . '">' . get_text($row2['me_name']) . '</a></li>';
|
||||
}
|
||||
echo '</ul>';
|
||||
}
|
||||
?>
|
||||
</li>
|
||||
<?php } ?>
|
||||
</ul>
|
||||
</nav>
|
||||
</div>
|
||||
</header>
|
||||
|
||||
<script>
|
||||
document.addEventListener('DOMContentLoaded', function() {
|
||||
// PC/모바일 공통: 헤더 스크롤 효과
|
||||
const header = document.getElementById('header');
|
||||
if (header.classList.contains('is-transparent')) {
|
||||
window.addEventListener('scroll', function() {
|
||||
if (window.scrollY > 50) {
|
||||
header.classList.add('is-scrolled');
|
||||
} else {
|
||||
header.classList.remove('is-scrolled');
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
// PC 전용: 검색창 토글
|
||||
const searchToggleBtn = document.querySelector('.search-toggle-btn');
|
||||
const searchBarWrap = document.getElementById('search-bar-wrap');
|
||||
const searchBarClose = document.querySelector('.search-bar-close');
|
||||
|
||||
if (searchToggleBtn && searchBarWrap) {
|
||||
searchToggleBtn.addEventListener('click', function() {
|
||||
searchBarWrap.classList.add('is-active');
|
||||
document.getElementById('search-bar-input').focus();
|
||||
});
|
||||
}
|
||||
if (searchBarClose && searchBarWrap) {
|
||||
searchBarClose.addEventListener('click', function() {
|
||||
searchBarWrap.classList.remove('is-active');
|
||||
});
|
||||
}
|
||||
|
||||
// 모바일 전용: 메뉴 패널 토글
|
||||
const mobileMenuBtn = document.getElementById('mobile-menu-toggle');
|
||||
const mobileMenuCloseBtn = document.getElementById('mobile-menu-close');
|
||||
const navPanel = document.getElementById('mobile-nav-panel');
|
||||
const overlay = document.getElementById('mobile-nav-overlay');
|
||||
const body = document.body;
|
||||
|
||||
function openMenu() {
|
||||
if (navPanel) navPanel.classList.add('is-active');
|
||||
if (overlay) overlay.classList.add('is-active');
|
||||
body.style.overflow = 'hidden'; // 스크롤 방지
|
||||
}
|
||||
|
||||
function closeMenu() {
|
||||
if (navPanel) navPanel.classList.remove('is-active');
|
||||
if (overlay) overlay.classList.remove('is-active');
|
||||
body.style.overflow = ''; // 스크롤 복원
|
||||
}
|
||||
|
||||
if (mobileMenuBtn) mobileMenuBtn.addEventListener('click', openMenu);
|
||||
if (mobileMenuCloseBtn) mobileMenuCloseBtn.addEventListener('click', closeMenu);
|
||||
if (overlay) overlay.addEventListener('click', closeMenu);
|
||||
|
||||
// 모바일 전용: 서브메뉴 토글
|
||||
const subMenuIndicators = document.querySelectorAll('.mobile-gnb .sub-menu-indicator');
|
||||
subMenuIndicators.forEach(indicator => {
|
||||
indicator.addEventListener('click', function(e) {
|
||||
e.preventDefault();
|
||||
e.stopPropagation();
|
||||
const subMenu = this.closest('li').querySelector('.sub-menu');
|
||||
if (subMenu) {
|
||||
const isVisible = subMenu.style.display === 'block';
|
||||
subMenu.style.display = isVisible ? 'none' : 'block';
|
||||
this.querySelector('i').classList.toggle('fa-chevron-up', !isVisible);
|
||||
this.querySelector('i').classList.toggle('fa-chevron-down', isVisible);
|
||||
}
|
||||
});
|
||||
});
|
||||
});
|
||||
</script>
|
||||
@@ -0,0 +1,57 @@
|
||||
/* 레이아웃 CSS */
|
||||
.rows_gnb_wrap {border-top:1px solid rgba(255,255,255,0.2); padding-top: 10px; margin-top: 20px;}
|
||||
.row_gnbs {position: relative;}
|
||||
.row_gnbs .cbp-hrmenu > ul, .cbp-hrmenu .cbp-hrsub-inner {padding-left: 0px; padding-right: 0px;}
|
||||
.row_gnbs .cbp-hrmenu > ul > li {padding-left: 0px; padding-right: 30px;}
|
||||
.row_gnbs .cbp-hrmenu > ul {float:none !important; line-height: 100%;}
|
||||
.gnb_wrap .row_gnbs nav {float:none;}
|
||||
.row_gnbs .cbp-hrmenu .cbp-hrsub {top:40px;}
|
||||
|
||||
.search_top_wrap {float:left; position: relative; width: 280px;}
|
||||
.search_top_wrap input {border:0px; background-color: #fff; border-radius: 60px; height:40px; width: 100%; color:#000;}
|
||||
.search_top_wrap input::placeholder{font-family:'font-R',sans-serif; color:#999;}
|
||||
.search_top_wrap button {position: absolute; top:11px; right:15px;}
|
||||
.search_top_wrap input:focus {border:0px !important;}
|
||||
.search_top_wrap_inner {position: relative;}
|
||||
|
||||
/* 게시판 fixed 버튼 위치조정 */
|
||||
.rb_bbs_wrap .btns_gr_wrap {top:185px !important;}
|
||||
|
||||
.co_header0 .rows_gnb_wrap {border-top:1px solid rgba(0,0,0,0.05);}
|
||||
.co_header0 .search_top_wrap input {background-color: rgba(0,0,0,0.05);}
|
||||
.ser_display_none .search_top_wrap_inner {display: none;}
|
||||
.header-logo img { height: 65px; }
|
||||
.header-inner {
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: unset; !important;
|
||||
width: 100%;
|
||||
}
|
||||
.header-left{
|
||||
display: flex;
|
||||
align-items: unset; !important;
|
||||
flex-shrink: 0;
|
||||
margin-right: 80px;
|
||||
}
|
||||
|
||||
|
||||
@media all and (max-width:1024px) {
|
||||
.rows_gnb_wrap {display: none;}
|
||||
.search_top_wrap {width: 30%;}
|
||||
.gnb_wrap .snb_wrap .qm_wrap a {width: auto; padding-left: 0px; margin-left: 20px;}
|
||||
.gnb_wrap .tog_wrap {margin-right: 20px;}
|
||||
|
||||
/* 1.0.1 { */
|
||||
.mobile_cb {clear: both;}
|
||||
.search_top_wrap {display: block; float:none !important; width: 100%; margin-top: 10px;}
|
||||
.gnb_wrap .snb_wrap .my_btn_wrap {display: block;margin-left: 20px;}
|
||||
.gnb_wrap .snb_wrap .my_btn_wrap .btn_round.arr_bg {display: none;}
|
||||
.gnb_wrap .snb_wrap .my_btn_wrap .btn_round {padding-left: 15px; padding-right: 15px; height:35px;}
|
||||
.gnb_wrap .snb_wrap .qm_wrap a span {left: 10px;}
|
||||
/* } */
|
||||
|
||||
/* 1.1.1 { */
|
||||
.gnb_wrap .inner {padding-left: 0px !important; padding-right: 0px !important;}
|
||||
/* } */
|
||||
.header-logo img { height: 30px; }
|
||||
}
|
||||
@@ -0,0 +1,16 @@
|
||||
<?php
|
||||
if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가
|
||||
|
||||
// 💡 [핵심] 메뉴 스킨 시스템 적용
|
||||
// 나중에 관리자 페이지에서 설정할 수 있도록 변수화 가능
|
||||
$menu_skin = 'lwd_laser';
|
||||
$menu_skin_path = G5_THEME_PATH . '/skin/nav/' . $menu_skin;
|
||||
$menu_skin_url = G5_THEME_URL . '/skin/nav/' . $menu_skin;
|
||||
|
||||
if (file_exists($menu_skin_path . '/nav.skin.php')) {
|
||||
add_stylesheet('<link rel="stylesheet" href="' . $menu_skin_url . '/style.css?ver=' . G5_SERVER_TIME . '">', 0);
|
||||
include_once($menu_skin_path . '/nav.skin.php');
|
||||
} else {
|
||||
echo '<div class="alert alert-danger text-center">메뉴 스킨을 찾을 수 없습니다. (' . $menu_skin . ')</div>';
|
||||
}
|
||||
?>
|
||||
@@ -0,0 +1,170 @@
|
||||
<?php
|
||||
if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가
|
||||
|
||||
// 레이아웃 폴더내 style.css 파일
|
||||
add_stylesheet('<link rel="stylesheet" href="'.G5_THEME_URL.'/rb.layout_hd/'.$rb_core['layout_hd'].'/style.css?ver='.G5_TIME_YMDHIS.'">', 0);
|
||||
?>
|
||||
|
||||
<!-- Modern Minimal Header -->
|
||||
<header id="header" class="modern-minimal-header">
|
||||
<div class="header-container">
|
||||
<div class="header-content">
|
||||
<!-- 로고 -->
|
||||
<div class="logo-section">
|
||||
<a href="<?php echo G5_URL ?>" class="logo-link">
|
||||
<?php if (!empty($rb_builder['bu_logo_pc']) && !empty($rb_builder['bu_logo_pc_w'])) { ?>
|
||||
<img src="<?php echo G5_URL ?>/data/logos/pc?ver=<?php echo G5_SERVER_TIME ?>" alt="<?php echo $config['cf_title']; ?>" class="logo-img">
|
||||
<?php } else { ?>
|
||||
<img src="<?php echo G5_THEME_URL ?>/rb.img/logos/pc.png?ver=<?php echo G5_SERVER_TIME ?>" alt="<?php echo $config['cf_title']; ?>" class="logo-img">
|
||||
<?php } ?>
|
||||
</a>
|
||||
</div>
|
||||
|
||||
<!-- 네비게이션 -->
|
||||
<nav class="main-navigation">
|
||||
<ul class="nav-menu">
|
||||
<?php
|
||||
if(IS_MOBILE()) {
|
||||
$menu_datas = get_menu_db(1, true);
|
||||
} else {
|
||||
$menu_datas = get_menu_db(0, true);
|
||||
}
|
||||
|
||||
$gnb_zindex = 999;
|
||||
$i = 0;
|
||||
foreach($menu_datas as $row) {
|
||||
if(empty($row)) continue;
|
||||
|
||||
// 1차 메뉴 권한 체크
|
||||
if (!$is_admin && isset($row['me_level']) && $row['me_level'] > 0) {
|
||||
if (isset($row['me_level_opt']) && $row['me_level_opt'] == 2) {
|
||||
if ($row['me_level'] != $member['mb_level']) continue;
|
||||
} else {
|
||||
if ($row['me_level'] > $member['mb_level']) continue;
|
||||
}
|
||||
}
|
||||
?>
|
||||
<li class="nav-item">
|
||||
<a href="<?php echo $row['me_link']; ?>" target="_<?php echo $row['me_target']; ?>" class="nav-link"><?php echo $row['me_name'] ?></a>
|
||||
<?php
|
||||
$k = 0;
|
||||
foreach((array)$row['sub'] as $row2) {
|
||||
if(empty($row2)) continue;
|
||||
|
||||
// 2차 메뉴 권한 체크
|
||||
if (!$is_admin && isset($row2['me_level']) && $row2['me_level'] > 0) {
|
||||
if (isset($row2['me_level_opt']) && $row2['me_level_opt'] == 2) {
|
||||
if ($row2['me_level'] != $member['mb_level']) continue;
|
||||
} else {
|
||||
if ($row2['me_level'] > $member['mb_level']) continue;
|
||||
}
|
||||
}
|
||||
|
||||
if($k == 0)
|
||||
echo '<ul class="sub-menu">'.PHP_EOL;
|
||||
?>
|
||||
<li><a href="<?php echo $row2['me_link']; ?>" target="_<?php echo $row2['me_target']; ?>" class="sub-link"><?php echo $row2['me_name'] ?></a></li>
|
||||
<?php
|
||||
$k++;
|
||||
}
|
||||
|
||||
if($k > 0)
|
||||
echo '</ul>'.PHP_EOL;
|
||||
?>
|
||||
</li>
|
||||
<?php
|
||||
$i++;
|
||||
}
|
||||
|
||||
if ($i == 0) {
|
||||
?>
|
||||
<li class="nav-item"><a href="javascript:void(0);" class="nav-link">메뉴 준비 중입니다.</a></li>
|
||||
<?php } ?>
|
||||
</ul>
|
||||
</nav>
|
||||
|
||||
<!-- 헤더 액션 -->
|
||||
<div class="header-actions">
|
||||
<!-- 검색 -->
|
||||
<div class="search-section">
|
||||
<button type="button" class="search-btn" id="search_btn">
|
||||
<svg width="20" height="20" viewBox="0 0 20 20" fill="none">
|
||||
<path d="M8.5 1C4.36 1 1 4.36 1 8.5S4.36 16 8.5 16c1.84 0 3.52-.65 4.85-1.73L18.5 19.5L19.5 18.5L13.27 12.35C14.35 11.02 15 9.34 15 8.5C15 4.36 11.64 1 8.5 1ZM8.5 14C5.46 14 3 11.54 3 8.5S5.46 3 8.5 3S14 5.46 14 8.5S11.54 14 8.5 14Z" fill="currentColor"/>
|
||||
</svg>
|
||||
</button>
|
||||
<div class="search-box" id="search_box">
|
||||
<form name="fsearchbox" method="get" action="<?php echo G5_BBS_URL ?>/search.php" onsubmit="return fsearchbox_submit(this);">
|
||||
<input type="text" name="stx" maxlength="20" class="search-input" placeholder="검색어를 입력하세요">
|
||||
<button type="submit" class="search-submit">검색</button>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- 회원 정보 -->
|
||||
<div class="member-section">
|
||||
<?php if($is_member) { ?>
|
||||
<div class="member-info">
|
||||
<span class="member-name"><?php echo $member['mb_nick'] ?></span>
|
||||
<span class="member-point"><?php echo number_format($member['mb_point']); ?>P</span>
|
||||
</div>
|
||||
<div class="member-actions">
|
||||
<a href="<?php echo G5_BBS_URL ?>/memo.php" class="action-btn" onclick="win_memo(this.href); return false;">
|
||||
<svg width="18" height="18" viewBox="0 0 18 18" fill="none">
|
||||
<path d="M15.27 2.34L2.68 6.89L6.87 9.32L10.57 5.62C10.76 5.43 11.02 5.32 11.28 5.32C11.54 5.32 11.8 5.43 11.99 5.62C12.18 5.81 12.28 6.06 12.28 6.33C12.28 6.6 12.18 6.85 11.99 7.03L8.29 10.73L10.72 14.93L15.27 2.34Z" fill="currentColor"/>
|
||||
</svg>
|
||||
<?php if($memo_not_read > 0) { ?>
|
||||
<span class="badge"><?php echo $memo_not_read ?></span>
|
||||
<?php } ?>
|
||||
</a>
|
||||
<a href="<?php echo G5_BBS_URL ?>/logout.php" class="action-btn">로그아웃</a>
|
||||
</div>
|
||||
<?php } else { ?>
|
||||
<div class="auth-actions">
|
||||
<a href="<?php echo G5_BBS_URL ?>/login.php" class="auth-btn login-btn">로그인</a>
|
||||
<a href="<?php echo G5_BBS_URL ?>/register.php" class="auth-btn register-btn">회원가입</a>
|
||||
</div>
|
||||
<?php } ?>
|
||||
</div>
|
||||
|
||||
<!-- 모바일 메뉴 토글 -->
|
||||
<button type="button" class="mobile-menu-btn" id="mobile_menu_btn">
|
||||
<span></span>
|
||||
<span></span>
|
||||
<span></span>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</header>
|
||||
|
||||
<script>
|
||||
$(document).ready(function() {
|
||||
// 검색 기능
|
||||
$('#search_btn').click(function() {
|
||||
$('#search_box').toggleClass('active');
|
||||
if ($('#search_box').hasClass('active')) {
|
||||
$('.search-input').focus();
|
||||
}
|
||||
});
|
||||
|
||||
// 모바일 메뉴
|
||||
$('#mobile_menu_btn').click(function() {
|
||||
$('.main-navigation').toggleClass('mobile-active');
|
||||
$(this).toggleClass('active');
|
||||
});
|
||||
|
||||
// 검색 폼 제출
|
||||
function fsearchbox_submit(f) {
|
||||
var stx = f.stx.value.trim();
|
||||
if (stx.length < 2) {
|
||||
alert("검색어는 두글자 이상 입력해주세요.");
|
||||
f.stx.select();
|
||||
f.stx.focus();
|
||||
return false;
|
||||
}
|
||||
f.stx.value = stx;
|
||||
return true;
|
||||
}
|
||||
});
|
||||
</script>
|
||||
|
||||
@@ -0,0 +1,334 @@
|
||||
/* Modern Minimal Header Styles */
|
||||
|
||||
.modern-minimal-header {
|
||||
background: var(--bg-primary);
|
||||
border-bottom: 1px solid var(--border-color);
|
||||
position: sticky;
|
||||
top: 0;
|
||||
z-index: 1000;
|
||||
backdrop-filter: blur(10px);
|
||||
background: rgba(255, 255, 255, 0.95);
|
||||
}
|
||||
|
||||
.header-container {
|
||||
max-width: 1200px;
|
||||
margin: 0 auto;
|
||||
padding: 0 var(--spacing-md);
|
||||
}
|
||||
|
||||
.header-content {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
height: 70px;
|
||||
}
|
||||
|
||||
/* 로고 섹션 */
|
||||
.logo-section {
|
||||
flex-shrink: 0;
|
||||
}
|
||||
|
||||
.logo-link {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
.logo-img {
|
||||
height: 40px;
|
||||
width: auto;
|
||||
object-fit: contain;
|
||||
}
|
||||
|
||||
/* 네비게이션 */
|
||||
.main-navigation {
|
||||
flex: 1;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
}
|
||||
|
||||
.nav-menu {
|
||||
display: flex;
|
||||
list-style: none;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
gap: var(--spacing-xl);
|
||||
}
|
||||
|
||||
.nav-item {
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.nav-link {
|
||||
display: block;
|
||||
padding: var(--spacing-sm) 0;
|
||||
color: var(--text-primary);
|
||||
text-decoration: none;
|
||||
font-weight: 500;
|
||||
transition: color 0.3s ease;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.nav-link:hover {
|
||||
color: var(--primary-color);
|
||||
}
|
||||
|
||||
.nav-link::after {
|
||||
content: '';
|
||||
position: absolute;
|
||||
bottom: -5px;
|
||||
left: 0;
|
||||
width: 0;
|
||||
height: 2px;
|
||||
background: var(--primary-color);
|
||||
transition: width 0.3s ease;
|
||||
}
|
||||
|
||||
.nav-link:hover::after {
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
/* 서브메뉴 */
|
||||
.sub-menu {
|
||||
position: absolute;
|
||||
top: 100%;
|
||||
left: 0;
|
||||
background: var(--bg-primary);
|
||||
border: 1px solid var(--border-color);
|
||||
border-radius: var(--radius-md);
|
||||
box-shadow: var(--shadow-lg);
|
||||
min-width: 200px;
|
||||
opacity: 0;
|
||||
visibility: hidden;
|
||||
transform: translateY(-10px);
|
||||
transition: all 0.3s ease;
|
||||
list-style: none;
|
||||
margin: 0;
|
||||
padding: var(--spacing-sm) 0;
|
||||
z-index: 1001;
|
||||
}
|
||||
|
||||
.nav-item:hover .sub-menu {
|
||||
opacity: 1;
|
||||
visibility: visible;
|
||||
transform: translateY(0);
|
||||
}
|
||||
|
||||
.sub-link {
|
||||
display: block;
|
||||
padding: var(--spacing-sm) var(--spacing-md);
|
||||
color: var(--text-secondary);
|
||||
text-decoration: none;
|
||||
transition: all 0.3s ease;
|
||||
}
|
||||
|
||||
.sub-link:hover {
|
||||
background: var(--bg-secondary);
|
||||
color: var(--primary-color);
|
||||
}
|
||||
|
||||
/* 헤더 액션 */
|
||||
.header-actions {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: var(--spacing-md);
|
||||
}
|
||||
|
||||
/* 검색 섹션 */
|
||||
.search-section {
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.search-btn {
|
||||
background: none;
|
||||
border: none;
|
||||
padding: var(--spacing-sm);
|
||||
cursor: pointer;
|
||||
color: var(--text-secondary);
|
||||
transition: color 0.3s ease;
|
||||
border-radius: var(--radius-sm);
|
||||
}
|
||||
|
||||
.search-btn:hover {
|
||||
color: var(--primary-color);
|
||||
background: var(--bg-secondary);
|
||||
}
|
||||
|
||||
.search-box {
|
||||
position: absolute;
|
||||
top: 100%;
|
||||
right: 0;
|
||||
background: var(--bg-primary);
|
||||
border: 1px solid var(--border-color);
|
||||
border-radius: var(--radius-md);
|
||||
box-shadow: var(--shadow-lg);
|
||||
padding: var(--spacing-md);
|
||||
min-width: 300px;
|
||||
opacity: 0;
|
||||
visibility: hidden;
|
||||
transform: translateY(-10px);
|
||||
transition: all 0.3s ease;
|
||||
z-index: 1001;
|
||||
}
|
||||
|
||||
.search-box.active {
|
||||
opacity: 1;
|
||||
visibility: visible;
|
||||
transform: translateY(0);
|
||||
}
|
||||
|
||||
.search-input {
|
||||
width: 100%;
|
||||
padding: var(--spacing-sm);
|
||||
border: 1px solid var(--border-color);
|
||||
border-radius: var(--radius-sm);
|
||||
font-size: 0.875rem;
|
||||
margin-bottom: var(--spacing-sm);
|
||||
}
|
||||
|
||||
.search-submit {
|
||||
width: 100%;
|
||||
padding: var(--spacing-sm);
|
||||
background: var(--primary-color);
|
||||
color: white;
|
||||
border: none;
|
||||
border-radius: var(--radius-sm);
|
||||
font-weight: 500;
|
||||
cursor: pointer;
|
||||
transition: background 0.3s ease;
|
||||
}
|
||||
|
||||
.search-submit:hover {
|
||||
background: var(--secondary-color);
|
||||
}
|
||||
|
||||
/* 회원 섹션 */
|
||||
.member-section {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: var(--spacing-sm);
|
||||
}
|
||||
|
||||
.member-info {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: flex-end;
|
||||
margin-right: var(--spacing-sm);
|
||||
}
|
||||
|
||||
.member-name {
|
||||
font-weight: 600;
|
||||
color: var(--text-primary);
|
||||
font-size: 0.875rem;
|
||||
}
|
||||
|
||||
.member-point {
|
||||
font-size: 0.75rem;
|
||||
color: var(--text-secondary);
|
||||
}
|
||||
|
||||
.member-actions {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: var(--spacing-sm);
|
||||
}
|
||||
|
||||
.action-btn {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
padding: var(--spacing-xs) var(--spacing-sm);
|
||||
color: var(--text-secondary);
|
||||
text-decoration: none;
|
||||
border-radius: var(--radius-sm);
|
||||
transition: all 0.3s ease;
|
||||
position: relative;
|
||||
font-size: 0.875rem;
|
||||
}
|
||||
|
||||
.action-btn:hover {
|
||||
color: var(--primary-color);
|
||||
background: var(--bg-secondary);
|
||||
}
|
||||
|
||||
.badge {
|
||||
position: absolute;
|
||||
top: -5px;
|
||||
right: -5px;
|
||||
background: var(--error-color);
|
||||
color: white;
|
||||
font-size: 0.625rem;
|
||||
padding: 2px 6px;
|
||||
border-radius: 10px;
|
||||
min-width: 18px;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
/* 인증 버튼 */
|
||||
.auth-actions {
|
||||
display: flex;
|
||||
gap: var(--spacing-sm);
|
||||
}
|
||||
|
||||
.auth-btn {
|
||||
padding: var(--spacing-xs) var(--spacing-md);
|
||||
border-radius: var(--radius-sm);
|
||||
text-decoration: none;
|
||||
font-weight: 500;
|
||||
font-size: 0.875rem;
|
||||
transition: all 0.3s ease;
|
||||
}
|
||||
|
||||
.login-btn {
|
||||
color: var(--text-secondary);
|
||||
border: 1px solid var(--border-color);
|
||||
}
|
||||
|
||||
.login-btn:hover {
|
||||
color: var(--primary-color);
|
||||
border-color: var(--primary-color);
|
||||
}
|
||||
|
||||
.register-btn {
|
||||
background: var(--primary-color);
|
||||
color: white;
|
||||
}
|
||||
|
||||
.register-btn:hover {
|
||||
background: var(--secondary-color);
|
||||
}
|
||||
|
||||
/* 모바일 메뉴 버튼 */
|
||||
.mobile-menu-btn {
|
||||
display: none;
|
||||
flex-direction: column;
|
||||
background: none;
|
||||
border: none;
|
||||
cursor: pointer;
|
||||
padding: var(--spacing-sm);
|
||||
gap: 4px;
|
||||
}
|
||||
|
||||
.mobile-menu-btn span {
|
||||
width: 20px;
|
||||
height: 2px;
|
||||
background: var(--text-primary);
|
||||
transition: all 0.3s ease;
|
||||
}
|
||||
|
||||
.mobile-menu-btn.active span:nth-child(1) {
|
||||
transform: rotate(45deg) translate(5px, 5px);
|
||||
}
|
||||
|
||||
.mobile-menu-btn.active span:nth-child(2) {
|
||||
opacity: 0;
|
||||
}
|
||||
|
||||
.mobile-menu-btn.active span:nth-child(3) {
|
||||
transform: rotate(-45deg) translate(7px, -6px);
|
||||
}
|
||||
|
||||
/* 반응형 디자인 */
|
||||
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user