얼마 전에 만든 TraceWatch 통계 플러그인은 TraceWatch의 통계치를 태터툴즈의 스킨에 삽입할 수 있는 플러그인이다. 이 플러그인에는 현재 읽고 있는 페이지가 몇 번 노출되었는지를 표시하는 페이지 뷰에 대한 치환자가 있다.
그러나 이 치환자는 페이지의 노출 횟수를 정확하게 반영하지 못한다. 그 이유는 TraceWatch 통계 플러그인에서 설명한 것처럼 URL이 다르면 TraceWatch는 서로 다른 페이지로 간주하기 때문이다. 이 문제는 https://offree.net/처럼 URL에 블로그 페이지가 포함되어 있지 않으면 더 심각해진다. 조금 전에 올린 글이라도 TraceWatch의 누적된 결과 값을 가져오기 때문에 조회 수가 아주 높게 나타나며, 이러한 현상은 블로그를 운영하는 시간이 길어지면 질수록 증가하기 때문이다.
따라서 이러한 문제를 수정하기 위해 https://offree.net/과 같은 URL이 입력되면 자동으로 최근에 올라온 글(https://offree.net/477)로 방향 전환하도록 태터툴즈의 index.php
파일을 수정했다. 이 방법을 이용하면 같은 글이 다른 URL을 가질 가능성이 그만큼 줄어든다.
나처럼 블로그 당 하나의 글만 올라오도록 설정한 상태라면 페이지를 이동하는 것과 글을 이동하는 것이 정확히 일치해야 한다. 그러나 https://offree.net/로 접속하면 페이지는 /?page=1
처럼 표시되며, https://offree.net/477처럼 연결하면 페이지는 /476
처럼 표시된다.
그러나 이 패치를 적용하면 항상 페이지가 /476
처럼 나타나기 때문이다. 다만, 이 패치는 내가 사용하고 있는 환경을 기준으로 한 것이기 때문에 모든 사람에게 동작하지는 않는다는 점이다. 아울러 환경이 다른 사용자를 위해 패치를 다시 작성할 생각도 없다는 점이다. 따라서 이 패치는 내가 사용하는 환경과 같은 경우에만 적용하기 바란다.
블로그 당 글의 수: 하나
블로그 참조: 숫자
사용 환경: 단일 사용자
패치하는 방법은 간단하다. 좋아하는 편집기로 /blog/index.php
파일을 열고 마지막의 print $view;
를 다음처럼 변경하면 된다.
//fireEvent('OBStartSession');
//print $view;
//fireEvent('OBEndSession');
header("Location: ".불blogURL."/".불entry['id']);
GZip 압축 전송 플러그인을 설치하지 않았으면 print $view;
만 주석 처리하면 되며, 플러그인을 적용한 경우에는 fireEvent();
까지 주석처리해야 한다.
Trackback
Trackback Address :: https://offree.net/trackback/478
Comments
-
Moonlit 2006/05/06 18:24
이 패치를 적용했을 경우엔 [글] 만 해당하는건가요? 혹시나 공지사항도 고유한 주소를 갖기 때문에 공지가 첫 화면에 나오거나 그러진 않겠죠? ''
-
도아 2006/05/08 07:40
글을 읽어 보시면 알 수 있습니다. 패치하는 파일은 /blog/index.php 파일로 글에서도 알 수 있지만 http://offree.net/ 으로 접속하는 경우에만 http://offree.net/477 처럼 전환합니다.
반면에 공지는 http://offree.net/notice/ 처럼 접속해야 합니다.
-
-
-
광서방 2006/05/16 18:51
자꾸 질문하게 되네요 ^^. 저도 블로그 당 글의 수: 하나 / 블로그 참조: 숫자 / 사용 환경: 단일 사용자 환경으로 마침 도아님이랑 일치하는데요, 압축 전송 플러그인은 안 깔았구요. 그런데 이상하게 저 마지막줄을 주석처리하면 무조건 아무것도 안 나오네요.... 혹시 이유를 알 수 있을까요?
그리고...
//fireEvent('OBStartSession');
//print $view;
//fireEvent('OBEndSession');
header(”Location: “.불blogURL.”/".불entry[’id’]);
본문의 저 네 줄 중에서 첫번째, 세번째 줄은 압축전송 플러그인 안 깔아서 없다고 하고, 마지막 줄도 없던데... 뭔가 환경이 다른 걸로 봐야 하나요? 잘 몰라서 질문이 많네요. 죄송합니다 ^^;-
도아 2006/05/17 10:26
글을 잘 읽어 보시면 아실 수 있지만 print $view;를 위의 네줄로 교체하는 것입니다. 압축 전송 플러그인을 깔지 않았다면 print $view;를
//print $view; header(”Location: “.불blogURL.”/".불entry[’id’]);
로 교체하면 됩니다. 그런데
//print $view;
만 하면 당연히 화면에는 아무 것도 표시되지 않습니다. 글에서 주석 처리하고 추가하라고 글을 쓰지 않은 이유는 태터의 소스가
print $view;?>
로 되어 있기 때문입니다. 만약 이상태에서 주석 처리하고 추가하라고 하면
//print $view;?> header(”Location: “.불blogURL.”/".불entry[’id’]);
이렇게 처리하는 사용자가 생기고 이 경우에는 태터가 아예 오류로 동작하지 않기 때문입니다.
-
-
-
-
Facebook