You cannot see this page without javascript.

XE 애드온의 제작 규칙

Xpress Engine 조회 수 430 추천 수 0 2014.07.11 18:39:40

애드온의 제작 규칙

  • 애드온의 제작 규칙
  • 애드온의 디렉토리 구조
  • info.xml 제작
  • 애드온이름.addon.php 제작
  • XE XML Query의 사용
  • 애드온 제작시 주의사항

애드온의 제작 규칙

애드온을 제작하기 위해서는 최소한 아래와 같은 규칙을 지켜야 합니다.

  • 위치 : addons/애드온이름
  • 애드온 제작자 정보, 설명 그리고 필요에 따라 관리자로부터 애드온의 변수를 입력받기 위한 info.xml
  • 애드온 동작 파일 : 애드온이름.addon.php

애드온의 디렉토리 구조

addons /애드온이름/

  • conf/info.xml
  • 애드온이름.addon.php
  • Queries/queryID.xml

※ addons 디렉토리에 다른 이름의 파일들이 있어도 상관없으며 class등을 사용하여도 됩니다. 다만 native code로 동작시키기 위해 include를 하는 구조라 function(함수)의 선언은 안됩니다.

info.xml 제작

info.xml은 다음과 같이 제작할 수 있습니다.

<?xml version="1.0" encoding="UTF-8"?>
<addon version="0.2">
   <title xml:lang="ko">애드온제목</title>
   <description xml:lang="ko">애드온에 대한 설명</description>
   <version>애드온의 버전</version>
   <date>년-월-일</date>
   <author email_address="제작자 메일 주소" link="제작자 홈페이지 주소">
      <name xml:lang="ko">제작자 이름</name>
   </author>
   <extra_vars>
      <var name="설정 변수 명(영문)">
         <title xml:lang="ko">설정 변수 이름(출력용)</title>
         <description xml:lang="ko">설정 변수에 대한 설명</description>
      </var>
   </extra_vars>
</addon>

※ extra_vars는 필요하면 생성하고 필요 없으면 <extra_vars /> 와 같이 세부 내역이 없어도 됩니다. 위의 파일을 info.xml 이라는 이름으로 저장하고 conf/info.xml 에 두시면 됩니다.

애드온이름.addon.php 제작

동작하는 애드온 파일은 php로 작성하면 됩니다. 다만 애드온이 호출되는 위치가 대부분 class 객체의 method 내부이기에 함수 선언등은 할 수가 없습니다.
다만 class 를 정의하고 이를 활용하는 것은 가능합니다. 애드온 파일의 시작은 다음과 같이 합니다.

<?php
 
    if(!defined("__ZBXE__")) exit();
 
     /**
       * @file 애드온이름.addon.php
       * @author 개발자이름 (개발자 이메일)
       * @brief 간단한 소개
       **/
 
    if($called_position != 'before_module_init') return;
 
?>
  • __ZBXE__ 상수는 꼭 확인하여 XE를 통한 호출이 아닌 외부 요청에 의한 실행이 되지 않도록 하셔야 합니다.
  • 애드온은 called_position에 따라서 동작을 제어할 수 있고 이 제어는 애드온에서 직접 처리를 하여야 합니다.
  • XE가 모듈을 찾기 전 최상단 시점에서만 동작하는 애드온을 작성하려면 $called_position = before_module_init 에서 실행하면 됩니다.

★ XE 1.5 버전부터는 __XE__ 상수를 사용한다. 따라서 1.5 버전에서 사용할 애드온을 개발한다면 if(!defined('__XE__')) exit(); 로 설정한다.

따라서 위의 코드 아래에 다음과 같은 코드를 넣으시면 됩니다.

if($called_position != 'before_module_init') return;

위와 같이 $called_position 값이 before_module_init이 아닐 경우 return 문을 통해서 그 아래의 코드가 실행되지 않도록 합니다. native code처럼 동작하기에 return 이 아닌 다른 exit() 등의 함수가 사용되면 의도하지 않은 동작을 할 수 있으니 주의하셔야 합니다.

위의 코드까지가 XE Addon 제작을 위한 준비 단계입니다. 이후 코드는 원하는 것을 동작 시키기 위한 코드를 직접 활용하시면 됩니다.

XE XML Query의 사용

XE Addon에서도 XML Query를 이용하여 다른 모듈드에서 제작된 DB 정보를 활용할 수 있습니다. 이 경우 애드온 디렉토리에 queries 라는 하위 디렉토리를 만들고 xml query문이 정의된 xml 파일을 저장하면 됩니다. 이 경우 다음과 같은 코드로 쿼리를 실행할 수 있습니다.

$output = executeQuery('addon.애드온이름.xml', $전달변수)

자세한 XML Query의 사용법은 아래 문서를 참고하시기 바랍니다.

http://xe.xpressengine.net/wiki/18180631

애드온 제작시 주의 사항

  • XE의 애드온은 모든 모듈의 여러부분에 삽입됨으로 <?php ... ?> 앞뒤에 공백문자가 오지 않도록 주의하시기 바랍니다.
    (before_display_content 호출시 오작동이 일어남.)
  • XE 코어는 애드온 프로그래밍시 생길 수 있는 예외상황을 별도로 처리하지 않습니다. 따라서 현재 호출된 상황을 체크하는 루틴이 잘 짜여 있어야 다른 부분과 충돌하지 않습니다.
  • 잘못된 애드온 코딩으로 인하여 사이트가 심각한 오류에 빠진 경우 files/cache/activated_addons.cache.php 파일을 편집하여 다시 업로드 하시면 됩니다.

★ XE의 Addon은 매우 강력한 동작을 수행할 수 있습니다. 다만 상황에 맞게 코드를 잘 작성하지 않을 경우 의도하지 않는 결과 혹은 XE의 동작이 멈출 수가 있습니다.
기본으로 포함된 Addon들을 참고하시기를 권합니다.

엮인글 :
List of Articles
번호 제목 글쓴이 날짜sort 조회 수
369 Windows7 OEM을 활용하여 클린설치 file [11] LynX 2010-11-06 765
368 Windows7 에서 시스템을 백업/복원하는 가장 쉬운 방법!! file LynX 2010-11-07 334
367 탐색기 메뉴에 '명령 프롬프트 열기'와 '메모장으로 열기' 추가하기 file [14] LynX 2010-11-08 591
366 인터넷 익스플로러 리플레쉬 file LynX 2011-05-02 286
365 활성 네트워크 중복으로 인한 인터넷 연결 안되는 문제 file [12] LynX 2011-05-26 971
364 32bit Driver을 64bi로 설치하기 [8] LynX 2011-06-21 325
363 설치파일(inf)에 대한 이해 [7] LynX 2011-06-22 598
362 inf 설치시 경고창 안뜨게 하기 file [10] LynX 2011-06-22 430
361 로우 포맷(Low level format, 저수준 포맷) 하기 file [11] LynX 2011-07-06 722
360 Win XP Crack file [8] LynX 2011-10-31 269
359 윈도우7 메모리 인식 문재 file [13] LynX 2011-11-30 530
358 RoundCube 첨부 용량 변경 / 한글 수정 [10] LynX 2012-01-31 836
357 윈도우7 알수없는장치 file [8] LynX 2012-03-13 270
356 디지털 서명 file [1] LynX 2012-03-15 445
355 아레한글 사용시 출력물에 음영이 나타나는 현상. file [11] LynX 2012-03-29 1154
354 Xyview DVR서버 연결 [8] LynX 2012-04-19 295
353 HP Officejet 6500A (Plus) 호환 드라이버 [8] LynX 2012-05-16 294
352 IIS에 FastCgi모듈 활성화 시키기 file [12] LynX 2012-11-21 1283
351 윈도우 2008서버에 XE 설치 절차 [9] LynX 2012-11-22 230
350 Windows Server 2012 설치 file LynX 2012-11-23 477

XE Login