태터 패치: TraceWatch 통계 보완

얼마 전에 만든 TraceWatch 통계 플러그인TraceWatch의 통계치를 태터툴즈의 스킨에 삽입할 수 있는 플러그인이다. 이 플러그인에는 현재 읽고 있는 페이지가 몇 번 노출되었는지를 표시하는 페이지 뷰에 대한 치환자가 있다.

그러나 이 치환자는 페이지의 노출 횟수를 정확하게 반영하지 못한다. 그 이유는 TraceWatch 통계 플러그인에서 설명한 것처럼 URL이 다르면 는 서로 다른 페이지로 간주하기 때문이다. 이 문제는 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();까지 주석처리해야 한다.

관련 글타래

글쓴이
author image
운영체제의 모든 것을 운영하고 있는 IT 블로거. IT 블로거라는 이름은 현재 시국때문에 시사 블로거로 바뀐 상태다. 그러나 나는 아직도 시사와 사회에 관심이 많은 IT 블로거일 뿐이다. 컴퓨터, 운영체제, 시사, 가족, 여행, 맛집, 리뷰등과 살면서 느끼는 소소한 일상이 블로그의 주제이다. 왼쪽의 아이콘은 둘째 딸 다예가 그린 내 모습이다.
2006/05/06 12:31 2006/05/06 12:31
오늘의 글
인기있는 글
조회수 많은 글 | 베오베
댓글 많은 글 | 베오베

Trackback

Trackback Address :: https://offree.net/trackback/478

Facebook

Comments

  1. Moonlit 2006/05/06 18:24

    이 패치를 적용했을 경우엔 [글] 만 해당하는건가요? 혹시나 공지사항도 고유한 주소를 갖기 때문에 공지가 첫 화면에 나오거나 그러진 않겠죠? ''

    perm. |  mod/del. reply.
  2. 토이 2006/05/07 23:37

    print $view;?> 요렇게 되어 있는데. 저 4줄을 첨가하면 되는건가요?? ^^;

    perm. |  mod/del. reply.
  3. 광서방 2006/05/16 18:51

    자꾸 질문하게 되네요 ^^. 저도 블로그 당 글의 수: 하나 / 블로그 참조: 숫자 / 사용 환경: 단일 사용자 환경으로 마침 도아님이랑 일치하는데요, 압축 전송 플러그인은 안 깔았구요. 그런데 이상하게 저 마지막줄을 주석처리하면 무조건 아무것도 안 나오네요.... 혹시 이유를 알 수 있을까요?
    그리고...
    //fireEvent('OBStartSession');
    //print $view;
    //fireEvent('OBEndSession');
    header(”Location: “.불blogURL.”/".불entry[’id’]);

    본문의 저 네 줄 중에서 첫번째, 세번째 줄은 압축전송 플러그인 안 깔아서 없다고 하고, 마지막 줄도 없던데... 뭔가 환경이 다른 걸로 봐야 하나요? 잘 몰라서 질문이 많네요. 죄송합니다 ^^;

    perm. |  mod/del. reply.
    • 도아 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’]);

      이렇게 처리하는 사용자가 생기고 이 경우에는 태터가 아예 오류로 동작하지 않기 때문입니다.

  4. 광서방 2006/05/17 13:17

    네, 긴 설명 감사드려요 ^^;. 저도 윗 덧글에 '잘 읽어보세요'라는 말씀을 하시길래, 그 부분이 걸려서 나름 그렇게 해 보았는데요.
    //print $view;
    header("Location: ".불blogURL."/".불entry['id']);
    ?>
    이렇게 처리하면 되는 게 아닌가요? 이렇게 처리했는데도 여전히 아무 내용이 안 나오는 페이지가 나오네요. 다시 한 번만 답변 부탁드리겠습니다 ^^;

    perm. |  mod/del. reply.
  5. 서비 2006/06/25 22:55

    /blog/index.php 혹시 blog 폴더 메인에 있는거 말하시는건가요?
    아니면 /blog/blog 에 있는거 말씀하시는건가요?
    전 tt 대신에 blog로 했는데 blog/index.php 를 찾아보기 힘드네요. ㅡ.ㅡ;

    perm. |  mod/del. reply.
  6. 서비 2006/06/26 14:23

    /blog/blog/index.php에

    //print $view;
    header(”Location: “.불blogURL.”/”.불entry[’id’]);
    ?>
    를 수정/추가했는데

    Parse error: parse error, unexpected ':' in /wecan/donggu1001/computer.new21.net/blog/blog/index.php on line 2524
    이런 에러가 나네요.

    perm. |  mod/del. reply.
  7. 서비 2006/06/26 14:25

    물론 밑에 이렇게 조건을 했습니다.
    블로그 당 글의 수: 하나
    블로그 참조: 숫자
    사용 환경: 단일 사용자

    perm. |  mod/del. reply.
    • 도아 2006/06/26 15:31

      블러그 조건과는 관련없는 구문 오류입니다. unexpected ':' 라는 문장에서 알 수 있듯이 세미콜론을 써야하는 자리에 콜론을 썼던가 콜론을 써야하는 자리에 세미콜론을 썼을 가능성이 있습니다.

      확인해보시기 바랍니다. 그리고 위의 글을 태터 1.0.5를 기준으로 작성한 것입니다. 1.0.6에서는 패치하는 방법이 달라질 수 있습니다.

  8. LiNs 2006/08/06 12:45

    태터1.0.6.1에서는
    header("Location: $blogURL/$entry[id]");
    이렇게 수정하니 제대로 되는군요

    perm. |  mod/del. reply.
    • 도아 2006/08/07 20:01

      큰따옴표와 작은따옴표만 정확하면 위와 같이 고쳐도 아무 상관없습니다. 코멘트 미리보기 플러그인이 큰따옴표와 작은따옴표를 바꾸기 때문에 카피해서 붙여넣으면 되지 않습니다.

      저 역시 1.0.6.1을 사용하고 있습니다.

  9. LiNs 2006/08/06 12:56

    그나저나 저는 저 플러그인 깔면 글 목록들이 전부 사라지네요 ㅜ.ㅜ
    기본스킨도 동일증상이 나타나는걸 보아 스킨문제도 아닌거 같은데요..

    perm. |  mod/del. reply.
  10. LiNs 2006/08/06 13:10

    twatch_connect();
    이게 들어가면 블로그에서 링크라던지 카테고리라던지 전부 사라지는군요
    twatch문제인가 보네요...

    perm. |  mod/del. reply.
    • 도아 2006/08/07 20:02

      저는 제가 만든 플러그인을 사용하고 있지만 별 다른 문제는 없더군요. 다른 플러그인과의 충돌도 생각해보기 바랍니다.

  11. LiNs 2006/08/07 23:43

    으음.. 지금 다른 플러그인 전부 끄고 해봤는데... 역시 안되네요...
    뭐가 문제일려나...

    perm. |  mod/del. reply.

(옵션: 없으면 생략)

글을 올릴 때 [b], [i], [url], [img]와 같은 BBCode를 사용할 수 있습니다.