테스트 사이트 - 개발 중인 베타 버전입니다

GNB active 문의 채택완료

다나한포션 3년 전 조회 2,460

안녕하세요.

 

https://sir.kr/g5_tip/7299

팁게시판의 현재위치 색넣기를 적용하고 잇습니다.

 

</p>

<p>$menu_url = '<a href="http://'.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];" target="_blank" rel="noopener noreferrer">http://'.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];</a>

$menu = sql_fetch(" select * from {$g5['menu_table']} where me_use = '1' and me_link = '$menu_url' ");

$me_code = substr($menu['me_code'],0,2);

$sql = " select * from {$g5['menu_table']} where me_use = '1' and me_code = '$me_code' ";

$result = sql_query($sql, false);

for ($i=0; $row=sql_fetch_array($result); $i++){$txt = $row['me_name'];$txtx = $row['me_link'];}

$sql2 = " select * from {$g5['menu_table']} where me_use = '1' and substring(me_code, 1, 2) = '$me_code' order by me_order, me_id ";$result2 = sql_query($sql2);

for ($m=0; $row2=sql_fetch_array($result2); $m++){if($row2['me_link'] == $menu_url) $txt2 = $row2['me_name'];$txty = $row2['me_link'];}

if(strpos(G5_URL.$_SERVER['REQUEST_URI'], '=') != '') $s20 = '=';else $s20 = '/';

 

</p>

<p>            <nav id="gnb">

                <h2>메인메뉴</h2>

                <div class="gnb_wrap">

                    <ul id="gnb_1dul">

                        <li class="gnb_1dli gnb_mnal"><button type="button" class="gnb_menu_btn" title="전체메뉴">전체메뉴 <i class="fa fa-bars" aria-hidden="true"></i><span class="sound_only">전체메뉴열기</span></button></li>

                        <?php

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

                            if($member['mb_level'] < $row['me_level']) continue;

                            $add_class = (isset($row['sub']) && $row['sub']) ? 'gnb_al_li_plus' : '';

                        ?>

                        <li class="gnb_1dli <?php echo $add_class; ?>" style="z-index:<?php echo $gnb_zindex--; ?>">

                        <a href="<?php echo $row['me_link']; ?>" target="_<?php echo $row['me_target']; ?>" class="gnb_1da <?php if($txt == $row['me_name']||strpos(end(explode($s20, G5_BBS_URL.'/board.php?bo_table='.$bo_table)),end(explode($s20, $row['me_link']))) !== false||end(explode($s20, $row['me_link']))==$co_id||end(explode('=', $row['me_link']))==$go_url){$txtx = $row['me_link'];$txt = $row['me_name'];?>on<?php }?>"><?php echo $row['me_name']; ?></a>

                            <?php

                            $k = 0;

                            foreach( (array) $row['sub'] as $row2 ){</p>

<p>                                if( empty($row2) ) continue;

                                if($member['mb_level'] < $row2['me_level']) continue;

                                if($k == 0)

                                    echo '<span class="bg"></span><div class="gnb_2dul"><ul class="gnb_2dul_box">'.PHP_EOL;

                            ?>

                            <li class="gnb_2dli"><a href="<?php echo $row2['me_link']; ?>" target="_<?php echo $row2['me_target']; ?>" class="gnb_2da"><?php echo $row2['me_name']; ?></a></li>

                            <?php

                            $k++;

                            }   //end foreach $row2</p>

<p>                            if($k > 0)

                                echo '</ul></div>'.PHP_EOL;

                            ?>

                        </li>

                        <?php

                        $i++;

                        }   //end foreach $row</p>

<p>                        if ($i == 0) {  ?>

                            <li class="gnb_empty">메뉴 준비 중입니다.<?php if ($is_admin) { ?> <a href="<?php echo G5_ADMIN_URL; ?>/menu_list.php">관리자모드 &gt; 환경설정 &gt; 메뉴설정</a>에서 설정하실 수 있습니다.<?php } ?></li>

                        <?php } ?>

                    </ul>

                    <div id="gnb_all">

                        <h2>전체메뉴</h2>

                        <ul class="gnb_al_ul">

                            <?php

                            

                            $i = 0;

                            foreach( $menu_datas as $row ){

                            ?>

                            <li class="gnb_al_li">

                                <a href="<?php echo $row['me_link']; ?>" target="_<?php echo $row['me_target']; ?>" class="gnb_al_a"><?php echo $row['me_name'] ?></a>

                                <?php

                                $k = 0;

                                foreach( (array) $row['sub'] as $row2 ){

                                    if($k == 0)

                                        echo '<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++;

                                }   //end foreach $row2</p>

<p>                                if($k > 0)

                                    echo '</ul>'.PHP_EOL;

                                ?>

                            </li>

                            <?php

                            $i++;

                            }   //end foreach $row</p>

<p>                            if ($i == 0) {  ?>

                                <li class="gnb_empty">메뉴 준비 중입니다.<?php if ($is_admin) { ?> 
<a href="<?php echo G5_ADMIN_URL; ?>/menu_list.php">관리자모드 &gt; 환경설정 &gt; 메뉴설정</a>에서 설정하실 수 있습니다.<?php } ?></li>

                            <?php } ?>

                        </ul>

                        <button type="button" class="gnb_close_btn"><i class="fa fa-times" aria-hidden="true"></i></button>

                    </div>

                    <div id="gnb_all_bg"></div>

                </div>

            </nav></p>

<p>

 

이렇게 넣어서 잘 사용중인데

 

문제는..

대메뉴1의 하위메뉴가

 

서브메뉴1

서브메뉴2

서브메뉴3

 

이렇게 있으면

서브메뉴1 에 있을때만 active가 먹히고

서브메뉴2, 서브메뉴3에 가면 active가 풀려버립니다.

 

phpmyadmin 에서 확인해보면

10

1010

1020

 

여기서 최상단 10에만 active 가 먹히는거 같습니다.

 

하위 메뉴클릭시에도 대메뉴에 active가 활성화 될 수 있는 방법이 있을까요.

 

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

답변 1개

채택된 답변
+20 포인트
들레아빠

https://sir.kr/g5_tip/17895

위 새로 만든것으로 적용하여 보세요. 

로그인 후 평가할 수 있습니다

답변에 대한 댓글 2개

다나한포션
3년 전
앗..제작자님께서 직접.ㅠㅠ 황송하옵니다.
스킨 정말 잘쓰고 있습니다.
감사합니다!!
들레아빠
3년 전
제가 감사합니다.

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

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

로그인