귀하는 로그인되어 있지 않습니다. 이대로 편집하면 귀하의 IP 주소가 편집 기록에 남게 됩니다.스팸 방지 검사입니다. 이것을 입력하지 마세요!== 개요 == [[XpressEngine]]와 [[라이믹스]]에서 '''애드온'''(addon)은 페이지가 처리되는 과정의 정해진 지점에 끼어들어 동작을 바꾸거나 기능을 덧붙이는 확장 요소를 말한다. [[XpressEngine/모듈|모듈]]이 게시판이나 회원처럼 독립적인 기능 단위를 맡고 자체 화면과 URL을 갖는 것과 달리, 애드온은 자기 화면이 없다. 이미 진행 중인 요청에 개입할 뿐이다. 이 때문에 비교적 적은 코드로 사이트 전반에 영향을 주는 기능을 만들 수 있다는 것이 장점이자, 잘못 만들면 사이트 전체가 느려지거나 깨질 수 있다는 것이 단점이다. 본문의 URL을 자동으로 링크로 바꾸거나, 접속 통계를 기록하거나, 출력 직전의 HTML에 스크립트를 끼워 넣는 것이 대표적인 쓰임이다. == 동작 방식 == 애드온 파일은 요청 처리 과정에서 코어가 정해 둔 '''호출 지점'''마다 통째로 실행된다. 그래서 애드온은 파일 안에서 <code>$called_position</code> 값을 확인하여 필요한 시점에만 동작하도록 작성한다. {| class="wikitable" ! 호출 지점 !! 시점 |- | <code>before_module_init</code> || 모듈이 초기화되기 전. 요청 처리의 가장 이른 단계 |- | <code>before_module_proc</code> || 모듈의 실제 처리가 시작되기 전 |- | <code>after_module_proc</code> || 모듈의 처리가 끝난 뒤. 처리 결과를 가공할 수 있다 |- | <code>before_display_content</code> || 최종 HTML이 출력되기 직전 |} 실제 코드는 대체로 이런 형태이다. <syntaxhighlight lang="php"> if ($called_position == 'after_module_proc' && Context::getResponseMethod() == 'HTML') { // 이 지점에서만 수행할 작업 } </syntaxhighlight> 관리자 화면이나 검색엔진 크롤러에서는 동작할 필요가 없는 경우가 많으므로, <code>Context::get('module') != 'admin'</code>이나 <code>!isCrawler()</code> 같은 조건을 함께 확인하는 것이 일반적이다. == 파일 구조 == 애드온은 설치 경로의 <code>addons</code> 폴더 아래에 애드온 이름과 같은 폴더를 만들어 배치한다. <syntaxhighlight lang="text"> addons/ └─ 애드온이름/ ├─ 애드온이름.addon.php ← 실행되는 본체 └─ conf/ └─ info.xml ← 이름, 설명, 제작자, 설정 항목 </syntaxhighlight> <code>conf/info.xml</code>에는 여러 언어의 제목과 설명을 함께 넣을 수 있다. == 애드온 찾기와 설치 == === 찾기 === [https://rhymix.org/pds 라이믹스 자료실]이나 [[Rhymix Auto Install Repository]], 개발자의 깃허브 저장소 등에서 찾을 수 있다. XE 공식 자료실은 현재 이미지 출력이 되지 않는 등 관리가 되지 않고 있다. 자료를 고를 때는 호환성 정보를 반드시 확인하자. 오래된 애드온은 최신 PHP에서 동작하지 않거나, 라이믹스에서 블랙리스트로 차단되어 있을 수 있다. === 설치 === FTP 클라이언트로 설치 경로의 <code>addons</code> 폴더에 애드온 폴더를 업로드한다. 이때 <code>addons/이름/이름/파일들</code>처럼 폴더가 이중으로 중첩되지 않도록 주의해야 한다. 업로드한 뒤 <code>관리자 페이지 → 고급 → 애드온</code>에서 사용으로 설정해야 실제로 동작한다. PC와 모바일에서의 사용 여부를 따로 지정할 수 있다. 라이믹스 [[라이믹스/릴리즈 노트/2.1.34|2.1.34]] 이상에서는 공식 자료실에 등록된 자료를 관리자 화면에서 바로 설치하는 쉬운설치를 이용할 수도 있다. == 가온 위키의 애드온 문서 == {| class="wikitable" ! 애드온 !! 제작자 !! 라이선스 !! 라이믹스 블랙리스트 |- | [[XpressEngine/애드온/언어 자동 선택|언어 자동 선택]] || [[기진곰]] || LGPL v2 || 등재됨 (코어에 같은 기능 있음) |- | [[XpressEngine/애드온/ZipperUpper!|ZipperUpper!]] || [[기진곰]] || LGPL v2 || 등재됨 (코어에 스크립트 합치기 기능 있음) |- | [[XpressEngine/애드온/검색어 오타수정 애드온|검색어 오타수정 애드온]] || 즈베즈다 || GPL v2 || 등재되지 않음 |} == 라이믹스에서의 주의 == XE 시절 널리 쓰이던 애드온 가운데 상당수는 라이믹스에서 사용할 수 없다. 같은 기능이 이미 코어에 들어가 있거나, 코어와 충돌하여 다른 기능의 동작을 방해하기 때문이다. 이러한 자료는 블랙리스트로 처리되어 활성화되지 않는다. 블랙리스트에 오른 애드온과 대체 방법은 [[라이믹스/블랙리스트]] 문서에 정리되어 있다. 또한 애드온은 요청 처리 과정에 매번 개입하므로, 활성화된 애드온이 많아질수록 페이지 처리 시간이 늘어난다. 사용하지 않는 애드온은 비활성화하거나 삭제하자. 라이믹스의 애드온 구조에 대한 자세한 설명은 [[라이믹스/애드온]] 문서를 참고하자. == 같이 보기 == * [[XpressEngine]] * [[XpressEngine/모듈]] * [[라이믹스]] * [[라이믹스/애드온]] * [[라이믹스/블랙리스트]] <!-- 분류 --> [[분류:XE 애드온]] 편집 요약 가온 위키에서의 모든 기여는 크리에이티브 커먼즈 저작자표시-동일조건변경허락 라이선스로 배포된다는 점을 유의해 주세요(자세한 내용에 대해서는 가온 위키:저작권 문서를 읽어주세요). 만약 여기에 동의하지 않는다면 문서를 저장하지 말아 주세요. 또한, 직접 작성했거나 퍼블릭 도메인과 같은 자유 문서에서 가져왔다는 것을 보증해야 합니다. 저작권이 있는 내용을 허가 없이 저장하지 마세요! 취소 편집 도움말 (새 창에서 열림)