부트스랩 메뉴설정
본문
영카트 shop.head.php 부트스트랩 메뉴설정시
막히는부분이 생기네요
영카트 admin 메뉴설정후
아래 샘플처럼 꾸미려고 하는데 . . .
php 함수와 .dropdown .active 부분과 sub-menu 부분이 꼬입니다.
하위디랙토리가 없을때에도 마우스오버시 role menu가 빈 box로 보이네요
뭐가 문제인지... 끙끙데다가 올립니다.
디자인은 몰라도 프로그래머 부분은 약합니다.
고수님들께 도움을 청합니다.
이런식으로 보이네요 ~!
php에서는 active옵션을 어떻게 처리해야하나요..
shop.head.php 코드는 아래에 있습니다.
부트스랩 메뉴설정 부분 아래같이 움직이는 샘플입니다.
<div class="collapse navbar-collapse">
<ul class="nav navbar-nav navbar-right">
<li><a href="<?=G5_URL ?>/#">Home</a></li>
<li class="dropdown active">
<a href="<?=G5_URL ?>/#">Business<i class="fa fa-angle-down"></i></a>
<ul role="menu" class="sub-menu">
<li><a href="<?=G5_URL ?>/#">About</a></li>
<li><a href="<?=G5_URL ?>/#">process</a></li>
</ul>
</li>
<li class="dropdown">
<a href="<?=G5_URL ?>/#">Blog
<i class="fa fa-angle-down"></i>
</a>
<ul role="menu" class="sub-menu">
<li><a href="<?=G5_URL ?>/#">Blog</a></li>
<li><a href="<?=G5_URL ?>/#">3D data</a></li>
</ul>
</li>
</ul>
</div>
문제가 되는 영카트 메뉴설정 부분 입니다.
<div class="collapse navbar-collapse">
<!-- 메뉴 설정 -->
<ul class="nav navbar-nav navbar-right">
<?php
$sql = " select *
from {$g5['menu_table']}
where me_use = '1'
and length(me_code) = '2'
order by me_order, me_id ";
$result = sql_query($sql, false);
$gnb_zindex = 999; // gnb_1dli z-index 값 설정용
for ($i=0; $row=sql_fetch_array($result); $i++) {
?>
<?php
if($i > 0) {
echo '<li class="dropdown active">'.PHP_EOL;
} else {
echo '<li>'.PHP_EOL;
}
?>
<a href="<?php echo $row['me_link']; ?>" target="_<?php echo $row['me_target']; ?>" class="">
<?php echo $row['me_name'] ?>
<i class="fa fa-angle-down"></i>
</a>
<!--ul role="menu" class="sub-menu"-->
<?php
if($i > 0)
echo '<ul role="menu" class="sub-menu">'.PHP_EOL;
else
echo '<ul>'.PHP_EOL;
?>
<?php
$sql2 = " select *
from {$g5['menu_table']}
where me_use = '1'
and length(me_code) = '4'
and substring(me_code, 1, 2) = '{$row['me_code']}'
order by me_order, me_id ";
$result2 = sql_query($sql2);
for ($k=0; $row2=sql_fetch_array($result2); $k++) {
if($k == 0)
echo '<ul class="cate-ul-2" style="margin:0; padding:0;">'.PHP_EOL;
?>
<li class="cate-li-2" style="">
<a href="<?php echo $row2['me_link']; ?>" target="_<?php echo $row2['me_target']; ?>">
<?php echo $row2['me_name'] ?>
</a>
</li>
<?php
}
if($k > 0)
echo '</ul>'.PHP_EOL;
?>
</ul>
</li>
<?php
}
if ($i == 0) { ?>
<li id="gnb_empty">메뉴 준비 중입니다.<?php if ($is_admin) { ?> <br><a href="<?php echo G5_ADMIN_URL; ?>/menu_list.php">관리자모드 > 환경설정 > 메뉴설정</a>에서 설정하실 수 있습니다.<?php } ?></li>
<?php } ?>
</ul>
<!-- 메뉴 설정 end -->
답변 1
if($i > 0) {
echo '<li class="dropdown active">'.PHP_EOL;
<---이곳을 서브메뉴가 없는 순번을 넣으세요
if($i !=0 && $i !=2 && $i !=3) { // 0, 2, 3은 서브메뉴가 없는 주메뉴 순번입니다
echo '<li class="dropdown active">'.PHP_EOL;
그런데 active class를 저렇게 넣으면 안되는데...
다음처럼 해보세요
<a href="<?php echo $row['me_link']; ?>" target~~~
--->
<a href="<?php echo $row['me_link']; ?>?mnum=<?=$i?>" target <--링크에 이미 ?가 들어간다면 &로 변경해야함(그런 경우가 있다면 이것을 판단하는 코드를 하나 만들어야겠지요)
<a href="<?php echo $row2['me_link']; ?>" target~~~
--->
<a href="<?php echo $row2['me_link']; ?>?mnum=<?=$i?>" target
echo '<li class="dropdown active">'.PHP_EOL;
--->
if(!$mnum) $mnum = 0;
$active = $i==$mnum? ' active' : '';
if($i !=0 && $i !=2 && $i !=3)
echo "<li class='dropdown{$active}'>".PHP_EOL;
else echo "<li class='$active'>".PHP_EOL;