게시글에서요~ 조회수 임의 조정을 하려 하는데요~
document 테이블에 readed_count 를 수정하면 되는걸로 알고 있습니다~
그래서 게시판 스킨에서 write 부분에
<input type="text" name="readed_count" value="{htmlspecialchars($oDocument->get('readed_count'))}" id="readed_count" />
추가했구요~
일반 글쓰기 할때는 조회수가 입력한대로 잘 적용되더라구요~
하지만, 수정버튼을 눌러서 수정할때는 조회수 수정이 적용이 안되더라구요,, TT^TT
게시글 수정할 때 update에서 readed_count <ㅡ 이게 빠지지 않았을까,, 하는 생각이 드는데요~
게시글 수정하는 부분의 위치점 알 수 있을까요?
답변 : xe - modules - document - queries - updateDocument.xml 열고
<column name="readed_count" var="readed_count" default="0" />
이걸 추가해 보세요
출처 : https://xe1.xpressengine.com/qna/20000416
2. IP에 상관없이 클릭수만큼 조회수를 올릴 수 있는 방법
modules/document/document.controller.php
최신버전도 document.controller.php 파일을 수정하시면 됩니다.
function updateReadedCount 함수에서
// 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;
}
부분을 제거해야죠
단, 세션이 유지되고 있을테니, 지운 후, 관리자페이지에서 '세션정리'를 한번 해주고나면 제대로 적용될거예요
출처 : https://xe1.xpressengine.com/qna/23156193
3. 자기가 쓴 글에도 조회수를 올리고 싶은 경우
출처 : https://xe1.xpressengine.com/qna/23069751
4. 파일 직접 다운로드
수정이 어려우신 분은 아래 파일을 다운로드하셔서 해당 위치에 업로드하시면 됩니다. 라이믹스 2.0.13 기준 파일입니다.
click 할때 마다 조회수 증가하기
xe - modules - document - document.controller.php
=================================================
xe - modules - document - document.controller.php 열고
line 846쯤에
// 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;
}
이부분까지 주석처리하거나 삭제하시면 됩니다.