관리자 페이지 메뉴 등록

es_adminMenu DataBase Table 수정

  • DataBase Table Statement의 es_adminMenu를 반드시 확인해 주세요.
  • es_adminMenu Table에서 Row를 신규로 추가합니다.

1. 1차 메뉴 추가하기

예제1

  • 위 본사 관리자의 (환경저장)이라는 1차 메뉴를 추가하려면 DataBase > es_adminMenu 접속하신 다음 아래 Query 를 실행합니다.
  • adminMenuType 이 d 는 본사 메뉴 / adminMenuType 이 s 는 공급사 메뉴 입니다.
Select max(adminMenuSort) From `es_adminMenu` Where adminMenuDepth = 1 And adminMenuType = 'd';
  • 실행 결과값이 나옵니다.
100
  • 항상 메뉴고유번호는 제작사 prefix(접두사)를 입력해야 합니다. (회사영문 또는 고유영문)
  • 제작사 prefix(접두사) 에 godo 는 사용하지 않습니다. (godo 를 사용하시면 오류가 발생할 수 있습니다.)
Select adminMenuNo From `es_adminMenu` Where adminMenuNo like 'prefix%' order by adminMenuNo Desc limit 0, 1;
  • 실행 결과값이 나옵니다.
prefix00119
  • 실형 결과값이 없다면 아래와 같이 prefix + 숫자 5자리를 입력합니다. (숫자는 00001부터 시작하여 1씩 증가해야 합니다.)
prefix00001
  • DataBase > es_adminMenu 접속하신 다음 아래 Query 를 실행하여 메뉴 등록합니다.
  • DataBase Table Statement의 es_adminMenu를 반드시 확인해 주세요.
Insert Into `es_adminMenu` (adminMenuNo, adminMenuType, adminMenuProductCode, adminMenuPlusCode, 
adminMenuCode, adminMenuDepth, adminMenuParentNo, adminMenuSort, adminMenuName,
adminMenuUrl, adminMenuDisplayType, adminMenuDisplayNo, adminMenuSettingType, adminMenuEcKind, regDt) 
Values ('prefix00001', 'd', 'godopro', null, 
'prefix + 생성할 코드', '1', null, '101', '환경저장',
null, 'y', null, 'd', 'p', now());
  • 변경 내용 확인

예제2

2. 2차 메뉴 추가하기

2차 메뉴는 3차메뉴가 등록되어야 노출됩니다.

예제1

  • 위 본사 관리자의 (메뉴 정책)이라는 2차 메뉴를 추가하려면 DataBase > es_adminMenu 접속하신 다음 아래 Query 를 실행합니다.
  • 1차 메뉴인 (기본설정)의 메뉴 고유번호를 확인합니다.
Select adminMenuNo From `es_adminMenu` Where adminMenuDepth = 1 And adminMenuType = 'd' And adminMenuName = '기본설정';
  • 실행 결과값이 나옵니다.
godo00001
  • 1차 메뉴인 (기본설정)의 메뉴에서 2차 메뉴의 최대 정렬 번호를 확인합니다.
Select max(adminMenuSort) From `es_adminMenu` Where adminMenuDepth = 2 And adminMenuType = 'd' And adminMenuParentNo = 'godo00001';
  • 실행 결과값이 나옵니다.
80
  • 항상 메뉴고유번호는 제작사 prefix(접두사)를 입력해야 합니다. (회사영문 또는 고유영문)
  • 제작사 prefix(접두사) 에 godo 는 사용하지 않습니다. (godo 를 사용하시면 오류가 발생할 수 있습니다.)
Select adminMenuNo From `es_adminMenu` Where adminMenuNo like 'prefix%' order by adminMenuNo Desc limit 0, 1;
  • 실행 결과값이 나옵니다.
prefix00120
  • 실형 결과값이 없다면 아래와 같이 prefix + 숫자 5자리를 입력합니다. (숫자는 00001부터 시작하여 1씩 증가해야 합니다.)
prefix00001
  • DataBase > es_adminMenu 접속하신 다음 아래 Query 를 실행하여 메뉴 등록합니다.
  • DataBase Table Statement의 es_adminMenu를 반드시 확인해 주세요.
Insert Into `es_adminMenu` (adminMenuNo, adminMenuType, adminMenuProductCode, adminMenuPlusCode, 
adminMenuCode, adminMenuDepth, adminMenuParentNo, adminMenuSort, adminMenuName,
adminMenuUrl, adminMenuDisplayType, adminMenuDisplayNo, adminMenuSettingType, adminMenuEcKind, regDt) 
Values ('prefix00121', 'd', 'godopro', null, 
'prefix + 생성할 코드', '2', 'godo00001', '90', '메뉴 정책',
null, 'y', null, 'd', 'p', now());
  • 변경 내용 확인

예제2

3. 3차 메뉴 추가하기

예제1

  • 위 본사 관리자의 (메뉴 관리)이라는 3차 메뉴를 추가하려면 DataBase > es_adminMenu 접속하신 다음 아래 Query 를 실행합니다.
  • 2차 메뉴인 (기본정책)의 메뉴 고유번호를 확인합니다.
Select adminMenuNo From `es_adminMenu` Where adminMenuDepth = 2 And adminMenuType = 'd' And adminMenuName = '기본정책';
  • 실행 결과값이 나옵니다.
godo00002
  • 2차 메뉴인 (기본설정)의 메뉴에서 3차 메뉴의 최대 정렬 번호를 확인합니다.
Select max(adminMenuSort) From `es_adminMenu` Where adminMenuDepth = 3 And adminMenuType = 'd' And adminMenuParentNo = 'godo00002';
  • 실행 결과값이 나옵니다.
600
  • 항상 메뉴고유번호는 제작사 prefix(접두사)를 입력해야 합니다. (회사영문 또는 고유영문)
  • 제작사 prefix(접두사) 에 godo 는 사용하지 않습니다. (godo 를 사용하시면 오류가 발생할 수 있습니다.)
Select adminMenuNo From `es_adminMenu` Where adminMenuNo like 'prefix%' order by adminMenuNo Desc limit 0, 1;
  • 실행 결과값이 나옵니다.
prefix00121
  • 실형 결과값이 없다면 아래와 같이 prefix + 숫자 5자리를 입력합니다. (숫자는 00001부터 시작하여 1씩 증가해야 합니다.)
prefix00001
  • DataBase > es_adminMenu 접속하신 다음 아래 Query 를 실행하여 메뉴 등록합니다.
  • DataBase Table Statement의 es_adminMenu를 반드시 확인해 주세요.
Insert Into `es_adminMenu` (adminMenuNo, adminMenuType, adminMenuProductCode, adminMenuPlusCode, 
adminMenuCode, adminMenuDepth, adminMenuParentNo, adminMenuSort, adminMenuName,
adminMenuUrl, adminMenuDisplayType, adminMenuDisplayNo, adminMenuSettingType, adminMenuEcKind, regDt) 
Values ('prefix00122', 'd', 'godopro', null, 
'prefix + 생성할 코드', '3', 'godo00002', '700', '메뉴 관리',
'연결URL', 'y', null, 'd', 'p', now());
  • 변경 내용 확인

예제2

4. 메뉴별 권한 설정

  • 권한 설정은 '권한없음 / 읽기 / 읽기+쓰기' 의 3가지 조건으로 제공됩니다.
    • 권한없음 : 메뉴의 내용 확인 허용 안함
    • 읽기 : 메뉴의 내용 확인은 허용하나 정보 변경은 허용 안함
    • 읽기+쓰기 : 메뉴의 내용 확인 및 정보 변경까지 제한 없이 모두 허용함

예제1

  • 쓰기 제한 추가 예시
    • 관리자 메뉴 페이지에 해당되는 컨트롤러에서 post() 함수를 통해 쓰기 제한 스크립트를 정의합니다.
class UserPageController extends \Controller\Admin\Controller
{
    . . . . .

    public function post()
    {
        // 관리자 메뉴 쓰기 권한에 따른 쓰기 기능 제한
        $writable = $this->getAdminMenuWritableAuth();
        if ($writable['check'] === false) {
            $returnMenuAccessAuth = [];
            $returnMenuAccessAuth[] = '$("#frmBase").validate().destroy();';
            $returnMenuAccessAuth[] = '$("#frmBase").submit(function(){ dialog_alert("__PAGE_TITLE__의 쓰기 권한이 없습니다. 권한은 대표운영자에게 문의하시기 바랍니다."); return false; });';
            $returnMenuAccessAuth = array_map(function($script) use ($writable) {return str_replace("__PAGE_TITLE__", $writable['title'], $script);}, $returnMenuAccessAuth);
            $this->setData('menuAccessAuth', implode("\n", $returnMenuAccessAuth));
        }
    }
}