쪽지기능 + 포인트 선물로 보내기 추가 (수정1) > 그누4 팁자료실

그누4 팁자료실

그누보드4와 관련된 팁을 여러분들과 함께 공유하세요.
나누면 즐거움이 커집니다.

쪽지기능 + 포인트 선물로 보내기 추가 (수정1) 정보

쪽지기능 + 포인트 선물로 보내기 추가 (수정1)

본문

쪽지를 보낼때 자신의 포인트 일부를 상대방에게 선물로 보낼 수 있는 기능을 추가했습니다.

선물로 보낸 포인트의 경우, 발송한 쪽지가 지워지든 말든 일단 발송하게 되면 상대방 소유가됩니다.
보내고 받은 포인트는 모두 포인트 내역에서 확인이 가능하며, 받는 분은 쪽지 내용 밑에 선물멘트가 간단히 삽입되며,
보낸 분에게는 즉시 확인쪽지가 발송됩니다. 주석처리하여 이 부분은 제외시켜도 되겠습니다.

전에 올린 "포인트값으로 레벨 (업/다운) 자동 변경하기 http://sir.co.kr/bbs/tb.php/g4_tiptech/2009"와 함께 써도 되겠고, 별도로 쓰셔도 됩니다.

※추가할 페이지는 없으며, 수정할 문서는 2개 입니다.
- member스킨폴더/memo_form.skin.php
- bbs폴더/memo_form_update.php


1.
member스킨폴더/memo_form.skin.php에서

        <tr>
            <td width="540" height="2" align="center" valign="top" bgcolor="#FFFFFF">
                <table width=100% cellpadding=1 cellspacing=1 border=0>
                <tr bgcolor=#E1E1E1 align=center>
                    <td width="30%" height="24" rowspan="2"><b>받는 회원아이디</b></td>
                    <td width=70% align="center"><input type=text name="me_recv_mb_id" required itemname="받는 회원아이디" value="<?=$me_recv_mb_id?>" style="width:95%;"></td>
                </tr>
                <tr bgcolor=#E1E1E1 align=center>
                    <td>※ 여러 회원에게 보낼때는 컴마(,)로 구분하세요.</td>
                </tr>
                </table>
            </td>
        </tr>
        <tr>
            <td height="200" align="center" valign="middle" bgcolor="#F6F6F6">
                <textarea name=me_memo rows=10 style='width:95%;' required itemname='내용'><?=$content?></textarea></td>
        </tr>

▶다음 줄에..

        <!--★포인트보내기관련 추가시작-->
        <tr>
            <td width="540" height="2" align="center" valign="top" bgcolor="#FFFFFF">
                <table width=100% cellpadding=1 cellspacing=1 border=0>
                <tr bgcolor=#E1E1E1 align=center>
                    <td width="30%" height="24" rowspan="2"><b>포인트 보내기</b></td>
                    <td width=70% align="left"><input type=text size="5" maxlength="5" name="me_send_point" itemname="포인트 보내기" value=""> / 현재 포인트 <strong><u><?=number_format($member[mb_point])?></u></strong></td>
                </tr>
                <tr bgcolor=#E1E1E1 align=left>
                    <td>※ 포인트는 발송 즉시 상대방 소유가 됩니다.</td>
                </tr>
                </table>
            </td>
        </tr>
        <!--★포인트보내기관련 추가끝-->

▶위 소스를 추가해 줍니다. 그리고 아래쪽으로 내려가서

    document.getElementById("btn_submit").disabled = true;
   
    f.action = "./memo_form_update.php";
    f.submit();

▶위 소스 윗줄에

    <!--★포인트보내기관련 추가시작-->
    if (f.me_send_point.value.length > 0) {
        for (i = 0; i < f.me_send_point.value.length; i++) {
            if (f.me_send_point.value.charAt(i) < '0' || f.me_send_point.value.charAt(i) > '9') {
              alert(f.me_send_point.value.charAt(i) + "는 숫자가 아닙니다. 숫자만 입력하세요!");
              f.me_send_point.focus();
              return;
            }
        }
    }
    if (f.me_send_point.value < 0 || f.me_send_point.value > <?=$member[mb_point]?>) {
      alert("포인트 값은 0보다 크고 <?=$member[mb_point]?>보다 작아야 합니다.");
      f.me_send_point.value = "";
      f.me_send_point.focus();
      return;
    }
    <!--★포인트보내기관련 추가끝-->

▶를 추가해 줍니다.




2.
bbs폴더/memo_form_update.php는 주석을 달아 놓았으므로 통째로 올립니다.


<?
include_once("./_common.php");
$me_send_point = trim($_POST["me_send_point"]); //★포인트보내기관련-포인트값

if (!$member[mb_id])
    alert("회원만 이용하실 수 있습니다.");

$tmp_list = explode(",", $me_recv_mb_id);
$msg = "";
$comma = "";
$mb_list = array();
for ($i=0; $i<count($tmp_list); $i++) {
    $row = get_member($tmp_list[$i]);
    if (!$row[mb_id] || $row[mb_leave_date] || $row[mb_intercept_date]) {
        $msg .= "$comma$tmp_list[$i]";
        $comma = ",";
    } else {
        $mb_list[] = $tmp_list[$i];
        $mb_list_nick[] = $row[mb_nick]; //★포인트보내기관련-닉네임저장
        $total_spoint = $total_spoint + $me_send_point; //★포인트보내기관련-총포인트계산
    }
}

if ($msg)
    alert($msg . " 은(는) 존재하지 않는 회원아이디 이거나 탈퇴, 접근차단된 회원아이디 입니다.\\n\\n쪽지를 발송하지 않았습니다.");

//★포인트보내기관련추가
if ($total_spoint && ($total_spoint < 0 || $total_spoint > $member[mb_point]))
    alert("보내시려는 총 포인트값({$total_spoint})이 현재 포인트값({$member[mb_point]})을 넘었습니다. \\n\\n발송이 취소되었습니다.");

if ($total_spoint) $me_memo = $me_memo."\n\n\n[{$member[mb_nick]}({$member[mb_id]})님의 포인트선물 : ".$me_send_point."]"; //★포인트보내기관련-상대방쪽지에멘트삽입

for ($i=0; $i<count($mb_list); $i++) {
    if (trim($mb_list[$i])) {

        $tmp_row = sql_fetch(" select max(me_id) as max_me_id from $g4[memo_table] ");
        $me_id = $tmp_row[max_me_id] + 1;

        // 쪽지 INSERT
        $sql = " insert into $g4[memo_table]
                        ( me_id, me_recv_mb_id, me_send_mb_id, me_send_datetime, me_memo )
                values ( '$me_id', '$mb_list[$i]', '$member[mb_id]', '$g4[time_ymdhis]', '$me_memo' ) ";
        sql_query($sql);

        // 실시간 쪽지 알림 기능
        $sql = " update $g4[member_table]
                    set mb_memo_call = '$member[mb_id]'
                  where mb_id = '$mb_list[$i]' ";
        sql_query($sql);
       
        insert_point($mb_list[$i], $me_send_point, "{$member[mb_nick]}({$member[mb_id]})님께 $me_send_point 포인트 받음", '', '', ''); //★포인트보내기관련-상대방포인트상승
        insert_point($member[mb_id], -$me_send_point, "{$mb_list_nick[$i]}({$mb_list[$i]})님께 $me_send_point 포인트 보냄", '', '', ''); //★포인트보내기관련-본인포인트차감
    }
}


if ($total_spoint) {
    $pment = "{$me_send_point} 포인트와 함께";
    //★포인트보내기관련-본인에게 포인트 보내기 결과 쪽지발송
    $cpoint = $member[mb_point] - $total_spoint;
    $content ="$me_recv_mb_id 님께 {$me_send_point} (총{$total_spoint})포인트를 보내드렸습니다. 현재 남은 포인트는 {$cpoint}입니다. 자세한 사항은 포인트 내역을 참조하세요.";
    $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','$member[mb_id]','$member[mb_id]','$g4[time_ymdhis]','','$content')");
    mysql_query("update $g4[member_table] set mb_memo_call='$member[mb_id]' where mb_id='$member[mb_id]'");
}

alert("$me_recv_mb_id 님께 $pment 쪽지를 전달하였습니다.", "./memo.php?kind=send");//★포인트보내기관련-수정
?>
추천
5

댓글 15개

제로보드를 쓰다가 그누로 옮길까 하던 차였는데....포인트선물 팁이 없어 망설이던 중 반가운 팁이네요. 적용해보진 못했습니다만 기뻐서 코멘트합니다. 스크랩! T^T
전체 0 |RSS
그누4 팁자료실 내용 검색
  • 개별 목록 구성 번호 제목 작성자 작성일 추천 조회
  • 게시물이 없습니다.

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT