웹마스터 팁

(포인트) 선물하기

2007.11.30 16:41

Simulz

포인트를 다른 회원에게 주는 소스

문제점 1. 받는 사람에게는 포인트 수신 내용이 표시되지 않음
    해결하려면 DB에 포인트 송수신 기록 테이블을 추가해야 하는 작업을 해야 하는데 이 때문에 커밋을 미루고 있음.

    아직은 실용성이 낮으므로 나중에 포인트를 사용하는 모듈이 추가되면 그 때 기능을 개선해야 겠습니다.




위치 modules\member
파일 member.controller.php
함수 procMemberSendMessage

함수 하단의 return 줄 위에 아래 소스를 추가

            //포인트 선물
            $send_point = Context::get('send_point');
            if($send_point > 0) {
                $oPointController = &getController('point');
                $output_point = $oPointController->sendPoint($send_point, $logged_info->member_srl, $receiver_srl);
                if(!$output_point->toBool()) $output = $output_point;
            }

            return $output; 이 줄 위에 소스 삽입



위치 modules\member\lang
파일 *.lang.php


아래 소스 추가

    $lang->my_point = "내 포인트";
    $lang->send_point = "포인트";
    $lang->cmd_send_point = "포인트 선물";
    $lang->about_send_point = "선물할 포인트를 입력하면 상대방에게 이동됩니다.";




위치 modules\member\skins\스킨
파일 send_message.html

아래 소스를 <table cellspacing="0" class="leftHeaderType"> 테이블 내에 원하는 곳에 삽입

            {@
                $oPointModel = &getModel('point');
                $point = $oPointModel->getPoint($logged_info->member_srl);
            }
            <tr>
                <th scope="row">{$lang->cmd_send_point}</th>
                <td><input type="text" value="" name="send_point" /> {$lang->my_point}: {$point}<br />{$lang->about_send_point}</td>
            </tr>


권장: 아래 소스 밑에 추가하면 좋습니다.
            <tr>
                <th scope="row">{$lang->cmd_option}</th>
                <td><input type="checkbox" value="Y" name="send_mail"  /> {$lang->cmd_send_mail}</td>
            </tr>
            (여기에 소스를 삽입)



위치 modules\member\skins\스킨\filter
파일 send_message.xml


아래 소스를 <form> 노드 안에 추가하세요.

        <node target="send_point" filter="number" />




위치 modules\point
파일 point.controller.php

아래 함수를 하단에 추가하세요.

        /**
         * @brief 포인트 이동 2007.11.28
         **/

        function sendPoint($send_point, $sender_srl, $receiver_srl) {
            $send_point = (int)abs($send_point);
            if($send_point) {
                // 대상 회원의 포인트를 구함
                $oPointModel = &getModel('point');
                $sender_point = $oPointModel->getPoint($sender_srl, true);
                $receiver_point = $oPointModel->getPoint($receiver_srl, true);

                // 포인트 이동 후 0보다 작으면 오류
                if($sender_point - $send_point < 0) return new Object(-1,'msg_not_enough_point');

                // 포인트 증감
                $sender_point -= $send_point;
                $this->setPoint($sender_srl, $sender_point);

                $receiver_point += $send_point;
                $this->setPoint($receiver_srl, $receiver_point);
            }

            return new Object();
        }




위치 modules\point\lang
파일 *.lang.php

아래 소스를 추가하세요.

    $lang->msg_not_enough_point = '포인트가 부족합니다.';




사용 방법
쪽지 보내기 기능을 사용합니다

회원 닉네임의 단축메뉴에서 쪽지 보내기를 누르고 포인트 선물 입력 폼에 보낼 포인트를 입력합니다.
쪽지 내용 작성 후 전송합니다.



팁을 적용해보시고 잘 되는지 여부와 오류 발생시 내용을 댓글로 알려주세요~animate_emoticon%20(62).gif

제목 글쓴이 날짜
.htaccess를 이용하여 트래픽 유발시키는 IP 막기 [1] [1] 라르게덴 2008.04.15
오른쪽 마우스 사용금지 스크립트 [6] 하늘(skycheer) 2008.04.14
FF에서 플래시 로딩 못하는 현상 해결방법 [3] hangoon 2008.04.13
최근문서위젯의 제목을 누르면 게시판으로 이동 [3] file CL님 2008.04.13
회원 가입 임시 제한 일자 버그 수정 방법 [2] file 껄껄껄 2008.04.13
블로그 카테고리 클릭시 카테고리별 리스트 형태 바꾸는 팁 [1] 조성우371 2008.04.13
글을 읽을때 마다 조회수가 증가 하는 팁 (1.0.0↑) [5] SKYMARU 2008.04.12
사이트 주소 또는 title 고정시키기 [6] 하늘(skycheer) 2008.04.12
큰이미지 자동 리사이즈 안되게 하기 + 다른 갤러리 달아보기 [3] file Clanss 2008.04.12
최신 댓글부터 역순으로 정렬하기 [5] [1] 쏘프티 2008.04.11
404 에러 페이지를 만들어 보자 [2] hangoon 2008.04.11
신청서 양식의 게시판에서 관리자가 아니면 게시판 리스트 안보이게 하기. [1] burster 2008.04.10
[3-1차 수정]확장변수 자유롭게 내 마음대로 게시글 리스트에 표현 합시다!![ver1.0.1] [16] file 대암지기 2008.04.09
제로보드 설치 후 뭘 어떻해야 할지 깜깜할때 dharma0999 2008.04.09
DIV라운드 박스를 제로보드 스킨에 적용하는 방법 [4] file 팔공산 2008.04.09
에디터 사용 옵션으로 처리하기[안내][ver 1.0.1][Page4-1] [2] file 대암지기 2008.04.08
에디터 사용 옵션으로 처리하기[기타 MODULE][ver 1.0.1][Page4-2] 대암지기 2008.04.08
에디터 사용 옵션으로 처리하기[EDITOR MODULE][ver 1.0.1][Page4-3] 대암지기 2008.04.08
에디터 사용 옵션으로 처리하기[BOARD MODULE][ver 1.0.1][Page4-4] 대암지기 2008.04.08
레이아웃수정시 참고할 zbXe레이아웃스킨의 css와 layout 상관관계(1.0.0 기본스킨) [21] file 갯가 2008.04.08