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

그누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);

아래에 추가해놓은 상태입니다..
전체 3,313 |RSS
그누4 팁자료실 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT