채택완료

부트스랩 메뉴설정

2018-05-02 (수) 20:05:58 3,203

영카트 shop.head.php 부트스트랩 메뉴설정시 

막히는부분이 생기네요 

영카트 admin 메뉴설정후 

아래 샘플처럼 꾸미려고 하는데 . . . 

php 함수와 .dropdown .active 부분과 sub-menu 부분이 꼬입니다.

하위디랙토리가 없을때에도 마우스오버시 role menu가 빈 box로 보이네요 

뭐가 문제인지... 끙끙데다가 올립니다.

디자인은 몰라도 프로그래머 부분은 약합니다.

고수님들께 도움을 청합니다. 

이런식으로 보이네요 ~!

php에서는 active옵션을 어떻게 처리해야하나요.. 

2040730373_1525258975.4486.jpg

shop.head.php  코드는 아래에 있습니다. 

부트스랩 메뉴설정 부분 아래같이 움직이는 샘플입니다.

Copy
<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>

문제가 되는 영카트 메뉴설정 부분 입니다. 

Copy
<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">관리자모드 &gt; 환경설정 &gt; 메뉴설정</a>에서 설정하실 수 있습니다.<?php } ?></li>
                    <?php } ?>
                </ul>
                <!-- 메뉴 설정 end -->
|

답변 1개 / 댓글 1개

채택된 답변
+20 포인트

  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;

답변에 대한 댓글 1개

감사합니다.
거의 저에게는 신에 한수입니다.

코드수정하니
아 근데 모바일 에서 꺽새표 누르면 드롭다운.. 메뉴가 안 내려가는 문제가 있네요 ~~!
메뉴가 내려가서 하위sub메뉴가 보여야 돼는데 ...

모바일 에서 문제 ... 1, 4번만 움직임 나머지는 무반응 .... 이유를모름 ?
mnum = 0 메뉴 안내려감
mnum = 1 내려감
mnum = 2 안내려감
mnum = 3 안내려감
mnum = 4 내려감

javascript 에러가 없었는데 생겼네요~! 분석중 입니다.

<?php
if($i >= 0)
echo '<ul role="menu" class="sub-menu">'.PHP_EOL;
else
echo '<ul>'.PHP_EOL;
?>

//아마 이 role="menu" 부분이 문제인가... 이건 class도 아니고 어떻게 처리를 해야하나
<ul role="menu" class="sub-menu">
이분분도 위와 같은 변수로 처리하면 sub menu가 있을때만 나타나게 할수있나요 ?

어째든 여기까지 온건만해서 감사하고 있습니다.


[code]
<!-- 메뉴 설정 -->
<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(!$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;
?>
<a href="<?php echo $row['me_link']; ?>?mnum=<?=$i?>" 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']; ?>?mnum=<?=$i?>" 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 -->
[/code]

답변을 작성하려면 로그인이 필요합니다.