https://web.archive.org/web/20160905214121/http://www.xeschool.com/xe/addons_creating_block_word
sol님의 글을 전문인용하여 재구성하였다. - http://xe.xpressengine.net/18229352
사용자가 쓴 게시물과 댓글이 출력될 때 애드온 설정에 등록해 놓은 문자들을 '' 로 가려서 보여주는 애드온을 만들어 볼 것 입니다. 애드온에서 단어들을 입력 받고, 또 해당 mid들을 설정하도록 하고, 애드온에서는 javascript 정규식으로 해당 문자를 '' 로 치환하는 구조로 개발할 것입니다.
모든 모듈은 XE_ROOT(XE 설치디렉토리)/addons/ 에 위치 합니다. 앞으로 함께 만들 애드온은 block_word이기 때문에 block_word라는 디렉토리를 만들고 하위 디렉토리를 아래와 같이 만듭니다.
addons/block_word/
모듈과 같이 애드온의 정보 파일인 info.xml에 작성자 및 애드온 정보를 작성합니다.
▶ addons/block_word/conf/info.xml
<?xml version="1.0" encoding="UTF-8"?>
<addon version="0.2">
<title xml:lang="ko">단어 차단 애드온</title>
<description xml:lang="ko">
글과 댓글의 내용 중 지정한 단어를 ***와 같이 보이지 않도록 합니다.
(XE스쿨 수정 2011.12. 20)
</description>
<version>0.1</version>
<date>2009-08-14</date>
<author email_address="[email protected]" link="<http://ngleader.com>">
<name xml:lang="ko">sol</name>
</author>
<extra_vars>
<var name="word">
<title xml:lang="ko">차단할 문자</title>
<description xml:lang="ko">차단할 문자를 ,로 구분하여 입력해 주세요.</description>
</var>
</extra_vars>
</addon>
block_word 애드온의 경우 관리자가 차단할 단어를 등록해야 합니다. 그래서 <extra_vars> 부분에
<var name="word">
<title xml:lang="ko">차단할 문자</title>
<description xml:lang="ko">차단할 문자를 ,로 구분하여 입력해 주세요.</description>
</var>
와 같이 word 라는 변수명, title과 설명을 입력하면 관리자 화면에서 위와 같은 폼이 생성됩니다.
block_word 애드온 회면 출력 단계에서 지정한 단어를 '***' 로 변경해 주면 되기 때문에 XE에서 애드온의 4가지의 호출순서에서 맨 마지막인 before_display_content 에서 호출 합니다. block_word.addon.php 가 하는 일은 앞에서 info.xml에서 extra_vars에 등록한 word를 받아 XE의 Request 방법인 GET/POST(HTML), XMLRPC, JSON 중 GET/POST(HTML) 일 경우에만 block_word.js 파일을 로드를 하고 block_word.js에서 치환하는 작업을 합니다. 그리고 info.xml의 extra_vars에 등록한 work에 사용자가 등록한 값은 block_word.addon.php에서 $addon_info->word 변수 값으로 들어 옵니다.