하루에 한번 링크 클릭시 포인트 주기 소스 좀 가르쳐 주세요!!
하루에 한번 링크 클릭시 포인트 주기 가능한가요?
게시물을 클릭해서 들어가는게 아니라 배너 게시판 처럼 리스트에서 바로 클릭해서 하루에한번 링크 클릭시 포인트 주고 싶은데..
고수님들 부탁합니다!!
|
댓글을 작성하시려면 로그인이 필요합니다.
로그인
댓글 16개
남겨주셨네요!!
1. view.skin.php 상단에 넣습니다.
$point = $board[bo_8]; //게시판 여분필드 8을 사용하였습니다.필요시 수정하세요.
2. view.skin.php 의 링크 관련 부분입니다.
// 링크
$cnt = 0;
for ($i=1; $i<=$g4[link_count]; $i++)
{
if ($view[link][$i])
{
$cnt++;
$link = cut_str($view[link][$i], 70);
echo "<tr><td height=22> <img src='{$board_btn_path}/img/icon_link.gif' align=absmiddle>
<a href='{$view[link_href][$i]}' onclick='javascript:pointdel($i);' target=_blank><strong>{$link}</strong> ({$view[link_hit][$i]})</a></td></tr>";
}
}
3 view.skin.php의 하단 스크립트 부분에 넣으세요..
<script type='text/javascript'>
function pointdel(no){
window.open("<?=$board_skin_path?>/pointdel.php?bo_table=<?=$bo_table?>&wr_id=<?=$view[wr_id]?>&link_point=<?=$point?>&no=" +no, 'PointDelWin', 'left=10000,top=10000,width=100,height=100');
}
</script>
4. 아래 내용을 해당 스킨에 pointdel.php로 저장합니다.
<?
$g4_path = "../../..";
include_once("$g4_path/common.php");
// 이미 읽은 링크를 클릭하였는지를 검사한 후 게시물당 한번만 포인트를 차감하도록 수정
$ss_name = "ss_link{$no}_{$bo_table}_{$wr_id}";
if (!get_session($ss_name))
{
// 자신의 글이라면 통과
// 관리자인 경우 통과
if (($write[mb_id] && $write[mb_id] == $member[mb_id]) || $is_admin)
;
else if ($board[bo_link_level] > 1) // 회원이상 링크가 가능하다면
{
// 포인트가 음수이고 회원의 포인트가 0 이거나 작다면
if ($member[mb_point] + $link_point < 0)
alert("보유하신 포인트(".number_format($member[mb_point]).")가 없거나 모자라서 링크(".number_format($link_point).")가 불가합니다.\\n\\n포인트를 적립하신 후 다시 링크 해 주십시오.");
// 게시물 작성자에게 포인트 지급
//insert_point($write[mb_id], $link_point, "$board[bo_subject] $write[wr_subject] 방문", $bo_table, $wr_id, "방문");
// 게시물 링크 클릭자에게서 포인트 감소
insert_point($member[mb_id], (-1) * $link_point, "$board[bo_subject] $write[wr_subject] 자료다운 $no", $bo_table, $wr_id, "자료 다운로드_{$no}");
}
set_session($ss_name, TRUE);
}
?>
<script>
window.close();
</script>
view.skin.php 이곳의 링크설정되 있는 부분을 list.skin.php 제목링크 설정 부분으로 교체 해주시면 됩니다!!
<a href='{$view[link_href][$i]}' onclick='javascript:pointdel($i);' target=_blank><strong>{$link}</strong> ({$view[link_hit][$i]})</a></td></tr>";
이쪽 부분을 list.skin.php의 제목 링크 부분과 적절하게 교합하시면 되거든요!!
그리고 위의 팁들을 list.skin.php로 이동하시면 됩니다!!
하루지나면 포인트 반영되게 하고 싶거든요.가능할까요?
// 게시물 링크 클릭자에게서 포인트
insert_point($member[mb_id], $link_point, "$board[bo_subject] $write[wr_subject] 방문", $bo_table, $wr_id, "링크_{$g4[time_ymd]}");
제가 설명이 부족했나봅니다..
하루지나면 반영한다는말은 클릭하고 하루지나고 반영이 아니라,
링크클릭은 한번클릭에 끝나는것이 아니라 24시간 이내에 몇번 클릭해도 포인트는 한번으로 계산하는것이거든요..
그러니까 24시간 지난후 또 클릭하면 포인트가 부여되게끔 하는것이지요.
예를 들어 오늘 A라는 링크를 한번 클릭하면 클릭한 순간 포인트 부여되고 그 링크 클릭한 사람이 24간 지난후 다시 클릭하면 포인트가 부여되도록 하는거거든요..
가능할까요?
http://sir.co.kr/bbs/tb.php/g4_tiptech/8261
링크를 클릭시 포인트주기는 링크_{$g4[time_ymd]} 식으로 날자를 넣어 주면
하루에 한번 포인트를 주게 됩니다.
// 게시물 링크 클릭자에게서 포인트를 하루 1번만 업데이트
insert_point($member[mb_id], $link_point, "$board[bo_subject] $write[wr_subject] 방문", $bo_table, $wr_id, "링크_{$g4[time_ymd]}");
세션도 정리가 필요합니다...^^
// 이미 읽은 링크를 클릭하였는지를 검사한 후 게시물당 한번만 포인트를 차감하도록 수정
$ss_name = "ss_link{$no}_{$bo_table}_{$wr_id}";
==>>
// 이미 읽은 링크를 클릭하였는지를 검사한 후 게시물당 한번만 포인트를 차감하도록 수정
$ss_name = "ss_link{$no}_{$bo_table}_{$wr_id}_{$g4[time_ymd]}";
$bo_table, $wr_id, "링크_{$g4[time_ymd]}"); 요거 3개를 대조하여
중복 체크를 하므로 세션체크는 별로 중요한 부분이 아니라고 생각이 됩니다만....
아니라면 낭패인디....ㅠㅠ
어디서 본건데....같은 도메인 내에서 쿠키랑 세션을 남발하는 것도 대략 안좋다는 글을 본적도 있었거던요.^^
단, 세션과 관계 없이 소스를 밖으로 빼주셔야 겠지요....^^
감사합니다. 꾸벅
일단은 스크랩
헤헷~!
그렇다면 회원들이 무슨 링크를 봤는지 알텐데..자꾸 물어봐서 죄송합니다~
<?
$ss_name = "ss_link{$no}_{$bo_table}_{$wr_id}_{$g4[time_ymd]}";
if (!get_session($ss_name))
{
?>
링크 표시용 코드삽입
<?
set_session($ss_name, TRUE);
}
?>
테스트를 해보질 못하여 정확한지는 모르지만 이렇게 하면
하루에 한번만 링크가 보이게 될듯 합니다.