웹마스터 팁
(포인트) 선물하기
2007.11.30 16:41
포인트를 다른 회원에게 주는 소스
문제점 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->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> 노드 안에 추가하세요.
위치 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
아래 소스를 추가하세요.
사용 방법
쪽지 보내기 기능을 사용합니다
회원 닉네임의 단축메뉴에서 쪽지 보내기를 누르고 포인트 선물 입력 폼에 보낼 포인트를 입력합니다.
쪽지 내용 작성 후 전송합니다.
팁을 적용해보시고 잘 되는지 여부와 오류 발생시 내용을 댓글로 알려주세요~
댓글 9
-
똑디
2007.11.30 17:43
-
캬캬캬캬캬캬
2007.12.01 18:51
코드는 괜찮은데 포인트가 전송이 되지않는 문제가 생기네요.
그리고 코드 수정할때 무슨 에디트 쓰시나요? -
Simulz
2007.12.01 18:54
포인트 숫자와 오버 포인트 입력시 부족하다는 메시지는 뜨나요?
에디터는 EditPlus를 사용합니다. -
캬캬캬캬캬캬
2007.12.02 17:17
안뜨는데요...
-
Simulz
2007.12.02 22:32
소스가 제대로 적용이 안되서 그럴 수 있습니다. Editplus 등의 코딩용 편집기를 사용해보세요.
UTF-8로 저장해야 합니다. -
캬캬캬
2007.12.05 14:04
오! 이제야 되네요.
감사합니다. -
똑디
2007.12.03 11:56
저도 현재 사용중인데..전 문제없이 잘 되는것 같습니다.^^
-
유우타
2008.06.06 23:01
감사합니다. 잘 쓰겠습니다. ^^ -
장승일
2008.11.03 22:49
아무리해도 포인트가 가질 않네요 ㅠㅠ
제목 | 글쓴이 | 날짜 |
---|---|---|
제한된 외국 호스팅 환경에 맞추어 쓰기..... [5] | Falls Too Fast | 2007.11.20 |
XP 환경에서의 속도 저하 문제 해결 (Apache 2.2.X) [2] | Netsblue | 2007.11.20 |
분류(category) 필수로 입력받기 [9] | Diver | 2007.11.20 |
제한된 서버에서 ZBXE가 돌아가도록 설정하기 [2] | Falls Too Fast | 2007.11.22 |
(글) 첨부 파일 날짜 출력 및 아이콘 표시 [1] | Simulz | 2007.11.22 |
XE treeview [4] | 앙데르센 | 2007.11.22 |
글쓴이 이메일 정보 감추기 [2] | 대암지기 | 2007.11.22 |
배경이미지기능으로 페이지꾸미기 [3] | 팔공산 | 2007.11.23 |
소스에서 php short tags 제거하기 [1] | 토우코 | 2007.11.24 |
클립보드로 텍스트 복사하기 [5] | 베니 | 2007.11.24 |
윈도우 라이브 메신저를 홈페이지 서명난에 달자 [1] | Diver | 2007.11.26 |
[동영상 강좌1] zbxe 설치하기 [120] | 필반 | 2007.11.26 |
팁이라긴.. 약하지만;; Trac을 이용한 최신버전을 다운로드 받자!! [3] | 동균84 | 2007.11.26 |
MSN로그인 상태를 홈피좌측 메뉴에 삽입하는 방법 [9] | 팔공산 | 2007.11.27 |
(회원정보) 보기 페이지에서 포인트 변경하기 [4] | Simulz | 2007.11.28 |
google base 사용기. | font | 2007.11.29 |
메뉴에 이미지버튼 사용하기 [11] | 정낙훈(xynex) | 2007.11.29 |
(포인트) 선물하기 [9] | Simulz | 2007.11.30 |
위젯배경이미지방 오픈했습니다. [2] | 팔공산 | 2007.12.03 |
[동영상 강좌2] zbxe 페이지 생성과 기능 설명 [45] | 필반 | 2007.12.03 |
simulz님 잘 사용하고 있습니다.^^ 다시한번 감사드립니다.