insert_point()는 /lib/common.lib.php 의 766번째 줄 근처에 정의되어있습니다.
사용하는 방법은 다음과 같습니다.
insert_point(회원아이디, 포인트, 포인트내역, 관련 bo_table, 관련 wr_id, 포인트내역2);
포인트 내역 값이 음수이면 차감하게 되죠.
예를 들어 그누커뮨에서 별점 투표를 할 때 다음과 같이 포인트를 지급하고 있습니다.
insert_point($member[mb_id], $gc[rating_point], "평가하기 - " . cut_str($write[wr_subject], 40), $bo_table, $wr_id, "평가하기");
$member[mb_id]는 본인의 아이디,
$gc[rating_point]는 제가 /extend/gnucomun.extend.php/ 에서 정의해주는 별점 투표시 지급 포인트,
"평가하기 - " . cut_str($write[wr_subject], 40)는 "평가하기 - {글제목}" 형태로 포인트 목록에서 뜨도록 하는 내용,
$bo_table은 현재 게시판 아이디,
$wr_id는 현재 글 번호,
"평가하기"는 추가적으로 기록할 것이 있을 때 기록할 내용입니다.
여기서 주의할 것은 회원아이디, 관련 bo_table, 관련 wr_id, 포인트내역2 값이 일치하면 중복 지급이 안된다는 점입니다. 실제로 sir의 질답 게시판에서도 위와 같은 점을 고려하지 않아서 한 번 포인트가 깎이면 그 다음부터는 아무리 포인트를 많이 걸어도 차감되지 않는 버그가 있습니다. 이럴 때 포인트내역2의 끝에 오늘 날짜나 회원 아이디를 덧붙이면 해결할 수 있겠죠.
(예를 들어 "포인트차감 - " . $g4[time_ymd] 또는 "추천받기 - " . $member[mb_id])
커뮤니티에서는 포인트가 회원들 활동과 매우 밀접한 관련이 있기 때문에 자신의 커뮨에 맞게 포인트를 지급하거나 차감하도록 설정해야 하는 경우가 많을 것입니다.
insert_point() 함수는 꼭 익혀둡시다~^^