도와주세요~ 글읽기 차감포인트를 원글작성자에게 포인트로 쌓아 주는 방법? > 그누4 질문답변

그누4 질문답변

그누보드4 관련 질문은 QA 로 이전됩니다. QA 그누보드4 바로가기
기존 게시물은 열람만 가능합니다.

도와주세요~ 글읽기 차감포인트를 원글작성자에게 포인트로 쌓아 주는 방법? 정보

도와주세요~ 글읽기 차감포인트를 원글작성자에게 포인트로 쌓아 주는 방법?

본문

질문&답변 글 중에 균이님이 알려주신 view.skin.php에

$point=-1 * $board[bo_read_point];
if($view[mb_id]!=$member[mb_id])
 insert_point($view[mb_id],$point, $bo_table, '$board[bo_subject] $wr_id 읽기', $member[mb_id]);

이렇게 처리하면, 예를 들면 A라는 글읽는 사람은 한 게시물에 대해 한번만 포인트가 차감되는데,
원글작성자는 A가 글을 계속 읽을 때마다 계속 포인트가 쌓이게 된답니다.
어딜 고치면 될까여;;?
  • 복사

댓글 전체

아~~ 전에 올려주신 글을 copy 하다보니..
따옴표 오타 문제는 아니구요..
질문을 잘 읽어봐 주시면.. 포인트 배분은 잘 되는데..
글 읽는 사람의 포인트가 차감 안되도, 글쓴사람에게 계속 계속 포인트가 쌓이는 문제랍니다.;;
따옴표 문제 맞습니다
insert_point() 함수를 수정한 것이 아니라면 중복 지급될 수 없습니다
게시글 보기 권한에 관계 없이 적용되도록(로그인 하지않은 경우 지급 되지않게) if문 수정하고
따옴표만 "(쌍따옴표)로 바꾸면 됩니다

if($member[mb_id] && $view[mb_id]!=$member[mb_id]) {
 insert_point($view[mb_id],$point, $bo_table, "$board[bo_subject] $wr_id 읽기", $member[mb_id]);
음.. 이거 그냥 스킨의 뷰페이지 상단에 집어넣으면 되는거 맞나요?
...보내주신걸로 수정해도..
계속 포인트가 쌓여요..
A라는 사람이 포인트를 지급하고 글 읽을때 그 때 한번만
원글작성자에게 포인트가 지급되야 하는데..
안되는 이유는 저뿐만일까요?
bbs/board.php에 넣어봐도 마찬가지네여;;

물론 insert_point() 함수를 수정하지 않았답니다.

아 생각해보니.. 균이님이 알려주신 아래 코드 수정전에는 테스트 했을때 한번만 적립됬는데..
혹 이것 때문일까요?

          // 글읽기 포인트가 설정되어 있다면
         

  if ($board[bo_read_point] && $member[mb_point] + $board[bo_read_point] < 0)
{             
$row=sql_fetch("select count(*) as cnt from $g4[point_table] where mb_id='$member[mb_id]' and po_rel_table='$bo_table' and po_rel_id='$wr_id' ");
if( !$row[cnt])
  alert("보유하신 포인트(".number_format($member[mb_point]).")가 없거나 모자라서 글읽기(".number_format($board[bo_read_point]).")가 불가합니다.\\n\\n포인트를 모으신 후 다시 글읽기 해 주십시오.");
}           

            insert_point($member[mb_id], $board[bo_read_point], "$board[bo_subject] $wr_id 글읽기", $bo_table, $wr_id, '읽기');

        }

        set_session($ss_name, TRUE);
    }
show를 해서 해결했습니다.
해결된 방법
1. bbs/board.php

  // 글읽기 포인트가 설정되어 있다면
         

  if ($board[bo_read_point] && $member[mb_point] + $board[bo_read_point] < 0)
{             
$row=sql_fetch("select count(*) as cnt from $g4[point_table] where mb_id='$member[mb_id]' and po_rel_table='$bo_table' and po_rel_id='$wr_id' ");
if( !$row[cnt])
  alert("보유하신 포인트(".number_format($member[mb_point]).")가 없거나 모자라서 글읽기(".number_format($board[bo_read_point]).")가 불가합니다.\\n\\n포인트를 모으신 후 다시 글읽기 해 주십시오.");
}           
            insert_point($member[mb_id], $board[bo_read_point], "$board[bo_subject] $wr_id 글읽기", $bo_table, $wr_id, '읽기');
        }

        set_session($ss_name, TRUE);
    }


2.view.skin.php

<?
if($member[mb_id] && $view[mb_id]!=$member[mb_id]) {
$point=-1 * $board[bo_read_point]*0.6;
 insert_point($view[mb_id],$point, "$board[bo_subject] $wr_id 읽기포인트지급", $bo_table, $wr_id, $member[mb_id]);
}

?>

이리하여, 문제1)포인트 차감시에 포인트작성자에게 한번만 지분(저는 60%)을 지급하고,
문제2)내 포인트 잔액이 없어도 벌써 포인트지급했던 건에 대해서는 경고없이 볼 수 있도록
하는 문제들을 균이님의 도움으로 모두 해결했습니다.
버벅거렸던 이유는 스킨에서 $point를 정의안해줬던 거더군요;;;
친절하게 잘 가르쳐 주셔서 감사합니다. 꾸벅^^~
© SIRSOFT
현재 페이지 제일 처음으로