묻고답하기
조회수 클릭때 마다 올라가게 하려면 아래와 같이 하면 되나요?
2012.02.18 22:24
게시판 조회수 클릭때 마다 올라가기 1.4.5.7 에서 사용한것입니다.
현재 1.5.1.8 에서도 사용할수 있는가요?
아니면 소스를 다르게 숮어해야 하나요?
-----------------------------------------------------------------------
코어버전 : 1.4.5.7
./modules/document/ 에 있는 document.controller.php
파일을 열어 572번줄쯤에 조회수 증가코드를 아래코드로 대체 하시면 됩니다.
-----------------------------------------------------------------------
/**
* @brief 해당 document의 조회수 증가
**/
function updateReadedCount(&$oDocument) {
$document_srl = $oDocument->document_srl;
$member_srl = $oDocument->get('member_srl');
$logged_info = Context::get('logged_info'+ ');
// 조회수 업데이트가 되면 trigger 호출 (after)
$output = ModuleHandler::triggerCall('document.updateReadedCount', 'after', $oDocument);
if(!$output->toBool()) return $output;
// session에 정보로 조회수를 증가하였다고 생각하면 패스
/*if($_SESSION['readed_document'][$document_srl]) return false;
// 글의 작성 ip와 현재 접속자의 ip가 동일하면 패스
if($document->ipaddress == $_SERVER['REMOTE_ADDR']) {
$_SESSION['readed_document'][$document_srl] = true;
return false;
}*/
// document의 작성자가 회원일때 글쓴이와 현재 로그인 사용자의 정보가 일치하면 읽었다고 판단후 세션 등록하고 패스
/*if($member_srl && $logged_info->member_srl == $member_srl) {
$_SESSION['readed_document'][$document_srl] = true;
return false;
}*/
// 조회수 업데이트
$args->document_srl = $document_srl;
$output = executeQuery('document.updateReadedCount', $args);
// 세션 등록
$_SESSION['readed_document'][$document_srl] = true;
}
-----------------------------------------------------------------------
댓글 3
-
송동우
2012.02.18 23:06
-
때린데 또때려
2012.02.18 23:28
위에 대로 했는데 조회수가 증가하지 않습니다. 다른 방법은 없는지요? -
송동우
2012.02.19 00:09
위에 내용대로 했다는 말은 어떤 말인가요?
질문의 내용에 있는 코드와는 상관없습니다.
core 1.5.1.8
board 1.4.3
위 환경에서 정상적으로 잘 작동되는 것 확인했습니다.
-
때린데 또때려
2012.02.19 01:41
파일에서 if($_SESSION['readed_document'][$document_srl]) return false; 이것을 삭제 했는데 이상하게 조회수가 올러가지 않네요 코어도 1.5.1.8 이고 보드도 1.4.3 버전이데 이상하네요.. -
파부
2012.04.05 21:03
xe - modules - document - document.controller.php 열고
line 659 쯤에 아래 부분을 주석처리하면 조건없이 조회수 증가 합니다.// Pass if read count is increaded on the session information
if($_SESSION['readed_document'][$document_srl]) return false;
// Pass if the author's IP address is as same as visitor's.
if($oDocument->get('ipaddress') == $_SERVER['REMOTE_ADDR']) {
$_SESSION['readed_document'][$document_srl] = true;
return false;
}
// Pass ater registering sesscion if the author is a member and has same information as the currently logged-in user.
if($member_srl && $logged_info->member_srl == $member_srl) {
$_SESSION['readed_document'][$document_srl] = true;
return false;
}
xe - modules - document - document.controller.php 열고
line 659 쯤에
if($_SESSION['readed_document'][$document_srl]) return false;
이것을 주석처리 혹은 삭제해 보세요