kebie님의' 태터툴즈에서 태그 구름 사용하기' 트랙백

태그목록 표시를 구현하기 위해 밤낮으로 삽질하던 중에 kebie님께 목말라하던 트랙백을 받았습니다. 태그기능을 거의 완벽하게 구현하셨더군요. 특히, 태그를 선택하면 관련된 태그만 출력되는 것은 너무도 훌륭합니다. 하던 작업을 때려치우고, kebie님의 소스를 바탕으로 표시되는 순서와, 하이라이트 등과 관련된 부분을 재가공하여 아래와 같이 적용하였습니다.
수정전
$result = @mysql_query($sql);
while(list($pcnt, $tag) = @mysql_fetch_array($result)){
if($pcnt>8) $font='s4';
elseif($pcnt>3) $font='s3';
elseif($pcnt>1) $font='s2';
else $font='s1';
$tags_str .= '<a rel='tag' href='index.php?stag='.urlencode($tag).''><font class=''.$font.''>'.$tag.'</font></a> ';
}return $tags_str;
}
수정후
$sql = "select count(*), tag from t3_".$dbid."_tag".$WHERE_COND." group by tag order by no desc limit 0, 32";
$result = @mysql_query($sql);
while(list($pcnt, $tag) = @mysql_fetch_array($result)){
if($pcnt>8) $font='cloud1';
elseif($pcnt>5) $font='cloud2';
elseif($pcnt>3) $font='cloud3';
elseif($pcnt>1) $font='cloud4';
else $font='cloud5';
$p_rep = $GLOBALS["plugin"]->s_rcttag_rep;
$p_rep = str_replace("[##_rcttag_rep_tag_##]", "<a href=\"index.php?stag=".urlencode($tag)."\"><font class="".$font."">$tag</font></a>", $p_rep);
$p .= $p_rep;
}
return $p;
}
order by no desc - 최근에 작성한 포스트에 포함된 태그 순서로 표시
$pcnt - 중복되는 태그 수 1, 3, 5, 8 순으로 하이라이트 표시
limit 0, 32' - 최대 출력 수 32개로 재한(플러그인 환경설정에서 지정)
스킨의 Style.css에서 클라우드 색상 지정 가능 하도록 변경
※ 파란색 코드만 자신의 블로그에 맞게 수정하시면 됩니다. 플러그인화 하기위해 $p_rep를 정의하였습니다. 이 부분은 무시하셔도 무방합니다.
Style.css 태그 cloud 스타일
.cloud1 { font-size: 15px; color: #cc3300; font-family: "돋움"; letter-spacing:-1px;}
.cloud2 { font-size: 14px; color: #ff9900; font-family: "돋움"; letter-spacing:-1px;}
.cloud3 { font-size: 12px; color: #669900; letter-spacing:-1px;}
.cloud4 { font-size: 11px; color: #0099CC; font-family: "돋움";}
.cloud5 { font-size: 11px; color: #999999; font-family: "돋움";}
index.php 태그의 총 개수 출력하기
중복되지 않는 태그 수 구하기위해 index.php의 가장 하단 print $d1; 위에 파란색 코드를 삽입 후 skin.html의 적절한 위치에 [##_rcttag_rep_tag_count_##]치환자를 추가하시면 되겠습니다.
$sql = "select count(distinct tag) from t3_".$dbid."_tag;";
$result = mysql_query($sql);
while(list($tag) = mysql_fetch_array($result)){
$tag_count = $tag;
$d1 = str_replace("[##_rcttag_rep_tag_count_##]", "($tag_count)", $d1);
}
$d1 = str_replace("[##_rcttag_rep_tag_count_##]", "", $d1);
}
print $d1;
Comments
Got something to add? You can just leave a comment.
태터 1.0 클래식에 태그 구름 달기
직접 만드신 플러그인으로 기능들을 추가하고 계신가보네요. 멋지네요...
reply edit
그동안의 포스트에 태그를 넣다보니 너무 필요한 것 같아서 스스로 만들들고 있는 중에 kebie님 덕분에 수월하게 구현하였습니다. 매우 감사드립니다.
reply edit
태그 구름 만들기 스크랩
태그 갯수표시가 안됩니다 ㅠ.ㅠ
확인 좀 부탁 합니다.^^
아래서 5번째줄
### 이거 3개들어간 부분이 맞는건가요???
reply edit
오타가 있었습니다. 대단히 죄송합니다. ###들어간 부분을 ##로 바꾸시면 되겠습니다.
reply edit
유용하군요. 잘 쓰겠습니다. ^^
reply edit
감사합니다. ^^
reply edit
태그 구름 구현
태그 클라우드 적용.
좋은 팁 감사합니다. 그런데 태그를 설정해주고 글을 작성한후.. 그글의 태그를 수정했을때
태그 구름에서는 없어진 태그를 다시 수정하지 않는듯 합니다. 그래서 수정하기 전의 태그도 갯수를 세어서 A라는 태그에 들어가는 1이라는 글이 4개 있다고 나오지만 실제로는 수정한 태그도 세어버려서 글은 2개밖에 없는 현상이 일어나기도 하는데요... (제홈페이지에 와보시면 아실듯..)
이거 어떻게 고칠방법이 없는지요?
reply edit
저또한 그 문제를 kebie님께 피드백하였습니다. 그리고 아래의 링크를 따라가시면 해결방법이 있습니다.
http://kebie.linuxstudy.pe.kr/2005/blog/tt/index.php?pl=77
reply edit
감사합니다. ^^
reply edit
Your Reaction Time!