외부 페이지에서 어떤 특정 액션이 있을 때 포인트 증감 처리를 할 때, SQL 말고 다른 방법은
CMS/프레임워크 | XE 1.x |
---|---|
개발 언어 | PHP 5.x |
외부 페이지에서 어떤 특정 액션이 있을 때 해당 사용자에게 포인트 증감 처리를 하려고 합니다.
SQL을 이용하여 DB를 직접 수정할 수 있으나, 그렇게 히면 포인트 내역 등에도 표시가 되지 않고요....
외부 페이지의 포인트 증감 처리를 위한 루틴(포인트 내역에도 표시되는)을 찾고 있는데..
이게 가능한가요?
댓글 3
XE의 일부가 아닌 PHP 페이지에서 XE의 기능과 연동할 때는 일단
include('XE설치경로/config/config.inc.php');
Context::getInstance()->init();
부터 해놓고 시작하는 것이 정석입니다.
그러면 XE의 클래스와 함수를 모두 불러다 쓸 수 있으니
$point = getModel('point')->getPoint($member_srl); // 포인트 가져오기
getController('point')->setPoint($member_srl, $point); // 포인트 변경하기
등등 XE 내부에서 쓰는 것과 똑같은 방법으로 포인트 정보를 불러오거나 변경할 수 있습니다.
XE 내부에서 쓰는 것과 똑같은 방법을 썼으니 캐시파일 처리나 포인트 히스토리 기록도 잘 되고요.
만약 XE에서 불러오는 외부 페이지라면 이미 내부 페이지나 마찬가지이므로
맨 위의 두 줄은 필요하지도 않습니다. (내부 페이지에서 저걸 쓰면 오히려 오류가 납니다.)
아무튼 XE에서 관리하는 데이터를 외부에서 조작하려면 XE 내부로 들어가는 것이 우선입니다.
XE와 전혀 연동되지 않고 DB만 따로 건드리는 100% 외부 페이지가 있어서는 안됩니다.
현재 알려주신 함수만으로는 포인트 변경에 대한 정보가 없는거 같아서요.
코어에는 그런 정보를 저장하는 곳이 없습니다. 변동 사유는 고사하고 변동 내역도 기록되지 않습니다. 원하신다면 포인트히스토리 모듈을 활용하여 커스터마이징하시면 됩니다.