메뉴 권한 설정 회원 레벨별로 다르게 출력하기

메뉴 권한 설정 회원 레벨별로 다르게 출력하기

가로수 1 3,140 2021.01.15 14:00

메뉴 권한 설정 회원 레벨별로 다르게 출력하기

관리자 18-04-04 12:21

관리자 페이지 > 환경설정 > 메뉴 설정을 사용할 때 회원 레벨에 따라 다르게 출력하는 방법입니다.

예를 들어 권한 설정을 2로 입력하면 비회원은 메뉴가 출력되지 않습니다.

10으로 입력하면 관리자만 출력됩니다.



1. DB 수정


g5_menu 테이블에 me_level 필드 추가


40b149a18d8dbd61f03065b8963a4860_1522812990_1633.gif
 

필드 추가를 어떻게 하는지 모른다면

adm/menu_list.php 파일 상단쯤에


// 메뉴테이블 생성
if( !isset($g5['menu_table']) ){
    die('<meta charset="utf-8">dbconfig.php 파일에 <strong>$g5[\'menu_table\'] = G5_TABLE_PREFIX.\'menu\';</strong> 를 추가해 주세요.');
}
 

여기 바로 밑에 아래 내용 추가


if(!sql_query(" SELECT me_level from {$g5['menu_table']} limit 1 ")) {
    sql_query(" ALTER TABLE `{$g5['menu_table']}` ADD `me_level` tinyint(4) NOT NULL DEFAULT '0' AFTER `me_mobile_use` ", true);
}


위 코드 추가 후 관리자 페이지 > 환경설정 > 메뉴 설정 페이지에 접속

이미 접속해 있다면 브라우저 새로 고침 한번 실행

(메뉴 설정 페이지를 접속하면 자동으로 실행돼서 필드가 생성됩니다.)

필드 생성 후 추가했던 필드 생성 코드는 삭제해도 됩니다.



2. adm/menu_form.php 파일 수정


순서 설정 부분 아래에 다음 내용 추가


list += "<td class=\"td_numsmall\">";
list += "<label for=\"me_level_"+ms+"\"  class=\"sound_only\">권한<strong class=\"sound_only\"> 필수</strong></label>";
list += "<input type=\"text\" name=\"me_level[]\" value=\"0\" id=\"me_level_"+ms+"\" required class=\"required frm_input\" size=\"5\">";
list += "</td>";


위치는 아래 이미지 참고


c68b74b36a7bbd38b5097d4d8222b055_1522820350_4238.gif
 


3. adm/menu_list.php 파일 수정


3-1.

$colspan = 7; 부분을 $colspan = 8; 로 수정


3-2.

tr 부분 순서 아래에 권한 추가


<tr>
    <th scope="col">메뉴</th>
    <th scope="col">링크</th>
    <th scope="col">새창</th>
    <th scope="col">순서</th>
    <th scope="col">권한</th>
    <th scope="col">PC사용</th>
    <th scope="col">모바일사용</th>
    <th scope="col">관리</th>
</tr>


3-3.

td 부분 순서 아래에 권한 추가


<td class="td_num">
    <label for="me_level_<?php echo $i; ?>" class="sound_only">권한</label>
    <input type="text" name="me_level[]" value="<?php echo $row['me_level'] ?>" id="me_level_<?php echo $i; ?>" class="tbl_input" size="5">
</td>



4. adm/menu_list_update.php 파일 수정


메뉴 등록 쿼리에 권한 추가


me_level        = '".sql_real_escape_string(strip_tags($_POST['me_level'][$i]))."',


위치는 아래 이미지 참고


d44591b9c00b677827875879ede558eb_1582779771_8539.png
 


위 내용은 그누보드 버전 상관없이 공통으로 수정해야 하는 내용이고

아래 내용부터는 그누보드 버전별로 차이가 있으니 현재 사용하시는 버전에 맞게 수정하세요.




그누보드 5.3 버전


head.php 파일 수정


모바일은 mobile/head.php

테마 사용 중이면 테마 폴더에 있는 head.php


메뉴 출력 부분 쿼리에 추가

and me_level <= '{$member['mb_level']}'



상세 수정 위치는 아래 이미지 참고 (두 군데 모두 추가)


40b149a18d8dbd61f03065b8963a4860_1522812958_1456.gif 




그누보드 5.4 버전


lib/get_data.lib.php 파일 수정


function get_menu_db 함수를 찾은 후


1. global 변수에 $member; 추가
 

2. sql_query 부분에 아래 코드 추가

and me_level <= '{$member['mb_level']}'
 


상세 수정 위치는 아래 내용을 참고하세요.


d44591b9c00b677827875879ede558eb_1582780468_2395.png 

Comments

십일월 2021.11.12 21:36
처음으로 가입해요
번호 제목 글쓴이 날짜 조회
48 그누보드5 게시판 본문 글씨크기 키우기 가로수 2019.04.29 16383
47 재해예방기술지도 계약서 작성대상공사,지도기준,비용 견적(2020.1.1부터) 가로수 2020.06.24 7329
46 스마트폰 사주는 순간 너를 잃을 수 있다는 게 두렵다 댓글+3 가로수 2019.11.16 7156
45 테스트 가로수 2019.04.19 5798
44 편두통 가로수 2019.11.01 5553
43 독버섯 가로수 2019.09.12 5244
42 테스트 가로수 2019.08.13 4638
41 Evil Science Audio 가로수 2019.07.30 4427
40 전날 밤 꾼 꿈으로 내 건강 상태를 확인한다? 가로수 2019.08.25 4348
39 나만의 커스텀 윈도우10 만들기 가로수 2020.01.05 4308
38 Windows MySQL 5.7 datadir 경로 변경 가로수 2019.08.18 4222
37 Mysql 설치하기 (윈도우) 가로수 2019.04.30 4180
36 광케이블에는 가로수 2019.04.19 4156
35 Windows용 MySQL 5.7 C: 드라이브에서 다른 드라이브로 설치 가로수 2019.04.30 4104
34 Windows 설치된 MySQL 8 드라이브 변경(C에서 D로 변경) 가로수 2021.04.26 3952
33 Windows Server 2012 Standard 설치기.... 가로수 2020.01.30 3775
32 머리가 핑그르르, 갑자기 어지러운 이유는? 가로수 2019.08.20 3762
31 4G 이상 대용량화일 첨부 및 표시 가로수 2019.04.29 3709
30 게시판 본문 내용 글자 수 제한 해제하기 - 글 내용이 잘리는 문제 해결 방법 가로수 2020.04.12 3662
29 윈도우10 디펜더 끄기 가로수 2019.11.08 3566
Category
반응형 구글광고 등
State
  • 현재 접속자 5 명
  • 오늘 방문자 30 명
  • 어제 방문자 172 명
  • 최대 방문자 1,053 명
  • 전체 방문자 283,865 명
  • 전체 게시물 61 개
  • 전체 댓글수 5 개
  • 전체 회원수 33 명
Facebook Twitter GooglePlus KakaoStory NaverBand