게시물열람시 포인트가 100개 빠지도록 설정햇습니다
그런데 게시물이 오늘날짜가 아닌 지난게시물 열람시에는 포인트가 빠지지 않도록 할려고하는데요
이렇게 수정하는방법있을까요?
그러니까 오늘날짜로 작성한 신규게시물만 포인트가 빠지게 하고자합니다
그런데 게시물이 오늘날짜가 아닌 지난게시물 열람시에는 포인트가 빠지지 않도록 할려고하는데요
이렇게 수정하는방법있을까요?
그러니까 오늘날짜로 작성한 신규게시물만 포인트가 빠지게 하고자합니다
|
답변 4개
채택된 답변
+20 포인트
해당 게시판의 view.skin.php
=============================
<?php
if (!defined("_GNUBOARD_")) exit;
// 1. 관리자, 본인, 포인트 설정이 0인 경우 제외
if (!$is_admin && $write['mb_id'] != $member['mb_id'] && $board['bo_read_point'] != 0) {
$is_today_post = (substr($write['wr_datetime'], 0, 10) == G5_TIME_YMD);
// 2. 오늘 글이 아닐 때만 환급 로직 가동
if (!$is_today_post) {
$refund_point = abs($board['bo_read_point']);
$rel_action = '과거글환급'; // 중복 환급 방지용 키워드
// 오늘 이 글에서 환급받은 내역이 있는지 확인
$sql = " select count(*) as cnt from {$g5['point_table']}
where mb_id = '{$member['mb_id']}'
and po_rel_table = '{$bo_table}'
and po_rel_id = '{$wr_id}'
and po_rel_action = '{$rel_action}' ";
$row = sql_fetch($sql);
if (!$row['cnt']) {
// 포인트 즉시 복구
insert_point($member['mb_id'], $refund_point, "{$board['bo_subject']} {$wr_id} 과거글 무료 읽기", $bo_table, $wr_id, $rel_action);
// 실시간 포인트 반영을 위해 현재 페이지 새로고침 (선택 사항)
// goto_url($_SERVER['REQUEST_URI']);
}
}
}
?>
참고 삼아 보세요.
=============================
<?php
if (!defined("_GNUBOARD_")) exit;
// 1. 관리자, 본인, 포인트 설정이 0인 경우 제외
if (!$is_admin && $write['mb_id'] != $member['mb_id'] && $board['bo_read_point'] != 0) {
$is_today_post = (substr($write['wr_datetime'], 0, 10) == G5_TIME_YMD);
// 2. 오늘 글이 아닐 때만 환급 로직 가동
if (!$is_today_post) {
$refund_point = abs($board['bo_read_point']);
$rel_action = '과거글환급'; // 중복 환급 방지용 키워드
// 오늘 이 글에서 환급받은 내역이 있는지 확인
$sql = " select count(*) as cnt from {$g5['point_table']}
where mb_id = '{$member['mb_id']}'
and po_rel_table = '{$bo_table}'
and po_rel_id = '{$wr_id}'
and po_rel_action = '{$rel_action}' ";
$row = sql_fetch($sql);
if (!$row['cnt']) {
// 포인트 즉시 복구
insert_point($member['mb_id'], $refund_point, "{$board['bo_subject']} {$wr_id} 과거글 무료 읽기", $bo_table, $wr_id, $rel_action);
// 실시간 포인트 반영을 위해 현재 페이지 새로고침 (선택 사항)
// goto_url($_SERVER['REQUEST_URI']);
}
}
}
?>
참고 삼아 보세요.
3일 전
최신 버전 으로 /bbs/board.php 114번 라인 부터 보시면
위 소스에 "// 글읽기 포인트가 설정되어 있다면" 부분 아래에
위에서 날짜별 포인트 기능을 다수의 게시판에 적용 할때 $bo_table 대신 $write['wr_1'] 등 여분 필드 값을 입력하여 비교 활용도 가능 합니다.
Copy
// 한번 읽은글은 브라우저를 닫기전까지는 카운트를 증가시키지 않음
$ss_name = 'ss_view_'.$bo_table.'_'.$wr_id;
if (!get_session($ss_name))
{
sql_query(" update {$write_table} set wr_hit = wr_hit + 1 where wr_id = '{$wr_id}' ");
// 자신의 글이면 통과
if ($write['mb_id'] && $write['mb_id'] === $member['mb_id']) {
;
} else if ($is_guest && $board['bo_read_level'] == 1 && $write['wr_ip'] == $_SERVER['REMOTE_ADDR']) {
// 비회원이면서 읽기레벨이 1이고 등록된 아이피가 같다면 자신의 글이므로 통과
;
} else {
// 글읽기 포인트가 설정되어 있다면
if ($config['cf_use_point'] && $board['bo_read_point'] && $member['mb_point'] + $board['bo_read_point'] < 0)
alert('보유하신 포인트('.number_format($member['mb_point']).')가 없거나 모자라서 글읽기('.number_format($board['bo_read_point']).')가 불가합니다.\\n\\n포인트를 모으신 후 다시 글읽기 해 주십시오.');
insert_point($member['mb_id'], $board['bo_read_point'], ((G5_IS_MOBILE && $board['bo_mobile_subject']) ? $board['bo_mobile_subject'] : $board['bo_subject']).' '.$wr_id.' 글읽기', $bo_table, $wr_id, '읽기');
}
set_session($ss_name, TRUE);
}
위 소스에 "// 글읽기 포인트가 설정되어 있다면" 부분 아래에
Copy
$write_day = substr($write['wr_datetime'],0,10); // 글 작성일, 날짜만
$today = date("Y-m-d"); // 오늘 날짜
if($write_day == $today&&$bo_table == "사용하는 게시판 CODE") { 날짜 비교 포인트 차감용
if ($config['cf_use_point'] && $board['bo_read_point'] && $member['mb_point'] + $board['bo_read_point'] < 0)
alert('보유하신 포인트('.number_format($member['mb_point']).')가 없거나 모자라서 글읽기('.number_format($board['bo_read_point']).')가 불가합니다.\\n\\n포인트를 모으신 후 다시 글읽기 해 주십시오.');
insert_point($member['mb_id'], $board['bo_read_point'], ((G5_IS_MOBILE && $board['bo_mobile_subject']) ? $board['bo_mobile_subject'] : $board['bo_subject']).' '.$wr_id.' 글읽기', $bo_table, $wr_id, '읽기');
}
if ($bo_table != "사용하는 게시판 CODE") { // 그 외 게시판 포인트 차감 기능 유지용
if ($config['cf_use_point'] && $board['bo_read_point'] && $member['mb_point'] + $board['bo_read_point'] < 0)
alert('보유하신 포인트('.number_format($member['mb_point']).')가 없거나 모자라서 글읽기('.number_format($board['bo_read_point']).')가 불가합니다.\\n\\n포인트를 모으신 후 다시 글읽기 해 주십시오.');
insert_point($member['mb_id'], $board['bo_read_point'], ((G5_IS_MOBILE && $board['bo_mobile_subject']) ? $board['bo_mobile_subject'] : $board['bo_subject']).' '.$wr_id.' 글읽기', $bo_table, $wr_id, '읽기');
}
위에서 날짜별 포인트 기능을 다수의 게시판에 적용 할때 $bo_table 대신 $write['wr_1'] 등 여분 필드 값을 입력하여 비교 활용도 가능 합니다.
Copy
$write_day = substr($write['wr_datetime'],0,10); // 글 작성일, 날짜만
$today = date("Y-m-d"); // 오늘 날짜
if($write_day == $today&&$write['wr_1']!="") { 날짜 비교 포인트 차감용, 여분 필드에 값이 있는 게시판
if ($config['cf_use_point'] && $board['bo_read_point'] && $member['mb_point'] + $board['bo_read_point'] < 0)
alert('보유하신 포인트('.number_format($member['mb_point']).')가 없거나 모자라서 글읽기('.number_format($board['bo_read_point']).')가 불가합니다.\\n\\n포인트를 모으신 후 다시 글읽기 해 주십시오.');
insert_point($member['mb_id'], $board['bo_read_point'], ((G5_IS_MOBILE && $board['bo_mobile_subject']) ? $board['bo_mobile_subject'] : $board['bo_subject']).' '.$wr_id.' 글읽기', $bo_table, $wr_id, '읽기');
}
if ($write['wr_1']=="") { // 타 게시판 포인트 차감 기능 유지용, 여분 필드 값이 없는 게시판
if ($config['cf_use_point'] && $board['bo_read_point'] && $member['mb_point'] + $board['bo_read_point'] < 0)
alert('보유하신 포인트('.number_format($member['mb_point']).')가 없거나 모자라서 글읽기('.number_format($board['bo_read_point']).')가 불가합니다.\\n\\n포인트를 모으신 후 다시 글읽기 해 주십시오.');
insert_point($member['mb_id'], $board['bo_read_point'], ((G5_IS_MOBILE && $board['bo_mobile_subject']) ? $board['bo_mobile_subject'] : $board['bo_subject']).' '.$wr_id.' 글읽기', $bo_table, $wr_id, '읽기');
}
6일 전
먼저 '오늘' today를 정의하고,
sql 쿼리에 '오늘' 조건을 추가해보세요.
sql 쿼리에 '오늘' 조건을 추가해보세요.
1주 전
순정 일때
bbs/board.php
alert('보유하신 포인트('.number_format($member['mb_point']).')가 없거나 모자라서 글읽기('.number_format($board['bo_read_point']).')가 불가합니다.\\n\\n포인트를 모으신 후 다시 글읽기 해 주십시오.');
//2026-02-13
$sql = " select wr_datetime from {$write_table} where wr_id=".$wr_id;
$chl_dat = sql_fetch($sql);
$chl_db= date("Y-m-d" , strtotime($chl_dat[wr_datetime]));
$chl_td=date("Y-m-d");
$if_chl= (strtotime($chl_td) - strtotime($chl_db)) / 86400;
if($if_chl==0){
//echo "오늘";
insert_point($member['mb_id'], $board['bo_read_point'], ((G5_IS_MOBILE && $board['bo_mobile_subject']) ? $board['bo_mobile_subject'] : $board['bo_subject']).' '.$wr_id.' 글읽기', $bo_table, $wr_id, '읽기');
}
//2026-02-13
// insert_point($member['mb_id'], $board['bo_read_point'], ((G5_IS_MOBILE && $board['bo_mobile_subject']) ? $board['bo_mobile_subject'] : $board['bo_subject']).' '.$wr_id.' 글읽기', $bo_table, $wr_id, '읽기');
}
set_session($ss_name, TRUE);
}
이러게 하면 됩니다 .
참고 하세요
bbs/board.php
alert('보유하신 포인트('.number_format($member['mb_point']).')가 없거나 모자라서 글읽기('.number_format($board['bo_read_point']).')가 불가합니다.\\n\\n포인트를 모으신 후 다시 글읽기 해 주십시오.');
//2026-02-13
$sql = " select wr_datetime from {$write_table} where wr_id=".$wr_id;
$chl_dat = sql_fetch($sql);
$chl_db= date("Y-m-d" , strtotime($chl_dat[wr_datetime]));
$chl_td=date("Y-m-d");
$if_chl= (strtotime($chl_td) - strtotime($chl_db)) / 86400;
if($if_chl==0){
//echo "오늘";
insert_point($member['mb_id'], $board['bo_read_point'], ((G5_IS_MOBILE && $board['bo_mobile_subject']) ? $board['bo_mobile_subject'] : $board['bo_subject']).' '.$wr_id.' 글읽기', $bo_table, $wr_id, '읽기');
}
//2026-02-13
// insert_point($member['mb_id'], $board['bo_read_point'], ((G5_IS_MOBILE && $board['bo_mobile_subject']) ? $board['bo_mobile_subject'] : $board['bo_subject']).' '.$wr_id.' 글읽기', $bo_table, $wr_id, '읽기');
}
set_session($ss_name, TRUE);
}
이러게 하면 됩니다 .
참고 하세요
답변을 작성하려면 로그인이 필요합니다.