귀하는 로그인되어 있지 않습니다. 이대로 편집하면 귀하의 IP 주소가 편집 기록에 남게 됩니다.스팸 방지 검사입니다. 이것을 입력하지 마세요!{{틀:상위문서|라이믹스}} == 개요 == '''애드온'''(addon)은 [[라이믹스]]와 [[XpressEngine|XE]]에서 페이지가 처리되는 과정의 특정 지점에 끼어들어 동작을 바꾸거나 기능을 덧붙이는 확장 요소이다. 게시판이나 회원처럼 독립적인 기능 단위를 담당하는 [[XpressEngine/모듈|모듈]]과 달리, 애드온은 자체 화면이나 URL을 갖지 않고 이미 진행 중인 요청에 개입한다. 이 때문에 애드온은 비교적 작은 코드로 사이트 전반에 영향을 주는 기능을 구현할 수 있다. 본문의 URL을 자동으로 링크로 바꾸거나, 접속 통계를 기록하거나, 출력 직전의 HTML에 스크립트를 삽입하는 것이 대표적인 예이다. == 동작 방식 == 애드온은 요청 처리 과정에서 코어가 정해 둔 '''호출 지점'''(<code>called_position</code>)마다 실행된다. 애드온 파일은 매번 전체가 실행되며, 파일 안에서 현재 호출 지점이 무엇인지 확인한 뒤 필요한 시점에만 동작하도록 작성한다. 라이믹스 코어가 사용하는 호출 지점은 다음 네 가지이다. {| class="wikitable" ! 호출 지점 !! 시점 !! 코어 내 위치 |- | <code>before_module_init</code> | 모듈이 초기화되기 전. 요청 처리의 가장 이른 단계이다. | <code>classes/module/ModuleHandler.class.php</code> |- | <code>before_module_proc</code> | 모듈의 실제 처리가 시작되기 전 | <code>classes/module/ModuleObject.class.php</code> |- | <code>after_module_proc</code> | 모듈의 처리가 끝난 뒤. 처리 결과를 가공할 수 있다. | <code>classes/module/ModuleObject.class.php</code> |- | <code>before_display_content</code> | 최종 HTML이 출력되기 직전 | <code>classes/display/DisplayHandler.class.php</code> |} 실제 애드온 코드는 대체로 다음과 같은 형태를 띤다. <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>에는 여러 언어의 이름과 설명을 함께 넣을 수 있다. 코어에 포함된 애드온의 경우 한국어, 영어, 일본어, 중국어 등 여러 언어의 제목과 설명이 등록되어 있다. == 코어 기본 애드온 == 라이믹스는 다음 애드온을 코어에 포함하여 배포한다. {| class="wikitable" ! 애드온 !! 설명 |- | <code>adminlogging</code> || 관리자 활동 기록 |- | <code>autolink</code> || 본문에 포함된 URL을 자동으로 링크로 변환 |- | <code>counter</code> || 접속 정보 기록. 이 애드온을 켜야 접속 통계가 수집된다 |- | <code>member_extra_info</code> || 회원 확장 정보 처리 |- | <code>photoswipe</code> || 이미지 클릭 시 확대 보기 제공 |- | <code>point_level_icon</code> || 포인트 등급 아이콘 표시 |} 이 밖에 XE 시절 서드파티로 배포되던 본문 내 이미지 조절, 이미지 리사이즈, 리캡챠 등의 기능도 라이믹스 코어에 포함되어 있다. 자세한 내용은 [[라이믹스/XE와의 차이점]] 문서를 참고하자. == 설치와 관리 == 애드온은 <code>관리자 페이지 → 고급 → 애드온</code>에서 사용 여부를 설정한다. 애드온마다 PC와 모바일에서의 사용 여부를 따로 지정할 수 있고, <code>conf/info.xml</code>에 설정 항목이 정의된 경우 관리자 화면에서 값을 입력할 수 있다. 새 애드온을 추가할 때는 FTP 또는 SFTP로 <code>addons</code> 폴더에 업로드한다. 이때 <code>addons/이름/이름/파일들</code>처럼 폴더가 이중으로 중첩되지 않도록 주의해야 한다. [[라이믹스/릴리즈 노트/2.1.34|2.1.34]] 이상에서는 공식 자료실에 등록된 자료를 관리자 화면에서 바로 설치하는 쉬운설치 기능을 이용할 수도 있다.<ref name="easyinstall">[https://rhymix.org/news/1948052 쉬운설치 지원을 시작합니다]</ref> == 사용할 수 없는 애드온 == XE 시절 널리 쓰이던 애드온 가운데 상당수는 라이믹스에서 사용할 수 없다. 같은 기능이 이미 코어에 들어가 있거나, 코어와 충돌하여 다른 기능의 동작을 방해하기 때문이다. 이러한 자료는 블랙리스트로 처리되어 활성화되지 않는다. 블랙리스트에 오른 애드온과 그 대체 방법은 [[라이믹스/블랙리스트]] 문서에 정리되어 있다. == 주의사항 == 애드온은 요청 처리 과정에 매번 개입하므로, 활성화된 애드온이 많아질수록 페이지 처리 시간이 늘어난다. 사용하지 않는 애드온은 비활성화하거나 삭제하는 것이 좋다. 또한 오래된 애드온은 최신 PHP에서 경고나 오류를 발생시킬 수 있다. 특히 PHP 8.x는 이전 버전에서 경고 수준이던 문제를 오류로 처리하므로, 오래된 자료를 사용할 때는 라이믹스 버전과 PHP 버전 호환성을 먼저 확인해야 한다. 애드온은 사이트의 모든 요청을 거쳐 가므로 사이트 데이터 전반에 접근할 수 있다. 신뢰할 수 있는 출처의 자료만 설치하는 것이 바람직하다.<ref name="easyinstall" /> == 같이 보기 == * [[라이믹스]] * [[라이믹스/블랙리스트]] * [[라이믹스/XE와의 차이점]] * [[XpressEngine/모듈]] * [[XpressEngine/애드온]] * [[XpressEngine/애드온/언어 자동 선택]] * [[XpressEngine/애드온/ZipperUpper!]] == 각주 == <references /> <!-- 분류 --> [[분류:라이믹스]] 편집 요약 가온 위키에서의 모든 기여는 크리에이티브 커먼즈 저작자표시-동일조건변경허락 라이선스로 배포된다는 점을 유의해 주세요(자세한 내용에 대해서는 가온 위키:저작권 문서를 읽어주세요). 만약 여기에 동의하지 않는다면 문서를 저장하지 말아 주세요. 또한, 직접 작성했거나 퍼블릭 도메인과 같은 자유 문서에서 가져왔다는 것을 보증해야 합니다. 저작권이 있는 내용을 허가 없이 저장하지 마세요! 취소 편집 도움말 (새 창에서 열림) 이 문서에서 사용한 틀: 틀:상위문서 (편집) 틀:상위문서/styles.css (편집)