XE 코어 확장하기

확장은 코어의 성장 이야기

"XE 시작하기" 단계는 XE 코어와 첫인사를 나누는 과정이었습니다. XE 코어를 서버 계정에 설치하고 기본적인 모듈의 설정과 동작 방법을 살펴본 내용입니다. "XE 확장하기"는 XE 코어의 기본적인 기능을 좀 더 확장하여 새로운 레이아웃, 새로운 모듈과 위젯 등을 추가로 설치하면서 사용자가 요구하는 기능을 코어 핵심 모듈에 하나씩 덧붙여 가는 성장 이야기입니다. 또한 코어와 모듈이 갖고 있는 옵션들을 효과적으로 활용한다면 같은 프레임 워크(Framework) 안에서 다양한 기능적 표현이 가능하게 됨을 의미합니다. 확장을 위한 도구로 너무나 많은 프로그램이 있지만 XE 코어를 확장하는 기본적인 방법은 같기 때문에 사용자가 추구하는 웹사이트의 기능과 특성을 잘 고려하여 코어 운영에 도움이 될 수 있기를 바랍니다.

XpressEngine의 확장은 크게 프로그램 요소로서 모듈과 위젯, 애드온 등이 있고 디자인 요소로는 레이아웃과 프로그램의 스킨으로 구분 할 수 있습니다. 홈페이지를 운영하다 보면 최초 설치시 기본적으로 제공되는 레이아웃이나 게시판의 디자인과 기능이 개인 또는 커뮤니티의 운영 목적에 잘 어울리지 않을 수 있습니다. 이러한 경우 레이아웃 디자인의 수정이나 변경 또는 게시판에서 필요한 기능을 추가하고 싶어집니다. XE 코어는 수많은 모듈 개발자 또는 위젯, 애드온, 스킨 개발자에 의해 새로운 기능을 구현하는 프로그램이 지속적으로 개발되어 배포되고 있습니다. XE 공식 홈페이지의 프로그램 자료실을 잘 활용한다면 여러분의 홈페이지를 더욱 알차고 멋지게 성장시킬 수 있고 방문자에게는 쉽고 편리한 기능과 다양한 콘텐츠를 제공할 수 있는 훌륭한 운영자가 될 수 있습니다.


확장을 위한 추가 설치 경로

XE 코어를 확장한다는 것은 새로운 모듈 프로그램과 프로그램의 스킨을 코어의 트리구조 안에 추가로 업로드하여 사용하는 것을 의미합니다. 여러분이 이제는 디렉터리(폴더)의 개념과 위치를 잘 파악하고 있으리라 믿지만 그래도 한번 더 아래에서 서버 계정에 위치한 xe의 디렉터리 트리구조를 그려보았습니다. XE 코어에서 사용자가 추가할 수 있는 프로그램은 레이아웃과 모듈, 위젯, 애드온 그리고 그에 따른 스킨(skin)들과 테마입니다. 그 밖의 디렉터리는 개발자가 아닌 이상 열어볼 필요도 없는 코어 순수 핵심 프로그램입니다. 즉 사용자가 추가하지 않은 파일과 폴더는 모두 순수 코어이며 변경된 메소드(함수의 내용, 일하는 방법)를 포함하고 있는 가장 기본적인 예제 파일(기본 레이아웃, 위젯, 애드온 등)의 묶음입니다.

TIP - 쉬운 설치를 활용하는 방법과 사용자 추가 프로그램을 관리하는 방법에 익숙해지지 않으면 추후 계정 관리에 어려움이 있을 수 있습니다. 쉬운 설치와 사용자 계정 관리의 개념을 반드시 이해할 수 있기를 바랍니다.

순수 코어 프로그램은 최신 버전의 코어가 배포될 때 사용자 업그레이드 과정에서 덮어 씌여지는 파일과 디렉터리를 말하며, 사용자가 추가한 파일과 디렉터리는 그대로 유지 됩니다. 다시한번 강조하지만, 서버상의 xe 트리구조와 똑같은 트리구조의 xe 운영파일 폴더를 내컴퓨터에서 잘 운영하고 관리해야만 사용자 디렉터리의 위치와 내가 추가한 부분을 한눈에 파악할 수 있습니다. 사용자가 추가하고 설치할 수 있는 내용들이 들어있는 디렉터리(폴더)는 항상 복수형(_s)으로 끝난다는 것을 기억하면 좋습니다. 우리말로 바꾸면 "애드온들, 레이아웃들, 모듈들, 테마들, 위젯들이 들어있는 방"이라는 뜻으로 이해할 수 있습니다.

xe : 서버 계정에 설치된 xe 디렉터리 트리구조

  • addons <- 추가 애드온을 넣는 디렉터리
  • classes
  • common
  • config
  • layouts <- 추가 레이아웃을 넣는 디렉터리
    • xe_official
      • conf
        • info.xml
      • css
        • default.css
        • white.css
        • black.css
      • js
        • xe_official.js
      • images
        • default
        • white
        • black
      • layout.html
  • libs
  • m.layouts <- 추가 모바일 레이아웃을 넣는 디렉터리
  • modules <- 추가 모듈을 넣는 디렉터리
    • addon
    • admin
    • autoinstall
    • board <- XE 코어 설치후 처음 추가 설치 했던 게시판 모듈
      • conf
      • lang
      • m.skins
      • queries
      • skins
      • tpl
      • board.admin.controller.php
      • board.admin.view.php
      • board.api.php
      • board.class.php
      • board.controller.php
      • board.mobile.php
      • board.model.php
      • board.view.php
      • board.wap.php
    • comment
    • communication
    • counter
    • document
    • editor
    • file
    • importer
    • install
    • integration_search
    • krzip
    • lauout
    • member
    • menu
    • message
    • module
    • opage
    • page
    • point
    • poll
    • rss
    • session
    • spamfilter
    • syndication
    • tag
    • trackback
    • widget
  • themes <- 추가 테마를 넣는 디렉터리
  • widgets <- 추가 위젯을 넣는 디렉터리
    • content
    • counter_status
    • language_select
    • login_info
      • conf
        • info.xml
      • skins
        • xe_official
          • filter
          • css
          • js
          • images
          • login_form.html
          • login_info.html
          • skin.xml
      • login_info.class.php
    • mcontent
  • widgetstyles <- 추가 위젯스타일을 넣는 디렉터리
  • index.php

확장 프로그램의 구분

모듈 프로그램

XE 코어에 추가해서 사용할 수 있는 하나의 프로그램 단위를 말합니다. 대표적으로 게시판(Board) 모듈과 카페(CafeXE) 모듈, 텍스타일(Textyle) 모듈이 있고 그 밖에 위키(Wiki XE), 자료실, 지식인 XE 모듈 등 수많은 프로그램이 등록되어 있습니다. 모듈의 경우 설치시 DB에 기능 구현을 위한 테이블이 추가 될 수 있고 위젯과 함께 사용해야 하는 경우도 있습니다.

모듈의 설치 디렉터리 : /xe/modules/


위젯 프로그램

레이아웃이나 위젯 페이지 모듈에 삽입되어 동작하는 구성 요소입니다.

위젯의 설치 디렉터리 : /xe/widgets/


애드온 프로그램

코어와 모듈의 동작 사이에 끼어들어 자신의 기능을 수행하는 작은 프로그램입니다.

애드온의 설치 디렉터리 : /xe/addons/


레이아웃

사이트의 전반적인 디자인 요소로서 헤더, 메뉴, 콘텐츠, 사이드바, 푸터 등의 영역을 분할하고 모듈과 위젯의 기능을 제한된 공간 안에 효과적으로 배치하여 웹페이지의 주제와 특징을 표현하는 구성요소입니다.

레이아웃의 설치 디렉터리 : /xe/layouts/


스킨

모듈과 위젯, 애드온 등의 기능을 더욱 세련되게 재구성하기 위한 구성 요소입니다.

스킨의 설치 디렉터리 : 해당 프로그램의 스킨(skins) 디렉터리


테마

테마는 레이아웃을 포함하여 현재 설치된 모듈의 스킨을 묶은 개념입니다.

테마의 설치 디렉터리 : /xe/themes/