메뉴 권한(출력여부)설정 추가 > 그누보드5 팁자료실

그누보드5 팁자료실

메뉴 권한(출력여부)설정 추가 정보

메뉴 권한(출력여부)설정 추가

첨부파일

menu.zip (8.9K) 79회 다운로드 2021-09-16 15:57:07

본문

2943899688_1619578222.9044.png

 

메뉴에 권한을 부여해서 메뉴출력여부를 설정할 수 있도록 하는 방법입니다.
 

1. /adm/menu_list.php 25라인 아래 아래코드 추가

// 권한 설정 추가
if(!sql_query(" select me_level from {$g5['menu_table']} limit 1 ", false)) {
    sql_query(" ALTER TABLE `{$g5['menu_table']}`
                    ADD `me_level` tinyint(4) NOT NULL DEFAULT '0' AFTER `me_mobile_use` ", true);
}


2. /adm/menu_list.php 테이블에 권한설정부분 추가

<td class="td_mng">
    <label for="me_level_<?php echo $i; ?>" class="sound_only">권한</label>
    <?php echo get_member_level_select('me_level[]', 1, 10, $row['me_level']) ?>
</td>

 

3. /adm/menu_list_update.php 하단 메뉴 등록부분 권한부분 추가

    // 메뉴 등록
    $sql = " insert into {$g5['menu_table']}
                set me_code         = '".$me_code."',
                    me_name         = '".$me_name."',
                    me_link         = '".$me_link."',
                    me_target       = '".sql_real_escape_string(strip_tags($_POST['me_target'][$i]))."',
                    me_order        = '".sql_real_escape_string(strip_tags($_POST['me_order'][$i]))."',
                    me_use          = '".sql_real_escape_string(strip_tags($_POST['me_use'][$i]))."',
                    me_mobile_use   = '".sql_real_escape_string(strip_tags($_POST['me_mobile_use'][$i]))."',
                    me_level   = '".sql_real_escape_string(strip_tags($_POST['me_level'][$i]))."' ";
    sql_query($sql);

 

4. 테마 head.php 파일 메뉴출력부분 권한부분 추가
1차메뉴 : if ($member['mb_level'] < $row['me_level']) continue;
2차메뉴 : if ($member['mb_level'] < $row2['me_level']) continue;
전체메뉴 또한 같은형식으로 수정해주시면 됩니다.

수정전

<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;
        $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 echo $row['me_name'] ?></a>
        <?php
        $k = 0;
        foreach( (array) $row['sub'] as $row2 ){
            if( empty($row2) ) 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
        if($k > 0)
            echo '</ul></div>'.PHP_EOL;
        ?>
    </li>
    <?php
    $i++;
    }   //end foreach $row
    if ($i == 0) {  ?>
        <li class="gnb_empty">메뉴 준비 중입니다.<?php if ($is_admin) { ?> <a href="<?php echo G5_ADMIN_URL; ?>/menu_list.php">관리자모드 > 환경설정 > 메뉴설정</a>에서 설정하실 수 있습니다.<?php } ?></li>
    <?php } ?>
</ul>


수정후

<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 echo $row['me_name'] ?></a>
        <?php
        $k = 0;
        foreach( (array) $row['sub'] as $row2 ){
            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
        if($k > 0)
            echo '</ul></div>'.PHP_EOL;
        ?>
    </li>
    <?php
    $i++;
    }   //end foreach $row
    if ($i == 0) {  ?>
        <li class="gnb_empty">메뉴 준비 중입니다.<?php if ($is_admin) { ?> <a href="<?php echo G5_ADMIN_URL; ?>/menu_list.php">관리자모드 > 환경설정 > 메뉴설정</a>에서 설정하실 수 있습니다.<?php } ?></li>
    <?php } ?>
</ul>
추천
9

댓글 24개

감사합니다.
지금 질문을 드려도 되는지.?
위 소스를 넣고 메뉴를 임시로 만들때 권한이 안나오네요 캡쳐사진 확인해주세요
그래서 일단 확인을 누르고 다시 메뉴리스트를 보면 권한이 보여서 권한을 주고 다시 확인을 누르고 있는데 임시로 만들때 나오게 하려면 어떻게 해야 하나요.?
트리플님 메뉴의 전체메뉴에 보니 설정한 값이 그대로 노출됩니다.
전체메뉴에서도 설정해 놓은대로 안보이게 하려면 어떻게 해야 할까요.?
전체메뉴에서 안보여야 하는데 그대로 노출되네요
전에 안된다는것은 첨부파일에 다운을 받아 사용하면 될것을 그냥 소스만 만들어서그랬습니다
menu_form.php 수정을 안해서 그랬던것이었습니다.

그런데 폰에선 그냥 다 보이더군요 확인해 보시겠습니까 권한을 다 주었는데...
웹에서는 정상적으로 권한을 준 레벨만 보였는데 말입니다.

여하튼 스마트폰에서 그냥 다 보입니다. 확인바랍니다
전체메뉴에도 같은 적용시키라는 말이 있었군요
전 그거 못보았는데 자세히 보니 있네요
그래서 일단 비슷한데 따라한다고 따라했는데 적용되네요

그래서 저처럼 초보를 위해서 조그만더 상세하게 적어주시면 어떨까 생각되네요
읻단 제가 적어놓겠습니다

전체메뉴 적용전


            <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']; ?>"><i class="fa fa-caret-right" aria-hidden="true"></i> <?php echo $row2['me_name'] ?></a></li>
                        <?php
                        $k++;
                        }  //end foreach $row2

                        if($k > 0)
                            echo '</ul>'.PHP_EOL;
                        ?>
                    </li>



전체메뉴 적용후

            <div id="gnb_all">
                <h2>전체메뉴</h2>
                <ul class="gnb_al_ul">
                    <?php
                   
                    $i = 0;
                    foreach( $menu_datas as $row ){
if ($member['mb_level'] < $row['me_level']) continue;
                    ?>
                    <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 ($member['mb_level'] < $row2['me_level']) continue;
                            if($k == 0)
                                echo '<ul>'.PHP_EOL;
                        ?>
                            <li><a href="<?php echo $row2['me_link']; ?>" target="_<?php echo $row2['me_target']; ?>"><i class="fa fa-caret-right" aria-hidden="true"></i> <?php echo $row2['me_name'] ?></a></li>
                        <?php
                        $k++;
                        }  //end foreach $row2

                        if($k > 0)
                            echo '</ul>'.PHP_EOL;
                        ?>
                    </li>


저처럼 초보를 위해 참고로 적습니다.
초보들 헤메이지 마세요 힘내시고 용기내세요

와 계속오류나서 포기할려다가 보니깐 첨부 다운있네요 ㅠㅠ 근데 3이면 운영자 10도 못보는건가요?  근데 이렇게 말하는도중에 그누보드 6 런칭했네요

전체 2,412 |RSS
그누보드5 팁자료실 내용 검색

회원로그인

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