묻고답하기
로그인 할때마다 DB의 포인트가 자동으로 캐시에 리프래쉬 문의
2012.09.11 01:05
포인트를 외부페이지에서 증.감 시켰을때 캐쉬에 반영되게 하기 위해서
로그인 할때마다 DB의 포인트가 자동으로 캐시에 리프래쉬 되게 하는 방법이 가능할까요?
송동우 님이 알려주신 아래의 소스는 제가 응용하기 위해서는
해설이 많이 요구되는 수준이라서..귀찮게 할것 같아 알려달라 할수도 없고..
http://www.xpressengine.com/qna/20939941
위의 소스를 참고해서 힌트를 좀 자세히 알려주실분 있는가요?
댓글 4
-
송동우
2012.09.11 01:39
-
고이풀
2012.09.11 13:30
송동우님.재로그인 하니까 잘되네요.^*^..감사해요..제가 모듈제작 못해서,외부페이지 만들어서 포인트 지급해요. -
고이풀
2012.09.11 13:32
외부페이지에서 지급즉시 캐시를 리프래쉬 시키는 쿼리에 연결하면 좋겠지만,능력이 안되어 이것으로도 괜찮네요. -
송동우
2012.09.11 14:15
외부페이지에서 바로 적용하는 것은
이때까지 계속 링크 걸었던 곳의 답변의 코드를 이용하면 됩니다.
관리자에게만 나타나게 조건을 주고
폼의 내용을 점수 입력, 점수 받을 대상만 추가해서
조금만 응용하면 됩니다........
당연히 db포인트 적용되고 캐시파일도 적용되고....
아마도
외부페이지에서 직접쿼리를 db에 날려 포인트를 수정하는 것 같은데요......
그러면 캐시파일은 변경되지 않죠.......
링크된 돗의 코드는 외부페이지 상관없이 db에 적용되고 캐시파일도 적용됩니다......
-
송동우
2012.09.11 15:05
한가지 정의 해야할 것은
외부페이지라는 것은
관리페이지에서 페이지 모듈을 통해서 생성된 페이지를 말하는 겁니다.
그렇지 않으면 그건 xe와 전혀 상관없는 페이지입니다.
페이지 모듈을 통해 생성한 외부페이지라는 전제하에
아래 코드를 원하는 곳에 붙여 넣어 보세요.....
<div cond="$logged_info->is_admin=='Y'">
<form method="post" action="">
<label>{$lang->nick_name}</label><input type="text" name="memberNick" />
<label>+</label><input type="radio" name="addOrMinus" value="" checked="checked" />
<label>-</label><input type="radio" name="addOrMinus" value="-" />
<label>포인트</label><input type="text" name="pointMore" />
<button type="submit">Go</button>
</form>
{@ $pointMore = preg_match('/[^0-9]/', $pointMore)?'':$pointMore}
<block cond="$pointMore&&$memberNick">
{@
$oMemberModel =& getModel('member');
$output = $oMemberModel->getMemberSrlByNickName($memberNick);
$oPointController = &getController('point');
$oPointController->setPoint($output,$addOrMinus.$pointMore, 'add');
}
</block>
</div>관리자에게만 나타나고
원하는 회원의 닉네임과 포인트 점수를 입력하면 됩니다.....
db및 캐시파일도 바로 적용됩니다....
이것 역시 링크에 걸어둔 답변을 응용한 것일뿐 별 다른 것 없는 없습니다만
응용력이 없으신 것 같아
마지막으로 이 문제에 대해 답변 드리며 코드 올립니다.....
-
고이풀
2012.09.11 23:05
로그인 한 본인이 리프래쉬 할수 있는 버튼이 필요해요...보완 설명을 아래 글로 달았습니다. 송선생임 감사..해욤. -
고이풀
2012.09.11 23:03
외부페이지라는 것은
관리페이지에서 페이지 모듈을 통해서 생성된 페이지를 말하는 겁니다.
그렇지 않으면 그건 xe와 전혀 상관없는 페이지입니다.
외부페이지에서 직접쿼리를 db에 날려 포인트를 수정하는 것 같은데요.=>맞습니다. 관리자에서 생성한 외부페이지가 아니라
일반 웹페이지를 만들어서 쿼리를 통해 DB에 바로 입력시키다 보니..
Xe의 코어에 반영시킬 방법이 없고, 재로그인 방법밖에 없더군요.
포인트값을 DB에서 캐시로 리프래쉬 하는 더 좋은 방법을 생각해 본다면
로그인 박스에 출력되게 한 [포인트] 글자를 클릭하였을때
재로그인 하였을때와 같이 포인트값이 DB에서 리프래쉬 되게 하면 참 좋겠다 생각해요.
그럴려면 포인트 글자에 링크를 걸면 좋겠는데,
링크를 걸 소스의 파일동작이 화면 변동없이 내부에서 순간적으로 이루어 져야 하는데
이것이 가능할 까요?
이것이 불가능하다 해도 송동우님이 먼저 알려주신 소스로도 도움이 되니까 감사해요.
글쓴이 | 제목 | 최종 글 |
---|---|---|
XE | 공지 글 쓰기,삭제 운영방식 변경 공지 [16] | 2019.03.05 by 남기남 |
KTK | 게시글당 하나의 댓글 재 질문입니다. [1] | 2012.09.12 by 송동우 |
레오마드 | 도메인 등록후 웹 호스팅 [1] | 2012.09.12 by KANTSOFT |
문프로 | 온라인에서 레이아웃 제작/수정 시 [2] | 2012.09.12 by KANTSOFT |
오락실주인 | 구글애드센스 질문 [1] | 2012.09.12 by 슈롬 |
오락실주인 | 구글애드센스 질문 | |
민이아빠 | 초짜가 질문 드립니다.. [1] | 2012.09.12 by 윈컴이 |
오니기리죠 | FTP 접속에 성공했으나, 디렉토리 정보를 읽어올 수 없습니다. 서버 설정을 확인해주세요 [1] | 2012.09.12 by 봉드기 |
rex1096 | cacert 인증서 받아 ssl 적용하는 법 아시는 분 계신가요? | |
Crassus | 쪽지 보내기 가 장애가 생겼습니다. | |
여물2 | 게시판 분류(카테고리)만 가져오는 위젯 [1] | 2012.09.12 by 송동우 |
KTK | 한게시글당 댓글 한개만 허용 [1] | 2012.09.12 by 송동우 |
Asaph | textyle 사용하려는데... 상단 메뉴에 대해 | |
nonserial | 1.5x의 xe설치경로는 어디서 확인하나요? [1] | 2012.09.12 by 김스코 |
thxall | 제 홈피 로그인이 이상해요!! [4] | 2012.09.12 by sorigongan |
장단엽 | 이미지 추가 | |
은괭이 | 게시물등록시 서버에서 특정주소를 실행할수있나요? | |
내사랑은서 | 특정 확장변수 글 작성시 나타나지 않게 하는법 있나요? [2] | 2012.09.12 by 송동우 |
croc | 지식인 마지막 질문일듯하네요 ㅜㅜ [1] | 2012.09.12 by 송동우 |
용초딩 | 확장변수를 작성자만 볼 수 있게 가능한가요? [1] | 2012.09.12 by 송동우 |
고이풀 | 로그인 할때마다 DB의 포인트가 자동으로 캐시에 리프래쉬 문의 [4] | 2012.09.11 by 고이풀 |
xe - modules - member - member.controller.php 열고
line 1550 쯤에
$this->setSessionInfo();
이것 바로 아래에
$output = executeQuery('point.getPoint', $args);
$cache_path = sprintf('./files/member_extra_info/point/%s/', getNumberingPath($args->member_srl));
FileHandler::makedir($cache_path);
$cache_filename = sprintf('%s%d.cache.txt', $cache_path, $args->member_srl);
FileHandler::writeFile($cache_filename, $output->data->point);
이것 입력.......
만일 이것도 이해가 안되면
전체적인 작업의 설명이 필요할 듯 합니다......
한번에 끝날 수 있는 질문을
질문이 구체적이지 않아 꼬리에 꼬리를 무는 질문반복 현상이 나타나는 듯 합니다.......
사실 db에서 직접 포인트를 수정할 필요도 없고
훨씬 간편하게 작업을 할 수 있는데 어렵게 작업을 하고 있다는 느낌입니다....
아무튼 그런건 질문이 구체적이지 않으니 3자 입장에서는 무엇을 하려고 하는지
제대로 이해하지 못해서 생기는 오해일 수도 있구요......
해보시고
안되면 다시 글 남기세요..........그때는 좀 구체적으로.......