레벨별 포인트 제한
본문
아래와 같은 소스로 포인트 하루 획득 제한을 하고 있습니다.
이걸 레벨 별로 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);
삽입.
!-->!-->!-->
답변을 작성하시기 전에 로그인 해주세요.