부트스랩 메뉴설정

부트스랩 메뉴설정

QA

부트스랩 메뉴설정

본문

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

막히는부분이 생기네요 

영카트 admin 메뉴설정후 

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

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

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

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

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

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

이런식으로 보이네요 ~!

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

2040730373_1525258975.4486.jpg

 

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;

 

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

코드수정하니
아 근데 모바일 에서 꺽새표 누르면 드롭다운.. 메뉴가 안 내려가는 문제가 있네요 ~~!
메뉴가 내려가서 하위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가 있을때만 나타나게 할수있나요 ?

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


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

답변을 작성하시기 전에 로그인 해주세요.
전체 21
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT