https://web.archive.org/web/20160905212010/http://www.xeschool.com/xe/addons_creating_member_join

Member_join_extend Add-on

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

회원가입시 14세 이상/미만 구분 및 약관/개인정보취급방침 동의 절차를 추가하는 애드온 입니다. 회원가입 폼인 "dispMemberSignUpForm" 액션시 애드온 호출 부분인 'after_module_proc' 에서 세션을 체크하여 중간에 애드온의 템플릿 파일로 치환하여 화면을 바꾸고 "동의" 시 애드온의 action을 추가하여 세션을 추가하고 원래의 회원가입 폼으로 전환해 주는 기능입니다.

https://web.archive.org/web/20160905212010im_/http:/www.xeschool.com/xenote_page/images/creating_member_join.gif

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

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

addons/member_join_extend/

member_join_extend은 회원가입 폼 action시 중간에 가로채 애드온의 템플릿으로 교체하여 화면을 출력하기 때문에 tpl 디렉토리와 템플릿 그리고 언어팩이 필요합니다.

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

14세 이상/미만의 구분여부, 회원가입약관, 회원가입약관 표출여부, 개인정보취급방침, 표출여부, 개인정보수집 항목을 입력받는 확장변수(extra_vars)를 정보파일에 추가합니다. (정보파일 기본형식에서 확장변수 등록 부분)

▶ addons/member_join_extend/conf/info.xml

<extra_vars>
		<var name="use_agreement" type="select">
			<title xml:lang="ko">이용약관 표시</title>
			<description xml:lang="ko">이용약관을 표시 및 동의를 받습니다.</description>
			<options value="">
				<title xml:lang="ko">표시하지 않음</title>
			</options>
			<options value="Y">
				<title xml:lang="ko">표시함</title>
			</options>
		</var>
		<var name="agreement" type="textarea">
			<title xml:lang="ko">이용약관</title>
		</var>
		<var name="use_private_agreement" type="select">
			<title xml:lang="ko">개인정보취급방침 표시</title>
			<description xml:lang="ko">개인정보취급방침을 표시 및 동의를 받습니다.</description>
			<options value="">
				<title xml:lang="ko">표시하지 않음</title>
			</options>
			<options value="Y">
				<title xml:lang="ko">표시함</title>
			</options>
		</var>
		<var name="private_agreement" type="textarea">
			<title xml:lang="ko">개인정보취급방침</title>
		</var>
		<var name="private_gathering_agreement" type="textarea">
			<title xml:lang="ko">개인정보 수집 및 이용</title>
		</var>
		<var name="use_junior_join" type="select">
			<title xml:lang="ko">14세 이상/미만 구분</title>
			<options value="">
				<title xml:lang="ko">구분하지 않음</title>
			</options>
			<options value="Y">
				<title xml:lang="ko">구분함</title>
			</options>
		</var>
		<var name="msg_junior_join" type="textarea">
			<title xml:lang="ko">14세미만 메세지</title>
			<description xml:lang="ko">14세미만 회원가입시 출력할 메시지를 입력합니다.</description>
		</var>
    </extra_vars>

block_word.addon.php 동작부분 작성하기