XE 폴더 구조

XE를 설치하면 루트에 다음과 같은 파일과 폴더가 생성됩니다.

11 XE의 파일과 폴더

폴더/파일

설명

addons

모든 XE 애드온을 포함

classes

XE core 클래스를 포함

common

모든 XE 모듈에 공통으로 사용되는 정적 파일과 템플릿을 포함. 글로벌 언어 파일도 이 폴더에 포함됩니다.

config

기본 설정과 공통 기능을 포함

files

이 폴더는 설치 중에 생성되며, 업로드된 파일과 내부 캐시 파일, DB/환경 설정 파일을 저장합니다.

layouts

기본, 커스텀 XE 레이아웃을 모두 포함

libs

XE core에서 사용하는 모든 라이브러리를 포함(예: ftp, tar).

m.layouts

모바일 레이아웃

modules

모든 모듈(XE core 모듈, 커스텀 모듈)을 포함

themes

테마(레이아웃과 각종 모듈의 스킨을 모두 포함)를 포함

widgets

모든 XE 위젯을 포함

widgetstyles

위젯을 꾸미는 데 필요한 모든 위젯스타일을 포함

index.php

XE의 모든 입출력을 위한 게이트웨이 기능을 포함

.htaccess

Apache Web Server의 rewrite mod를 사용하기 위한 설정 파일

LICENSE

XE의 라이선스를 포함

  1. addons 폴더

애드온은 단순히 활성/비활성으로 설정할 수 있으며, 추가 설정이 필요하면 모듈과 연동할 수 있습니다. addons 폴더 구조는 다음과 같습니다.

12 addons 폴더 구조

폴더/파일

설명

addons

애드온의 최상위 폴더

addon_name

애드온 이름으로 된 폴더

conf

애드온의 설정 파일 폴더

info.xml

애드온의 설명과 제작자, 버전 및 생성일자 정보를 작성합니다.

addon_name.addon.php

애드온 실행 코드. 애드온 실행 시점에 삽입됩니다.

queries

애드온에 사용하는 쿼리 모음

queryID.xml

쿼리 파일. 쿼리 스키마는 모듈에서 사용하는 것과 동일합니다.

자세한 내용은 " 2.2 애드온 "을 참조합니다.

  1. classes 폴더

classes 폴더에는 XE의 모듈과 애드온, 위젯 등의 컴포넌트가 공통으로 사용하는 라이브러리 클래스가 포함되어 있습니다.

폴더별로 다음과 같은 클래스를 제공합니다.

13 classes 폴더별 클래스

폴더

설명

cache

XE core에서 사용할 수 있는 모든 캐시 클래스(CacheAPC, CacheMemcache, CacheHandler) 포함. 기본 클래스는 CacheHandler입니다.

context

요청 인수나 환경 변수 같은 컨텍스트를 관리하는 컨텍스트 클래스 포함.

db

CUBRID, MySQL, Firebird, MySQL Innodb, MySQLi, PostgreSQL, SQLite2, SQLite3 with PDO 등 XE core에서 지원하는 모든 DB 포함.

display

실행 결과 출력을 담당하는 클래스 포함(요청 타입에 따라 다름: HTML, JSON 또는XMLRPC).

editor

에디터 핸들러 클래스 포함

extravar

게시물, 회원 등에 사용되는 확장 변수를 처리하는 클래스 포함

file

파일과 폴더 처리에 사용하는 클래스 포함

handler

(*)Handler의 추상 클래스 포함

httprequest

외부 서버로 HTTP 요청을 보내고 응답을 수집하는 데 사용되는 클래스 포함

mail

메일링 관련 클래스 포함

mobile

모바일 최적화를 위한 클래스 포함

module

모듈 핸들러와 모듈 오브젝트 클래스 포함

object

XE 모듈 간 오브젝트 인스턴스를 전달하는 기본 클래스 포함

page

페이지 탐색(navigation)을 처리하는 기본 클래스 포함

template

정규 표현식을 이용해서 템플릿 파일을 PHP 코드로 변환하고 추후 사용을 위해 XE 캐시로 만드는 클래스를 포함

widget

위젯 실행을 위한 핸들러 클래스 포함

xml

XML을 파싱하고 생성하는 클래스 포함

  1. common 폴더

common 폴더에는 XE에 꼭 필요한 자원이 포함되어 있습니다.

14 common 폴더 구조

폴더/파일

설명

common

XE에 사용되는 공통 JS, CSS 파일 모음

css

XE에 사용되는 공통 CSS 파일 모음

default.css

기본 스타일과 XE에 특화된 스타일 정의

button.css

XE에서 사용되는 기본 버튼 스타일 정의

js

XE에 사용되는 공통 JS파일 모음

common.js

XE에서 사용되는 여러 가지 유형의 자바스크립트 함수 정의

jquery.js

XE에서 사용되는 자바스크립트 프레임워크인 jQuery (http://jquery.com) 파일

js_app.js

XE에서 사용되는 자바스크립트 애플리케이션 프레임워크인 JAF 파일

x.js

크로스브라우징을 위한 자바스크립트 라이브러리 파일. 추후 삭제될 예정이므로 이 파일은 가급적 사용하지 않습니다.

xml_js_filter.js

XE에서 사용되는 XML JS 필터 파일

lang

XE에서 지원되는 언어 파일을 포함하는 폴더

tpl

XE의 공통 레이아웃/템플릿 파일 모음

common_layout.html

XE에서 사용되는 공통 레이아웃

default_layout.html

사용 중인 레이아웃 스킨이 없을 때 콘텐츠만 출력하는 빈 레이아웃

mobile_layout.html

XE 모바일 환경에서 사용되는 레이아웃

popup_layout.html

XE에서 팝업 창을 열 때 사용되는 레이아웃

redirect.html

다른 페이지로 이동해야 할 때 사용되는 템플릿 파일

refresh.html

새로 고칠 때 사용되는 템플릿 파일

  1. config 폴더

설정 폴더에는 기본 설정 내용과 자주 사용되는 함수 모음이 저장된 파일이 포함되어 있습니다.

15 config 폴더 구조

폴더/파일

설명

config.inc.php

개발자를 위한 XE 버전과 디버그 설정 파일

config.user.inc.php

개발자를 위한 디버그 설정 저장 파일(개발자가 직접 만들어 사용)

func.inc.php

XE에서 자주 사용되는 함수를 포함하는 파일

  1. files 폴더

캐시 파일, 업로드된 파일, 기타 모듈에서 필요한 파일을 포함합니다.

16 files 폴더 구조

폴더/파일

설명

_debug_message.php

XE 로그 파일.

./config/config.inc.php의 _DEBUG_OUTPUT_ 상수에 설정된 값에 따라 PHP 에러 메시지와 DB 에러 등을 표시합니다. 이 파일은 기본적으로 존재하지 않으며, 디버그 로그가 발생하는 순간 생성됩니다.

attach

파일 첨부(업로드 파일)에 사용되는 폴더

binaries

gif, jpg, jpeg, png, swf, mpeg 외의 확장자로 된 첨부 파일을 저장합니다(악의적인 공격을 피하기 위해 fpassthru() 함수를 사용해서 파일을 실행(execute)하지 않고 콘텐츠를 클라이언트에게 전달).

images

브라우저에서 직접 접근할 수 있는 이미지와 동영상 파일을 저장합니다. 하위 폴더 이름은 ./$module_srl/$document_srl/$file_name와 같은 형식으로 짓습니다.

cache

캐시 폴더

addon

애드온과 관련된 캐시파일 모음

mobileactivated_addons.cache.php

활성화된 애드온을 실행하는 PHP 코드 포함(모바일 환경).

pcactivated_addons.cache.php

활성화된 애드온을 실행하는 PHP 코드 포함(PC 환경).

document_category

문서 카테고리용 XML, PHP 캐시 파일

editor

에디터 컴포넌트의 정보 캐시 파일

js_filter_compiled

XE의 XML JS 필터의 캐시 파일

lang_defined

사용자 정의 언어 코드의 캐시 파일

layout

XE의 레이아웃 캐시 파일. 레이아웃 편집에서 수정된 레이아웃 콘텐츠는 이곳에 저장됩니다.

menu

XE의 메뉴 모듈에서 생성한 메뉴 정보를 위한 XML과 PHP 캐시 파일

module_info

각 XE 모듈의 정보 캐시 파일 저장

opage

XE의 외부 페이지 모듈용 캐시 파일

optimized

CSS와 JS 파일을 통합해서 트래픽을 줄이고 페이지 로딩 속도를 향상시키기 위한 최적화 캐시 파일

page

XE의 페이지 모듈용 캐시 파일

queries

XE의 XML Query 컴파일용 캐시 파일

template_compiled

XE의 템플릿 캐시 파일

thumbnails

XE의 문서 섬네일 이미지

widget

XE의 위젯 정보용 캐시 파일

widget_cache

생성된 위젯의 정보를 저장하고 활용하는 캐시 파일. 캐싱 시간이 위젯 내에 지정되면 캐시 파일을 저장합니다.

triggers

XE의 트리거 함수용 캐시 파일

widgetstyles

위젯스타일의 정보를 저장하고 활용하는 캐시 파일

newest_news.language.cache.php

관리자 페이지에 있는 최신 뉴스의 임시 저장 파일

config

DB, FTP 등 사이트 최고 관리자의 설정 정보 모음

db.config.php

DB 설정 파일

ftp.config.php

XE가 설치된 서버의 파일을 저장하는 FTP 정보

lang_selected.info

관리자가 작업하고자 하는 특정 사이트의 언어 목록 저장

member_extra_info

회원 정보의 확장 변수에 사용된 파일 모음

image_mark

회원 이름 앞에 붙는 표시의 이미지 파일

image_name

회원 이미지의 이름 파일

profile_image

회원이 등록한 프로파일 이미지 파일

signature

회원의 서명

point

각 회원의 포인트

new_message_flags

특정 회원에게 새 메시지가 도착했는지 여부를 나타내는 임시 파일 위치

agreement.txt

회원 관리 모듈에서 설정한 약관을 저장하는 파일

ruleset

동적 룰셋 파일을 저장합니다.

theme

현재 테마의 정보를 저장합니다.

  1. layouts 폴더

레이아웃은 콘텐츠(모듈)를 감싸는 껍데기입니다. 레이아웃은 모듈 인스턴스별로 설정해서 적용하거나, 제작자가 설정한 메뉴 인스턴스와 연동해서 메뉴 인스턴스에 포함된 모든 모듈 인스턴스에 일괄적으로 적용할 수 있습니다. 레이아웃 관리 메뉴에서 위젯 및 레이아웃 편집 기능을 통해 레이아웃 템플릿 파일을 수정할 수 있습니다.

17 layouts 폴더 구조

폴더/파일

설명

Layout Name

레이아웃 루트 폴더

conf

레이아웃 정보가 포함된 설정 파일 포함

info.xml

레이아웃 제작자와 설명, 확장 변수, 연동 메뉴의 개수와 이름 정의

layout.html

레이아웃의 템플릿 파일

  1. modules 폴더

modules 폴더 구조는 다음과 같습니다.

18 modules 폴더 구조

폴더/파일

설명

module_name

모듈 이름으로 된 폴더

conf

모듈 설명, 액션과 권한(permission) 설정 포함

info.xml

모듈 제작자 정보와 설명

module.xml

모듈 동작과 관련한 정보를 포함하는 액션 모듈 정의

lang

언어 팩 파일

en.lang.php

영어 언어 팩

schemas

모듈 설치에 사용되는 DB 테이블 스키마.

현재 모듈이 새 DB를 사용할 때만 사용되는 옵션 폴더

table.xml

테이블 스키마(테이블 이름으로 파일을 생성)

queries

insert, select, update에 사용되는 쿼리를 정의하는 XML 문법 파일

ruleset

모듈에서 사용할 룰셋 XML 파일

tpl

모듈의 관리자 뷰(administrator view)를 위해 사용되는 템플릿 파일

css

스타일 시트

images

템플릿 이미지 저장

js

템플릿 JS 파일 저장

filter

처리 파일에 전달될 폼에서 노드와 파라미터 선언

template_files.html

스킨이 사용되지 않는 화면의 XE템플릿 문법으로 제작한 스킨 파일(모듈의 관리자 화면 등)

skins

모듈의 프런트 엔드에 출력되는 스킨 파일

Skin Name

스킨 이름

css

스타일 시트

images

스킨 이미지 저장

js

스킨 JS 파일 저장

skin.xml

스킨 제작자 정보와 스킨의 확장 변수 선언 포함

template_files.html

XE템플릿 문법으로 제작한 스킨 파일

module_name.class.php

설치, 업데이트, 삭제 함수를 포함하는 모듈의 기본 클래스

module_name.view.php

모듈의 프런트 엔드를 출력하는 뷰 함수

module_name.model.php

모듈 모델 클래스와 함수 정의

module_name.controller.php

사용자 인터페이스를 위한 컨트롤러

module_name.admin.view.php

모듈의 백 엔드를 출력하는 데 사용되는 뷰 클래스와 함수

module_name.admin.model.php

관리자용 모델 클래스와 함수 선언

module_name.admin.controller.php

관리자 함수의 컨트롤러 액션

module_name.api.php

뷰 기능과 비슷하게 화면 출력을 위한 데이터를 준비합니다. 좀 더 정확하게는 출력 결과에서 내부 데이터를 삭제하고, 웹뿐만 아니라 아이폰 앱처럼 다른 종류의 앱을 생성하기 위한 인스턴스에 사용되는 JSON이나 XML을 반환합니다.

module_name.wap.php

출력 결과가 다른 WAP 휴대폰을 위한 클래스

module_name.smartphone.php

아이폰 등의 스마트폰을 위한 특수 클래스

모듈에 관한 자세한 내용은 " 2.1 모듈 "을 참조하십시오.

  1. themes 폴더

테마는 레이아웃과 모듈 스킨을 편리하게 관리하는 기능입니다. 사이트 디자인의 통일성을 높이기 위해 사용됩니다.

19 themes 폴더 구조

폴더/파일

설명

Theme Name

테마 루트 폴더

conf

테마 정보가 있는 설정 파일 포함

info.xml

테마 제작자와 설명, 테마에 포함된 스킨을 정의

layouts

레이아웃 스킨의 루트 폴더

Layout Name

레이아웃의 폴더

conf

레이아웃 정보가 포함된 설정 파일 포함

info.xml

레이아웃 제작자와 설명, 확장 변수, 연동 메뉴의 개수와 이름 정의

layout.html

레이아웃의 템플릿 파일

modules

모듈 스킨 모음의 루트 폴더

Module Name

해당 스킨이 적용될 모듈의 이름

css

스타일 시트

images

스킨 이미지 저장

js

스킨 JS 파일 저장

skin.xml

스킨 제작자 정보와 스킨의 확장 변수 선언 포함

template_files.html

XE 템플릿 문법으로 제작한 스킨 파일

  1. widgets 폴더

위젯은 화면에 표시되는 작은 프로그램입니다. 위젯 중 일부는 최신 글이나 회원 정보(로그인 폼)와 연동하고, 일부는 외부 오픈 API와 연동하기도 합니다.

위젯 폴더의 이름은 해당 위젯의 이름과 같아야 합니다. 폴더 구조는 다음과 같습니다.

110 widgets 폴더 구조

폴더/파일

설명

Widget Name

위젯 루트 폴더

widget_name.class.php

위젯의 클래스 파일. 데이터를 처리하고 템플릿 파일 지정

conf

설정 폴더

info.xml

위젯 정보(이름, 설명)와, 위젯 클래스에 사용할 수 있는 변수 정의

skins

스킨 폴더

Skin Name

위젯 스킨용 파일 포함. 이 폴더의 이름은 스킨 이름과 같아야 합니다.

skin.xml

스킨의 이름, 설명, 제작자, 컬러셋 정보를 포함하는 설정 파일

  1. widgetstyles 폴더

이 폴더는 위젯스타일을 포함합니다. 위젯스타일은 위젯 컨테이너를 꾸미는 데 사용되며, 사용자는 위젯스타일을 이용해 위젯의 배경, 테두리, 제목 등 위젯의 모양을 변경할 수 있습니다.

위젯스타일의 폴더 구조는 다음과 같습니다.

111 widgetstyles 폴더 구조

폴더/파일

설명

widgetstyles

위젯스타일 폴더

Widgetstyle names

위젯스타일 이름

widgetstyle.html

위젯스타일용 템플릿 파일

skin.xml

위젯스타일의 제목, 설명, 제작자, 확장 변수 등을 설정하는 파일

preview.gif

위젯스타일 미리 보기