You cannot see this page without javascript.

Skip Navigation

XE 레이아웃 카메론 XE LAYOUT CAMERON XE2.0.15


00:00

날씨

    • 맑음
    • 26.0°C
    • 45%
    • 0%
    • 맑음
    • 23.0°C
    • 55%
    • 0%
    • 맑음
    • 20.0°C
    • 65%
    • 10%
    • 구름 많음
    • 18.0°C
    • 80%
    • 20%
    • 흐림
    • 17.0°C
    • 80%
    • 30%
    • 구름 많음
    • 16.0°C
    • 85%
    • 20%
    • 맑음
    • 20.0°C
    • 70%
    • 10%
    • 구름 많음
    • 24.0°C
    • 60%
    • 20%
    • 구름 많음
    • 24.0°C
    • 55%
    • 20%
    • 구름 많음
    • 22.0°C
    • 65%
    • 20%
    • 구름 많음
    • 20.0°C
    • 75%
    • 10%
    • 흐림
    • 19.0°C
    • 85%
    • 30%
    • 흐림
    • 24.0°C
    • 65%
    • 30%
    • 흐림
    • 20.0°C
    • 75%
    • 30%
발표시간: ,
날씨 정보 저작권자 © 기상청
애드온
2020.08.14 14:10

애드온의 제작 규칙

(*.224.201.148) Views 82 Votes 0 Comment 0
Extra Form
원문주소
페이지 00013
?

Shortcut

PrevPrev Article

NextNext Article

Larger Font Smaller Font Up Down Go comment Print

Creating Rules of Add-on

 

애드온의 제작 규칙

 

  • 애드온의 제작 규칙
  • 애드온의 디렉토리 구조
  • 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들을 참고하시기를 권합니다.

💖 탑돌이님 에게 암호화폐로 후원하기 💖

  • 아이콘을 클릭하면 지갑 주소가 자동으로 복사 됩니다

    TAG •

    제로XE/라이믹스/그누/워드프레스

    회원만 쓰기 가능합니다.

    List of Articles
    No. Category Subject 페이지 Author Date Views
    Notice Tip&Tech xe 동작순서 부운영자 2015.08.24 1016
    Notice Tip&Tech XE의 애드온 및 모듈의 기능 요약표 부운영자 2015.01.16 1266
    Notice Tip&Tech XEReferences 부운영자 2014.11.29 918
    Notice Tip&Tech XE 스킨 제작 매뉴얼 v1.1 (Korean, PDF) file 부운영자 2014.11.29 1283
    Notice Tip&Tech XE 개발자 매뉴얼 v1.1 (Korean, PDF) file 부운영자 2014.11.29 1808
    Notice Tip&Tech xe 레퍼런스 모음 file 부운영자 2014.10.10 2537
    250 위젯 확장변수 출력 위젯 만들기 Extra_vars Widget 확장변수 출력(extra_vars) 위젯 만들기 sol님의 글을 전문인용하여 재구성하였다. - http://xe.xpressengine.net/18235319 게시판의 게시물의 확장 변수를 출력하는 위젯입니다. Document 모듈을 이용하여 관리자가 원하는 확장변수를 순서데로 출력하는 위젯입니다. 개발에 앞서 디렉토리 준비하기 모든... 0004 부운영자 2020.08.15 142
    249 애드온 연령구분 회원가입 애드온 Member_join_extend Add-on 14세 이상/미만 구분 회원가입 애드온 만들기 SMaker님의 글을 전문인용하여 재구성하였다. - http://xe.xpressengine.net/wiki/18257064 회원가입시 14세 이상/미만 구분 및 약관/개인정보취급방침 동의 절차를 추가하는 애드온 입니다. 회원가입 폼인 &quot;dispMemberSignUpForm&quot; 액션시 애드온 호... 00016 탑돌이 2020.08.14 114
    248 애드온 단어 차단 애드온 만들기 Block_Word Add-on 단어 차단 애드온 만들기 sol님의 글을 전문인용하여 재구성하였다. - http://xe.xpressengine.net/18229352 block_word 애드온은? 사용자가 쓴 게시물과 댓글이 출력될 때 애드온 설정에 등록해 놓은 문자들을 &#039;***&#039; 로 가려서 보여주는 애드온을 만들어 볼 것 입니다. 애드온에서 단어들을 입력 받고, ... 00015 탑돌이 2020.08.14 163
    247 Tip&Tech 상단네비 목록(위로) 목록(아래로) 스크립트 안먹힘 위 두개 안먹힘 라이믹스 스케치북 게시판 및 스케치북 게시판 1.72 스크롤 이슈 https://xetown.com/index.php?mid=qna&amp;category=671911&amp;document_srl=757026&amp;comment_srl=757413&amp;page=1 기존에 작성했던 글입니다. 라이믹스 스케치북 게시판과 스케치북 게시판 1.7.2에서 이상하게 &quot;크롬&quot;에서만 위, 아래, 상단 바 댓글가... file 탑돌이 2020.08.14 137
    246 애드온 기초 팝업 윈도우 애드온 만들기 Popup window Add-on 기초 팝업 윈도우 애드온 만들기 애드온의 작동 방법과 호출 시점을 살펴보고 확장변수를 활용하여 외부 HTML 파일을 찾아 팝업윈도우 형태로 출력해 주는 기초적인 팝업 윈도우 애드온을 만들어 본다. 팝업 윈도우 애드온의 정보 파일(info.xml) 작성하기 XE코어가 xe/ 디렉터리에 설치되어 있다면 xe/... 00014 탑돌이 2020.08.14 341
    » 애드온 애드온의 제작 규칙 Creating Rules of Add-on 애드온의 제작 규칙 애드온의 제작 규칙 애드온의 디렉토리 구조 info.xml 제작 애드온이름.addon.php 제작 XE XML Query의 사용 애드온 제작시 주의사항 애드온의 제작 규칙 애드온을 제작하기 위해서는 최소한 아래와 같은 규칙을 지켜야 합니다. 위치 : addons/애드온이름 애드온 제작자 정보, ... 00013 탑돌이 2020.08.14 82
    244 애드온 애드온의 기초 이해 The basis of add-on XE 애드온의 기초 이해 SMaker님의 글을 전문인용하여 재구성하였다. - http://xe.xpressengine.net/wiki/18180622 애드온이란? 애드온의 호출 시점 애드온 호출시 전달 변수 애드온(Addon)이란? XpressEngine에서 애드온은 후킹, 즉 정상적인 동작을 가로채는 동작을 합니다. php와 같은 인터프리터 언... 00012 탑돌이 2020.08.14 211
    243 애드온 XE 애드온 개발하기 The Story of XE Addons XE코어의 간섭쟁이 애드온 이야기... 애드온의 이해 - SMaker 기초 팝업 윈도우 애드온 만들기 단어 차단(block_word) 애드온 만들기 - sol 14세이상/미만 연령구분 회원가입 애드온 만들기 - SMaker 00011 탑돌이 2020.08.14 56
    242 애드온 XE 애드온 XE 애드온 개발하기 애드온의 기초 이해 애드온의 제작 규칙 기초 팝업 윈도우 애드온 만들기 단어 차단 애드온 만들기 연령구분 회원가입 애드온 0001 탑돌이 2020.08.14 48
    241 Tip&Tech 3개 서버 로그인 공유 가능한가요? 3개 서버 로그인 공유 가능한가요? 3개 서버 모두 라이믹스로 적용하고 파일서버와 DB 서버 내용이 모두 동일합니다. 그냥 사용자 분산을 위해서 .. 2개 서버는 아이피로... htttp://111.111.111.11 로 접속하고 1개 서버는 도메인 주소를 활용해서 htttP://abcd.com 으로 접속하는데요 이 두개 서버를 메뉴와 사용자에 따라... 탑돌이 2020.08.14 47
    240 모듈 보기(View)와 모델 BOOK Module dispBookContentView 보기(View)와 모델(Model) BOOK 모듈(mid)의 목록에서 책의 제목을 클릭하면 도서 정보를 보여주는 프론트 엔드 뷰(View)이다. 목록에서 다 소개하지 못한 정보의 값을 마저 출력해 보여주는 것이 목적이다. 목록에서 제목에는 다음과 같은 링크로 dispBookContentView 액션을 요청한다. {g... 00036 부운영자 2020.08.13 94
    239 모듈 목록(List)과 모델 BOOK Module dispBookContentList 목록(List)과 모델(Model) BOOK 모듈의 관리자 화면(back-end)에서 새로운 모듈(mid)을 생성하였다면, &quot;Book 모듈 미리보기&quot;와 같이 메뉴를 만들고 모듈(mid)을 연결하였을 것이다. 사용자는 모듈의 프론트 엔드에서 미리 설정된 기본 인덱스(index) 액션 이름을 모른다. 다만 메뉴에 연결... 00035 부운영자 2020.08.13 160
    238 모듈 백엔드 MVC BOOK Module Back-end BOOK 모듈의 백엔드 MVC BOOK 모듈의 백엔드(back-end) 프로그램은 예제(example) 모듈과 같다. 폴더의 이름은 곧 모듈의 이름이기 때문에 example을 book으로 변경한다. 또한 클래스 파일의 이름과 함수들, 포함된 메소드의 이름도 book으로 변경한 것이다. 아래의 BOOK 모듈 MVC 도표는 이전 과정에... file 00034 부운영자 2020.08.13 44
    237 모듈 테이블 설치와 언어팩 BOOK Module Table &amp; Language books 테이블 설치와 언어팩 1. DB 테이블의 설치 (Database Table) 모듈의 스키마(schemas) 폴더에 XML 언어 형식으로 만들어진 DB 스키마 파일이 있다면 XE코어는 설치시 사용했던 DB 머릿말을 자동으로 붙여서 XML 파일의 이름과 같은 테이블을 만들어 준다. 예를 들어 books.xml 파일이 있... 00033 부운영자 2020.08.13 228
    236 모듈 모듈 설정 파일 BOOK Module Config BOOK 모듈 설정 파일 예제(example) 모듈을 만들어 보고 BOOK 모듈의 작동 방법을 미리 보았다면 다음 과정들이 그렇게 어렵지 않을 것이다. BOOK 모듈은 이전 과정에서 &quot;폼(form)과 DB&quot;의 예제로 사용했던 폼을 모듈로 구현해 보는 예제이다. 게시판(Board) 모듈처럼 여려운 메소드도 없고 그저 단순히 ... 00032 부운영자 2020.08.13 97
    235 모듈 웹 관련 도서 Book List : 웹 관련 도서 번호 도서명 저자 출판사 가격 106 dfsdf sss sss 123165 105 ㅁㄴㅇ ㅁㄴㅇ asd 11 104 1243 4325324 ㅈㄷㄱㄴㅇ 123124 103 Test Book Test Auther Test 1000 102 sad asdasd asdasdasd 1 101 히히 헤헤 호호 77 100 45 45 45 45 99 asdf dddd ffff 123545 98 아프니까청춘이다 아프면 환자지 뭔... 00031 부운영자 2020.08.13 35
    234 모듈 BOOK 모듈 만들기 BOOK Module BOOK 모듈 만들기 프론트 엔드 뷰(View) 구현을 위한 BOOK 모듈 만들기 예제 모듈의 기본 이해 과정은, 모듈이 폼을 다루는 방법에 대하여 예제 모듈의 백엔드(back-end) 프로그램을 직접 만들어 보면서 모델-뷰-컨트롤러의 동작 방식과 진행 과정을 살펴본 내용이다. 프론트 엔드(front-end) 프로그램은 관리자... 0003 부운영자 2020.08.13 57
    233 모듈 액션 권한과 스킨정보 Module Admin Action Grant &amp; SkinInfo 액션 권한과 스킨 정보 액션의 권한 관리와 프로트 엔드 스킨의 정보를 출력하기 위한 과정이다. 액션 권한(permission)은 함수의 실행 권한을 확인하여 관리자가 아닌 경우 요청을 받아들이지 않는 것을 말한다. 따라서 액션 명세서인 module.xml 파일에서 &lt;permissions&gt; 요소에 액션... 00028 부운영자 2020.08.13 64
    232 모듈 관리자 모듈 탭메뉴 Module Admin Tab Menu 관리자 모듈 탭메뉴 모듈의 관리자 목록 페이지 헤더에 위치한 가로 탭메뉴의 구현이다. 1. 탭메뉴 header.html 탭메뉴 구성을 위한 header.html 파일을 tpl폴더에 다음과 같이 추가한다. tpl/header.html : 파일 다운로드 / header.html h3 class=&quot;xeAdmin&quot;&gt;&lt;span class=&quot;gray&quot;&gt;{$lang-&gt;example_mana... 00027 부운영자 2020.08.13 122
    231 모듈 삭제 컨트롤러(Controller) Module Admin Controller for Delete 모듈 삭제와 컨트롤러(Controller) 모듈(mid)의 삭제는 모듈의 고유 식별 번호($module_srl)을 확인하고 module 테이블에서 해당 식별 번호를 삭제하는 것으로 끝난다. 여기에서는 프론트 엔드의 내용, 즉 삭제하려고 하는 모듈(mid)이 만들어 놓은 내용물에 대해서는 확인하지 않는다. ... 00027 부운영자 2020.08.13 56
    List
    Board Pagination Prev 1 2 3 4 5 6 7 8 9 10 ... 14 Next
    / 14