메뉴 코드 수정

메뉴 코드 수정

QA

메뉴 코드 수정

답변 3

본문

833092377_1528328178.623.png

 

상단 메뉴와 더불어 좌측에는 해당메뉴의 소메뉴목록을 출력하는 메뉴를 사용중입니다.

근데 이 좌측메뉴가 게시판연결이 메뉴명으로 구분하는것같습니다.

메뉴설정에서 메뉴명과 게시판 이름이 같을경우 연결이 잘되지만

다를경우 찾질못하고 빈칸으로 출력되버립니다.

이경우에는 어떻게 고쳐야 출력이될까요?

 


<!-- 좌측네비 시작 { -->
<script type="text/javascript">
<!--
    function display_submenu(num) {
         document.getElementById("mysub"+num).style.display="block";
    }
//-->
</script>
<style TYPE="text/css">
<!--
#mysubmenu ul {list-style:none; font-size:10pt; margin:0 0 10px 0; padding:0;}
#mysubmenu .leftmenu_b {line-height:50px; background-color:#34495E;text-align:center;font-size:11pt;font-weight:bold; color:#fff}
#mysubmenu .leftmenu_s {line-height:35px; padding-left:15px; background-color:#fff;border-left:1px solid #ccc;border-right:1px solid #ccc;border-bottom:1px solid #ccc;}
#mysubmenu a {text-decoration:none;}
#mysubmenu a:hover {color:blue;}
//-->
</style>
<div id="mysubmenu">
    <?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++) {
    ?>
    <ul id="mysub<?php echo $i ?>" style="display:none;">
        <a href="<?php echo $row['me_link']; ?>" target="_<?php echo $row['me_target']; ?>" ><li class="leftmenu_b"><?php echo $row['me_name'] ?></li></a>
            <?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);
            
            //좌측 서브메뉴 전체 리스트에서 현재 페이지에 해당하는 대메뉴 리스트만 보여줌
            if ( ($row['me_name']==$board['bo_subject'])||($row['me_name']==$g5['title']) ) {
                echo ("<script language='javascript'> display_submenu(" .$i. " ); </script> ");
            } else {
            }
    
            for ($k=0; $row2=sql_fetch_array($result2); $k++) {
                if($k == 0)
                    echo '<ul>'.PHP_EOL;
            ?>
                <a href="<?php echo $row2['me_link']; ?>" target="_<?php echo $row2['me_target']; ?>" ><li class="leftmenu_s"><?php echo $row2['me_name'] ?></li></a>
            <?php  
                //좌측 서브메뉴 전체 리스트에서 현재 페이지에 해당하는 대메뉴 리스트만 보여줌
                if ( ($row2['me_name']==$board['bo_subject'])||($row2['me_name']==$g5['title']) ) {
                    echo ("<script language='javascript'> display_submenu(" .$i. " ); </script> ");
                } else {
                }
            }
            if($k > 0)
                echo '</ul>'.PHP_EOL;
            ?>
    </ul>
    <?php } ?>

</div>
 
<!-- }좌측네비 끝 -->
 

...

 

...

 

...

 

...

이 질문에 댓글 쓰기 :

답변 3

소스 보시면 41번째줄에 게시판 명과 메뉴 명이 같을 경우 출력되도록 되어져 있어요

                      if ( ($row['me_name']==$board['bo_subject'])||($row['me_name']==$g5['title']) ) {

이부분 수정하셔야 하는데

크게 중요한 부분이 아니라면 메뉴명 앞 3글자와 게시판 글 앞 3글자가 동일하면 출력되도록 해도 될것같은데 수정하셔야 될듯해요

해당코드는 그누보드에 원래 있는 코드가 아닌,

테마 제작자 또는 누군가가 필요에 의해 만든 코드입니다.

 

해당코드를 사용한다면, 메뉴명과 게시판명을 일치해주는 것이 좋을 것 같고..

생각하는 규칙성이 달라, 해당 코드를 사용하기 어렵다면, 새로 로직을 짜고 코딩을 해야 됩니다.

자답이 되었네요


<div id="mysubmenu">
    <?php
    $sql = " select *
                from {$g5['menu_table']}
                where 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++) {
    ?>
    <ul id="mysub<?php echo $i ?>" style="display:none;">
        <a href="<?php echo $row['me_link']; ?>" target="_<?php echo $row['me_target']; ?>" ><li class="leftmenu_b"><?php echo $row['me_name'] ?></li></a>
            <?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);
            
            //좌측 서브메뉴 전체 리스트에서 현재 페이지에 해당하는 대메뉴 리스트만 보여줌
            if ( ($row['me_name']==$board['bo_subject'])||($row['me_name']==$g5['title']) ) {
                echo ("<script language='javascript'> display_submenu(" .$i. " ); </script> ");
            } else {
            }
    
            for ($k=0; $row2=sql_fetch_array($result2); $k++) {
                if($k == 0)
                    echo '<ul>'.PHP_EOL;
            ?>
                <a href="<?php echo $row2['me_link']; ?>" target="_<?php echo $row2['me_target']; ?>" ><li class="leftmenu_s"><?php echo $row2['me_name'] ?></li></a>
            <?php  
                //좌측 서브메뉴 전체 리스트에서 현재 페이지에 해당하는 대메뉴 리스트만 보여줌
                if ($row2['me_link']) {
                    $me_link0 = explode("=",$row2['me_link']);
                    //if ( ($me_link0[1]==$board['bo_table'])||($me_link0[1]==$co_id) ) {
                    if(strpos($row2['me_link'], $_GET['bo_table']) !== false) {
                        echo ("<script language='javascript'> display_submenu(" .$i. " ); </script> ");
                    }
                } else {    
                    //if ( ($row_asidemenu_hide2['me_name']==$board['bo_subject'])||($row_asidemenu_hide2['me_name']==$g5['title']) ) {
                    if(strpos($row2['me_link'], $_GET['bo_table']) !== false) {
                        echo ("<script language='javascript'> display_submenu(" .$i. " ); </script> ");
                    }
                }
            }
            if($k > 0)
                echo '</ul>'.PHP_EOL;
            ?>
    </ul>
    <?php } ?>

</div>
 
답변을 작성하시기 전에 로그인 해주세요.
QA 내용 검색
질문등록
전체 10,639
© SIRSOFT
현재 페이지 제일 처음으로