웹마스터 팁
외부로그인 (레이아웃 파일만 수정)
2012.10.13 22:09
외부로그인 팁이 별로 없어서 이것저것 해보다가 가장 편하고 간단한 방법을 찾았습니다.
사용자 레이아웃 상에서만 이루어지니 코어 업데이트 때에도 신경쓸일 없어서 좋은 팁입니다.
물론 잘 아시는 분들은 패스해주세요.
저처럼 고민만하다가 포기하시는 분들을 위해 올려봅니다.
레이아웃 파일을 열기 전에 우선 관리자모드에서 수정하셔야 할 게 있습니다.
1. 관리자모드 -> 설정 -> 일반
맨 위에 보시면 사이트 접속시 기본으로 호출하는 모듈을 설정하는 부분이 있습니다.
그곳에 현재 사이트에서 쓰이는 레이아웃을 지정해주세요.
2. 관리자모드 -> 회원 -> 회원설정
중간 쯤 보시면 "로그인 후 이동할 주소(URL)", "로그아웃 후 이동할 주소(URL)", "회원 가입 후 이동할 페이지"가 있습니다.
그곳에 모두 홈페이지 url을 적어주세요.(예 : http://자신의 홈페이지 주소/)
3. 마지막으로 위에서 적용한 레이아웃 파일을 엽니다.
가령 홈페이지에서 적용한 레이아웃 모듈이 "xe_official" 레이아웃이라면
다음의 경로에 있는 파일을 엽니다.(사용자 모듈이라면 해당 모듈의 레이아웃 파일을 수정해야 합니다.)
/제로보드설치경로/layouts/xe_official/layout.html
파일 내용을 보면
처음 div 태그가 시작되는 부분이 있습니다.
그 줄 바로 위에 다음과 같이 한 줄을 넣으세요.
<div cond="$is_logged">
그리고 마지막 </div> 태그 바로 아래에 </div>를 하나 더 넣어 태그를 막아줍니다.
그리고나서 다시 맨 아래 막아준 </div> 태그 밑으로 다음을 추가해줍니다.
<div cond="!$is_logged">
<div cond="!$act">
<form id="fo_login_widget" action="./" method="post" ruleset="@login" class="widgetLogin">
<input type="hidden" name="act" value="member" />
<input type="hidden" name="act" value="procMemberLogin" />
<input type="hidden" name="success_return_url" value="{getRequestUriByServerEnviroment()}" />
<fieldset>
<dl>
<dt><label for="uid">{$lang->user_id} :</label></dt>
<dd><input name="user_id" type="text" id="uid" class="widgetXeInputText" title="{$lang->user_id}" /></dd>
<dt><label for="upw">{$lang->password} :</label></dt>
<dd><input name="password" type="password" id="upw" class="widgetXeInputText" title="{$lang->password}" /></dd>
</dl>
<span class="button login"><input name="" type="submit" value="{$lang->cmd_login}" /></span>
<ul class="help">
<li><a href="{$request_uri}?mid=member_sign&act=dispMemberSignUpForm">{$lang->cmd_signup}</a></li>
<li><a href="{$request_uri}?mid=member_find&act=dispMemberFindAccount">{$lang->cmd_find_member_account}</a></li>
<li><a href="{$request_uri}?mid=member_resend_mail&act=dispMemberResendAuthMail">{$lang->cmd_resend_auth_mail}</a></li>
</ul>
</fieldset>
</form>
</div>
<div cond="$act">
<div id="container">
<div id="center_c" class="center_contents">{$content}</div>
</div>
</div>
</div>
물론 로그인 박스의 형태나 모양은 위 div 태그 안의 내용을 수정해서 변경할 수 있습니다.
클래스 적용된 부분도 css 파일에서 적용할 수 있습니다.
같은 레이아웃 내에서 로그인 세션이 있는 회원의 경우 홈페이지를 보여주게 하고
세션이 없는 회원의 경우엔 로그인 박스가 보이도록 한 것입니다.
또한 act를 확인하여 정보가 있을때와 없을때를 분리하였습니다.(이 부분은 아래 설명한 코드에서 불러들일 모듈을
로그인박스와 겹치지 않도록 하기 위해 필요합니다.)
제목엔 외부로그인이라고 해놨습니다만 엄밀히 말하면 외부로그인이 아닌셈입니다.
외부로그인처럼 보이는 내부로그인인셈입니다.
위 코드중 다음의 세줄은 '회원가입'과 '아이디/비밀번호찾기', 그리고 '인증메일 재발송' 에 해당합니다.
코드 중에 mid=member_sign, mid=member_find, mid=member_resend_mail 부분은 관리자모드에서 외부페이지를 작성하여
붙여준 각각의 아이디 이름을 연결해 놓은 부분입니다.
<li><a href="{$request_uri}?mid=member_sign&act=dispMemberSignUpForm">{$lang->cmd_signup}</a></li>
<li><a href="{$request_uri}?mid=member_find&act=dispMemberFindAccount">{$lang->cmd_find_member_account}</a></li>
<li><a href="{$request_uri}?mid=member_resend_mail&act=dispMemberResendAuthMail">{$lang->cmd_resend_auth_mail}</a></li>
세가지 모두 사용하시려면 "관리자모드 -> 확장기능 -> 설치된모듈 -> 페이지"로 간 후
페이지생성을 클릭한 후 다음과 같이 설정을 합니다.(총 3페이지 생성)
1. 페이지타입(외부페이지) / 모듈이름(member_resend_mail) / 모듈분류(미사용) / 브라우저제목(인증메일 재발송) / 레이아웃(미사용) / 외부문서위치(/절대경로/modules/member/skins/default/resend_auth_mail.html)
2. 페이지타입(외부페이지) / 모듈이름(member_find) / 모듈분류(미사용) / 브라우저제목(아이디/비밀번호찾기) / 레이아웃(미사용) / 외부문서위치(/절대경로/modules/member/skins/default/find_member_account.html)
3. 페이지타입(외부페이지) / 모듈이름(member_sign) / 모듈분류(미사용) / 브라우저제목(인증메일 재발송) / 레이아웃(미사용) / 외부문서위치(/절대경로/modules/member/skins/default/signup_form.html)
-절대경로는 외부문서위치 설명칸에 나와 있습니다.
혹시라도 위 설명에 문제가 있거나 좀더 좋은 팁이 있다면 알려주세요.
댓글 4
-
윈컴이
2012.10.13 22:17
-
투씨
2012.10.13 22:26
$is_logged를 이용해도 되는군요,, 감사합니다. 코드 수정해놓았습니다.
그리고 위 사항은 로그인페이지를 따로 원하는 분들을 위한 내용입니다만,,, 다른 문제가 있으면 알려주세요.
-
윈컴이
2012.10.13 22:29
넵 :) -
반야545
2013.04.01 20:09
너무나 감사해서
로그인하고
다시 님글을 어렵게 찾았습니다.
정말 정말 정말 감사합니다. 우쭈쭈~
제목 | 글쓴이 | 날짜 |
---|---|---|
간단한 PHP 문법 [204] | zero | 2000.03.06 |
XE 1.5.X , 1.7.X 용 nginx rewrite [4] | Root | 2013.03.24 |
메뉴에 새글 표시 모듈이 작동하지 않은 문제 해결 [2] | 샹하이 | 2013.04.15 |
meta_add 애드온 수정.(1.7.3 버전에 맞게..) [4] | 투씨 | 2013.04.01 |
메인화면에 플래시 쉽게 삽입하는 방법.. [12] | 청개구리00 | 2008.08.30 |
스팸공동대응 api 모듈 지우기 [1] | SCAC | 2012.08.12 |
xe1.7.3.1 으로의 업데이트시 팝업모듈 오류 수정내역 [1] | 날마다좋은날 | 2013.04.12 |
제로보드 xe 게시판 가로 푹 줄이기 방법좀 알려주세요. [1] | 산업일꾼 | 2013.04.14 |
아이콘샵(v0.4) 관리자페이지 디자인수정파일(1.7.x 용) | 카이네드 | 2013.04.13 |
Startssl, iis에서 설치법. | 식군 | 2013.04.01 |
DOM구조를 시각화해서 파악하기 [13] | 웹기프트 | 2013.04.04 |
구글검색 색인 잘되는 확실한 효과. 레이아웃 스킨 제작시 참고하기면 좋습니다. [8] | NetCabin | 2011.04.21 |
회원정보 수정 위해 비밀번호 재입력 후 튕기는 경우 [2] | sejin7940 | 2013.01.06 |
Social XE 모듈의 클라이언트 토큰 발급 (난다날아님의 서버는 중지상태) [4] | 팩트위키 | 2013.03.29 |
여러도메인 사용시 하나의 도메인을 기본도메인으로 지정하지 않고 사용하기! [6] | 크루씨 | 2013.03.28 |
게시판 내용에서 하단에 빈 버튼 안보이게 하기 [2] | SEAN76 | 2013.04.04 |
외부로그인 (레이아웃 파일만 수정) [4] | 투씨 | 2012.10.13 |
1.7 버전의 새로워진 사이트맵(메뉴편집)에 적응해보자! [8] | EnuX | 2013.03.15 |
관리자의 즐겨찾기에 항목 추가하기 [2] | showjean | 2012.09.19 |
재미있는 조건문 팁 두 가지. [2] | 엘카 | 2013.03.23 |
<div cond="$logged_info->member_srl"> 대신 <div cond="$is_logged">
<div cond="!$logged_info->member_srl"> 대신 <div cond="!$is_logged">
이라고 해도 됩니다.
처음에 읽을때 무슨 말인지 몰랐는데..
여기서 말하는 외부로그인은 로그인한 사람만 나오게 하는 페이지를 만들고 싶은것 같습니다. 아닌가요? ^^;;