테스트 사이트 - 개발 중인 베타 버전입니다

그누보드로 이전후 포인트 레벨 동기화 채택완료

일심으로ONEHeart 4년 전 조회 2,227

XE를 그누보드로 이전했습니다. 게시글은 이동하지 않은 상태입니다. 그래서 그런것인지..

예를 들어 XE때의 회원포인트가 1000이지만, 레벨구역3(600~1200)에 해당합니다.

그런데 그누보드로 이전하니 모든 회원이 레벨2입니다. 일일이 기존회원레벨 확인해서 변경해줄 수도 없고,

그누보드의 포인트레벨 정책에 따라 레벨 변경할 수 있는 방법이 있습니까?

 

댓글을 작성하려면 로그인이 필요합니다.

답변 4개

채택된 답변
+20 포인트

</p>

<p>$sql = "select * from {$g5['member_table']} where mb_level < 10";</p>

<p>$result = sql_query($sql);</p>

<p>while($row = sql_fetch_array($result)){</p>

<p> // 조건에맞춰서 포인트별 변경할 레벨을 지정하세요</p>

<p> if($row['mb_point']>0 && $row['mb_point'] <=599){</p>

<p>   $change_level = 3;</p>

<p> }elseif($row['mb_point']>=600 && $row['mb_point'] <=1200){</p>

<p>   $change_level = 4;</p>

<p> }</p>

<p> sql_query("update {$g5['member_table']} set mb_level = '".$change_level."' where mb_id='".$row['mb_id']."'"); // 레벨 변경</p>

<p>}</p>

<p>

 

위처럼 코드를 간단히 짜서 php 파일 실행 시키시면 지정된 범위안에있는 

포인트 별로 레벨을 재설정 해서 update 시켜줍니다

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

일심으로ONEHeart
4년 전
코드를 짜본적이 사실 없어요. 일단 위에 포인트만 적절히 수정하여 2레벨에 대한것만 해보았는데,
1 <?php
2 $sql = "select * from {$g5['member_table']} where mb_level < 10";
3 $result = sql_query($sql);
.
.
.
.
?>

결과
Fatal error: Uncaught Error: Call to undefined function sql_query() in 내.php:3 Stack trace: #0 {main} thrown in 내.php on line 3

댓글을 작성하려면 로그인이 필요합니다.

4년 전

우선 xe레벨과 그누보드 레벨 단계가 다르잖아요

그누보드는 최상위레벨이 10이니....

레벨을 xe처럼 10이상을 설정 할 것인지 정해서(그누보드에서 레벨을 더 많은 단계를 만들어 사용할 필요성을 느끼지 못하겠습니다만)

레벨을 10이상으로 설정하는 작업부터하세요<--검색하면 나옵니다

다음처럼 단계별 레벨을 만들어 실행해 주면 됩니다

반드시 회원테이블을 백업 한 후 테스트하세요

<?

include "_common.php";

$tmpArr =array('','',599,1200, 1800, 2400.................);//<--레벨별 최고 포인트

for($i=3; $i< count($tmpArr); $i++){

  $p1 = $tmpArr[$i-1]+1;  $p2 = $tmpArr[$i];

  sql_query("update {$g5['member_table']} set mb_level = $i where mb_point between $p1 and $p2");

}

 

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

일심으로ONEHeart
4년 전
고맙습니다. 배열의 또 새로운 방법이네요.
일단 회원테이블이야 아예 비워버려도 됩니다. 다시 이전시키면 되니까요.
그럼 순서를 적어보면,
1. 회원테이블 비운다(관리자빼고)
2. 레벨만든다. 저는 이윰테마를 씌웠는데, 그누레벨은 2부터있고, 이윰테마는 또 1부터 그룹식을 나눠져있더군요. 그래서 동일하게 2부터 8까지만 하던지 하려고 하고요. 아니면 이윰테마의 레벨 설정은 사용하지 않음으로.. (xe 도 10이상 갈 필요성 못느꼈습니다)
3. 회원테이벌 이전( XE--> 그누)
4. 레벨 php 실행

요렇게 하면 되겠지요?

댓글을 작성하려면 로그인이 필요합니다.

제일 상단에

include_once('./_common.php');

 

이거 넣어주셔야 합니다

로그인 후 평가할 수 있습니다

답변에 대한 댓글 2개

일심으로ONEHeart
4년 전
감사합니다. 잘 해결되었습니다. 그누빌더에 이윰테마를 쓰는데 이전한 회원정보가 그누빌더 테이블에는 예를 들면 천명이 들어가있는데, 이윰의 회원테이블에는 10명밖에 있지 않네요.
이건 테마만드신 분께 알아봐야겠습니다.
일심으로ONEHeart
4년 전
감사합니다. 변경이 잘되었는데 한가지 문의 드립니다.
DB에는 레벨이 변경이 되어있지만, 그누관리자에 가보면,
1. 일단은 레벨 변경하는 부분이라든가 그런게 혹시 어디에 있을까요?
2. 그누관리자-회원관리에 가보면, 회원포인트옆에 권한이란 부분이 있더군요.권한이 1~3까지만 표시가 되어있는데, 저는 레벨=권한 이라고 첨에 생각을 했습니다. 그런데 그런게 아닌것 같네요.
레벨은 6이지만 권한은 1이고,, 게시판접근은 레벨이 아닌 권한에 따른 접근 여부로 되어있는것 같네요. 권한을 포인트레벨과 같이 1~6까지 변경도 가능한지요? 가능하다면 관리부분에서 가능할까요?
저는 레벨에 따른 게시판 접근을 제한하고 싶은데 말입니다. ㅠㅠ.

댓글을 작성하려면 로그인이 필요합니다.

회원 레벨 마다 각각 다르게 주고 싶단거잖아요?

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

일심으로ONEHeart
4년 전
네 그렇습니다. 회원마다 기존누적된포인트가 254, 1024, 3015 등 다양하며 이것을 그대로 새서버로 이전한 상태인데 그누보드의 포인트에 따른 레벨설정이 적용되지 않는 상황입니다.
회원포인트에 따라 자동 레벨 적용이 반영되는 방법 질문입니다.

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인