SlideShare ist ein Scribd-Unternehmen logo
1 von 24
Downloaden Sie, um offline zu lesen
XE 애드온
애드온 이란?
XE가 실행될 때 중간에 삽입되어 실행되는 프로그램
!
중간에 삽입되는 과정을 후킹(hooking) 이라고 표현
!
애드온은 include로 중간에 삽입됨
아래는 ModuleHandler에서 애드온이 삽입되는 과정의 코드
애드온의 역할 및 특징
스키마를 가질 수 없음
!
모든요청에 대해서 애드온이 실행됨
!
모듈이 동작함에 있어서 그 기능을 제한하거나 확장
!
간단한 기능 추가를 위해 XE Core 또는 모듈을 수정하게 되면 버전을 업
데이트할 때 어려움이 있기 때문에 애드온을 추가해서 원하는 기능을 구현
XE 라이프 사이클
URL에 접속한 순간부터 클라이언
트에 응답을 보낸 순간까지 XE가
거치는 일련의 과정
!
애드온 호출은 체크된 4개의 시점
에서 발생
!
각 호출 시점은 $called_position
변수로 구분됨
$called_position (호출시점)
$called_position은 애드온이 호출 되는 시점에 정의 됨
어느시점에 애드온이 호출되었는지 확인하기 위한 변수
애드온 실행 방식 확인
아래 나열된 클래스 메소드를 확인하면 좀더 자세한 애드온 구동방식을 살
펴볼 수 있음
!
XE_PATH/classes/module/ModuleHandler.class.php
ModuleHandler::ModuleHandler()
!
XE_PATH/classes/module/ModuleObject.class.php
ModuleObject::proc()
!
XE_PATH/classes/display/DisplayHandler.class.php
DisplayHandler::printContent()



$called_position 종류
1. before_module_init
모듈을 선언하기 전에 addon을 실행
!
2. before_module_proc
모듈을 실행하기 전에 addon을 실행

act에 의해 정해진 동작을 수행하기 직전
!
3. after_module_proc
모듈을 실행하고 완료된 직후 addon을 실행
!
4. before_display_content
결과물 출력을 위한 처리 후 출력하기 전에 addon을 실행
before_module_init
before_module_proc
after_module_proc
$called_position 예시
애드온에서 $called_position에 따른 사용예시
!
counter 애드온 : before_module_init
!
member_communication 애드온 : before_module_proc
!
resize_image 애드온 : after_module_proc
!
point_level_icon 애드온 : before_display_content
counter
counterController::counterExecute() 은 모듈 처리 작업으로부터 더
이상 정보를 얻을 필요가 없으므로 before_module_init 을 사용
!
다른 called_position을 사용하면 예외처리가 발생할 경우 counter가 집
계되지 않는 문제가 있음
member_communication
닉네임 클릭시 팝업 메뉴에 communication 관련 모듈기능을 추가하기
위한 애드온
!
memberModel::getMemberMenu() 에서 메뉴를 추가하는 기능이 모
듈 실행이 완료되기 전에 처리되므로 before_module_proc을 사용
resize_image
노출될 페이지에 Context::loadFile()을 통해서 css, js 파일을 추가
!
모듈을 처리하면서 페이지 이동등 예외 처리가 발생할 경우 실행되지 않아
도 되는 애드온이기 때문에 after_module_proc을 사용
point_level_icon
출력될 html에 div, span, a 태그에 있는 “member_숫자”가 포함된 문자
열을 찾아 pointLevelIconTrans()을 실행
!
DisplayHandler::printContent() 처리된 html 이 담겨져 있는
$output 변수에 대해서 변경해야 하기 때문에 before_display_content
를 사용
애드온 구성
애드온 구성
애드온 설치 위치
XE_PATH/addons/
각 애드온은 애드온 이름의 폴더별로 정의되어 설치됨
!
애드온 파일 구성
애드온_이름.addon.php : 애드온 기능
conf/info.xml : 애드온 정보 및 관리자 표시
!
관리자 페이지
conf/info.xml 의 내용으로 처리됨
관리자에서 설정한 내용은 files/cache/addons 의 cache 파일과
xe_addons, xe_addons_site DB 테이블에 설정 값 저장
설정 파일
conf/info.xml
구성
/index.php?module=admin&act=dispAddonAdminIndex
info.xml 의 extra_vars
extra_vars
애드온에서 설정값을 만들기 위해 선언
xe_addons, xe_addons_site DB 테이블의 extra_vars 필드에 저장
됨
!
!
!
!
name attribute는 폼 필드의 name attribute 를 설정
type attribute는 text, textarea, select의 폼 필드를 설정
!
extra_vars를 통해 선언되고 관리자에서 설정된 값은

애드온에서 $addon_info으로 접근할 수 있음
애드온 파일 작성
애드온_이름.addon.php
!
아래와 같이 시작 부분을 작성
파일명(@file), 설명(@brief), 작성자(@author)를 작성
!
if(!defined(‘__XE__’)) exit();
XE를 통한 호출이 아닐 경우 동작하지 않기 위한 처리
$called_position을 사용하는 코드 예시
어떤 위치에서 애드온을 실행시킬지 아래와 같이 조건식으로 처리
XML 쿼리 사용
애드온에서 다른 모듈이 생성한 DB 테이블에 쿼리 사용
애드온 폴더 아래 queries 라는 폴더를 생성하고 XML쿼리문을 만듬
생성된 xml 쿼리는
executeQuery(‘addons.애드온_이름.쿼리ID’,$args);
으로 실행한다.
executeQuery(‘addons.addon_ex.getDocumentCount’,$args);
애드온 cache file
애드온을 사용함으로 체크하면 XE_PATH/files/cache/addons 에 설
정 값을 저장

site_srl 에 따라 pc, mobile의 설정 값을 따로 저장
!
0pc.activated_addons.cache.php
감사합니다!
developers@xpressengine.com

Weitere ähnliche Inhalte

Ähnlich wie 2014년 03월 XE세미나 XE 애드온 개발 강좌(1/2)

Express framework tutorial
Express framework tutorialExpress framework tutorial
Express framework tutorial우림 류
 
파이썬 플라스크 이해하기
파이썬 플라스크 이해하기 파이썬 플라스크 이해하기
파이썬 플라스크 이해하기 Yong Joon Moon
 
XE 모듈 개발 - 걸음마부터 날기까지 - 걷기
XE 모듈 개발 - 걸음마부터 날기까지 - 걷기XE 모듈 개발 - 걸음마부터 날기까지 - 걷기
XE 모듈 개발 - 걸음마부터 날기까지 - 걷기승엽 신
 
거 XE 모듈 개발하기 좋은 날씨네 - XECon + PHPFest 2014
거 XE 모듈 개발하기 좋은 날씨네 - XECon + PHPFest 2014거 XE 모듈 개발하기 좋은 날씨네 - XECon + PHPFest 2014
거 XE 모듈 개발하기 좋은 날씨네 - XECon + PHPFest 2014승엽 신
 
알아봅시다, Polymer: Web Components & Web Animations
알아봅시다, Polymer: Web Components & Web Animations알아봅시다, Polymer: Web Components & Web Animations
알아봅시다, Polymer: Web Components & Web AnimationsChang W. Doh
 
[NEXT] Android 개발 경험 프로젝트 4일차 (Networking)
[NEXT] Android 개발 경험 프로젝트 4일차 (Networking)[NEXT] Android 개발 경험 프로젝트 4일차 (Networking)
[NEXT] Android 개발 경험 프로젝트 4일차 (Networking)YoungSu Son
 
XE Open seminar 테마만들기
XE Open seminar 테마만들기XE Open seminar 테마만들기
XE Open seminar 테마만들기Sungbum Hong
 
Secrets of the JavaScript Ninja - Chapter 12. DOM modification
Secrets of the JavaScript Ninja - Chapter 12. DOM modificationSecrets of the JavaScript Ninja - Chapter 12. DOM modification
Secrets of the JavaScript Ninja - Chapter 12. DOM modificationHyuncheol Jeon
 
Vue guide v0.1
Vue guide v0.1Vue guide v0.1
Vue guide v0.1DataUs
 
프로그래밍 언어 기초(델파이,C++)
프로그래밍 언어 기초(델파이,C++)프로그래밍 언어 기초(델파이,C++)
프로그래밍 언어 기초(델파이,C++)Devgear
 
[KGIT_EWD]class03 0322
[KGIT_EWD]class03 0322[KGIT_EWD]class03 0322
[KGIT_EWD]class03 0322jylee6977
 
letswift22_우당탕탕 확장 프로그램(이다혜 light).pdf
letswift22_우당탕탕 확장 프로그램(이다혜 light).pdfletswift22_우당탕탕 확장 프로그램(이다혜 light).pdf
letswift22_우당탕탕 확장 프로그램(이다혜 light).pdfLee Dahae
 
Spring@mvc웹호스팅
Spring@mvc웹호스팅Spring@mvc웹호스팅
Spring@mvc웹호스팅J.H Ahn
 
XE 모듈 개발 - 걸음마부터 날기까지 - 날기
XE 모듈 개발 - 걸음마부터 날기까지 - 날기XE 모듈 개발 - 걸음마부터 날기까지 - 날기
XE 모듈 개발 - 걸음마부터 날기까지 - 날기승엽 신
 
XE 오픈 세미나(2014 05) - XE 모듈 강의 - 날기
XE 오픈 세미나(2014 05) - XE 모듈 강의 - 날기XE 오픈 세미나(2014 05) - XE 모듈 강의 - 날기
XE 오픈 세미나(2014 05) - XE 모듈 강의 - 날기XpressEngine
 

Ähnlich wie 2014년 03월 XE세미나 XE 애드온 개발 강좌(1/2) (20)

Express framework tutorial
Express framework tutorialExpress framework tutorial
Express framework tutorial
 
Xe hack
Xe hackXe hack
Xe hack
 
파이썬 플라스크 이해하기
파이썬 플라스크 이해하기 파이썬 플라스크 이해하기
파이썬 플라스크 이해하기
 
XE 모듈 개발 - 걸음마부터 날기까지 - 걷기
XE 모듈 개발 - 걸음마부터 날기까지 - 걷기XE 모듈 개발 - 걸음마부터 날기까지 - 걷기
XE 모듈 개발 - 걸음마부터 날기까지 - 걷기
 
거 XE 모듈 개발하기 좋은 날씨네 - XECon + PHPFest 2014
거 XE 모듈 개발하기 좋은 날씨네 - XECon + PHPFest 2014거 XE 모듈 개발하기 좋은 날씨네 - XECon + PHPFest 2014
거 XE 모듈 개발하기 좋은 날씨네 - XECon + PHPFest 2014
 
알아봅시다, Polymer: Web Components & Web Animations
알아봅시다, Polymer: Web Components & Web Animations알아봅시다, Polymer: Web Components & Web Animations
알아봅시다, Polymer: Web Components & Web Animations
 
[NEXT] Android 개발 경험 프로젝트 4일차 (Networking)
[NEXT] Android 개발 경험 프로젝트 4일차 (Networking)[NEXT] Android 개발 경험 프로젝트 4일차 (Networking)
[NEXT] Android 개발 경험 프로젝트 4일차 (Networking)
 
XE Open seminar 테마만들기
XE Open seminar 테마만들기XE Open seminar 테마만들기
XE Open seminar 테마만들기
 
Web_07_Rails Advanced
Web_07_Rails AdvancedWeb_07_Rails Advanced
Web_07_Rails Advanced
 
Secrets of the JavaScript Ninja - Chapter 12. DOM modification
Secrets of the JavaScript Ninja - Chapter 12. DOM modificationSecrets of the JavaScript Ninja - Chapter 12. DOM modification
Secrets of the JavaScript Ninja - Chapter 12. DOM modification
 
Vue guide v0.1
Vue guide v0.1Vue guide v0.1
Vue guide v0.1
 
Nest js 101
Nest js 101Nest js 101
Nest js 101
 
프로그래밍 언어 기초(델파이,C++)
프로그래밍 언어 기초(델파이,C++)프로그래밍 언어 기초(델파이,C++)
프로그래밍 언어 기초(델파이,C++)
 
[KGIT_EWD]class03 0322
[KGIT_EWD]class03 0322[KGIT_EWD]class03 0322
[KGIT_EWD]class03 0322
 
3.Spring IoC&DI(spring ioc실습, XML기반)
3.Spring IoC&DI(spring ioc실습, XML기반)3.Spring IoC&DI(spring ioc실습, XML기반)
3.Spring IoC&DI(spring ioc실습, XML기반)
 
letswift22_우당탕탕 확장 프로그램(이다혜 light).pdf
letswift22_우당탕탕 확장 프로그램(이다혜 light).pdfletswift22_우당탕탕 확장 프로그램(이다혜 light).pdf
letswift22_우당탕탕 확장 프로그램(이다혜 light).pdf
 
Spring@mvc웹호스팅
Spring@mvc웹호스팅Spring@mvc웹호스팅
Spring@mvc웹호스팅
 
Portfolio
PortfolioPortfolio
Portfolio
 
XE 모듈 개발 - 걸음마부터 날기까지 - 날기
XE 모듈 개발 - 걸음마부터 날기까지 - 날기XE 모듈 개발 - 걸음마부터 날기까지 - 날기
XE 모듈 개발 - 걸음마부터 날기까지 - 날기
 
XE 오픈 세미나(2014 05) - XE 모듈 강의 - 날기
XE 오픈 세미나(2014 05) - XE 모듈 강의 - 날기XE 오픈 세미나(2014 05) - XE 모듈 강의 - 날기
XE 오픈 세미나(2014 05) - XE 모듈 강의 - 날기
 

Mehr von Sol Kim

XECon + PHPFest 2014 XE 프로젝트 이야기
XECon + PHPFest 2014 XE 프로젝트 이야기XECon + PHPFest 2014 XE 프로젝트 이야기
XECon + PHPFest 2014 XE 프로젝트 이야기Sol Kim
 
XECon + PHPFest 2014 Keynote
XECon + PHPFest 2014 KeynoteXECon + PHPFest 2014 Keynote
XECon + PHPFest 2014 KeynoteSol Kim
 
Vim for php
Vim for phpVim for php
Vim for phpSol Kim
 
Xe 제주대 강의_2014_ver2
Xe 제주대 강의_2014_ver2Xe 제주대 강의_2014_ver2
Xe 제주대 강의_2014_ver2Sol Kim
 
2014년 02월 XE세미나 XE서버서능개선
2014년 02월 XE세미나 XE서버서능개선2014년 02월 XE세미나 XE서버서능개선
2014년 02월 XE세미나 XE서버서능개선Sol Kim
 
2014년 02월 XE세미나 About XE 1.7.4
2014년 02월 XE세미나 About XE 1.7.42014년 02월 XE세미나 About XE 1.7.4
2014년 02월 XE세미나 About XE 1.7.4Sol Kim
 
2014년 02월 XE 세미나 XE with Community
2014년 02월 XE 세미나 XE with Community2014년 02월 XE 세미나 XE with Community
2014년 02월 XE 세미나 XE with CommunitySol Kim
 
Network path reference
Network path referenceNetwork path reference
Network path referenceSol Kim
 
Selenium and XpressEngine
Selenium and XpressEngineSelenium and XpressEngine
Selenium and XpressEngineSol Kim
 
2011 XE Camp 모듈제작가이드
2011 XE Camp 모듈제작가이드2011 XE Camp 모듈제작가이드
2011 XE Camp 모듈제작가이드Sol Kim
 
20110702 xeuser
20110702 xeuser20110702 xeuser
20110702 xeuserSol Kim
 

Mehr von Sol Kim (11)

XECon + PHPFest 2014 XE 프로젝트 이야기
XECon + PHPFest 2014 XE 프로젝트 이야기XECon + PHPFest 2014 XE 프로젝트 이야기
XECon + PHPFest 2014 XE 프로젝트 이야기
 
XECon + PHPFest 2014 Keynote
XECon + PHPFest 2014 KeynoteXECon + PHPFest 2014 Keynote
XECon + PHPFest 2014 Keynote
 
Vim for php
Vim for phpVim for php
Vim for php
 
Xe 제주대 강의_2014_ver2
Xe 제주대 강의_2014_ver2Xe 제주대 강의_2014_ver2
Xe 제주대 강의_2014_ver2
 
2014년 02월 XE세미나 XE서버서능개선
2014년 02월 XE세미나 XE서버서능개선2014년 02월 XE세미나 XE서버서능개선
2014년 02월 XE세미나 XE서버서능개선
 
2014년 02월 XE세미나 About XE 1.7.4
2014년 02월 XE세미나 About XE 1.7.42014년 02월 XE세미나 About XE 1.7.4
2014년 02월 XE세미나 About XE 1.7.4
 
2014년 02월 XE 세미나 XE with Community
2014년 02월 XE 세미나 XE with Community2014년 02월 XE 세미나 XE with Community
2014년 02월 XE 세미나 XE with Community
 
Network path reference
Network path referenceNetwork path reference
Network path reference
 
Selenium and XpressEngine
Selenium and XpressEngineSelenium and XpressEngine
Selenium and XpressEngine
 
2011 XE Camp 모듈제작가이드
2011 XE Camp 모듈제작가이드2011 XE Camp 모듈제작가이드
2011 XE Camp 모듈제작가이드
 
20110702 xeuser
20110702 xeuser20110702 xeuser
20110702 xeuser
 

Kürzlich hochgeladen

Console API (Kitworks Team Study 백혜인 발표자료)
Console API (Kitworks Team Study 백혜인 발표자료)Console API (Kitworks Team Study 백혜인 발표자료)
Console API (Kitworks Team Study 백혜인 발표자료)Wonjun Hwang
 
Merge (Kitworks Team Study 이성수 발표자료 240426)
Merge (Kitworks Team Study 이성수 발표자료 240426)Merge (Kitworks Team Study 이성수 발표자료 240426)
Merge (Kitworks Team Study 이성수 발표자료 240426)Wonjun Hwang
 
Continual Active Learning for Efficient Adaptation of Machine LearningModels ...
Continual Active Learning for Efficient Adaptation of Machine LearningModels ...Continual Active Learning for Efficient Adaptation of Machine LearningModels ...
Continual Active Learning for Efficient Adaptation of Machine LearningModels ...Kim Daeun
 
A future that integrates LLMs and LAMs (Symposium)
A future that integrates LLMs and LAMs (Symposium)A future that integrates LLMs and LAMs (Symposium)
A future that integrates LLMs and LAMs (Symposium)Tae Young Lee
 
캐드앤그래픽스 2024년 5월호 목차
캐드앤그래픽스 2024년 5월호 목차캐드앤그래픽스 2024년 5월호 목차
캐드앤그래픽스 2024년 5월호 목차캐드앤그래픽스
 
MOODv2 : Masked Image Modeling for Out-of-Distribution Detection
MOODv2 : Masked Image Modeling for Out-of-Distribution DetectionMOODv2 : Masked Image Modeling for Out-of-Distribution Detection
MOODv2 : Masked Image Modeling for Out-of-Distribution DetectionKim Daeun
 

Kürzlich hochgeladen (6)

Console API (Kitworks Team Study 백혜인 발표자료)
Console API (Kitworks Team Study 백혜인 발표자료)Console API (Kitworks Team Study 백혜인 발표자료)
Console API (Kitworks Team Study 백혜인 발표자료)
 
Merge (Kitworks Team Study 이성수 발표자료 240426)
Merge (Kitworks Team Study 이성수 발표자료 240426)Merge (Kitworks Team Study 이성수 발표자료 240426)
Merge (Kitworks Team Study 이성수 발표자료 240426)
 
Continual Active Learning for Efficient Adaptation of Machine LearningModels ...
Continual Active Learning for Efficient Adaptation of Machine LearningModels ...Continual Active Learning for Efficient Adaptation of Machine LearningModels ...
Continual Active Learning for Efficient Adaptation of Machine LearningModels ...
 
A future that integrates LLMs and LAMs (Symposium)
A future that integrates LLMs and LAMs (Symposium)A future that integrates LLMs and LAMs (Symposium)
A future that integrates LLMs and LAMs (Symposium)
 
캐드앤그래픽스 2024년 5월호 목차
캐드앤그래픽스 2024년 5월호 목차캐드앤그래픽스 2024년 5월호 목차
캐드앤그래픽스 2024년 5월호 목차
 
MOODv2 : Masked Image Modeling for Out-of-Distribution Detection
MOODv2 : Masked Image Modeling for Out-of-Distribution DetectionMOODv2 : Masked Image Modeling for Out-of-Distribution Detection
MOODv2 : Masked Image Modeling for Out-of-Distribution Detection
 

2014년 03월 XE세미나 XE 애드온 개발 강좌(1/2)

  • 2. 애드온 이란? XE가 실행될 때 중간에 삽입되어 실행되는 프로그램 ! 중간에 삽입되는 과정을 후킹(hooking) 이라고 표현 ! 애드온은 include로 중간에 삽입됨 아래는 ModuleHandler에서 애드온이 삽입되는 과정의 코드
  • 3. 애드온의 역할 및 특징 스키마를 가질 수 없음 ! 모든요청에 대해서 애드온이 실행됨 ! 모듈이 동작함에 있어서 그 기능을 제한하거나 확장 ! 간단한 기능 추가를 위해 XE Core 또는 모듈을 수정하게 되면 버전을 업 데이트할 때 어려움이 있기 때문에 애드온을 추가해서 원하는 기능을 구현
  • 4. XE 라이프 사이클 URL에 접속한 순간부터 클라이언 트에 응답을 보낸 순간까지 XE가 거치는 일련의 과정 ! 애드온 호출은 체크된 4개의 시점 에서 발생 ! 각 호출 시점은 $called_position 변수로 구분됨
  • 5. $called_position (호출시점) $called_position은 애드온이 호출 되는 시점에 정의 됨 어느시점에 애드온이 호출되었는지 확인하기 위한 변수
  • 6. 애드온 실행 방식 확인 아래 나열된 클래스 메소드를 확인하면 좀더 자세한 애드온 구동방식을 살 펴볼 수 있음 ! XE_PATH/classes/module/ModuleHandler.class.php ModuleHandler::ModuleHandler() ! XE_PATH/classes/module/ModuleObject.class.php ModuleObject::proc() ! XE_PATH/classes/display/DisplayHandler.class.php DisplayHandler::printContent()
 

  • 7. $called_position 종류 1. before_module_init 모듈을 선언하기 전에 addon을 실행 ! 2. before_module_proc 모듈을 실행하기 전에 addon을 실행
 act에 의해 정해진 동작을 수행하기 직전 ! 3. after_module_proc 모듈을 실행하고 완료된 직후 addon을 실행 ! 4. before_display_content 결과물 출력을 위한 처리 후 출력하기 전에 addon을 실행
  • 9. $called_position 예시 애드온에서 $called_position에 따른 사용예시 ! counter 애드온 : before_module_init ! member_communication 애드온 : before_module_proc ! resize_image 애드온 : after_module_proc ! point_level_icon 애드온 : before_display_content
  • 10. counter counterController::counterExecute() 은 모듈 처리 작업으로부터 더 이상 정보를 얻을 필요가 없으므로 before_module_init 을 사용 ! 다른 called_position을 사용하면 예외처리가 발생할 경우 counter가 집 계되지 않는 문제가 있음
  • 11. member_communication 닉네임 클릭시 팝업 메뉴에 communication 관련 모듈기능을 추가하기 위한 애드온 ! memberModel::getMemberMenu() 에서 메뉴를 추가하는 기능이 모 듈 실행이 완료되기 전에 처리되므로 before_module_proc을 사용
  • 12. resize_image 노출될 페이지에 Context::loadFile()을 통해서 css, js 파일을 추가 ! 모듈을 처리하면서 페이지 이동등 예외 처리가 발생할 경우 실행되지 않아 도 되는 애드온이기 때문에 after_module_proc을 사용
  • 13. point_level_icon 출력될 html에 div, span, a 태그에 있는 “member_숫자”가 포함된 문자 열을 찾아 pointLevelIconTrans()을 실행 ! DisplayHandler::printContent() 처리된 html 이 담겨져 있는 $output 변수에 대해서 변경해야 하기 때문에 before_display_content 를 사용
  • 15. 애드온 구성 애드온 설치 위치 XE_PATH/addons/ 각 애드온은 애드온 이름의 폴더별로 정의되어 설치됨 ! 애드온 파일 구성 애드온_이름.addon.php : 애드온 기능 conf/info.xml : 애드온 정보 및 관리자 표시 ! 관리자 페이지 conf/info.xml 의 내용으로 처리됨 관리자에서 설정한 내용은 files/cache/addons 의 cache 파일과 xe_addons, xe_addons_site DB 테이블에 설정 값 저장
  • 18.
  • 19. info.xml 의 extra_vars extra_vars 애드온에서 설정값을 만들기 위해 선언 xe_addons, xe_addons_site DB 테이블의 extra_vars 필드에 저장 됨 ! ! ! ! name attribute는 폼 필드의 name attribute 를 설정 type attribute는 text, textarea, select의 폼 필드를 설정 ! extra_vars를 통해 선언되고 관리자에서 설정된 값은
 애드온에서 $addon_info으로 접근할 수 있음
  • 20. 애드온 파일 작성 애드온_이름.addon.php ! 아래와 같이 시작 부분을 작성 파일명(@file), 설명(@brief), 작성자(@author)를 작성 ! if(!defined(‘__XE__’)) exit(); XE를 통한 호출이 아닐 경우 동작하지 않기 위한 처리
  • 21. $called_position을 사용하는 코드 예시 어떤 위치에서 애드온을 실행시킬지 아래와 같이 조건식으로 처리
  • 22. XML 쿼리 사용 애드온에서 다른 모듈이 생성한 DB 테이블에 쿼리 사용 애드온 폴더 아래 queries 라는 폴더를 생성하고 XML쿼리문을 만듬 생성된 xml 쿼리는 executeQuery(‘addons.애드온_이름.쿼리ID’,$args); 으로 실행한다. executeQuery(‘addons.addon_ex.getDocumentCount’,$args);
  • 23. 애드온 cache file 애드온을 사용함으로 체크하면 XE_PATH/files/cache/addons 에 설 정 값을 저장
 site_srl 에 따라 pc, mobile의 설정 값을 따로 저장 ! 0pc.activated_addons.cache.php