웹마스터 팁

제로보드XE나 똑띠님 웹사이트 또는 Simulz님의 웹사이트 처럼 접속자가 많은 대형 웹사이트가 아닌 이상 접속한 IP 당 1개의

조회수 증가는 왠지 자신의 웹사이트에 있는 콘텐츠를 아무도 안읽는거 같은 기분을 느끼게 해줍니다  제가 운영하는 웹사이트

의 경우 하루 접속자가 많아봐야 100명 이 안되고 매번 들려주시는 분들이 접속하여 글을 읽습니다.  같은 아이피로 접속을 해서

글을 읽고 또 나중에 다시 와서 읽었던 글을 또 읽고 하거든요. 소규모 커뮤니티 웹사이트나 인트라넷으로 웹사이트를 돌리는

경우에도 좋은 콘텐츠가 있음에도 접속하는 IP가 제한되어 있기때문에 글 조회수가 안올라가면 왠지 아무도 내 글을 안보는 것

같은 기분을 들게해서 기분이 묘 할때가 많습니다. 위와 같이 느낌을 받는 분들은 아래의 방법대로 코드를 수정하시면 IP당 1개

의 조회수가 아닌 글을 읽을때마다 조회수가 증가 할수 있게 할수 있습니다.




알바트로스 적용후 다시 코드를 수정하였으므로 알바트로스 적용하신 분들만 아래와 같이 코드를 수정하시면 됩니다.

(물론 이전 버전으로 웹사이트 돌리시는 분들도 라인만 다를뿐 코드는 똑같기 때문에 적용해보시면 될껍니다. 혹시 모르니

항상 수정하시기 전에 파일을 백업해두세요)




수정 방법:

본인 웹사이트의 /zbxe/modules/document/ 에 있는 document.controller.php 파일을 열어보시면 314 번째 라인 부터 361 라인

까지 조회수 증가 코드가 시작됩니다.

아래와 같은 코드가 들어 있는데



  /**
         * @brief 해당 document의 조회수 증가
         **/
        function updateReadedCount($oDocument) {
            $document_srl = $oDocument->document_srl;
            $member_srl = $oDocument->get('member_srl');
            $logged_info = Context::get('logged_info');

            // 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) {

                // 글쓴이와 현재 로그인 사용자의 정보가 일치하면 읽었다고 생각하고 세션 등록후 패스
                if($member_srl && $logged_info->member_srl == $member_srl) {
                    $_SESSION['readed_document'][$document_srl] = true;
                    return false;
                }
            }

            // 로그인 사용자이면 member_srl, 비회원이면 ipaddress로 판단
            if($logged_info->member_srl) {
                $args->member_srl = $logged_info->member_srl;
            } else {
                $args->ipaddress = $_SERVER['REMOTE_ADDR'];
            }
            $args->document_srl = $document_srl;
            $output = executeQuery('document.getDocumentReadedLogInfo', $args);

            // 로그 정보에 조회 로그가 있으면 세션 등록후 패스
            if($output->data->count) return $_SESSION['readed_document'][$document_srl] = true;

            // 조회수 업데이트
            $output = executeQuery('document.updateReadedCount', $args);

            // 로그 남기기
            $output = executeQuery('document.insertDocumentReadedLog', $args);

            // 세션 정보에 남김
            return $_SESSION['readed_document'][$document_srl] = true;
        }




이를 삭제 하시고 아래의 코드를 넣으시고 저장 후에 서버에 올리시면 됩니다

 /**
         * @brief 해당 document의 조회수 증가
         **/
        function updateReadedCount($oDocument) {
            $document_srl = $oDocument->document_srl;
            $member_srl = $oDocument->get('member_srl');
            $logged_info = Context::get('logged_info');

         // 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) {} /*

                // 글쓴이와 현재 로그인 사용자의 정보가 일치하면 읽었다고 생각하고 세션 등록후 패스
                if($member_srl && $logged_info->member_srl == $member_srl) {
                    $_SESSION['readed_document'][$document_srl] = true;
                    return false;
                }
            }*/

            // 로그인 사용자이면 member_srl, 비회원이면 ipaddress로 판단
            if($logged_info->member_srl) {
                $args->member_srl = $logged_info->member_srl;
            } else {
                $args->ipaddress = $_SERVER['REMOTE_ADDR'];
            }
            $args->document_srl = $document_srl;
            $output = executeQuery('document.getDocumentReadedLogInfo', $args);
   
            // 로그 정보에 조회 로그가 있으면 세션 등록후 패스
           /* if($output->data->count) return $_SESSION['readed_document'][$document_srl] = true; */

            // 조회수 업데이트
            $output = executeQuery('document.updateReadedCount', $args);

            // 로그 남기기
            $output = executeQuery('document.insertDocumentReadedLog', $args);

            // 세션 정보에 남김
            return $_SESSION['readed_document'][$document_srl] = true;
        }




쿨럭!

태그 연관 글
  1. [2015/06/02] 묻고답하기 링크게시판은 조회수가 안 올라가나요? by 김동하123 *2
  2. [2014/07/16] 묻고답하기 스케치북5 게시판 목록에서 조회수 삭제하는 방법 by 또로로로리 *2
  3. [2011/04/25] 묻고답하기 전체조회수를 메인에 나타내는 방법이 없나요? by 푸른홈 *1
  4. [2009/08/15] 웹마스터 팁 게시글 조회수 바꾸기 by 지B *4
제목 글쓴이 날짜
게시판 작성시 본문에 자동으로 삽입 스크립트 한꼬마 2015.10.22
cron 에서 서비스 컨트롤에 따른 소소한 팁 마루디자인 2015.10.22
폰갭 admob 이용버전이 바뀌었습니다. 한꼬마 2015.10.19
[자료실 모듈] 경로 사용 해제후에 자료 정보 수정시 경로값 필요 문구 발생시 불금 2015.10.18
외부 페이지에서 회원 프로필 정보(확장변수) 나타내기 한꼬마 2015.10.14
jquery 플러그인: rolVideo.min.js 공개하였습니다. [1] 딴죽을거는남자 2015.10.03
[작고 왜소한 팁] 각종 loop 반복문에서 각기 다른 아이디값이나 클래스값부여하기 [1] 410contents 2015.10.01
모바일 글쓰기 페이지 경고창 [2] file 자동차 2015.09.26
CKEditor 글꼴란에 한글 폰트 추가하는 방법 (수정함) [4] file 기븐 2015.09.19
SimpleStrap과 Rest Bootstrap 게시판 사용중 상단바 마비 오류 해결법 file 이자여 2015.09.18
모바일 게시판 스킨에서 댓글 작성자 레벨 아이콘이 나오지 않는 오류 수정하기 [3] 퍼니엑스이 2015.09.15
자신에게 맞는 웹호스팅 선정과 기본 설정 팁 [11] 뭐야왜안돼 2015.09.07
Content 위젯에서 비밀글이 나오도록 수정하기 퍼니엑스이 2015.09.05
triggerAfterInsertDocument에서 첨부파일 불러지지 않는 문제 해결 방법 [1] 단희아빠 2015.09.04
nginx, php-fpm, opcache, memcached, xcache 등을 모두 알아서 설치해주는 centminmod 라고 아시나요? [9] 그럴수 2015.08.21
php 5.6 이상에서 사이트 메뉴 편집 등 오류 발생시 YJSoft 2015.08.12
[XE수정] 관리자페이지 회원리스트를 내맘대로 브레인630 2015.08.11
[XE수정] '새버전을 업데이트...'이 부분이 눈에 거슬리면... [1] 브레인630 2015.08.11
태그 (Tag) 관련글 보여줄 때 상단에 선택된 태그 보여주는 방법 [1] calko 2015.08.08
CentOS 7 : Apache2.4 + PHP5.6 + MariaDB + VSFTP 설치하기 [6] 우리아기 2015.08.06