일정기간 시간이 지난 게시물에 코멘트 달아도 포인트 못받게.... 정보
일정기간 시간이 지난 게시물에 코멘트 달아도 포인트 못받게....
본문
오류가 나는곳의 주소를 알려주시면 더 빠르고 정확하게 답변 받을 수 있습니다.
오류 주소 :
안녕하세요~
저희 커뮤니티에 어린분들이 많은지라
포인트를 쟁취하기 위해 아주 오래된 글에 댓글을 도배하여 포인트를
얻는 회원들이 많아서
가령 3달정도 지난 게시물에는 코멘트를 달아도 포인트를 받지 못하게
하려고 하는데....
운영자님은 이 팁을 쓰시고 계신것 같더라구요
어떤 방법이 좋을까요?
오류 주소 :
안녕하세요~
저희 커뮤니티에 어린분들이 많은지라
포인트를 쟁취하기 위해 아주 오래된 글에 댓글을 도배하여 포인트를
얻는 회원들이 많아서
가령 3달정도 지난 게시물에는 코멘트를 달아도 포인트를 받지 못하게
하려고 하는데....
운영자님은 이 팁을 쓰시고 계신것 같더라구요
어떤 방법이 좋을까요?
댓글 전체
common.lib.php에서 수정해야 할 것 같네요. 아래 함수에서 마지막에 $rel_days 필드를 하나 더 추가한 다음에, 해당 기간이 넘으면 포인트를 안주면 되겠죠?
function insert_point($mb_id, $point, $content='', $rel_table='', $rel_id='', $rel_action='', $rel_days=90)
{
global $config;
global $g4;
global $is_admin;
// 포인트 사용을 하지 않는다면 return
if (!$config[cf_use_point]) { return 0; }
// 요기에서 날짜 비교를 합니다. 오늘과 글쓴 날짜의 차이가 rel_day보다 크면 $point=으로 합니다.
... 제가 코드를 넣지는 않았어요. ㅋㅋ
// 포인트가 없다면 업데이트 할 필요 없음
if ($point == 0) { return 0; }
// 회원아이디가 없다면 업데이트 할 필요 없음
if ($mb_id == "") { return 0; }
$mb = sql_fetch(" select mb_id from $g4[member_table] where mb_id = '$mb_id' ");
if (!$mb[mb_id]) { return 0; }
// 이미 등록된 내역이라면 건너뜀
if ($rel_table || $rel_id || $rel_action)
{
if ($rel_table == "@login") {} else { // 로그인테이블의 경우에는 등록된 내역 확인을 생략
$sql = " select count(*) as cnt 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' ";
$row = sql_fetch($sql);
if ($row[cnt])
return -1;
}
}
// 포인트 건별 생성
$sql = " insert into $g4[point_table]
set mb_id = '$mb_id',
po_datetime = '$g4[time_ymdhis]',
po_content = '".addslashes($content)."',
po_point = '$point',
po_rel_table = '$rel_table',
po_rel_id = '$rel_id',
po_rel_action = '$rel_action' ";
sql_query($sql);
// 포인트 내역의 합을 구하고
$sql = " select sum(po_point) as sum_po_point from $g4[point_table] where mb_id = '$mb_id' ";
$row = sql_fetch($sql);
$sum_point = $row[sum_po_point];
// 포인트 UPDATE
$sql = " update $g4[member_table] set mb_point = '$sum_point' where mb_id = '$mb_id' ";
sql_query($sql);
return 1;
}
function insert_point($mb_id, $point, $content='', $rel_table='', $rel_id='', $rel_action='', $rel_days=90)
{
global $config;
global $g4;
global $is_admin;
// 포인트 사용을 하지 않는다면 return
if (!$config[cf_use_point]) { return 0; }
// 요기에서 날짜 비교를 합니다. 오늘과 글쓴 날짜의 차이가 rel_day보다 크면 $point=으로 합니다.
... 제가 코드를 넣지는 않았어요. ㅋㅋ
// 포인트가 없다면 업데이트 할 필요 없음
if ($point == 0) { return 0; }
// 회원아이디가 없다면 업데이트 할 필요 없음
if ($mb_id == "") { return 0; }
$mb = sql_fetch(" select mb_id from $g4[member_table] where mb_id = '$mb_id' ");
if (!$mb[mb_id]) { return 0; }
// 이미 등록된 내역이라면 건너뜀
if ($rel_table || $rel_id || $rel_action)
{
if ($rel_table == "@login") {} else { // 로그인테이블의 경우에는 등록된 내역 확인을 생략
$sql = " select count(*) as cnt 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' ";
$row = sql_fetch($sql);
if ($row[cnt])
return -1;
}
}
// 포인트 건별 생성
$sql = " insert into $g4[point_table]
set mb_id = '$mb_id',
po_datetime = '$g4[time_ymdhis]',
po_content = '".addslashes($content)."',
po_point = '$point',
po_rel_table = '$rel_table',
po_rel_id = '$rel_id',
po_rel_action = '$rel_action' ";
sql_query($sql);
// 포인트 내역의 합을 구하고
$sql = " select sum(po_point) as sum_po_point from $g4[point_table] where mb_id = '$mb_id' ";
$row = sql_fetch($sql);
$sum_point = $row[sum_po_point];
// 포인트 UPDATE
$sql = " update $g4[member_table] set mb_point = '$sum_point' where mb_id = '$mb_id' ";
sql_query($sql);
return 1;
}

헉 코드도 넣어주셨으면 ㅎㅎ^ㅆ^:
ㅎㅎ... 불당팩에 이 기능을 넣어야 하겠네요.