추천 받으면 포인트 지급 기능
본문
https://gnustudy.com/bbs/board.php?bo_table=skin_board&wr_id=274
이글을 참고해서 추천을 누르면 글쓴이에게 포인트를 지급합니다.
그런데, 추천수가 2부터는 포인트가 지급되지 않습니다
(즉, 글 하나에 추천수가 여러개더라도 포인트는 1번만 지급됩니다.)
어떻게 해결해야 할까요?
답변 3
아래처럼 여러번 지급이 가능하게 수정해 보는거 어떠실까요?
// 글 작성자에게 포인트 지급
add_event('bbs_increase_good_json', 'good_insert_point', 10, 3);
function good_insert_point($bo_table, $wr_id, $good)
{
global $g5, $member;
$point = 200; // 추천포인트
if ($good == 'good') {
$tmp_write_table = $g5['write_prefix'] . $bo_table;
$mb = sql_fetch("SELECT mb_id, wr_good FROM {$tmp_write_table} WHERE wr_id = '$wr_id'");
$wr_good = unserialize($mb['wr_good']);
if (!is_array($wr_good)) {
$wr_good = array();
}
if (!in_array($member['mb_id'], $wr_good)) {
$wr_good[] = $member['mb_id'];
// 추천수 업데이트
sql_query("UPDATE {$tmp_write_table} SET wr_good = '".serialize($wr_good)."' WHERE wr_id = '$wr_id'");
// 포인트 지급
insert_point($mb['mb_id'], $point, $member['mb_nick'].'님이 추천', $bo_table, $wr_id, '추천');
}
}
}
맨끝 추천이 아마 고유일텐데 저 부분을 게시판명 글번호와 추천수등으로 해서 계속 고유번호를 가질수 있게 처리해주시면 될거 같습니다.
관련 팁 내용 수정해놨습니다. 여기만 이렇게 바꾸면 될 것 같네요.
마지막 부분 '추천' 이 '추천-'.$member['mb_id'] 이렇게 변경되었습니다.
insert_point($mb['mb_id'], $point, $member['mb_nick'].'님이 추천', $bo_table, $wr_id, '추천-'.$member['mb_id']);