포인트별 레벨자동변환 > 그누4 팁자료실

매출이 오르면 내리는 수수료! 지금 수수료센터에서 전자결제(PG)수수료 비교견적 신청해 보세요!

그누4 팁자료실

그누보드4와 관련된 팁을 여러분들과 함께 공유하세요.
나누면 즐거움이 커집니다.

포인트별 레벨자동변환 정보

포인트별 레벨자동변환

본문

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

/lib/common.lib.php 파일의

insert_point 함수의 884번째줄 아래에 아래내용을 추가합니다.

	// 포인트 따라 회원 등급 바꾸기
	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'";
	}



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

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

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

위와같이 추가하셨다면


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


이쿼리를


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


이렇게 바꿉니다.

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

$sum_point = $row[sum_po_point]; 밑에


	// 포인트 따라 회원 등급 바꾸기
	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'";
	}



위 쿼리를 추가해 주시고


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


이쿼리를


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


이렇게 바꿔주세요


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

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

댓글 17개

우선 추천을!!!

해보진 않았찌만 ㅎㅎ

혹시 저기에 날짜같은거 넣을라믄 어떻게 해야되나요?

예를들어 포인트는 다 채웠지만 가입한지 30일이라든지 기간이 안되면 레벨업 안되게끔용..

많이 어렵겠죠..ㅠ
아,,제가 바라고 있던 팁이 끝내 나타났네요.
이 팁을 이용해서 강제적으로 가입인사를 시키고, 게시물작성이 가능하도록 할 예정입니다.

넓은마인드님, 감사합니다.
추쳔하고 갑니다. 스크랩도 하고요....^^
/lib/common.lib.php 파일의 insert_point 함수에
global $is_admin; <= 이구문이 있는지 확인해 보시고
있다면 주석 처리하신후
$is_admin = is_admin($mb_id); <= 이걸 추가해 보세요
delete_point 함수도 마찬가지로 수정해보세요.
global $is_admin 이 안먹는 오류가 있는거 같습니다.
레벨 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);

아래에 추가해놓은 상태입니다..
© SIRSOFT
현재 페이지 제일 처음으로