XE(XpressEngine) 강좌/애드온 강좌

xe 애드온 (xe addon) 강좌 (3)

xemaker 2017. 4. 27. 08:19

예제로 알아보는 애드온 제작


기능

게시글에 전화번호가 있을 경우 끝자리 4개의 숫자를 숨김(*표시) 처리


애드온 이름

게시글 내용 변경(document_content_change)


예제를 위한 선행 작업

XE 설치

"사이트 메뉴 편집" > 메뉴추가 > 게시판 > 메뉴 ID 는 "board"로 메뉴를 추가합니다.


제작 애드온의 기능

안녕하세요

제 전화번호는 010-1234-5678 입니다.


전화번호 부분을 010-1234-**** 로 변경


document_content_change.addon.php 파일 작성

시작부분 작성

<?php

if(!defined('__XE__'))

exit();


$called_position 정하기

모듈 실행이 완료된 후 이므로 $called_position은 after_module_proc를 사용합니다.


<?php

if(!defined('__XE__'))

exit();

if($called_position == 'after_module_proc')
{
}

기능 구현

boardView::dispBoardContent()에서 Context에 할당된 oDocument에 접근해서 현재 노출될 게시글 내용을 가져옵니다.


그 내용에 접근해서 전화번호를 찾아서 변경합니다.



if($called_position == 'after_module_proc' && $this->module=="board")

{

$oDocument = Context::get('oDocument');

$pattern = "/(0[0-9]{1,2})-([0-9]{3,4})-([0-9]{4})/i";

$replace = "$1-$2-****";


$oDocument->variables['content'] = preg_replace($pattern, $replace, $oDocument->variables['content']);

}


위와 같이 작성 후 결과를 확인해 보면


안녕하세요

제 전화번호는 010-1234-**** 입니다.


로 바껴있음