Open Source Project XpressEngine is? The CMS to help produce and publish content.
?

Shortcut

PrevPrev Article

NextNext Article

Larger Font Smaller Font Up Down Go comment Print
Components

Skin

by XEJapan posted Nov 22, 2015
?

Shortcut

PrevPrev Article

NextNext Article

Larger Font Smaller Font Up Down Go comment Print

스킨

개요

모듈이나 위젯에서 컨텐���를 생성하면 �� 컨텐���를 화면에 출력하기 위해 html 형식으로 변환해야 합니다. 스킨은 이렇��� 데이터�� html로 변환하는 역할을 합니다. 모듈이나 위젯�� 같은 컨트롤러가 생성한 컨텐���를 지정된 스킨에��� 전달하면 스킨은 전달받은 데이터�� html 템플릿에 적용한 다음 html�� 반환합니다 또 필요한 css 파일이나 js 파일을 로드할 수도 있습니다.

목적

스킨을 사용하는 가장 큰 목적은 컨텐���를 표현(��)하는 역할을 컨텐���를 생성하는 기능(컨트롤러)�� 분리하���, '컨텐���의 표현'을 교체가 가능하도��� 하기 위함입니다. 만약 동일한 컨텐���를 다르��� 표현하��� 싶을 경우, 컨트롤러의 코드를 변경하��� 않��� 지정된 스킨을 교체하면 됩니다.

구성

스킨은 누구나 제작하여 XE에 추���할 수 있습니다. 플러그인을 만들고 스킨을 플러그인을 통해 XE에 등록하십시오. 스킨을 제작하려�� 우선 \Xpressengine\Skin\AbstractSkin�� 상속���는 스킨 클래스�� 생성하���, 클래스에서 필요��� 하는 메소드와 프���퍼티�� 작성하십시오.

아래 코드는 게시판모듈을 타���으로 하는 스킨을 정의한 예입니다.


class MyBoardSkin extends AbstractSkin
{
    protected static $id = 'module/board@board/skin/myplugin@boardskin';

    ...
}

각���의 스킨은 자신이 어떤 컨트롤러(모듈 또는 위젯)에서 사용될���에 정보, 즉 타���에 대한 정보�� 가������ 있습니다. 예를 들어 게시판 스킨은 게시판 모듈을 타���으로 가���니다. 스킨은 타��� 정보�� 자신의 아이디에 내포합니다. 위의 코드에서 아이디 중���에 'skin'을 기���으로 나누면 module/board@board와 myplugin@boardskin로 분리됩니다. 이때 앞������인module/board@board가 스킨의 타���이 됩니다.

module/board@board는 게시판 모듈의 아이디입니다.

아이디의 앞������에 타���의 아이디를 적은 다음, /skin/을 붙입니다. �� 뒷에는 이 스킨의 고유키�� 붙입니다. 스킨을 제작할 때에는 스킨의 타���이 될 모듈이나 위젯의 아이디��� 무엇인지 먼저 알아야 합니다.

스킨에서 작성해야 할 주요 메소드는 아래와 같습니다.

  • setView(): 하나의 스킨은 여러개의 뷰를 가���니다. 예를 들어 게시판의 경우 글목록페이지(list), 글열람페이지(show), 글작성페이지(create)�� 가���니다. 이 페이지들이 각��� 하나의 뷰��� 됩니다. 스킨은 타��� 컨트롤러에서 필요��� 하는 뷰를 모두 제공해야 합니다. setView()메소드는 컨트롤러가 사용할 뷰를 지정할 때 사용하는 메소드입니다.
  • setData(): 컨트롤러에서 출력할 컨텐��� 데이터�� 생성한 다음 이 메소드를 사용하여 스킨에��� 전달합니다.
  • render(): 화면에 출력할 html을 반환하는 핵심적인 메소드입니다. setView()와 setData()�� 통해 전달받은 뷰와 데이터 정보�� 사용하여 html을 작성합니다.

연관 데이터베이스

스킨은 특정 컨트롤러에서 사용할 스킨의 정보와 스킨의 설정정보�� 저장하는 기능을 제공합니다. 스킨 패키지는 이 정보��config 테이블에 저장합니다. 이 때 skins으로 시작하는 name을 사용합니다.

사용법

API 사용법


List of Articles
Category Subject Date Last Update
XE3 XpressEngine 매뉴얼 2015.11.22 2015.11.22
About XE3 XE3의 소���-배경 2015.11.22 2015.11.22
About XE3 XE3 소��� - 중요 개념 소��� 2015.11.22 2015.11.22
Get Started 설치하기 2015.11.22 2015.12.15
View Elements Presenter 2015.11.22 2015.11.22
View Elements FrontEnd 2015.11.22 2015.11.22
Plug-in 플러그인 2015.11.22 2015.11.22
Plug-in Plugin 2015.11.22 2015.11.22
Plug-in Register 2015.11.22 2015.11.22
Components 컴포넌트 2015.11.22 2015.11.22
Components Theme 2015.11.22 2015.11.22
Components Module 2015.11.22 2015.11.22
Components Skin 2015.11.22 2015.11.22
Components UIObject 2015.11.22 2015.11.22
Components Widget 2015.11.22 2015.11.22
Package 패키지 2015.11.22 2015.11.22
Package Captcha 2015.11.22 2015.11.22
Package Category 2015.11.22 2015.11.22
Package Comment 2015.11.22 2015.11.22
Package Config 2015.11.22 2015.11.22
Board Pagination Prev 1 2 3 Next
/ 3