Sunday, September 05, 2010
Retabbed
Login | Register
아티클
  Search
닷넷누크(DotNetNuke) 사용자 가입 화면 수정하기
닷넷누크(DotNetNuke) 사용자 가입 화면 수정하기

닷넷누크는 “User Account”라는 사용자 가입 및 회원 정보수정을 위한 모듈을 제공합니다. 그러나 이 모듈은 영어권에 맞추어 만들어진 모듈이라 국내 한글 사이트에는 적합하지 않습니다. 그러므로 이 모듈을 적절히 수정 할 필요가 있습니다. 이 아티클에서는 모듈에서 사용자의 “성”을 삭제하는 예제를 통해서 사용자 가입 화면을 수정하는 방법을 알아 봅니다.

사용자 가입 화면을 수정하는 가장 간단한 방법은 닷넷누크 코어를 수정하는 것입니다. User Account모듈의 모듈정의를 보면 간단히 이 모듈이 어디 있는지 알 수 있습니다. 이 모듈은 ~/controls/User.ascx에 있습니다. User.ascx.vb의 Page_Load부분에 다음 코드를 추가 하면 사용자의 “성” 입력란을 보이지 않게 할 수 있습니다.

If System.Threading.Thread.CurrentThread.CurrentCulture.ToString = "ko-KR" Then

LastNameRow.Visible = False

End If

이 코드는 사용자의 언어가 한글이면 “성”을 보이지 않도록 해 주는 코드입니다. 이 방법은 매우 간단하지만 코어를 수정해야 합니다. 코어를 수정하면 닷넷누크 코어가 업그레이드 될 때 마다 매번 수정을 해야 하므로 다소 번거로울 수 있으므로 코어를 수정하는 방법은 나름의 장 단점이 있습니다. 코어를 수정하면 좋은 점은 해당 호스트를 사용하는 모든 포털들이 별다른 설정 없이 수정된 사용자 가입화면을 쓸 수 있다는 것입니다.

그렇다면 코어를 수정하지 않고 사용자 가입 화면을 바꾸는 방법은 없을까? 물론 있습니다. 이 방법은 포털 내에서만 적용되는 방법으로 사용자 가입화면을 전체적으로 수정하고자 할 경우에 유용합니다. 이 방법을 사용하려면 새로운 모듈을 만들어야 합니다. 즉 코어의 User Account 모듈을 상속하여 새로운 모듈을 만드는 것입니다.

먼저 새로운 모듈을 하나 생성하고 (닷넷누크 모듈생성 아티클 참고) ~/admin/Security/Register.ascx를 모듈 프로젝트로 가져 옵니다. 이 파일에 사용자 가입에 관한 모든 정의가 되어있습니다. 새로 가져온 파일을 V2iUserRegisterView.ascx로 명명했다고 가정합니다. 이 파일의 첫 줄을 다음과 같이 수정합니다.

<%@ Control language="vb" CodeBehind="V2iUserRegisterView.ascx.vb" AutoEventWireup="false" Explicit="True" Inherits="V2i.V2iUserRegister.V2iUserRegisterView" %>

원래 있던 코드비하인드 설정과 상속 설정만 해당 프로젝트 파일로 변경한 것입니다. 코드 비하인드 파일은 다음과 같이 만듭니다.

Namespace V2i.V2iUserRegister

 

    Public Class V2iUserRegisterView

        Inherits DotNetNuke.Modules.Admin.Security.Register

 

        Private Sub Page_Load(ByVal sender AsObject, ByVal e As System.EventArgs) HandlesMyBase.Load

            Me.FindControl("userControl").FindControl("LastNameRow").Visible = False

        End Sub

먼저 DotNetNuke.Modules.Admin.Security.Register를 상속해야 한다는 것을 잊으면 안됩니다. 그리고 아래의 FindControl 어쩌구 하는 행은 예제로 “성”을 숨기는 것을 보여줍니다. 이 프로젝트는 비주얼베이직으로 만들었는데 코어의 클래스를 상속하여 새로운 모듈을 만들 경우에는 비주얼베이직을 사용하는 것이 편할 때가 많습니다. 코어의 소스를 그대로 베껴올 수 있기 때문입니다.

Ascx를 코어의 것을 들고 왔기 때문에 그에 해당하는 언어 리소스 파일도 같이 복사해 와야 합니다. ~/admin/Security/App_LocalResources/Register.ascx.*.resx 파일들을 새로만든 모듈의 리소스로 모두 옮겨 와야 합니다.(프로젝트 소스 참고)

이렇게 하여 모듈을 만들었다면 모듈을 등록하고 새로운 페이지를 하나 만듭니다. 이 페이지에 새로 만들 모듈을 삽입하고 “관리자>사이트설정>고급설정>페이지관리” 에서 사용자페이지를 새로 만든 페이지로 설정해 줍니다. 이렇게 하면 사용자가 회원가입을 누르거나 사용자 설정을 수정하려고 하면 이 페이지가 표시되게 되므로 새로 만든 모듈의 내용이 나오게 되는 것입니다.

프로젝트소스: http://www.code99.net/tabid/842/ItemID/33/Default.aspx


게시일자 Wednesday, February 08, 2006 (Archive on Wednesday, February 15, 2006)
게시자: 불나방  저자: 불나방
돌아가기

평점:
평가:
평가 올리기

현재평점평균: 1.00
평점: 1
Terms | Privacy | host
Copyright 2005 Code99.NET
 | 아티클 | 자료실 | 블로그 | Q&A | 관리자에게