부트스랩 메뉴설정

매출이 오르면 내리는 수수료! 지금 수수료센터에서 전자결제(PG)수수료 비교견적 신청해 보세요!
부트스랩 메뉴설정

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

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

회원로그인

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