글에 포인트보상금을 첨부하여 선택 지급하기 (수정2) 정보
글에 포인트보상금을 첨부하여 선택 지급하기 (수정2)본문
※ 글에 포인트보상금을 첨부하여 선택 지급하기
글을 쓸때 자신이 보유한 포인트 중 일부를 글과 함께 첨부하고, 맘에 드는 코멘트 작성자를
선택하여 지급하는 겁니다. 포인트를 댓가로 양질의 코멘트를 유도하는게 주 목적이겠죠.
=========================================================================
수정 해야 할 파일들은 다음과 같습니다.
1. 보드스킨/write.skin.php _________글쓰기에 포인트보상금 입력박스와 스크립추가
2. 보드스킨/list.skin.php __________보상금이 걸린 글은 관련이미지 출력
3. 보드스킨/view.skin.php __________보상금 얼만지 출력
4. 보드스킨/view_comment.skin.php __보상금 지급버튼(히든프레임이용)과 결과표시(wr_10필드에 기록)
5. bbs/write_update.php ____________포인트즉시감소,wr_10필드에 보상금저장,수정시 잔액계산및환불
6. bbs/delete.php __________________글삭제시 포인트보상금 전액환불
7. bbs/delete_all.php ______________상동
생성 해야 할 파일은 다음과 같습니다.
8. bbs/point_gift.php
많아 보이긴 하지만, 대부분 소스 좀 추가해 넣는 정도입니다.
수정 : 2006.3.22
-8.번 top.location.reload();를 parent.location.reload();로 수정 (프레임문제때문)
수정 : 2005.1.13
-글쓰기시 포인트보상금 입력박스는 회원인 경우에만 나오게 수정요;;
-포인트보상금 지급 후, 화면 리로드 되게 8.번 top.location.reload();추가요.
-8.번 쪽지 보낼때 "[게시판] 게시판명 : " 한줄 추가했습니다.
-8.번 <script language="JavaScript"> window.close(); </script> 마지막 줄에 추가요
=====================================================================
=====================================================================
1.
보드스킨/write.skin.php 화일을 여시고
<? if ($is_link) { ?>
▶위 소스 윗줄에
<!--★포인트보상금관련추가시작-->
<?if ($member[mb_id]) {?>
<?$point_gift = $write[wr_10]; //여유필드10의값을받음?>
<tr>
<td style='padding-left:20px; height:30px;'>· 포인트보상금</td>
<td><input type='text' class=ed size=4 maxlength=4 name='point_gift' itemname='포인트보상금' value='<?=$point_gift?>'> / 현재 포인트 <strong><u><?=number_format($member[mb_point])?></u></strong>
<input type='hidden' name='old_point_gift' value='<?=$point_gift?>'>
<div style="padding:2;"></div>※ 마음에 드는 코멘트를 다신 분께 포인트 보상금을 지급하실 수 있습니다.
</td>
</tr>
<tr><td colspan=2 height=1 bgcolor=#e7e7e7></td></tr>
<?}?>
<!--★포인트보상금관련추가끝-->
▶위 소스를 삽입합니다. 아래로 내려가서..
f.action = "./write_update.php";
▶위 소스 윗줄에
<!--★포인트보상금관련추가시작-->
<?if ($member[mb_id]) {?>
if (f.point_gift.value.length > 0) {
for (i = 0; i < f.point_gift.value.length; i++) {
if (f.point_gift.value.charAt(i) < '0' || f.point_gift.value.charAt(i) > '9') {
alert(f.point_gift.value.charAt(i) + "는 숫자가 아닙니다. 숫자만 입력하세요!");
f.point_gift.focus();
return;
}
}
}
if (f.point_gift.value < 0 || f.point_gift.value > <?=$member[mb_point]?>) {
alert("포인트 값은 0보다 크고 <?=$member[mb_point]?>보다 작아야 합니다.");
f.point_gift.value = "";
f.point_gift.focus();
return;
}
<?}?>
<!--★포인트보상금관련추가끝-->
▶위 소스를 삽입합니다.
※ maxlength=4 : 포인트를 4자리로 제한해 놨는데, 알아서 조절하시면 되겠습니다.
※ 코멘트 달려도 글수정이 가능하다면, 이미 한번 보상금 지급했어도 다시 걸 수 있고,
보상금을 안 걸었던 자신의 게시물에 멋진 코멘트가 달리면 그때 수정으로 보상금 넣고
보답하셔도 되겠습니다.
=====================================================================
=====================================================================
2.
보드스킨/list.skin.php 화일을 여시고
echo " " . $list[$i][icon_file];
echo " " . $list[$i][icon_link];
echo " " . $list[$i][icon_hot];
echo " " . $list[$i][icon_secret];
echo $nobr_end;
▶위 소스의 사이(주변) 아무곳에나 적절히 ....
//★포인트보상금관련추가시작
$point_gift = $list[$i][wr_10]; //여유필드10의값을받음
if ($point_gift) echo " <img src='{$board_skin_path}/img/icon_point.gif' align=absmiddle>";
//★포인트보상금관련추가끝
▶위 소스를 삽입합니다. 적절한 다른 곳에 삽입하셔도 됩니다. (아이콘은 첨부화일 참조하세요)
php문이니까 그냥 html문사이에 넣으시면 안돼겠죠. <? ?> 사이에 들어가야 하는 겁니다;
※ 포인트보상금이 있는 게시물이면 리스트에 아이콘뜨고, 지급되고 없다면 아이콘 안뜨겠죠.
=====================================================================
=====================================================================
3.
보드스킨/view.skin.php 화일을 여시고
// 링크
$cnt = 0;
for ($i=1; $i<=$g4[link_count]; $i++)
{
if ($view[link][$i])
{
$cnt++;
$link = cut_str($view[link][$i], 65);
echo "<tr><td height=22> <img src='{$board_skin_path}/img/icon_link.gif' align=absmiddle> <a href='{$view[link_href][$i]}' target=_blank><strong>{$link}</strong> ({$view[link_hit][$i]})</a></td></tr>";
}
}
?>
▶위 소스 아래에
<!--★포인트보상금관련추가시작-->
<?
$point_gift = $view[wr_10]; //여유필드10의값을받음
if ($point_gift)
echo "<tr><td height=22> 포인트보상금 : <img src='{$board_skin_path}/img/icon_point.gif' align=absmiddle> <strong><u>".number_format($point_gift)."</u></strong> ({$view[wr_name]}님께서 선택한 코멘트 작성자에게 지급됩니다)</td></tr>";
?>
<!--★포인트보상금관련추가끝-->
▶위 소스를 삽입합니다. 다른 곳에 적절히 삽입하셔도 됩니다. (아이콘은 첨부화일 참조하세요)
※ 포인트보상금이 지급되고 없다면 포인트보상금에 관련된 내용은 사라집니다.
=====================================================================
=====================================================================
4.
보드스킨/view_comment.skin.php 화일을 여시고
<td><strong><?=$list[$i][name]?><? if ($is_ip_view) { echo " ({$list[$i][ip]})"; } ?></strong></td>
▶위 소스를..
<td><strong><?=$list[$i][name]?><? if ($is_ip_view) { echo " ({$list[$i][ip]})"; } ?></strong>
<!--★포인트보상금관련추가시작-->
<? if ($board[bo_use_comment] && !$view[mb_id] && !$point_gift && $member[mb_id]) { //코멘트 새창으로 뜰 경우 원글에서 정보가져오기
$a_arr =mysql_fetch_array(mysql_query("select mb_id,wr_10 from $write_table where wr_id = '{$list[$i][wr_parent]}'"));
$view[mb_id] = $a_arr[0]; $point_gift = $a_arr[1];
}
?>
<? if (!$list[$i][wr_10] && $point_gift && $member[mb_id] == $view[mb_id] && $view[mb_id] != $list[$i][mb_id]) {echo "<a href=\"{$g4[path]}/bbs/point_gift.php?bo_table={$bo_table}&wr_id={$wr_id}&comment_id={$comment_id}\" target='hiddenframe'><img src='{$board_skin_path}/img/icon_point.gif' border='0' align='absmiddle'><u> <strong>포인트 지급</strong></u></a> "; } ?>
<? if ($list[$i][wr_10]) echo "<img src='{$board_skin_path}/img/icon_point.gif' border='0' align='absmiddle'><u><strong>".number_format($list[$i][wr_10])."</strong> 포인트당첨!</u>"; ?>
<!--★포인트보상금관련추가끝-->
</td>
▶위 소스로 교체합니다. 적절한 곳에 주내용만 삽입하셔도 됩니다.
※ 회원이고, 원글 작성자만이 지급버튼을 볼 수 있습니다. 추천버튼 처럼 히든프레임으로
작동됩니다. 보상금이 지급되면, 주게시물의 보상금을 기록했던 wr_10필드값이 초기화 되고
해당 코멘트의 wr_10필드에 보상금이 기록됩니다.
=====================================================================
=====================================================================
5.
bbs/write_update.php 화일을 여시고
// 디렉토리가 없다면 생성합니다. (퍼미션도 변경하구요.)
@mkdir("$g4[path]/data/file/$bo_table", 0707);
@chmod("$g4[path]/data/file/$bo_table", 0707);
▶위 소스 윗줄에
//★포인트보상금관련추가시작
$wr_10 = trim($_POST["point_gift"]); //여유필드10사용
if ($wr_10 && ($wr_10 < 0 || $wr_10 > $member[mb_point]))
alert("포인트보상금({$wr_10})이 현재 포인트값({$member[mb_point]})을 넘을 수 없습니다.");
//★포인트보상금관련추가끝
▶위 소스를 삽입합니다. 아래로 내려가서
//------------------------------------------------------------------------------
// 가변 파일 업로드
// 나중에 테이블에 저장하는 이유는 $wr_id 값을 저장해야 하기 때문입니다.
for ($i=0; $i<count($upload); $i++)
▶위 소스 윗줄에
//★포인트보상금관련추가시작
$old_point_gift = trim($_POST["old_point_gift"]); //환불용
if ($w == "u" && $wr_10 != $old_point_gift) {
if (!delete_point($member[mb_id], $bo_table, $wr_id, '포인트보상금투자')) insert_point($member[mb_id], $old_point_gift, ""); //기존 포인트보상금 제거,환불
}
if ($wr_10) insert_point($member[mb_id], $wr_10 * (-1), "$board[bo_subject] $wr_id 글 포인트보상금 투자", $bo_table, $wr_id, '포인트보상금투자');
//★포인트보상금관련추가끝
▶위 소스를 삽입합니다.
※ 포인트보상금을 글과 함께 첨부해서 올리는 순간, 자신의 포인트에서 빠져나갑니다.
코멘트 작성자에게 보상금을 지급하기 전에 포인트보상금값을 수정하거나, 지우면
자신의 포인트로 잔액 또는 전액이 환불됩니다.
=====================================================================
=====================================================================
6.
bbs/delete.php 화일을 여시고
// 원글 포인트 삭제
if (!delete_point($row[mb_id], $bo_table, $row[wr_id], '쓰기'))
insert_point($row[mb_id], $board[bo_write_point] * (-1), "$board[bo_subject] $row[wr_id] 글삭제");
▶위 소스 아래줄에
//★포인트보상금관련추가
if (!delete_point($row[mb_id], $bo_table, $row[wr_id], '포인트보상금투자'))
insert_point($row[mb_id], $row[wr_10], "$board[bo_subject] $row[wr_id] 글 포인트보상금 전액환불");
▶위 소스를 삽입합니다.
※ 보상금이 남은 상태로 글을 지우면, 전액 환불되며, 포인트내역도 함께 정리됩니다.
=====================================================================
=====================================================================
7.
bbs/delete_all.php 화일을 여시고
// 원글 포인트 삭제
if (!delete_point($row[mb_id], $bo_table, $row[wr_id], '쓰기'))
insert_point($row[mb_id], $board[bo_write_point] * (-1), "$board[bo_subject] $row[wr_id] 글삭제");
▶위 소스 아래줄에
//★포인트보상금관련추가
if (!delete_point($row[mb_id], $bo_table, $row[wr_id], '포인트보상금투자'))
insert_point($row[mb_id], $row[wr_10], "$board[bo_subject] $row[wr_id] 글 포인트보상금 전액환불");
▶위 소스를 삽입합니다.
※ 보상금이 남은 상태로 글을 지우면, 전액 환불되며, 포인트내역도 함께 정리됩니다.
=====================================================================
=====================================================================
8.
아래 소스는 bbs/point_gift.php 화일 전체소스입니다. 그대로 복사하셔서 만드시면 되겠습니다.
<!--시작--->
<?
include_once("./_common.php");
if (!$is_member)
{
$href = "./login.php?$qstr&url=".urlencode("./board.php?bo_table=$bo_table&wr_id=$wr_id");
echo "<script language='JavaScript'>alert('회원만 가능합니다.'); top.location.href = '$href';</script>";
exit;
}
if (!($bo_table && $wr_id))
alert_close("값이 제대로 넘어오지 않았습니다.");
// SQL Injection 예방
$row = sql_fetch(" select count(*) as cnt from {$g4[write_prefix]}{$bo_table} ", FALSE);
if (!$row[cnt])
alert_close("존재하는 게시판이 아닙니다.");
$wr = get_write($write_table, $wr_id);
if (!$wr[wr_id])
alert_close("글이 존재하지 않습니다.\\n\\n글이 삭제되었거나 이동하였을 수 있습니다.");
//게시판 정보가져옴
$b_arr =mysql_fetch_array(mysql_query("select bo_subject from $g4[board_table] where bo_table = '$bo_table'"));
$bo_subject = $b_arr[0]; //게시판제목
//원글에서 정보가져옴
$a_arr =mysql_fetch_array(mysql_query("select mb_id,wr_10 from $write_table where wr_id = '$wr_id'"));
$source_mb_id = $a_arr[0]; //포인트보상금 내논분
$point_gift = $a_arr[1]; //포인트보상금
if (!$point_gift)
alert_close("지급할 포인트보상금이 없습니다.");
if ($member[mb_id] == trim($source_mb_id)) { //동일인인지 확인
//코멘트에서 정보가져옴
$c_arr =mysql_fetch_array(mysql_query("select mb_id from $write_table where wr_id = '$comment_id'"));
$target_mb_id = $c_arr[0]; //포인트보상금을 받을분
if ($source_mb_id == $target_mb_id) alert_close("본인의 코멘트에는 포인트보상금을 지급할 수 없습니다.");
insert_point($target_mb_id, $point_gift, "$bo_subject $wr_id 글 포인트보상금 당첨", '', '', ''); //포인트지급
@mysql_query("update $write_table set wr_10='' where wr_id='$wr_id'"); //원글의 wr_10필드에서 포인트보상금 삭제
@mysql_query("update $write_table set wr_10='$point_gift' where wr_id='$comment_id'"); //코멘트의 wr_10필드에 포인트보상금 기록
// 쪽지발송
$content ="[게시판] $bo_subject : \n 축하드립니다! {$point_gift} 포인트보상금을 지급받으셨습니다. \n $g4[url]/bbs/board.php?bo_table=$bo_table&wr_id=$wr_id#c_$comment_id";
$tmp_row = mysql_fetch_array(mysql_query("select max(me_id) as max_me_id from $g4[memo_table]"));
$me_ids = $tmp_row[max_me_id] + 1;
mysql_query("insert into $g4[memo_table] (me_id,me_recv_mb_id,me_send_mb_id,me_send_datetime,me_read_datetime,me_memo) values ('$me_ids','$target_mb_id','$source_mb_id','$g4[time_ymdhis]','','$content')");
mysql_query("update $g4[member_table] set mb_memo_call='$target_mb_id' where mb_id='$target_mb_id'");
echo "<script language='JavaScript'> alert('쪽지와 함께 {$point_gift}포인트를 발송해 드렸습니다.'); parent.location.reload();</script>";
}
?>
<script language="JavaScript"> window.close(); </script>
<!--끝-->
※보상금에 해당하는 포인트를 해당 코멘트 작성자에게 지급하며, 해당주소를 동봉한 쪽지를
발송합니다.
=====================================================================
=====================================================================
글을 쓸때 자신이 보유한 포인트 중 일부를 글과 함께 첨부하고, 맘에 드는 코멘트 작성자를
선택하여 지급하는 겁니다. 포인트를 댓가로 양질의 코멘트를 유도하는게 주 목적이겠죠.
=========================================================================
수정 해야 할 파일들은 다음과 같습니다.
1. 보드스킨/write.skin.php _________글쓰기에 포인트보상금 입력박스와 스크립추가
2. 보드스킨/list.skin.php __________보상금이 걸린 글은 관련이미지 출력
3. 보드스킨/view.skin.php __________보상금 얼만지 출력
4. 보드스킨/view_comment.skin.php __보상금 지급버튼(히든프레임이용)과 결과표시(wr_10필드에 기록)
5. bbs/write_update.php ____________포인트즉시감소,wr_10필드에 보상금저장,수정시 잔액계산및환불
6. bbs/delete.php __________________글삭제시 포인트보상금 전액환불
7. bbs/delete_all.php ______________상동
생성 해야 할 파일은 다음과 같습니다.
8. bbs/point_gift.php
많아 보이긴 하지만, 대부분 소스 좀 추가해 넣는 정도입니다.
수정 : 2006.3.22
-8.번 top.location.reload();를 parent.location.reload();로 수정 (프레임문제때문)
수정 : 2005.1.13
-글쓰기시 포인트보상금 입력박스는 회원인 경우에만 나오게 수정요;;
-포인트보상금 지급 후, 화면 리로드 되게 8.번 top.location.reload();추가요.
-8.번 쪽지 보낼때 "[게시판] 게시판명 : " 한줄 추가했습니다.
-8.번 <script language="JavaScript"> window.close(); </script> 마지막 줄에 추가요
=====================================================================
=====================================================================
1.
보드스킨/write.skin.php 화일을 여시고
<? if ($is_link) { ?>
▶위 소스 윗줄에
<!--★포인트보상금관련추가시작-->
<?if ($member[mb_id]) {?>
<?$point_gift = $write[wr_10]; //여유필드10의값을받음?>
<tr>
<td style='padding-left:20px; height:30px;'>· 포인트보상금</td>
<td><input type='text' class=ed size=4 maxlength=4 name='point_gift' itemname='포인트보상금' value='<?=$point_gift?>'> / 현재 포인트 <strong><u><?=number_format($member[mb_point])?></u></strong>
<input type='hidden' name='old_point_gift' value='<?=$point_gift?>'>
<div style="padding:2;"></div>※ 마음에 드는 코멘트를 다신 분께 포인트 보상금을 지급하실 수 있습니다.
</td>
</tr>
<tr><td colspan=2 height=1 bgcolor=#e7e7e7></td></tr>
<?}?>
<!--★포인트보상금관련추가끝-->
▶위 소스를 삽입합니다. 아래로 내려가서..
f.action = "./write_update.php";
▶위 소스 윗줄에
<!--★포인트보상금관련추가시작-->
<?if ($member[mb_id]) {?>
if (f.point_gift.value.length > 0) {
for (i = 0; i < f.point_gift.value.length; i++) {
if (f.point_gift.value.charAt(i) < '0' || f.point_gift.value.charAt(i) > '9') {
alert(f.point_gift.value.charAt(i) + "는 숫자가 아닙니다. 숫자만 입력하세요!");
f.point_gift.focus();
return;
}
}
}
if (f.point_gift.value < 0 || f.point_gift.value > <?=$member[mb_point]?>) {
alert("포인트 값은 0보다 크고 <?=$member[mb_point]?>보다 작아야 합니다.");
f.point_gift.value = "";
f.point_gift.focus();
return;
}
<?}?>
<!--★포인트보상금관련추가끝-->
▶위 소스를 삽입합니다.
※ maxlength=4 : 포인트를 4자리로 제한해 놨는데, 알아서 조절하시면 되겠습니다.
※ 코멘트 달려도 글수정이 가능하다면, 이미 한번 보상금 지급했어도 다시 걸 수 있고,
보상금을 안 걸었던 자신의 게시물에 멋진 코멘트가 달리면 그때 수정으로 보상금 넣고
보답하셔도 되겠습니다.
=====================================================================
=====================================================================
2.
보드스킨/list.skin.php 화일을 여시고
echo " " . $list[$i][icon_file];
echo " " . $list[$i][icon_link];
echo " " . $list[$i][icon_hot];
echo " " . $list[$i][icon_secret];
echo $nobr_end;
▶위 소스의 사이(주변) 아무곳에나 적절히 ....
//★포인트보상금관련추가시작
$point_gift = $list[$i][wr_10]; //여유필드10의값을받음
if ($point_gift) echo " <img src='{$board_skin_path}/img/icon_point.gif' align=absmiddle>";
//★포인트보상금관련추가끝
▶위 소스를 삽입합니다. 적절한 다른 곳에 삽입하셔도 됩니다. (아이콘은 첨부화일 참조하세요)
php문이니까 그냥 html문사이에 넣으시면 안돼겠죠. <? ?> 사이에 들어가야 하는 겁니다;
※ 포인트보상금이 있는 게시물이면 리스트에 아이콘뜨고, 지급되고 없다면 아이콘 안뜨겠죠.
=====================================================================
=====================================================================
3.
보드스킨/view.skin.php 화일을 여시고
// 링크
$cnt = 0;
for ($i=1; $i<=$g4[link_count]; $i++)
{
if ($view[link][$i])
{
$cnt++;
$link = cut_str($view[link][$i], 65);
echo "<tr><td height=22> <img src='{$board_skin_path}/img/icon_link.gif' align=absmiddle> <a href='{$view[link_href][$i]}' target=_blank><strong>{$link}</strong> ({$view[link_hit][$i]})</a></td></tr>";
}
}
?>
▶위 소스 아래에
<!--★포인트보상금관련추가시작-->
<?
$point_gift = $view[wr_10]; //여유필드10의값을받음
if ($point_gift)
echo "<tr><td height=22> 포인트보상금 : <img src='{$board_skin_path}/img/icon_point.gif' align=absmiddle> <strong><u>".number_format($point_gift)."</u></strong> ({$view[wr_name]}님께서 선택한 코멘트 작성자에게 지급됩니다)</td></tr>";
?>
<!--★포인트보상금관련추가끝-->
▶위 소스를 삽입합니다. 다른 곳에 적절히 삽입하셔도 됩니다. (아이콘은 첨부화일 참조하세요)
※ 포인트보상금이 지급되고 없다면 포인트보상금에 관련된 내용은 사라집니다.
=====================================================================
=====================================================================
4.
보드스킨/view_comment.skin.php 화일을 여시고
<td><strong><?=$list[$i][name]?><? if ($is_ip_view) { echo " ({$list[$i][ip]})"; } ?></strong></td>
▶위 소스를..
<td><strong><?=$list[$i][name]?><? if ($is_ip_view) { echo " ({$list[$i][ip]})"; } ?></strong>
<!--★포인트보상금관련추가시작-->
<? if ($board[bo_use_comment] && !$view[mb_id] && !$point_gift && $member[mb_id]) { //코멘트 새창으로 뜰 경우 원글에서 정보가져오기
$a_arr =mysql_fetch_array(mysql_query("select mb_id,wr_10 from $write_table where wr_id = '{$list[$i][wr_parent]}'"));
$view[mb_id] = $a_arr[0]; $point_gift = $a_arr[1];
}
?>
<? if (!$list[$i][wr_10] && $point_gift && $member[mb_id] == $view[mb_id] && $view[mb_id] != $list[$i][mb_id]) {echo "<a href=\"{$g4[path]}/bbs/point_gift.php?bo_table={$bo_table}&wr_id={$wr_id}&comment_id={$comment_id}\" target='hiddenframe'><img src='{$board_skin_path}/img/icon_point.gif' border='0' align='absmiddle'><u> <strong>포인트 지급</strong></u></a> "; } ?>
<? if ($list[$i][wr_10]) echo "<img src='{$board_skin_path}/img/icon_point.gif' border='0' align='absmiddle'><u><strong>".number_format($list[$i][wr_10])."</strong> 포인트당첨!</u>"; ?>
<!--★포인트보상금관련추가끝-->
</td>
▶위 소스로 교체합니다. 적절한 곳에 주내용만 삽입하셔도 됩니다.
※ 회원이고, 원글 작성자만이 지급버튼을 볼 수 있습니다. 추천버튼 처럼 히든프레임으로
작동됩니다. 보상금이 지급되면, 주게시물의 보상금을 기록했던 wr_10필드값이 초기화 되고
해당 코멘트의 wr_10필드에 보상금이 기록됩니다.
=====================================================================
=====================================================================
5.
bbs/write_update.php 화일을 여시고
// 디렉토리가 없다면 생성합니다. (퍼미션도 변경하구요.)
@mkdir("$g4[path]/data/file/$bo_table", 0707);
@chmod("$g4[path]/data/file/$bo_table", 0707);
▶위 소스 윗줄에
//★포인트보상금관련추가시작
$wr_10 = trim($_POST["point_gift"]); //여유필드10사용
if ($wr_10 && ($wr_10 < 0 || $wr_10 > $member[mb_point]))
alert("포인트보상금({$wr_10})이 현재 포인트값({$member[mb_point]})을 넘을 수 없습니다.");
//★포인트보상금관련추가끝
▶위 소스를 삽입합니다. 아래로 내려가서
//------------------------------------------------------------------------------
// 가변 파일 업로드
// 나중에 테이블에 저장하는 이유는 $wr_id 값을 저장해야 하기 때문입니다.
for ($i=0; $i<count($upload); $i++)
▶위 소스 윗줄에
//★포인트보상금관련추가시작
$old_point_gift = trim($_POST["old_point_gift"]); //환불용
if ($w == "u" && $wr_10 != $old_point_gift) {
if (!delete_point($member[mb_id], $bo_table, $wr_id, '포인트보상금투자')) insert_point($member[mb_id], $old_point_gift, ""); //기존 포인트보상금 제거,환불
}
if ($wr_10) insert_point($member[mb_id], $wr_10 * (-1), "$board[bo_subject] $wr_id 글 포인트보상금 투자", $bo_table, $wr_id, '포인트보상금투자');
//★포인트보상금관련추가끝
▶위 소스를 삽입합니다.
※ 포인트보상금을 글과 함께 첨부해서 올리는 순간, 자신의 포인트에서 빠져나갑니다.
코멘트 작성자에게 보상금을 지급하기 전에 포인트보상금값을 수정하거나, 지우면
자신의 포인트로 잔액 또는 전액이 환불됩니다.
=====================================================================
=====================================================================
6.
bbs/delete.php 화일을 여시고
// 원글 포인트 삭제
if (!delete_point($row[mb_id], $bo_table, $row[wr_id], '쓰기'))
insert_point($row[mb_id], $board[bo_write_point] * (-1), "$board[bo_subject] $row[wr_id] 글삭제");
▶위 소스 아래줄에
//★포인트보상금관련추가
if (!delete_point($row[mb_id], $bo_table, $row[wr_id], '포인트보상금투자'))
insert_point($row[mb_id], $row[wr_10], "$board[bo_subject] $row[wr_id] 글 포인트보상금 전액환불");
▶위 소스를 삽입합니다.
※ 보상금이 남은 상태로 글을 지우면, 전액 환불되며, 포인트내역도 함께 정리됩니다.
=====================================================================
=====================================================================
7.
bbs/delete_all.php 화일을 여시고
// 원글 포인트 삭제
if (!delete_point($row[mb_id], $bo_table, $row[wr_id], '쓰기'))
insert_point($row[mb_id], $board[bo_write_point] * (-1), "$board[bo_subject] $row[wr_id] 글삭제");
▶위 소스 아래줄에
//★포인트보상금관련추가
if (!delete_point($row[mb_id], $bo_table, $row[wr_id], '포인트보상금투자'))
insert_point($row[mb_id], $row[wr_10], "$board[bo_subject] $row[wr_id] 글 포인트보상금 전액환불");
▶위 소스를 삽입합니다.
※ 보상금이 남은 상태로 글을 지우면, 전액 환불되며, 포인트내역도 함께 정리됩니다.
=====================================================================
=====================================================================
8.
아래 소스는 bbs/point_gift.php 화일 전체소스입니다. 그대로 복사하셔서 만드시면 되겠습니다.
<!--시작--->
<?
include_once("./_common.php");
if (!$is_member)
{
$href = "./login.php?$qstr&url=".urlencode("./board.php?bo_table=$bo_table&wr_id=$wr_id");
echo "<script language='JavaScript'>alert('회원만 가능합니다.'); top.location.href = '$href';</script>";
exit;
}
if (!($bo_table && $wr_id))
alert_close("값이 제대로 넘어오지 않았습니다.");
// SQL Injection 예방
$row = sql_fetch(" select count(*) as cnt from {$g4[write_prefix]}{$bo_table} ", FALSE);
if (!$row[cnt])
alert_close("존재하는 게시판이 아닙니다.");
$wr = get_write($write_table, $wr_id);
if (!$wr[wr_id])
alert_close("글이 존재하지 않습니다.\\n\\n글이 삭제되었거나 이동하였을 수 있습니다.");
//게시판 정보가져옴
$b_arr =mysql_fetch_array(mysql_query("select bo_subject from $g4[board_table] where bo_table = '$bo_table'"));
$bo_subject = $b_arr[0]; //게시판제목
//원글에서 정보가져옴
$a_arr =mysql_fetch_array(mysql_query("select mb_id,wr_10 from $write_table where wr_id = '$wr_id'"));
$source_mb_id = $a_arr[0]; //포인트보상금 내논분
$point_gift = $a_arr[1]; //포인트보상금
if (!$point_gift)
alert_close("지급할 포인트보상금이 없습니다.");
if ($member[mb_id] == trim($source_mb_id)) { //동일인인지 확인
//코멘트에서 정보가져옴
$c_arr =mysql_fetch_array(mysql_query("select mb_id from $write_table where wr_id = '$comment_id'"));
$target_mb_id = $c_arr[0]; //포인트보상금을 받을분
if ($source_mb_id == $target_mb_id) alert_close("본인의 코멘트에는 포인트보상금을 지급할 수 없습니다.");
insert_point($target_mb_id, $point_gift, "$bo_subject $wr_id 글 포인트보상금 당첨", '', '', ''); //포인트지급
@mysql_query("update $write_table set wr_10='' where wr_id='$wr_id'"); //원글의 wr_10필드에서 포인트보상금 삭제
@mysql_query("update $write_table set wr_10='$point_gift' where wr_id='$comment_id'"); //코멘트의 wr_10필드에 포인트보상금 기록
// 쪽지발송
$content ="[게시판] $bo_subject : \n 축하드립니다! {$point_gift} 포인트보상금을 지급받으셨습니다. \n $g4[url]/bbs/board.php?bo_table=$bo_table&wr_id=$wr_id#c_$comment_id";
$tmp_row = mysql_fetch_array(mysql_query("select max(me_id) as max_me_id from $g4[memo_table]"));
$me_ids = $tmp_row[max_me_id] + 1;
mysql_query("insert into $g4[memo_table] (me_id,me_recv_mb_id,me_send_mb_id,me_send_datetime,me_read_datetime,me_memo) values ('$me_ids','$target_mb_id','$source_mb_id','$g4[time_ymdhis]','','$content')");
mysql_query("update $g4[member_table] set mb_memo_call='$target_mb_id' where mb_id='$target_mb_id'");
echo "<script language='JavaScript'> alert('쪽지와 함께 {$point_gift}포인트를 발송해 드렸습니다.'); parent.location.reload();</script>";
}
?>
<script language="JavaScript"> window.close(); </script>
<!--끝-->
※보상금에 해당하는 포인트를 해당 코멘트 작성자에게 지급하며, 해당주소를 동봉한 쪽지를
발송합니다.
=====================================================================
=====================================================================
추천
14
14
댓글 21개

오~~~ 아이디어가....... gooooooooooooooooooooood^^
8.번 마지막 줄쯤에 포인트보상금 지급 후 화면 리로드 되게 top.location.reload();를 추가시켰습니다.
프레임쓰시는 분이나 빠른 진행을 원하는 분은 빼셔야 합니다. 전체가 리로딩 되니깐요.
프레임쓰시는 분이나 빠른 진행을 원하는 분은 빼셔야 합니다. 전체가 리로딩 되니깐요.
와~~정말 좋은 팁이네영 감사드려영 쵸오님^^*
관리자나 주고받은 회원들의 포인트로그는 기록되는거졍?
관리자나 주고받은 회원들의 포인트로그는 기록되는거졍?
네 기록됩니다.

정말 좋은 팁이네요...감사합니다...

멋진 아이디어 입니다.^^
저역시 코멘트 활성화를 위해서 비슷한 방법을 생각하고 있었습니다.
지금은 반대로 코멘트에서 원글의 평가점수를 주고 특정점수가 될때마다
원글 작성자에게 포인트를 주는걸 만들고 있습니다.
저역시 코멘트 활성화를 위해서 비슷한 방법을 생각하고 있었습니다.
지금은 반대로 코멘트에서 원글의 평가점수를 주고 특정점수가 될때마다
원글 작성자에게 포인트를 주는걸 만들고 있습니다.
하하..
재미있는 소스네요^^
재미있는 소스네요^^
감사합니다. 글쓰기시 포인트보상금 입력박스는 회원인 경우에만 나오게 수정했습니다. 그걸 빼놨네요.
아쵸오님 올려주신 자료를 지금 봤네요^^
...좀 생각을 정리해서 답글을 올려야 하는데 우선 감사 드리고 싶어서..
돈도 벌기만하면 재미가 없지요,,쓰는맛이 있어야 살맛이 나지요.
커뮤니티 운영에 있어서 포인트는 건전지,비타민,도토리,알약,,등등 이름을 바꿔서
사용하겠지만 그누 포인트는 쌓이는것은 있는데 기~꺼이 쓸 곳이 부족한 듯해서
애석 했습니다.좋은 자료 올려주셔서 다시 한번 감사 드려요.
저가 프로그램쪽에는 문외한이다보니 그림은 그려지는데 웹상으로 구현을 못해서
항상 답답 했습니다.
그 예로 사랑메시지 전광판과 예약판[원하는 날자,원하는 시간대,같은시간대 TO는6개 정도]을
만들고 매시지 적는 게시판에 답글을 달수 있게
하는 그누의 팁이 있었으면 좋겠다고 평상시 생각 해왔습니다.
약간씩 변형해서 회원을 위한 여러가지 이벤트도 가능 할것 같습니다.
이제 답글에 보너스 기능은 있으니 전광판과 예약판만 구하면 될듯 합니다..^^
에구구,,글쓰다 보니 라면이 죽이되성,,ㅎㅎ
...좀 생각을 정리해서 답글을 올려야 하는데 우선 감사 드리고 싶어서..
돈도 벌기만하면 재미가 없지요,,쓰는맛이 있어야 살맛이 나지요.
커뮤니티 운영에 있어서 포인트는 건전지,비타민,도토리,알약,,등등 이름을 바꿔서
사용하겠지만 그누 포인트는 쌓이는것은 있는데 기~꺼이 쓸 곳이 부족한 듯해서
애석 했습니다.좋은 자료 올려주셔서 다시 한번 감사 드려요.
저가 프로그램쪽에는 문외한이다보니 그림은 그려지는데 웹상으로 구현을 못해서
항상 답답 했습니다.
그 예로 사랑메시지 전광판과 예약판[원하는 날자,원하는 시간대,같은시간대 TO는6개 정도]을
만들고 매시지 적는 게시판에 답글을 달수 있게
하는 그누의 팁이 있었으면 좋겠다고 평상시 생각 해왔습니다.
약간씩 변형해서 회원을 위한 여러가지 이벤트도 가능 할것 같습니다.
이제 답글에 보너스 기능은 있으니 전광판과 예약판만 구하면 될듯 합니다..^^
에구구,,글쓰다 보니 라면이 죽이되성,,ㅎㅎ

스킨자료실에 보면 네이버의 지식인을 패러디한 스킨이나 질문전용 게시판에서 질문자가
선택한 답변 이라는스킨에서 이기능을 접목 시키면 금상첨화 인것 같습니다.
선택한 답변 이라는스킨에서 이기능을 접목 시키면 금상첨화 인것 같습니다.
네엡.. 필요하신 분이 계시다면 잘 섞어서 활용하시리라 생각합니다. 좋은 날 되세요.
좋은 팁 감사합니다. 아쵸오님께서 올려주신 팁을 활용하고 있는데,,
원래 보상금 빠져 나가는 것이 wr_10에 두번이나 기록 되는지요?
적용한 게시판에 글을 작성할 때 보상금 100을 설정하고 게시판 글을 완료하고 포인트 내역을 보니까
ㅇㅇ게시판 160 글 포인트보상금 투자 -100
ㅇㅇ게시판 글 포인트보상금 투자 -100
이렇게 두가지의 포인트 내역과 함께 도합 -200점이 빠진 상태로 포인트가 정리 되는데 어떻게 된 것인지요?
원래 두 번을 빼는 것이라면 특별한 이유가 있는지 궁금하고 아니라면 어느 부분을 고쳐야 하는지 알려주시면 감사하겠습니다.
참고로 아쵸님의 또 다른 팁중에 "코멘트 + 평점주기,평가그래프,보너스포인트" 를 한 게시판에 함께 적용하고 있습니다.
원래 보상금 빠져 나가는 것이 wr_10에 두번이나 기록 되는지요?
적용한 게시판에 글을 작성할 때 보상금 100을 설정하고 게시판 글을 완료하고 포인트 내역을 보니까
ㅇㅇ게시판 160 글 포인트보상금 투자 -100
ㅇㅇ게시판 글 포인트보상금 투자 -100
이렇게 두가지의 포인트 내역과 함께 도합 -200점이 빠진 상태로 포인트가 정리 되는데 어떻게 된 것인지요?
원래 두 번을 빼는 것이라면 특별한 이유가 있는지 궁금하고 아니라면 어느 부분을 고쳐야 하는지 알려주시면 감사하겠습니다.
참고로 아쵸님의 또 다른 팁중에 "코멘트 + 평점주기,평가그래프,보너스포인트" 를 한 게시판에 함께 적용하고 있습니다.
원글 작성자가 포인트보상금을 글과 함께 첨부하는 경우.. 포인트보상금 값이 원글의 wr_10 에 기록됩니다. 물론 1번 기록되겠죠. 이 보상금을 코멘트작성인에게 지급한 경우, 원글의 wr_10에 기록된 정보는 삭제되고, 지급된 코멘트의 wr_10에 기록이 됩니다. 따라서, 한곳에 2번 기록되는 것이 아니고, 원글쪽에 지급해야할 포인트보상그 1번 기록, 코멘트쪽에 지급된 포인트보상금 1번 기록된다고 보시면 됩니다.
============
현재 저도 같은 팁을 위 내용 그대로 적용 중인데요. 보상금을 첨부하고 포인트내역을 살펴 보면
자유게시판 85 글 포인트보상금 투자 -100 이런식으로 1개만 나오거든요.
말씀하신 것 처럼 2중으로 처리되는건 왜 그런지 정확히 머라 말씀드리기 힘드네요.
본문의 소스 확인해 보시면 아시겠지만, 1번만 처리 되게 되어 있거든요.
5. bbs/write_update.php 에서 마지막 쪽에
if ($wr_10) insert_point($member[mb_id], $wr_10 * (-1), "$board[bo_subject] $wr_id 글 포인트보상금 투자", $bo_table, $wr_id, '포인트보상금투자');
이 부분이 원글작성자로 부터 포인트보상금을 포인트에서 뽑아내는 부분입니다.
혹시, 팁 적용하실때 이중으로 코드가 삽입되었거나 또는 그런 상황에 놓이게 하신건 아닌지..
저도 잘 모르겠습니다. 죄송합니다.
============
"코멘트 + 평점주기,평가그래프,보너스포인트" 팁의 경우는 포인트보상금의 포인트내역과는 다른 메시지로 기록되므로 관련은 없을 것으로 생각합니다. 현재 저도 같이 적용 중에 있지만, 말씀하신 문제는 없네요. 명확한 답변 못드려 죄송합니다.
============
현재 저도 같은 팁을 위 내용 그대로 적용 중인데요. 보상금을 첨부하고 포인트내역을 살펴 보면
자유게시판 85 글 포인트보상금 투자 -100 이런식으로 1개만 나오거든요.
말씀하신 것 처럼 2중으로 처리되는건 왜 그런지 정확히 머라 말씀드리기 힘드네요.
본문의 소스 확인해 보시면 아시겠지만, 1번만 처리 되게 되어 있거든요.
5. bbs/write_update.php 에서 마지막 쪽에
if ($wr_10) insert_point($member[mb_id], $wr_10 * (-1), "$board[bo_subject] $wr_id 글 포인트보상금 투자", $bo_table, $wr_id, '포인트보상금투자');
이 부분이 원글작성자로 부터 포인트보상금을 포인트에서 뽑아내는 부분입니다.
혹시, 팁 적용하실때 이중으로 코드가 삽입되었거나 또는 그런 상황에 놓이게 하신건 아닌지..
저도 잘 모르겠습니다. 죄송합니다.
============
"코멘트 + 평점주기,평가그래프,보너스포인트" 팁의 경우는 포인트보상금의 포인트내역과는 다른 메시지로 기록되므로 관련은 없을 것으로 생각합니다. 현재 저도 같이 적용 중에 있지만, 말씀하신 문제는 없네요. 명확한 답변 못드려 죄송합니다.
수정되었습니다.
write_update.php의 추가하는 부위를 잘못 기입하였습니다.
이제 제대로 됩니다.
성심껏 답변을 주셔서 감사를 드립니다.
새해 복 많이 받으세요.
write_update.php의 추가하는 부위를 잘못 기입하였습니다.
이제 제대로 됩니다.
성심껏 답변을 주셔서 감사를 드립니다.
새해 복 많이 받으세요.
감사합니다. 적용했습니다.
멋지게 잘 이용 하고 있습니다.
한사람이 지식인 글을 두번쓰면 한번은 글 쓸때 포인트 거는 만큼 포인트 금액이 빠져 나가는데
두번째 글을 쓸때 부터는 포인트 거는 금액이 빠져 나가지 않네요!! 어떻게 된일까요?
두번째 글을 쓸때 부터는 포인트 거는 금액이 빠져 나가지 않네요!! 어떻게 된일까요?

.
좋은팁이네요 잘 쓸게염

오오 좋다..~

포상금