|
|
의 스킨에 삽입할 수 있는 플러그인이다. 이 플러그인에는 현재 읽고 있는 페이지가 몇 번 노출되었는지를 표시하는 페이지 뷰에 대한 치환자가 있다.
그러나 이 치환자는 페이지의 노출 횟수를 정확하게 반영하지 못한다. 그 이유는 TraceWatch 통계 플러그인에서 설명한 것처럼 URL이 다르면 TraceWatch는 서로 다른 페이지로 간주하기 때문이다. 이 문제는 http://offree.net/처럼 URL에 블로그 페이지가 포함되어 있지 않으면 더 심각해진다. 조금 전에 올린 글이라도 TraceWatch의 누적된 결과 값을 가져오기 때문에 조회 수가 아주 높게 나타나며, 이러한 현상은 블로그를 운영하는 시간이 길어지면 질수록 증가하기 때문이다.
따라서 필자는 이러한 문제를 수정하기 위해 http://offree.net/과 같은 URL이 입력되면 자동으로 최근에 올라온 글(http://offree.net/477)로 방향 전환하도록 태터툴즈
의 index.php 파일을 수정했다. 이 방법을 이용하면 같은 글이 다른 URL을 가질 가능성이 그만큼 줄어든다.
필자처럼 블로그 당 하나의 글만 올라오도록 설정한 상태라면 사실 페이지를 이동하는 것과 글을 이동하는 것이 정확히 일치해야 한다. 그러나 http://offree.net/로 접속하면 페이지는 /?page=1처럼 표시되며, http://offree.net/477처럼 연결하면 페이지는 /476처럼 표시된다.
그러나 이 패치를 적용하면 항상 페이지가 /476처럼 나타나기 때문이다. 다만, 이 패치는 필자가 사용하고 있는 환경을 기준으로 한 것이기 때문에 모든 사람에게 동작하지는 않는다는 점이다. 아울러 환경이 다른 사용자를 위해 패치를 다시 작성할 생각도 없다는 점이다. 따라서 이 패치는 필자가 사용하는 환경과 같은 경우에만 적용하기 바란다.
패치하는 방법은 간단하다. 좋아하는 편집기로 /blog/index.php 파일을 열고 마지막의 print $view;를 다음처럼 변경하면 된다.
GZip 압축 전송 플러그인을 설치하지 않았으면 print $view;만 주석 처리하면 되며, 플러그인을 적용한 경우에는 fireEvent();까지 주석처리해야 한다.


Comments
이 패치를 적용했을 경우엔 [글] 만 해당하는건가요? 혹시나 공지사항도 고유한 주소를 갖기 때문에 공지가 첫 화면에 나오거나 그러진 않겠죠? ''
글을 읽어 보시면 알 수 있습니다. 패치하는 파일은 /blog/index.php 파일로 글에서도 알 수 있지만 http://offree.net/ 으로 접속하는 경우에만 http://offree.net/477 처럼 전환합니다.
반면에 공지는 http://offree.net/notice/ 처럼 접속해야 합니다.
print $view;?> 요렇게 되어 있는데. 저 4줄을 첨가하면 되는건가요?? ^^;
글을 자세히 읽어 보시기 바랍니다.
자꾸 질문하게 되네요 ^^. 저도 블로그 당 글의 수: 하나 / 블로그 참조: 숫자 / 사용 환경: 단일 사용자 환경으로 마침 도아님이랑 일치하는데요, 압축 전송 플러그인은 안 깔았구요. 그런데 이상하게 저 마지막줄을 주석처리하면 무조건 아무것도 안 나오네요.... 혹시 이유를 알 수 있을까요?
그리고...
//fireEvent('OBStartSession');
//print $view;
//fireEvent('OBEndSession');
header(”Location: “.$blogURL.”/".$entry[’id’]);
본문의 저 네 줄 중에서 첫번째, 세번째 줄은 압축전송 플러그인 안 깔아서 없다고 하고, 마지막 줄도 없던데... 뭔가 환경이 다른 걸로 봐야 하나요? 잘 몰라서 질문이 많네요. 죄송합니다 ^^;
글을 잘 읽어 보시면 아실 수 있지만 print $view;를 위의 네줄로 교체하는 것입니다. 압축 전송 플러그인을 깔지 않았다면 print $view;를
//print $view;
header(”Location: “.$blogURL.”/".$entry[’id’]);
로 교체하면 됩니다. 그런데
//print $view;
만 하면 당연히 화면에는 아무 것도 표시되지 않습니다. 글에서 주석 처리하고 추가하라고 글을 쓰지 않은 이유는 태터의 소스가
print $view;?>
로 되어 있기 때문입니다. 만약 이상태에서 주석 처리하고 추가하라고 하면
//print $view;?>
header(”Location: “.$blogURL.”/".$entry[’id’]);
이렇게 처리하는 사용자가 생기고 이 경우에는 태터가 아예 오류로 동작하지 않기 때문입니다.
네, 긴 설명 감사드려요 ^^;. 저도 윗 덧글에 '잘 읽어보세요'라는 말씀을 하시길래, 그 부분이 걸려서 나름 그렇게 해 보았는데요.
//print $view;
header("Location: ".$blogURL."/".$entry['id']);
?>
이렇게 처리하면 되는 게 아닌가요? 이렇게 처리했는데도 여전히 아무 내용이 안 나오는 페이지가 나오네요. 다시 한 번만 답변 부탁드리겠습니다 ^^;
/blog/index.php 혹시 blog 폴더 메인에 있는거 말하시는건가요?
아니면 /blog/blog 에 있는거 말씀하시는건가요?
전 tt 대신에 blog로 했는데 blog/index.php 를 찾아보기 힘드네요. ㅡ.ㅡ;
/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
이런 에러가 나네요.
물론 밑에 이렇게 조건을 했습니다.
블로그 당 글의 수: 하나
블로그 참조: 숫자
사용 환경: 단일 사용자
블러그 조건과는 관련없는 구문 오류입니다.
unexpected ':' 라는 문장에서 알 수 있듯이 세미콜론을 써야하는 자리에 콜론을 썼던가 콜론을 써야하는 자리에 세미콜론을 썼을 가능성이 있습니다.
확인해보시기 바랍니다. 그리고 위의 글을 태터 1.0.5를 기준으로 작성한 것입니다. 1.0.6에서는 패치하는 방법이 달라질 수 있습니다.
태터1.0.6.1에서는
header("Location: $blogURL/$entry[id]");
이렇게 수정하니 제대로 되는군요
큰따옴표와 작은따옴표만 정확하면 위와 같이 고쳐도 아무 상관없습니다. 코멘트 미리보기 플러그인이 큰따옴표와 작은따옴표를 바꾸기 때문에 카피해서 붙여넣으면 되지 않습니다.
저 역시 1.0.6.1을 사용하고 있습니다.
그나저나 저는 저 플러그인 깔면 글 목록들이 전부 사라지네요 ㅜ.ㅜ
기본스킨도 동일증상이 나타나는걸 보아 스킨문제도 아닌거 같은데요..
twatch_connect();
이게 들어가면 블로그에서 링크라던지 카테고리라던지 전부 사라지는군요
twatch문제인가 보네요...
저는 제가 만든 플러그인을 사용하고 있지만 별 다른 문제는 없더군요. 다른 플러그인과의 충돌도 생각해보기 바랍니다.
으음.. 지금 다른 플러그인 전부 끄고 해봤는데... 역시 안되네요...
뭐가 문제일려나...