Common Layout

GNB / LNB / SNB 레이아웃 작업 절차

헤더(GNB)와 서브페이지 네비게이션(LNB·SNB)을 구성할 때 ND CMS는 방식 B(관리자 프리셋 즉시 선택)와 방식 A(커스텀 HTML 블록 + 동적 치환자 퍼블리싱) 두 가지 방식을 모두 지원합니다.

(1) 방식 B — GNB & 서브(LNB/SNB) 프리셋 선택 (권장 · 코딩 불필요)

관리자 콘솔 [레이아웃/블록 관리] (/_ndm/layout) 상단 카드에서 사이트별로 원하는 GNB 유형과 서브 네비게이션 유형을 선택하고 [네비게이션 프리셋 저장]을 누르면 즉시 반영됩니다.

GNB 및 서브 네비게이션 프리셋 유형
영역프리셋 코드표시 방식 및 특징
상단 헤더 (GNB) MEGA (기본) 전체 메가메뉴형 — 1차 메뉴 마우스 오버 시 전체 폭 하단 패널이 열리며 모든 2·3차 메뉴를 한눈에 표시합니다.
DROPDOWN 개별 드롭다운형 — 마우스를 올린 1차 메뉴 바로 아래에만 컴팩트한 2·3차 드롭다운 박스가 열립니다.
SIMPLE 상단 1차 심플형 — 상단 바에는 1차 메뉴만 깔끔하게 노출하고, 하위 메뉴는 우측 전체메뉴 버튼이나 서브 SNB에서 탐색합니다.
서브 네비게이션 LNB (기본) 상단 브레드크럼 바형 (1단 풀폭) — 서브비주얼 하단에 경로 드롭다운 바(LNB)를 배치하고 본문을 와이드 풀폭으로 사용합니다.
SNB 좌측 사이드바 메뉴형 (2단) — 좌측에 현재 1차 메뉴 산하의 2·3차 아코디언 사이드바(aside.snb_side)를 두고 우측에 본문을 배치합니다.
BOTH 상단 브레드크럼 + 좌측 SNB 혼합형 — 상단 경로 드롭다운 바와 좌측 2단 사이드바 메뉴를 동시에 표시하는 공공·기업 표준 레이아웃입니다.

(2) 방식 A — HEADER & SUB_LAYOUT 커스텀 블록 퍼블리싱 (자유도 100%)

프리셋 구조를 넘어 사이트 고유 디자인 시안의 HTML 마크업을 100% 그대로 적용해야 할 때는 [레이아웃/블록 관리]에서 HEADER 블록과 SUB_LAYOUT 블록을 편집합니다.

  1. 프리셋 기본 템플릿 불러오기

    HEADER 또는 SUB_LAYOUT 편집 화면 우측 상단에서 원하는 프리셋(MEGA/DROPDOWN/SIMPLE 또는 LNB/SNB/BOTH)을 선택하고 [템플릿 불러오기]를 클릭하면 표준 HTML 골격과 치환자가 에디터에 자동 삽입됩니다.

  2. 동적 메뉴 치환자 배치

    하드코딩된 메뉴 링크 대신 {{GNB_MENU}}, {{BREADCRUMB}}, {{SNB_MENU}} 등의 치환자를 원하는 위치에 배치하면 관리자 [메뉴관리] 트리와 실시간 연동됩니다.

  3. 실시간 미리보기 및 프리셋 복귀

    편집 화면 하단에서 실제 메뉴 트리가 결합된 렌더링 결과를 즉시 확인합니다. 다시 방식 B(프리셋 모드)로 돌아가려면 블록 내용을 모두 비우고 저장하면 됩니다.

(3) SUB_LAYOUT 커스텀 블록 작성 예시 (좌측 SNB + 우측 본문)

SUB_LAYOUT 블록은 {{SUB_BODY}} 치환자를 기준으로 상단 래퍼와 하단 래퍼가 자동 분리되어 모든 콘텐츠(content.jsp)와 게시판(board_list.jsp, board_view.jsp) 본문을 감쌉니다.

<!-- SUB_LAYOUT 블록 커스텀 마크업 예시 -->
<div class="sub_head">
  <div class="sub_vis {{VIS_CLASS}}">
    <h3>{{VIS_TOP}}</h3>
    <h2>{{VIS_TITLE}}</h2>
  </div>
  <nav class="sub_nav"><div class="s_inner">
    {{BREADCRUMB}}
    {{SHARE_BAR}}
  </div></nav>
</div>
<div class="sub_layout_wrap sub_layout--both">
  <aside class="snb_side">
    <div class="snb_title"><span>{{SNB_TITLE}}</span></div>
    {{SNB_MENU}}
  </aside>
  <div class="sub_body_area">
    {{SUB_BODY}}
  </div>
</div>
Publisher Rules

퍼블리셔 필수 수칙 & 10종 블록 관리

ND CMS는 퍼블리셔가 웹 브라우저 관리자 콘솔에서 직접 레이아웃 마크업과 스타일시트, 스크립트를 편집할 수 있도록 동적 에셋 서빙 메커니즘을 제공합니다.

동적 에셋 서빙 우선순위 원리 브라우저가 /resource/www/css/common.css, sub.css, main.css, common.js를 요청하면 SiteController.dynamicCommonAsset()가 동작하여 DB 테이블(tb_block)에 저장된 사이트별 편집본을 최우선 반환합니다.

전체 10종 레이아웃 블록 코드 및 역할

10종 레이아웃 블록 코드와 역할
블록 코드역할 및 설명구분
HEADER상단 헤더 (GNB 영역) 커스텀 HTML — 비어있으면 사이트별 GNB 프리셋(MEGA/DROPDOWN/SIMPLE) 자동 사용네비게이션
SUB_LAYOUT서브 비주얼 · LNB · 좌측 SNB 커스텀 HTML — 비어있으면 서브 프리셋(LNB/SNB/BOTH) 자동 사용네비게이션
MAIN_BODY메인 페이지 본문 HTML — 메인 비주얼 배너, 최신글 치환자({{POSTS:...}}), 주요 섹션 마크업필수 블록
FOOTER공통 하단 푸터 HTML — 하단 로고, 기관/기업 주소, 저작권 문구필수 블록
COMMON_CSS공통 레이아웃 CSS (/resource/www/css/common.css) — 헤더, 푸터, 공통 그리드 스타일필수 블록
SUB_CSS서브 페이지 공통 CSS (/resource/www/css/sub.css) — 서브비주얼, LNB/SNB, 게시판·콘텐츠 컴포넌트필수 블록
MAIN_CSS메인 페이지 전용 CSS (/resource/www/css/main.css) — 메인 비주얼 및 메인 섹션 스타일필수 블록
COMMON_JS공통 JavaScript (/resource/www/js/common.js) — GNB/LNB 인터랙션, 탭 전환, 팝업 스크립트필수 블록
HEAD_EXTRA<head> 추가 태그 — 외부 웹폰트, 추가 메타태그, 외부 CSS/JS CDN 링크선택 블록
BODY_END</body> 직전 추가 스크립트 — 채널톡, 애널리틱스 등 외부 트래킹 스크립트선택 블록