웹마스터 팁
포인트 부족 시 글 열람 금지 설정해도, 글을 볼 수 있는 버그 수정
2015.01.18 06:25
원본글 출처 : http://sejin7940.co.kr/index.php?mid=xe_tips&document_srl=102451
Github 에 올려두었으니 추후 패치되리라 예상합니다.
===============================================
포인트 부족 시 글 열람 금지 설정해도, 글을 볼 수 있는 버그 수정
게시판에서 글 열람시 포인트 차감되게 설정해두고
포인트 설정에서 '글 열람 금지' 에 체크되어 있는 경우...
포인트 부족시 글이 안 보여야하는데
처음에는 안 보였다가.
그 후 해당 글을 새로고침하거나, 목록으로 갔다가 다시 그 글을 보거나 할경우
글이 그대로 노출되는 버그가 있습니다.
이유는 해당 글을 읽었다고 세션에 기록이 남기 때문이죠.. 수정했습니다.
1. modules/point/point.controller.php 에서
function triggerUpdateReadedCount(&$obj) 함수에서
if($config->disable_read_document == 'Y' && $point < 0 && abs($point)>$cur_point)
{
$obj->add('content', sprintf(Context::getLang('msg_disallow_by_point'), abs($point), $cur_point));
return new Object();
}
를 아래걸로 교체
$_SESSION['banned_document'][$obj->document_srl] = false;
if($config->disable_read_document == 'Y' && $point < 0 && abs($point)>$cur_point)
{
$obj->add('content', sprintf(Context::getLang('msg_disallow_by_point'), abs($point), $cur_point));
$_SESSION['banned_document'][$obj->document_srl] = true;
return new Object();
}
2. modules/document/document.controller.php 에서
function updateReadedCount(&$oDocument) 함수 끝부분에
$_SESSION['readed_document'][$document_srl] = true;
를 아래걸로 변경
if(!$_SESSION['banned_document'][$document_srl]) {
$_SESSION['readed_document'][$document_srl] = true;
}
감사합니다^^