포인트별 레벨자동변환
포인트별로 레벨(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]
이렇게 바꿔주세요
포인트별로 레벨을 자동 변환하는 것은 위방식이 끝입니다.
레벨변경에 대한 로그를 추가하고 싶으시다면 위코드에서 별도의 로그저장 구문을 넣어주시면 됩니다.
/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개
해보진 않았찌만 ㅎㅎ
혹시 저기에 날짜같은거 넣을라믄 어떻게 해야되나요?
예를들어 포인트는 다 채웠지만 가입한지 30일이라든지 기간이 안되면 레벨업 안되게끔용..
많이 어렵겠죠..ㅠ
지금 하는 작업만 끝나면 좀더 보완해서 올려볼께요.
이 팁을 이용해서 강제적으로 가입인사를 시키고, 게시물작성이 가능하도록 할 예정입니다.
넓은마인드님, 감사합니다.
추쳔하고 갑니다. 스크랩도 하고요....^^
좀더 보완해서 업그레이드도 할 예정입니다.^^
global $is_admin; <= 이구문이 있는지 확인해 보시고
있다면 주석 처리하신후
$is_admin = is_admin($mb_id); <= 이걸 추가해 보세요
delete_point 함수도 마찬가지로 수정해보세요.
global $is_admin 이 안먹는 오류가 있는거 같습니다.
앞으로 레벨 추가및 날짜 지정 등의 업그레이드가 될 예정입니다.
현재 그누보드 기본 빌더를 사용중이며, 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);
아래에 추가해놓은 상태입니다..