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

권한별 메뉴 다르게 보이게하기 채택완료

sozet 4년 전 조회 2,733

권한별로 메뉴가 다르게 보이게 하기 위해 아래 링크처럼 해보았는데 기본테마에서는 무리없이 되는데 다른 테마를 이용하니 작동을 하지 않습니다. 왜 그런걸까요??

 

https://gnustudy.com/bbs/board.php?bo_table=gnu_tip&wr_id=151

 

현재 쓰고 있는 테마를 봤을때 관련 있을법한 코드는 아래와 같습니다..

많은 도움 부탁 드립니다. 감사 합니다.

 

</p>

<p>// 모바일접속 체크

    $isMobile = preg_match('/(iPod|iPhone|Android|BlackBerry|SymbianOS|SCH-M\d+|Opera Mini|Windows CE|Nokia|SonyEricsson|webOS|PalmOS)/',$_SERVER['HTTP_USER_AGENT']);

    

    //------------------------------------------- 그누보드 메뉴D.B 가져오기 BEGIN ----------------------------------------------------

    $smenu = array();

    $smenu_code = array();

    $smenu_href = array();

    $smenu_target = array();

    

    $smenu[0][0] = $config[cf_title]; //그누보드 타이틀 = 홈페이지 제목

    $smenu_code[0][0] = "0000";

    $smenu_href[0][0] = "/";

    $smenu_target[0][0] = "_self";

    

    // 주메뉴 Query

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

    $result1 = sql_query($sql1, false);

    

    for ($i=0; $row1=sql_fetch_array($result1); $i++) {

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

        $result2 = sql_query($sql2);

        

        $smenu[$i+1][0] = $row1['me_name'];

        $smenu_code[$i+1][0] = $row1['me_code'];

        $smenu_href[$i+1][0] = $row1['me_link'];

        $smenu_target[$i+1][0] = "_".$row1['me_target'];

        

        for ($j=0; $row2=sql_fetch_array($result2); $j++) {

                $smenu[$i+1][$j+1] = $row2['me_name'];

                $smenu_code[$i+1][$j+1] = $row2['me_code'];

                $smenu_href[$i+1][$j+1] = $row2['me_link'];

                $smenu_target[$i+1][$j+1] = "_".$row2['me_target'];

        }

    }

    

    // 메뉴에 포함된 주소인지 확인해 $id 값을 넣어주는 소스코드

    function array_search2($needle,$haystack)    { 

        foreach($haystack as $key => $array) {

        $i=0;

          foreach($array as $value) {

                // 포함되는 값을 찾음 

                if(strpos($value, $needle) !== false)  return array($key,$i);

                $i++; 

          }

        }

        return false; 

    } </p>

<p>

 

 

 

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

답변 1개

채택된 답변
+20 포인트
i
4년 전

$sql1 = " select * from {$g5['menu_table']} where me_use = '1' and length(me_code) = '2' and me_level <= '{$member['mb_level']}' order by me_order, me_id ";

$sql2 = " select * from {$g5['menu_table']} where me_use = '1' and length(me_code) = '4' and substring(me_code, 1, 2) = '{$row1['me_code']}' and me_level <= '{$member['mb_level']}' order by me_order, me_id ";

레벨을 판단하는 내용이 빠져 있네요 링크처럼 설정하신게 맞다면 위 코드로 되야 합니다.

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

답변에 대한 댓글 1개

s
sozet
4년 전
그냥 지나칠 수 있는 질문에도 성의껏 시간을 내주셔서 알아봐주시고 답변을 해주셔서 진심으로 감사합니다.

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

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

로그인