Skin
스킨
개요
모듈이나 위젯에서 컨텐���를 생성하면 �� 컨텐���를 화면에 출력하기 위해 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을 사용합니다.
사용법
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 |