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

포인트별 레벨자동변환

· 12년 전 · 8569 · 17
포인트별로 레벨(mb_level) 을 자동으로 변환시키는 방법입니다

/lib/common.lib.php 파일의

insert_point 함수의 884번째줄 아래에 아래내용을 추가합니다.
[code]
// 포인트 따라 회원 등급 바꾸기
if(!$is_admin){
if($sum_point >= 0 && $sum_point < 1500){
$new_level = 2;
}elseif($sum_point >= 1500 && $sum_point < 3000){
$new_level = 3;
}elseif($sum_point >= 3000 && $sum_point < 5000){
$new_level = 4;
}elseif($sum_point >= 5000 && $sum_point < 10000){
$new_level = 5;
}elseif($sum_point >= 10000 && $sum_point < 20000){
$new_level = 6;
}elseif($sum_point >= 20000 && $sum_point < 30000){
$new_level = 7;
}elseif($sum_point >= 30000 && $sum_point < 40000){
$new_level = 8;
}elseif($sum_point >= 40000 && $sum_point < 50000){
$new_level = 9;
}elseif($sum_point >= 50000){
$new_level = 10;
}
$squery = ", mb_level = '$new_level'";
}

[/code]

sum_point 는 회원의 전체포인트를 가져오는 것입니다.

따라서 회원의 전체포인트 합이 위 조건에 만족할때 new_level 값을 강제 지정해줍니다.

관리자인 경우 는 레벨을 바꾸면 안되므로 is_admin 조건을 추가했습니다.

위와같이 추가하셨다면

[code]
// 포인트 UPDATE
$sql = " update $g4[member_table] set mb_point = '$sum_point' where mb_id = '$mb_id' ";
sql_query($sql);
[/code]

이쿼리를

[code]
// 포인트 UPDATE
$sql = " update $g4[member_table] set mb_point = '$sum_point' $squery where mb_id = '$mb_id' ";
sql_query($sql);
[/code]

이렇게 바꿉니다.

위와 마찬가지로 delete_point 함수에도 아래 내용을 추가해 줍니다

$sum_point = $row[sum_po_point]; 밑에

[code]
// 포인트 따라 회원 등급 바꾸기
if(!$is_admin){
if($sum_point >= 0 && $sum_point < 1500){
$new_level = 2;
}elseif($sum_point >= 1500 && $sum_point < 3000){
$new_level = 3;
}elseif($sum_point >= 3000 && $sum_point < 5000){
$new_level = 4;
}elseif($sum_point >= 5000 && $sum_point < 10000){
$new_level = 5;
}elseif($sum_point >= 10000 && $sum_point < 20000){
$new_level = 6;
}elseif($sum_point >= 20000 && $sum_point < 30000){
$new_level = 7;
}elseif($sum_point >= 30000 && $sum_point < 40000){
$new_level = 8;
}elseif($sum_point >= 40000 && $sum_point < 50000){
$new_level = 9;
}elseif($sum_point >= 50000){
$new_level = 10;
}
$squery = ", mb_level = '$new_level'";
}

[/code]

위 쿼리를 추가해 주시고

[code]
// 포인트 UPDATE
$sql = " update $g4[member_table] set mb_point = '$sum_point' where mb_id = '$mb_id' ";
sql_query($sql);
[/code]

이쿼리를

[code]
// 포인트 UPDATE
$sql = " update $g4[member_table] set mb_point = '$sum_point' $squery where mb_id = '$mb_id' ";
sql_query($sql);
[/code]

이렇게 바꿔주세요


포인트별로 레벨을 자동 변환하는 것은 위방식이 끝입니다.

레벨변경에 대한 로그를 추가하고 싶으시다면 위코드에서 별도의 로그저장 구문을 넣어주시면 됩니다.

댓글 작성

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

로그인하기

댓글 17개

12년 전
/lib/common.lib.php 파일의 insert_point 함수에
global $is_admin; <= 이구문이 있는지 확인해 보시고
있다면 주석 처리하신후
$is_admin = is_admin($mb_id); <= 이걸 추가해 보세요
delete_point 함수도 마찬가지로 수정해보세요.
global $is_admin 이 안먹는 오류가 있는거 같습니다.
12년 전
레벨 99까지 인경우에 어떻게하죠 ㅠㅠ
12년 전
레벨 99까지인 경우 elseif 조건문을 추가해서 처리해야 합니다.
앞으로 레벨 추가및 날짜 지정 등의 업그레이드가 될 예정입니다.
해당 내용 적용 후 테스트를 해본결과 적용되지 않습니다.

현재 그누보드 기본 빌더를 사용중이며, 884번 줄의 바로 아래에 내용을 추가해 보니 오류가 출력되어

$result = sql_query(" delete from $g4[point_table]
where mb_id = '$mb_id'
and po_rel_table = '$rel_table'
and po_rel_id = '$rel_id'
and po_rel_action = '$rel_action' ", false);

아래에 추가해놓은 상태입니다..
무작정 따라하기 했다가 레벨 1~10까지 에서 1하고 2만 남았어요 ㅠㅠ
11년 전
감사합니다. 일단은 다른분들의 도움을 받아 적용해볼게요...
감사합니다.

게시글 목록

번호 제목
34706
34693
34563
34536
34521
34480
34479
34466
34437
34436
34435
34406
34398
34387
34382
34375
34364
34336
34294
34293