태터툴즈 1.0.5 플러그인

태터툴즈 1.0.5 릴리즈에 맞추어 만든 플러그인 4종세트.. 당연히 1.0.5 이상에서만 동작하며 각 플러그인들의 라이선스는 GPL에 따르니 더 좋게 고쳐서 나눠쓰세요..;

로봇의 방문횟수 제외 [Download - ExcludeRobotsCounter.zip]

기능
많이 알려진 로봇의 이름을 미리 입력해서 로봇이 방문했을때는 방문자 카운터를 증가시키지 않는다.
설명
플러그인 관리자 화면에서 플러그인을 활성화 시키면 동작한다. 봇의 이름을 추가하거나 삭제할때는 index.php 파일을 열어 $robots 배열에 봇의 이름을 편집해주면 된다. 추후에 User-agent 필터링 기능이 추가되기 전까지 임시로 사용되는 플러그인.

피드버너 리다이렉터 [Download - FeedBurnerRedirector.zip]

기능
태터툴즈의 RSS 주소로 접속하면 피드버너의 피드 주소로 이동시켜준다. 스킨의 [##_rss_url_##] 치환자도 피드버너의 URL로 바뀐다.
설명
사용하는 블로그 식별자가 crizin 이라면 http://feeds.feedburner.com/crizin 주소로 이동된다. 블로그 식별자와 피드버너 ID가 다른 경우에는 index.php 파일 10번째줄의 "http://feeds.feedburner.com/{$blog['name']}" 부분을 "http://feeds.feedburner.com/xxxxxx" 같이 변경해줘야 한다. 피드버너 설정에서 Original Feed 주소는 http://crizin.net/rss 같이 원래 RSS 주소를 입력해두면 된다.

전체피드 읽어오기 [Download - GetEntireFeed.zip]

기능
네이버의 모든 블로그, 이글루스의 블로그중 피드 부분공개를 선택한 블로그에 대해 본문 전체를 보여준다.
설명
플러그인을 활성화 시키면 피드가 업데이트 될때마다 직접 블로그에 접속해 본문을 읽어와 RSS의 본문 대신 저장하게 된다. 따라서 피드 업데이트 속도가 느려질 수 있으며 특이한 스킨을 사용하는 이글루스 블로그에 대해서는 본문을 제대로 읽어오지 못할 가능성도 있다.
주의
부분공개된 피드의 전문을 강제로 읽어와 리더에 저장하는건 블로거의 의도에 반하는 행동이 될 수 있다. 개인적인 편의가 아닌 다수에게 서비스를 제공하는 블로그에서 이 플러그인을 사용하는건 문제의 소지가 될 수 있음에 주의할 것.
변경내역
1.0.1 - 네이버의 글에서 이미지에 달려있는 onload 이벤트를 제거해서 스크립트 오류가 뜨지 않게 함
1.0.2 - 파란의 RSS도 지원 (포스트 하나 가져오려면 두번 접속을 해야해서 매우 느림)
1.0.3 - 네이버 블로그 출력부분 변경사항 반영
1.0.4 - 파란 블로그 출력부분 변경사항 반영
1.0.5 - 네이버 블로그 출력부분 변경사항 반영, 이글루스 포스트는 무조건 읽어오도록 수정

리퍼러 로그 정리 [Download - RefererURLBeautifier.zip]

기능
통계보기 » 리퍼러 통계를 봅니다 메뉴에서 리퍼러 로그를 읽기 쉽게 바꿔주고 검색어가 포함된 경우 검색어를 눈에 잘 띄게 표시해 준다.
설명
리퍼러를 저장하는 공간(255bytes)의 제약으로 인해 매우 긴 URL의 경우 한글이 깨지는 등의 문제가 있을 수 있다. 그리고 index.php 파일의 15번째줄 맨 앞의 //를 제거하면 각 도메인의 favicon을 불러다 표시해준다.
변경내역
1.0.1 - Eolin.com 검색어 표시가 안되는 문제 수정
1.0.2 - Baidu.com 검색어 표시가 안되는 문제 수정
1.0.3 - %uXXXX 형식의 문자 해석해서 보여주도록 수정
1.0.4 - http://images.google.co.kr 등에서 유입되는 검색어가 제대로 추출되지 않는 문제 수정

태터툴즈 방문자 그래프 플러그인

예전에 만들었던 태터툴즈 클래식용 그래프 프로그램을 태터툴즈 1.0.2 이상에서 쓸 수 있는 플러그인으로 제작..

대충 이런 모양으로 출력된다. 사용법은,

  1. 플러그인을 plugins 디렉토리에 설치 (그리고 환경설정에서 활성화 시켜줌)
  2. VisitorStatisticsGraph 디렉토리의 퍼미션을 707 정도로 조정 (chmod 707 VisitorStatisticsGraph)
    (그래프가 생성되지 않고 자꾸 엑박으로 뜬다면 이부분을 의심해봐야함)
  3. 플러그인의 index.php 파일을 열어서 5째줄부터 나오는 그래프 설정을 원하는 모양대로 맞춘다
  4. 스킨의 적당한 곳에 [##_VisitorStatistics_##] 이라는 태그를 삽입한다

그래프는 하루에 한번만 갱신되므로 설정값을 변경한 후에는 graph.png 파일을 삭제하고 다시 블로그 페이지를 열어서 graph.png 파일을 생성해야 한다.

태터툴즈에 FTP로 첨부파일 올리기

태터툴즈 포럼에 뎅엽이님 질문을 보고 하나쯤 있으면 좋겠다는 생각이 들어 만들었다. 원래는 Flash8에 추가된 업로드 기능으로 폼나게 만들어볼 생각이었는데 거친마루님의 예제를 한참 보고있으니 머리위에 OTL이라는 말풍선이 뜨면서 기운이 확 빠져버리는 현상이;; 그리하여 결국 FTP로 업로드한 파일을 태터툴즈에 붙여주는 원시적인 방식을 택하게 됐음.

upload.php

Version 2006.01.04.01

사용법,

  1. 위의 파일을 내려받아 태터툴즈 홈 디렉토리에 올려놓는다.
  2. 태터툴즈 홈 디렉토리에 upload 라는 디렉토리를 만들고 FTP로 사진이나 기타 파일을 올려놓는다.
    (upload가 아닌 다른 디렉토리 이름을 쓰고싶으면 upload.php 파일의 4번째줄을 수정한다)
  3. 1번에서 업로드한 upload.php 파일을 호출하면 글목록과 업로드한 파일 목록이 보인다 (관리자 로그인 필요)
  4. 파일을 첨부할 포스트를 선택한다. 새로운 포스트로 붙이고 싶으면 (새 포스트)를 선택하면 됨.
  5. 나열된 파일 목록중에서 첨부를 원하지 않는건 체크를 해제한다.
  6. 등록 버튼을 누르면 잠시 시간이 걸린 후 결과가 표시된다.
  7. 각각의 파일 끝에 (복사 성공)이라는 메세지가 뜨면 성공인데 실패라고 뜨면.. 이 포스트에 답글을 달아 도움을 요청한다;;

파일이 이동되는게 아니고 복사된다는 점에 주의. 아직 충분한 테스트를 거치지 못해서 삭제하는 코드를 넣기가 겁나는 관계로..;; 일단 등록이 끝난 파일은 수동으로 지워줘야 한다.

태그 : 태터툴즈

태터툴즈 + BBClone의 10원짜리 팁

Trackback to :: 강력한 접속통계 프로그램 BBClone

예전부터 쓰려고 했던건데 잊고있다 올블로그에서 한스님의 포스트를 보고 생각난김에 간단히 기록한다.

BBClone은 방문한 페이지에 각각 ID를 부여해서 페이지별 순위를 매길 수 있는데 태터툴즈에서라면 각 포스트별 순위를 매기는 용도로 쓸 수 있다. 일반적인 index.php 맨 처음부분에 코드를 삽입하는 경우라면 아래처럼 넣으면 된다.

switch($md)
{
    case "rss": $bbclone_id = "RSS Paper"; break;
    case "guest": $bbclone_id = "Guestbook"; break;
    case "local": $bbclone_id = "Locations"; break;
    case "keyword": $bbclone_id = "Guestbook"; break;
    default: $bbclone_id = $pl ? "POST #$pl" : "Blog Main";
}

define("_BBC_PAGE_NAME", $bbclone_id);
define("_BBCLONE_DIR", "bbclone/");
define("COUNTER", _BBCLONE_DIR."mark_page.php");

if
(is_readable(COUNTER))
    include_once(COUNTER);

예제는 본인의 BBClone 페이지로..;

태터툴즈 답글 + 기타등등을 RSS로

Trackback to :: 블로그에 코멘트 남기면 쪽지 날라오게 하기

Miranda-IM에 입문하면서 이것저것 만져보는 중인데.. 이것저것 다 마음에 들지만 메신저 주제에 옵션이 이렇게 복잡하리라고는 상상도 못했다 orz;; 그만큼 강력하다는 얘기겠지만서도.. 나름대로 처음보는 프로그램에 대한 적응이 빠르다고 생각하는데 이녀석은 시간좀 걸릴 듯 싶다.

아무튼 예전부터 탐냈던 최근 답글 목록을 RSS로 만들어 Miranda로 알림받는 것도 해봤는데 최근버전의 RSSNews 플러그인에 Store only unread news 옵션이 없어져버려 살짝 문제가 됐지만 (다시 보니까 Maximum displayed items 옵션에 1을 넣으면 알려줄 답글이 여러개일 경우에 하나 알려주고 또 알려주고 하는식으로 알림이 온다. 이렇게 되면 위 옵션은 굳이 없어도 될 듯) (그냥 기본값 그대로 0을 넣어두면 답글 하나에 메세지 하나씩 잘 온다) 일단 편하고 좋다. 예전에 골빈해커님이 만드신 패치를 약간 변형해서 답글, 트랙백, 방명록, 방명록 답글을 시간순서대로 보여주는 스크립트를 만들어서 쓰고있다.

rss_notify.php

Version 2006.01.01.01

..이제 답글만 많이 달리면 된다;

태그 : RSS, 태터툴즈

Konfabulator Widget 만들기

뒤늦게 Konfabulator를 받아서 위젯들을 들었다 놨다 하면서 놀던중에 위젯이 자바스크립트로 만들어졌다는 충격적인 사실을 알아냈다. 자바스크립트라면 덤벼볼만 하지. Konfabulator Workshop 페이지에 가서 튜토리얼 문서를 받아 살펴보다가 몇번 좌절한 끝에 우선 남이 만들어놓은거 한번 뜯어보는 걸로 방향을 바꿨다. 위젯 갤러리를 훑어보다가 RSS를 읽어다 표시해주는게 왠지 만만해보여서 The Apple Blog RSS라는 놈을 잡아다 분석해봤더니 생각보다 심플! 위젯 내부는 XML 파일에서 화면을 꾸미고 자바스크립트를 호출해 사용하는 기묘한 구조로 이루어져 있었다. 테스트용으로 배경이미지 하나 달랑 깔아놓고 블로그의 최근 답글 5개를 불러다 표시해주는 녀석을 만들었다. (거의 copy & paste로 만든거긴 하지만;;)

태터툴즈 답글 위젯 실행화면

만들고 보니까 크기가 너무 크다 -_- 기능은 오로지 1분에 한번씩 답글 XML 파일을 불러다 뿌려주는 것 밖에 없다. 위에 첨부한 rss_replies.php 파일을 태터툴즈 메인에 올려놓고 위젯을 실행한 다음 Preference에 들어가 자신의 rss_replies.php 파일 URL을 적어줘야 한다. (기본값은 내 블로그가 들어가 있음;;) 그리고 호스팅 서버에서 iconv 함수 사용이 가능해야 한다. 글꼴은 굴림으로 했더니 영 보기 불편해서 HY견고딕으로 바꿔버렸다. 오피스던가 한글이던가 설치하면 같이 깔리는거 같던데.. 아무튼 웬만한 컴퓨터엔 다 있을 것으로 간주하고;; (HY견고딕, 중고딕 같은건 윈도우에 기본으로 좀 넣어줬으면 좋겠다)

위젯 만드는거 꽤 재밌어서 당분간은 이녀석으로 심심하지 않을 것 같다;

태터툴즈 답글 삭제부분 수정

태터툴즈 0.96 정식버전에만 해당하는 내용임

어쩌다보니 최근엔 계속 태터툴즈 관련 포스팅이다. 아무튼;; 0.96 정식버전에 추가된 기능중의 하이라이트라고 할 수 있는 답글에 답글달기 기능 중에 의도한 것과 살짝 다르게 동작해서 당황하게 되는 부분이 하나 있는데, 하위 답글이 달린 상위 답글을 삭제했을때의 경우다. 상위 답글이 삭제되면서 하위 답글들은 최근 답글 목록 외에서는 영영 볼 수 없는 미아가 돼버리고 마는데 이걸 방지하려면 약간의 수정이 필요하다.

칼을 대야할 부분은 del_exe.php 파일의 34 ~ 43번째 줄이다. (아래 표시된 부분)

put_query("delete from t3_".$dbid."_reply where no = '$num'");
set_rp_cnt($pnum);
?>
<script type="text/javascript">
    alert('지정하신 글이 삭제되었습니다t');
    opener.exe_frame.location.href='add_exe.php?md=rp&num=<?=$pnum?>&d_target=post_<?=$pnum?>';
    window.close();
</script>
<?
exit;

위의 부분을 일단 아래와 같이 고쳐놓은 뒤에,

list ($is_parent) = mysql_fetch_array(mysql_query("select count(*) from t3_${dbid}_reply where rno = '$num'"));

if($is_parent)
{
    /* 뭔가 삽입될 곳 */
}
else
{
    put_query("delete from t3_".$dbid."_reply where no = '$num'");
    set_rp_cnt($pnum);
    ?>
    <script type="text/javascript">
        alert('지정하신 글이 삭제되었습니다t');
        opener.exe_frame.location.href='add_exe.php?md=rp&num=<?=$pnum?>&d_target=post_<?=$pnum?>';
        window.close();
    </script>
    <?
    exit;
}

/* 뭔가 삽입될 곳 */ 이라고 표시된 곳에 어떻게 처리할건지에 따르는 코드를 넣어주면 된다. 답글 삭제시에 하위 답글을 어떻게 처리할 것인가는 기호에따라 몇가지 방법이 있을 수 있는데 대략 3가지 정도 추려보면,

  1. 상위 답글을 아예 못지우게 하는 방법. 방문자의 삭제 권리를 무시하는 방법이므로 사전에 낙장불입 시스템임을 알려둘 필요가 있다.
    ?>
    <script type="text/javascript">
        alert('하위 답글이 달려있어서 지울 수 없습니다t');
        window.close();
    </script>

    <?
    exit;
  2. 상위 답글의 이름, 홈페이지, IP, 본문만 날려버리는 방법. 일단 리플 개수가 줄어들지 않아 좋다 -_-
    put_query("update t3_${dbid}_reply set name='Anonymous', homepage='', body='(삭제된 답글입니다)', password='', ip='0.0.0.0' where no = '$num'");
    ?>
    <script type="text/javascript">
        alert('하위 답글이 달려있어서 내용만 삭제했습니다t');
        opener.exe_frame.location.href='add_exe.php?md=rp&num=<?=$pnum?>&d_target=post_<?=$pnum?>';
        window.close();
    </script>

    <?
    exit;
  3. 하위 답글까지 몽땅 삭제하는 방법. 화끈한 만큼 운영에 주의가 필요하다.
    put_query("delete from t3_${dbid}_reply where no = '$num' or rno = '$num'");
    set_rp_cnt($pnum);
    ?>
    <script type="text/javascript">
        alert('지정하신 답글과 관련 답글이 모두 삭제되었습니다t');
        opener.exe_frame.location.href='add_exe.php?md=rp&num=<?=$pnum?>&d_target=post_<?=$pnum?>';
        window.close();
    </script>

    <?
    exit;

이렇게 3개의 방법중 원하는 방법에 해당하는 코드를 /* 뭔가 삽입될 곳 */ 부분에 넣어주면 된다.

이 블로그는 두번째 방법을 쓰고있다. 어떤 방법이든 이렇게 수정해두지 않으면 쓰레기 데이터가 쌓여서 DB의 일관성에도 문제가 있고 Staticker 같은 통계프로그램에서도 잘못된 결과가 나올 수 있으니 가급적 수정해주는쪽을 추천.

태그 : 태터툴즈

태터툴즈 0.96 위치로그 업데이터

태터툴즈 0.96RC에서 입력된 위치정보는 일단 기본적으로는 태터센터 지역별 목록에 표시되지 않는 모양이다. 이럴땐 싱크를 다시 시켜줘야 목록에 표시되는데 각각의 포스트 수정화면에 들어가 REFLECT 버튼을 한번씩 눌러서 다시 싱크시켜주면 된다. (0.96 정식버전 부터는 싱크된 포스트일경우 REFLECT만 해도 수정된 내용으로 다시 싱크된다) 일일히 작업하기는 귀찮을땐 아래의 스크립트를 사용하면 간편하게 할 수 있다.

위의 파일을 ftp로 태터툴즈 메인 디렉토리에 올려놓고 웹브라우저에 http://yourdomain.com/location.php 이런식으로 입력해서 실행되는 화면을 지켜보기만 하면된다. 일단 위치정보가 삽입된 포스트중 이미 싱크된 포스트의 목록이 나열되고 각각의 포스트를 싱크시켜 성공, 실패 여부를 표시하게 된다. 모든 포스트 제목 뒤에 (성공) 이라고 표시되면 작업 끝. 실패 메세지가 나온다거나 반응이 없거나 하는 경우에는 일일히 REFLECT 버튼을 눌러주거나 SYNC 해제 후 재 SYNC 작업을 하는 수밖에 없다.

확실히 위치로그 등록해두니까 찾아오는 사람이 꽤 된다;; 지역별로 분류해서 보니까 메타사이트에서 시간순으로 보는 것과는 다른 재미도 있고.. 아직은 495개의 포스트 뿐인데 앞으로 글이 많이 늘어났으면 좋겠다.

이번껀 좀 많은 사람들이 봤으면 하는 바람이 있어서 올블로그 추천글로 등록함

태그 : 태터툴즈

태터툴즈 0.96용 노가다 유틸

드디어 기다리던 답글에 답글달기 기능이 추가됐다. 스킨을 고치고 스타일을 수정하는 과정에 예제가 필요해서 DB를 몇개 수정했는데 게시물이 280개 정도 되는 수준이라 이거 그냥 전부다 수정해버릴까? 하는 생각이 들어 노가다 작업에 필요한 유틸을 만들었다.

reply_helper.zip

주의 : 데이터 백업은 필수!!

DB를 직접 건드리는 민감한 물건이니 정신 바짝 차리고 해야함;; 무조건 데이터 백업후에 몇개 해보고 잘 된다 싶으면 계속 진행하고 이상하게 나오거나 답글이 사라져버리면 즉시 복구해야한다.

  1. 태터툴즈 메인 디렉토리에 올려놓고 reply.php 파일을 호출한다.
  2. 가장 최근의 포스트에 달린 답글이 표시된다. 첫번째 게시물에 답글이 없으면 실행 & 다음 게시물로 버튼을 눌러 답글달린 포스트가 나올때까지 넘어간다. (단축키 ALT-S)
  3. 답글이 쭉 나오면 작업을 시작한다. 방법은 먼저 부모글을 클릭하고, 그에 해당하는 자식 글을 클릭한다. (순서에 주의) 하나의 부모글에 여러개의 답글이 있을때도 부모글 클릭, 자식글 클릭을 반복하면 된다.
  4. 관계 설정이 끝나면 실행 & 다음 게시물로 버튼을 눌러 다음 게시물로 이동해 작업을 계속한다.
  5. 클릭을 잘못해서 취소하고 싶으면 F5키를 눌러서 새로고침한 다음에 다시 하면 된다.

다시한번 강조하지만 반드시 백업후 작업할 것 급조해서 이 블로그에만 적용한뒤 올려놓은거라 다른 곳에서는 이상동작을 하지 않는다는 보장이 없다.

덧. 0.96RC 쓰면서 입력해 놓은 글들이 태터툴즈 홈 지역별 분류 목록에 보이지 않는다면 해당 포스트의 SYNC를 한번 풀었다 다시 걸어주거나 게시물 편집으로 들어가서 위치 입력 옆의 SET 버튼을 한번 눌러주면 업데이트 된다.

덧. 아참 파일명이 reply.php, reply_exec.php 인데 태터툴즈에 원래 들어있는 reply_exe.php 파일과 혼동하지 않도록 주의. (아까 작업 끝내고 지운다고 저것까지 지워버리는 바보짓을 해서..;;)

태그 : 태터툴즈

태터툴즈용 간단한 통계 그래프

그래프 프로그램 데모 화면

최근 n일 동안의 데이터를 뽑아 출력해 그래프를 그려준다. 기존에 있는 것도 많지만 매일매일의 그래프가 아닌 증권차트의 n일 평균 이동선을 보고싶어서 삽질을 거듭해 완성. 오늘 기준으로 최근 두달간 5일 이동평균선의 추세를 보니 꾸준히 상승중. 지금이야말로 매입 찬스!;; 제일 높았던 기록은 올블로그 알찬글 올랐을때고 제일 낮았을때는 구글봇때문에 트래픽 초과됐던 날이다.

저 아래 graph.php 파일을 받아서 태터툴즈가 설치된 디렉토리에 올려놓고 파일을 열어서 변수들을 수정하면 된다.

num
불러올 카운터의 개수. 한달치를 불러오고 싶으면 30으로 수정.
width, height
각각 그래프의 너비, 높이.
trend
위 그래프에서 빨간 선으로 표시된 추세선의 기준값. 5라고 넣으면 그래프의 한 점의 값은 지난 5일간의 평균을 의미한다. 0을 집어넣으면 표시하지 않음.
grid
얼룩무늬의 폭을 지정하는건데 단위는 1일. num 값에 따라 유동적으로 변한다.
color_*
주석에 표시된대로 각각 배경, 무늬, 그래프의 색을 지정한다. 빨간색이면 0xff0000 이렇게 넣어주면 됨.

불러올때는 <img src="graph.php" width="175" height="95" alt="통계 그래프"/> 같은 식으로 호출하면 된다. 이렇게 되면 graph.png 파일이 만들어져 표시되게 되는데 이 파일은 하루에 한번만 만들어지기 때문에 최초에 graph.php 파일을 실행하면 변수를 바꿔서 또 실행해도 graph.png 파일이 업데이트 되지 않는다. 이럴땐 http://yourdomain.com/tt/graph.php?force=1 이렇게 실행해주면 강제로 graph.png 파일을 업데이트 한다. (참고로 저렇게 실행한 상태에서 새로고침을 누르면 graph.png 파일만 새로고침 되기 때문에 graph.php 파일은 호출되지 않는다. 그래서 변수를 수정하고 바뀐 내용을 확인할때는 항상 위에 적힌 URL처럼 PHP 파일을 직접 호출해줘야 함. 또 참고로 새로고침해도 잘 업데이트가 안되면 http://yourdomain.com/tt/graph.php?force=1&asdfasdf 이렇게 URL 뒤에 & + 의미없는 문자를 추가해 입력하면 확실히 새로고침 된다)

좀 그럴듯 하게 만들어서 배포하고 싶은데 이정도에 만족해버려서 더이상은 포기;

graph.php

Version 2005.08.16.01