https://xe1.xpressengine.com/qna/22377789
위 글과 매우 유사한데... 댓글이 없어서 힌트를 얻을만한 부분이 없더군요.
XE의 특정 버튼이나 페이지를 들어가면 포인트가 차감되고, 다른 DB에 차감된 만큼 증가시키고 싶습니다.
https://xe1.xpressengine.com/qna/22377789
위 글과 매우 유사한데... 댓글이 없어서 힌트를 얻을만한 부분이 없더군요.
XE의 특정 버튼이나 페이지를 들어가면 포인트가 차감되고, 다른 DB에 차감된 만큼 증가시키고 싶습니다.
<?
//외부 php에서 xe의 함수, 변수를 사용하기 위한 선언
define('__XE__',true);
require_once("../../xe/config/config.inc.php"); //위치는 이 파일의 위치에 따라서 수정
$oContext = &Context::getInstance(); //음 뭔지 모르지만 같이 있었네요.
$oContext->init();
$logged_info = Context::get('logged_info');
$member_srl = $logged_info->member_srl; //로그인 정보에서 회원의 srl을 가져옵니다. 아래 부분에 if문으로 srl이 있어야 동작하도록 추가해야겠죠?
$oPointModel = &getModel('point'); //포인트 모듈을 불러오고
$point = $oPointModel->getPoint($member_srl); // 위에서 알아낸 회원의 포인트를 가져옵니다.
//포인트가 부족한 경우를 대비하여 아래에 위 변수를 가지고 if문으로....
$point2 = 100; //더하거나 뺄 포인트
$action = 'minus'; //'add'는 캐쉬 적립 , 'minus'는 캐쉬 차감 , 'update'는 캐쉬 수정;
$oPointController = &getController('point');
$oPointController->setPoint($member_srl, $point2, $action);
//여기부터는 xe가 아닌 다른 db의 동작을 하면 되겠네요~
?>
핵심 코드만 적어봤습니다.
비슷한 작업을 예전에 했었어요~
PHP로 코드를 짜서, 해당 멤버의 포인트 가져오고, 일정 포인트 만큼 차감한다음 특정 DB에 증가 시켜주면 되는거고..
만약, 회원의 포인트가 차감할 포인트 보다 적을 경우, 변경&전환 할 수 없습니다.
띄우면 되는거구요.
막 어렵게 생각할 필요 없습니다.