질문/조언팁/리소스 공유

질문답변 게시판에 답변하는김에 혹시나 비슷한 기능을 구현하고자 하는분이 있다면 참고하시라고

팁 게시판에도 올립니다.

 

레이아웃이나 게시판스킨 등 페이지에서 회원정보수정을 통하지 않고, 로그인한 사용자의 회원정보(사용자정의)를

변경하는 방법입니다.

컨트롤러 부분을 수정하시면 사용자정의 뿐만 아닌 코어에서 지원하는 범위내에서 자유롭게 활용이 가능하겠죠?

EX : 닉네임 수정, 프사 수정, 포인트 변경 등등...

 

 

아래는 회원 사용자정의에 사이트의 테마를 저장하여 회원별로 개인화된 테마선택을 하도록 해주는 예시 입니다.

다국어사이트의 경우 소스를 수정해서 언어선택을 회원별로 선택해서 사이트의 언어를 자동으로 설정하도록 가능하겠죠?

 

회원설정의 사용자정의에 입력항목ID를 color 로 만들어줍니다.

 

1.png

 

 

 

 

레이아웃에서 원하는 위치에 아래 코드를 삽입합니다.

※딱 작동만 가능한 예시이니 디자인등은 직접 하시길...

 

<form cond="$logged_info" method="post" action="">
// 셀렉트 태그의 이름을 ThemeSelect로 지정
<select name="ThemeSelect">
    <option value="">테마선택</option>
    <option value="white">화이트</option>
    <option value="dark">다크</option>
    <option value="pink">핑크</option>
</select>
<button type="submit">적용</button>
</form>


<block cond="$ThemeSelect">
{@
// ThemeSelect의 값이 dark일 경우
if ( $ThemeSelect == "dark" ) :
// Theme변수에 dark 라는 값을 지정
  $Theme = "dark";
// ThemeSelect의 값이 pink일 경우
elseif ( $ThemeSelect == "pink" ) :
// Theme변수에 pink 라는 값을 지정
  $Theme = "pink";
// ThemeSelect의 값이 white일 경우 (혹은 그외 모든 경우)
else :
// Theme변수에 white 라는 값을 지정
  $Theme = "white";
endif; 

// Value라는 배열을 생성하고 color(사용자정의명)에 위의 $Theme를 대입
$Values = array("color" => $Theme);
// member 컨트롤러를 불러온다
$oMemberController = getController('member');
// member 컨트롤러의 update멤버확장변수 를 실행한다
$oMemberController->updateMemberExtraVars($logged_info->member_srl, $Values);
}
</block>

 

3.png

 

레이아웃에서 셀렉트옵션을 선택하시고 적용을 누르시면 회원정보의 테마(color) 값이 변경됩니다.

 

2.png

 

 

 

 

이제 회원정보->color 값에 따라서 css를 선택해서 불러오게 처리하면 되겠네요

<[email protected]($logged_info->color=="dark")-->
<load target="./css/dark.css" />
<[email protected]($logged_info->color=="pink")-->
<load target="./css/pink.css" />
<[email protected]>
<load target="./css/white.css" />
<[email protected]>

 

  • ?
    너무 좋은것 같습니다! 감사합니다!