티스토리 뷰
XE 위젯은 별도의 소스코드없이 페이지를 간단하게 꾸밀 수 있게 하지요..
이 위젯개념이 없었다면 소스코드 짜거나 찾거나 해서 페이지를 꾸며야 겠지요..
예를 들어 로그인 위젯이 없었다면 어떻게 되었을까요?? (이부분을 각자 생각해보도록 합시다..)
이번에는 위젯이 어떠한 원리로 작동하는 지 살펴보도록 하겠습니다..
먼저 위젯은 위젯모듈(./modules/widget)에서 위젯의 모든것을 총괄하고 있습니다..
위젯기능을 간단하게 살펴보면..
위젯설정을 하게 되면, 아래와 같이 위젯코드라는 게 생성됩니다..
<img class="zbxe_widget_output" widget="content" skin="default" colorset="white" content_type="document" list_type="normal" tab_type="none" markup_type="table" page_count="1" option_view="title,regdate,nickname" show_browser_title="Y" show_comment_count="Y" show_trackback_count="Y" show_category="Y" show_icon="Y" order_target="regdate" order_type="desc" thumbnail_type="crop" />
- 이 코드는 이미지태그가 아니라 위젯코드입니다..
- 이 위젯코드는 XE페이지에서만 사용하겠지요.. (그래서 XE페이지 어디서나 위젯코드를 사용할 수 있습니다.)
- XE화면 출력바로전 위젯코드는 실제코드로 변환됩니다.. (위젯모듈에서 'display' 트리거를 통해 출력직전 실제코드로 변환됩니다.)
위젯코드를 자세히 살펴보면 아래와 같습니다.
<img class="zbxe_widget_output" widget="위젯이름" skin="위젯스킨" colorset="스킨 컬러셋" 위젯설정사항 />
이 위젯코드가 실제 HTML 코드로 변환되는 형태로 위젯기능이 동작합니다.
위젯코드가 실제 HTML 코드로 변환 되는 과정!!
- 위젯코드를 분석합니다. (XmlParser 이용)
- 위젯의 클래스파일에서 "proc"함수를 실행시켜 위젯결과 HTML코드를 얻습니다. ("proc"함수 인자로 위젯설정을 받습니다.)
- 위젯스타일이 있으면 위젯결과 HTML코드와 합칩니다.
- 위젯코드를 최종 HTML 코드로 교체!
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | class 위젯이름 extends WidgetHandler{ function proc( $args ){ // 위젯스킨 설정 $tpl_file = 'index' ; $tpl_path = sprintf( '%sskins/%s' , $this ->widget_path, $args ->skin); //컬러셋 지정 Context::set( 'colorset' , $args ->colorset); // 템플릿 컴파일 $oTemplate = &TemplateHandler::getInstance(); return $oTemplate ->compile( $tpl_path , $tpl_file ); } } |
출처 : https://www.conory.com/note_develop_web/15879
'XE(XpressEngine) 강좌 > XE 위젯 제작 강좌' 카테고리의 다른 글
xe 위젯 개발 강좌 (5) - 위젯 확장변수를 이용한 bxslider xe 위젯 만들기 (0) | 2017.05.19 |
---|---|
xe 위젯 개발 강좌 (5) - counter 위젯을 사용하여 스킨 컬러셋 추가,사용하기 (0) | 2017.05.17 |
xe 위젯 개발 강좌 (4) - bxslider 를 이용한 위젯만들기 (0) | 2017.05.16 |
xe 위젯 개발 강좌 (3) - bxslider 를 이용한 위젯만들기 준비 (0) | 2017.05.16 |
xe 위젯 개발 강좌 (2) - 카운터 위젯을 뜯어보자 (0) | 2017.05.16 |
- Total
- Today
- Yesterday
- XE3
- xe addon
- 파싱
- C
- 자바 smtp
- 자바
- 프로씨
- 파이썬
- 이클립스
- MySQL
- xe애드온
- C언어
- php
- ocjap
- EC
- ocpjp
- Python
- proc
- 포인터
- KG
- ocajp
- 자바 셀레니움
- XE
- JDBC
- esql
- 문자열
- 인포믹스
- 오라클
- webix
- 스크래핑
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |