질문/조언질답게시판

외부 페이지에서 어떤 특정 액션이 있을 때 해당 사용자에게 포인트 증감 처리를 하려고 합니다.

SQL을 이용하여 DB를 직접 수정할 수 있으나, 그렇게 히면 포인트 내역 등에도 표시가 되지 않고요....

 

외부 페이지의 포인트 증감 처리를 위한 루틴(포인트 내역에도 표시되는)을 찾고 있는데..

이게 가능한가요?

  • profile

    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% 외부 페이지가 있어서는 안됩니다.

  • profile ?
    감사합니다. 포인트가 어떻게 변경되었는지에 대한 정보는 어떻게 처리하는지요? 예를 들어. "관리자에 의한 포인트 추가" 이러한 정보도 같이 넣고자 합니다.



    현재 알려주신 함수만으로는 포인트 변경에 대한 정보가 없는거 같아서요.
  • ? profile

    코어에는 그런 정보를 저장하는 곳이 없습니다. 변동 사유는 고사하고 변동 내역도 기록되지 않습니다. 원하신다면 포인트히스토리 모듈을 활용하여 커스터마이징하시면 됩니다.


서버에 요청 중입니다. 잠시만 기다려 주십시오...