레벨별 포인트 제한

레벨별 포인트 제한

QA

레벨별 포인트 제한

답변 1

본문

아래와 같은 소스로 포인트 하루 획득 제한을 하고 있습니다.

 

이걸 레벨 별로 mb_level 이 3이하일경우 200포인트까지 획득  나머지는 1000포인트까지 획득으로 하고싶은데

 

어디를 수정해야할지 모르겠습니다 ㅠ

 


<?php
if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가
 
function chk_point($mb_id, $insert_point) {
global $g5;

 
$limit_point = "200";//포인트 제한.
$sql = "select SUM(po_point) as point FROM `{$g5['point_table']}` WHERE mb_id ='{$mb_id}' and TO_DAYS(po_datetime) = TO_DAYS('" . G5_TIME_YMDHIS . "')";
$today_point = sql_fetch($sql);
 
//1000미만인 대상만 포인트 적립
if ($today_point['point'] < $limit_point) {
$point = $insert_point;
} else {
$point = 0;
}
return $point;
}

 
$board['bo_read_point']= chk_point($member['mb_id'], $board['bo_read_point']);//읽기포인트
$board['bo_comment_point']= chk_point($member['mb_id'], $board['bo_comment_point']);//답변 및 댓글포인트

 
?>
 

이 질문에 댓글 쓰기 :

답변 1

함수 수정합니다. 이 함수를 /lib/common.lib.php에 넣어주세요.

 


function chk_point($mb_id, $insert_point) {
    global $g5;
    $sql = "select SUM(po_point) as point FROM `{$g5['point_table']}` WHERE mb_id ='{$mb_id}' and TO_DAYS(po_datetime) = TO_DAYS('" . G5_TIME_YMDHIS . "')";
    $today_point = sql_fetch($sql);
    $mb = get_member($mb_id);
    
    // 레벨별 한계 포인트
    switch($mb['mb_level']) {
        case 10:
        case 9:
        case 8:
        case 7:
        case 6:
        case 5:
        case 4:
            $limit_point = 1000;
            break;
        default:
            $limit_point = 200;
    }
    if ($today_point['point'] + $insert_point < $limit_point) {
        return $insert_point;
    } else {
        // 하루 최대 포인트까지만 획득. 0보다 작을 수 없음.
        return max(0, $limit_point - ($today_point['point'] + $insert_point));
    }
}

 

/lib/common.lib.php 中 insert_point 함수 내에 있는


$po_expired = 0;

위 코드 바로 위에


// 포인트 레벨 제한
$point = chk_point($mb_id, $point);

삽입.

답변을 작성하시기 전에 로그인 해주세요.
QA 내용 검색
질문등록
전체 48
© SIRSOFT
현재 페이지 제일 처음으로