https://web.archive.org/web/20160905214121/http://www.xeschool.com/xe/addons_creating_block_word

Block_Word Add-on

sol님의 글을 전문인용하여 재구성하였다. - http://xe.xpressengine.net/18229352

block_word 애드온은?

사용자가 쓴 게시물과 댓글이 출력될 때 애드온 설정에 등록해 놓은 문자들을 '' 로 가려서 보여주는 애드온을 만들어 볼 것 입니다. 애드온에서 단어들을 입력 받고, 또 해당 mid들을 설정하도록 하고, 애드온에서는 javascript 정규식으로 해당 문자를 '' 로 치환하는 구조로 개발할 것입니다.

개발에 앞서 디렉토리 준비하기

모든 모듈은 XE_ROOT(XE 설치디렉토리)/addons/ 에 위치 합니다. 앞으로 함께 만들 애드온은 block_word이기 때문에 block_word라는 디렉토리를 만들고 하위 디렉토리를 아래와 같이 만듭니다.

addons/block_word/

애드온의 정보 파일 info.xml 작성하기

모듈과 같이 애드온의 정보 파일인 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>

https://web.archive.org/web/20160905214121im_/http:/www.xeschool.com/xenote_page/images/blockword.png

block_word 애드온의 경우 관리자가 차단할 단어를 등록해야 합니다. 그래서 <extra_vars> 부분에

<var name="word">
	<title xml:lang="ko">차단할 문자</title>
    <description xml:lang="ko">차단할 문자를 ,로 구분하여 입력해 주세요.</description>
 </var>

와 같이 word 라는 변수명, title과 설명을 입력하면 관리자 화면에서 위와 같은 폼이 생성됩니다.

block_word.addon.php 작성하기

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 변수 값으로 들어 옵니다.