회원가입 | 고객센터 |
DESIGNONEX
dxcms.kr
로그인 회원가입
고객센터
3.2 폴더 구조

themes/ — 테마 시스템

D DX
2026.04.21 00:43(수정됨) 134 0

themes/ — 테마 시스템

사이트 프론트엔드의 모든 HTML•CSS를 담당합니다. 현재 default 테마가 포함되어 있으며, 추가 테마를 이 폴더에 배치하면 관리자에서 선택할 수 있습니다.
 
themes/
└── default/                   ← 기본 테마 (항상 존재, 폴백 기준)
    ├── theme.json             ← 테마 메타 정보 (이름•버전•설명)
    ├── style.css              ← 전역 스타일 (CSS 커스텀 프로퍼티 기반)
    ├── layout/               ← 페이지 레이아웃 템플릿
    │   └── main.php          ← 헤더+본문+푸터 통합 레이아웃
    ├── board/                ← 게시판 스킨 오버라이드
    │   ├── list.php          ← 게시판 목록 (기본 스킨)
    │   ├── view.php          ← 게시글 상세
    │   ├── write.php         ← 게시글 작성•수정 폼
    │   └── _list_rows.php    ← 목록 행 파셜 (AJAX 갱신용)
    ├── board_latest/         ← 최신글 위젯 스킨 3종
    │   ├── list.php          ← 제목+날짜 리스트형
    │   ├── card.php          ← 썸네일+제목+발췌 카드형
    │   └── simple.php        ← 제목만 초경량형
    ├── page/                 ← 특수 페이지 템플릿
    │   ├── home.php          ← 홈 페이지 (선택, 없으면 pages/home.php 폴백)
    │   ├── 404.php           ← 404 오류 페이지
    │   └── 403.php           ← 403 접근 거부 페이지
    ├── parts/                ← 재사용 파셜 컴포넌트
    │   └── pagination.php    ← 페이지네이션 UI
    ├── search/               ← 검색 결과 페이지
    │   └── list.php
    └── icons/                ← 테마 전용 아이콘 파일


테마 폴백 체인

커스텀 테마에 파일이 없으면 자동으로 default 테마 파일을 사용합니다. 커스텀 테마는 변경이 필요한 파일만 오버라이드하면 됩니다.
 
// DxTheme::resolve('board/list.php') 내부 탐색 순서
// 예: 현재 테마가 'my-theme'
1. themes/my-theme/board/list.php   ← 있으면 즉시 반환
2. themes/default/board/list.php    ← 없으면 여기서 반환
3. 404 처리  


layout/main.php 의 구조

테마의 핵심 파일로, 모든 페이지의 HTML 전체 구조(헤더•내비게이션•본문•푸터)를 렌더링합니다.
 
// main.php 실행 순서 (요약)
① DxSeo::build() — OG/Twitter Card/JSON-LD 자동 생성
② 메뉴 쿼리 (멀티사이트 도메인별 독립 메뉴 지원)
③ <head> 태그 출력 + dx_run_hook('dx_head')
④ 네비게이션 바 출력 (로그인•비로그인 분기)
⑤ $dx_content 출력 (게시판•페이지 등 핸들러가 생성한 본문)
⑥ 푸터 (사이트 설정에서 로드: 회사명•대표자•사업자번호 등)
⑦ dx_run_hook('dx_body_bottom') — 팝업•GA•소켓 등


board_latest/ — 최신글 위젯

테마 레이아웃이나 홈 페이지에서 최신 게시글을 보여주는 위젯 스킨입니다.
 
// 사용 예 (테마 파일 내부)
<?php echo dx_board_latest('free', 5, 'card'); ?>
// 파라미터: board_key, 개수, 스킨명 (list | card | simple)
// 자동으로 themes/default/board_latest/card.php 를 렌더링

댓글0

로그인 후 댓글을 작성할 수 있습니다.
1. DX 철학 / 개념 왜 DXCMS를 만들었는가 2026.04.20 1. DX 철학 / 개념 DXCMS란 무엇인가 2026.04.20 DXCMS 활용 (CMS) DXCMS 날코딩•막코딩 완전 허용 2026.04.12
31
전체 회원
503
전체 게시글
770
전체 댓글
441
오늘 방문
33,173
전체 방문
2
현재 접속
인기글 7일 이내
최신글
최신댓글
목록