XE 폴더 구조
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의 라이선스를 포함 |
애드온은 단순히 활성/비활성으로 설정할 수 있으며, 추가 설정이 필요하면 모듈과 연동할 수 있습니다. addons 폴더 구조는 다음과 같습니다.
|
폴더/파일 |
설명 |
|||
|---|---|---|---|---|
|
addons |
애드온의 최상위 폴더 |
|||
|
addon_name |
애드온 이름으로 된 폴더 |
|||
|
conf |
애드온의 설정 파일 폴더 |
|||
|
info.xml |
애드온의 설명과 제작자, 버전 및 생성일자 정보를 작성합니다. |
|||
|
addon_name.addon.php |
애드온 실행 코드. 애드온 실행 시점에 삽입됩니다. |
|||
|
queries |
애드온에 사용하는 쿼리 모음 |
|||
|
queryID.xml |
쿼리 파일. 쿼리 스키마는 모듈에서 사용하는 것과 동일합니다. |
|||
classes 폴더에는 XE의 모듈과 애드온, 위젯 등의 컴포넌트가 공통으로 사용하는 라이브러리 클래스가 포함되어 있습니다.
폴더별로 다음과 같은 클래스를 제공합니다.
|
폴더 |
설명 |
|---|---|
|
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 요청을 보내고 응답을 수집하는 데 사용되는 클래스 포함 |
|
|
메일링 관련 클래스 포함 |
|
mobile |
모바일 최적화를 위한 클래스 포함 |
|
module |
모듈 핸들러와 모듈 오브젝트 클래스 포함 |
|
object |
XE 모듈 간 오브젝트 인스턴스를 전달하는 기본 클래스 포함 |
|
page |
페이지 탐색(navigation)을 처리하는 기본 클래스 포함 |
|
template |
정규 표현식을 이용해서 템플릿 파일을 PHP 코드로 변환하고 추후 사용을 위해 XE 캐시로 만드는 클래스를 포함 |
|
widget |
위젯 실행을 위한 핸들러 클래스 포함 |
|
xml |
XML을 파싱하고 생성하는 클래스 포함 |
common 폴더에는 XE에 꼭 필요한 자원이 포함되어 있습니다.
|
폴더/파일 |
설명 |
||
|---|---|---|---|
|
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 |
새로 고칠 때 사용되는 템플릿 파일 |
||
설정 폴더에는 기본 설정 내용과 자주 사용되는 함수 모음이 저장된 파일이 포함되어 있습니다.
|
폴더/파일 |
설명 |
|---|---|
|
config.inc.php |
개발자를 위한 XE 버전과 디버그 설정 파일 |
|
config.user.inc.php |
개발자를 위한 디버그 설정 저장 파일(개발자가 직접 만들어 사용) |
|
func.inc.php |
XE에서 자주 사용되는 함수를 포함하는 파일 |
캐시 파일, 업로드된 파일, 기타 모듈에서 필요한 파일을 포함합니다.
|
폴더/파일 |
설명 |
|||
|---|---|---|---|---|
|
_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 |
현재 테마의 정보를 저장합니다. |
|||
레이아웃은 콘텐츠(모듈)를 감싸는 껍데기입니다. 레이아웃은 모듈 인스턴스별로 설정해서 적용하거나, 제작자가 설정한 메뉴 인스턴스와 연동해서 메뉴 인스턴스에 포함된 모든 모듈 인스턴스에 일괄적으로 적용할 수 있습니다. 레이아웃 관리 메뉴에서 위젯 및 레이아웃 편집 기능을 통해 레이아웃 템플릿 파일을 수정할 수 있습니다.
|
폴더/파일 |
설명 |
||
|---|---|---|---|
|
Layout Name |
레이아웃 루트 폴더 |
||
|
conf |
레이아웃 정보가 포함된 설정 파일 포함 |
||
|
info.xml |
레이아웃 제작자와 설명, 확장 변수, 연동 메뉴의 개수와 이름 정의 |
||
|
layout.html |
레이아웃의 템플릿 파일 |
||
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 모듈 "을 참조하십시오.
테마는 레이아웃과 모듈 스킨을 편리하게 관리하는 기능입니다. 사이트 디자인의 통일성을 높이기 위해 사용됩니다.
|
폴더/파일 |
설명 |
||||
|---|---|---|---|---|---|
|
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 템플릿 문법으로 제작한 스킨 파일 |
||||
위젯은 화면에 표시되는 작은 프로그램입니다. 위젯 중 일부는 최신 글이나 회원 정보(로그인 폼)와 연동하고, 일부는 외부 오픈 API와 연동하기도 합니다.
위젯 폴더의 이름은 해당 위젯의 이름과 같아야 합니다. 폴더 구조는 다음과 같습니다.
|
폴더/파일 |
설명 |
|||
|---|---|---|---|---|
|
Widget Name |
위젯 루트 폴더 |
|||
|
widget_name.class.php |
위젯의 클래스 파일. 데이터를 처리하고 템플릿 파일 지정 |
|||
|
conf |
설정 폴더 |
|||
|
info.xml |
위젯 정보(이름, 설명)와, 위젯 클래스에 사용할 수 있는 변수 정의 |
|||
|
skins |
스킨 폴더 |
|||
|
Skin Name |
위젯 스킨용 파일 포함. 이 폴더의 이름은 스킨 이름과 같아야 합니다. |
|||
|
skin.xml |
스킨의 이름, 설명, 제작자, 컬러셋 정보를 포함하는 설정 파일 |
|||
이 폴더는 위젯스타일을 포함합니다. 위젯스타일은 위젯 컨테이너를 꾸미는 데 사용되며, 사용자는 위젯스타일을 이용해 위젯의 배경, 테두리, 제목 등 위젯의 모양을 변경할 수 있습니다.
위젯스타일의 폴더 구조는 다음과 같습니다.
|
폴더/파일 |
설명 |
||
|---|---|---|---|
|
widgetstyles |
위젯스타일 폴더 |
||
|
Widgetstyle names |
위젯스타일 이름 |
||
|
widgetstyle.html |
위젯스타일용 템플릿 파일 |
||
|
skin.xml |
위젯스타일의 제목, 설명, 제작자, 확장 변수 등을 설정하는 파일 |
||
|
preview.gif |
위젯스타일 미리 보기 |
||