계정별이나 등급별로 메뉴 보이고 안보이게 처리

계정별이나 등급별로 메뉴 보이고 안보이게 처리

QA

계정별이나 등급별로 메뉴 보이고 안보이게 처리

답변 1

본문

안녕하세요?

계정 id별이나 등급별로 관련된 메뉴만 보이게 처리하고 싶은데..

현재는 메뉴 관리자에 메뉴설정에 입력된 부분들 자동으로 끌고 오게끔 소스가 적용되어있는데..

이렇게 분리시켜 보이게 처리하려면 직접소스로 처리를 해야하는걸까요?

<?  if($member['mb_id']=='abc') { ?>보이게할 메뉴 직접소스 <}?> 이렇게 넣으면 될까요?

아니면 아래 메뉴 소스에서 수정해서 가능할까요?

관련 테마나 스킨 다운받아 처리할 수 있음 더 편하고 좋을거같아요~

 

그리고 같은 게시판의 디비들인데 계정별로 특정 필드값이 ccc인 값 리스트들만 보이게 처리하려면

리스트 스킨 부분에서 수정해줘야할까요? 제가 잘 몰라서..팁이라도 알려주시면 정말 감사드리겠습니다.

 

현재 메뉴 소스는 다음과 같습니다.

 <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"><i class="fa fa-bars" aria-hidden="true"></i><span class="sound_only">전체메뉴열기</span></button></li>
                <?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 값 설정용
                $menu_datas = array();

                for ($i=0; $row=sql_fetch_array($result); $i++) {
                    $menu_datas[$i] = $row;

                    $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++) {
                        $menu_datas[$i]['sub'][$k] = $row2;
                    }

                }

                $i = 0;
                foreach( $menu_datas as $row ){
                    if( empty($row) ) continue; 
                ?>
                <li class="gnb_1dli" 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><ul class="gnb_2dul">'.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>'.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>
            <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>
                    <?php
                    $i++;
                    }   //end foreach $row

                    if ($i == 0) {  ?>
                        <li class="gnb_empty">메뉴 준비 중입니다.<?php if ($is_admin) { ?> <br><a href="<?php echo G5_ADMIN_URL; ?>/menu_list.php">관리자모드 > 환경설정 > 메뉴설정</a>에서 설정하실 수 있습니다.<?php } ?></li>
                    <?php } ?>
                </ul>
                <button type="button" class="gnb_close_btn"><i class="fa fa-times" aria-hidden="true"></i></button>
            </div> <!--gnb_all -->    

이 질문에 댓글 쓰기 :

답변 1

와 감사합니다~ 덕분에 너무 간편하게 적용했어요^^

혹시 같은 게시판의 디비들인데 계정별로 특정 필드값인 디비 리스트들만 보이게 처리하려면(예를들어 아이디 abc 계정으로 들어갈 경우 특정 필드값이 abc인 디비들만 보여지게 하는 방법이요)
<?  if($member['mb_id']=="abc") { ?>
 $wr_3='abc';
이런식으로 조건문 넣어서 처리해야할거같은데..
리스트 스킨 부분에서만 수정해주면 될까요? 소스도 맞는지 모르겠구..
제가 잘 몰라서..이부분도 혹시 알려주실 수 있을까요? 아니면 팁이라도 알려주시면 정말 감사드리겠습니다.

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