비공개글의 태그가 그냥 출력되는 버그가 있었습니다. 그냥 적당히 만족하는 대로 놔둘까도 했지만, 생각보다 많은 분들이 이 팁을 적용하신 것 같아서 관리자로 로그인 했을 경우에만 비공개글의 태그를 뿌려주도록 코드를 보완하였습니다. 클래식용 태그클라우드 패치를 하셨던 분들은 get_tegs() 함수를 아래의 코드로 교체하시면 됩니다. SQL 쿼리문에서 Table Join 을 사용했는데, 쿼리문 사용이 아직 미숙해서 잘되는 것인지 확신은 안서네요. 대충 보기에 문제없는 것 같아 공개해봅니다. (슬슬 코드에서 스파게티 냄새가 나기 시작하는듯... )
1. index.php
// add to 542 lines (you can change '-' to '_')
if (strpos( $d1, "[##-tags-##]")) $d1 = str_replace( "[##-tags-##]", get_tags(), $d1);
2. inc_presswork.php : get_tags() 함수 변경 (copy & paste 하세요.)
get_tags() 코드안보이기.. function get_tags() { global $dbid, $stag;
// CSS for Tags Hilighting ob_start(); ?>
<!-- /*********************************************** This is a function to show tag cloud for tatter tools 1.0 classic If you have a problem , give me a message, plz. FeedBack: http://kebie.linuxstudy.pe.kr/ written 2006.01.17 updated 2006.02.03 coded & bug fixed by kebie ***********************************************/ --> <style type="text/css"> .mycloud1 { font-size: 88%; color:#c5c5c5; } .mycloud2 { font-size: 100%; color:#a2a2a2; } .mycloud3 { font-size: 112%; color:#a2a2a2; font-weight:bold; } .mycloud4 { font-size: 127%; color:black; font-weight:bold; } .mycloud5 { font-size: 130%; color:red; font-weight:bold; } </style> <? $tags_str = ob_get_contents(); ob_end_clean();
// Generate related tags condition for SQL $WHERE_COND = ''; if(!empty($stag)){ $sql = 'SELECT pno FROM t3_'.$dbid.'_tag WHERE tag=\''.$stag.'\' ORDER BY pno asc'; $result = @mysql_query($sql);
if(return_authority()){ while(list($pno) = @mysql_fetch_array($result)) $WHERE_COND .= ' OR pno='.$pno; $WHERE_COND = ' WHERE ('.substr($WHERE_COND, 4).') AND tag<>\''.$stag.'\''; }else{ while(list($pno) = @mysql_fetch_array($result)) $WHERE_COND .= ' OR tag.pno='.$pno; $WHERE_COND = ' AND ('.substr($WHERE_COND, 4).') AND tag.tag<>\''.$stag.'\''; } }
if (return_authority()){ $sql = 'SELECT count(*), tag FROM t3_'.$dbid.'_tag'.$WHERE_COND.' GROUP BY tag ORDER BY tag asc'; }else{$sql = 'SELECT count(*), tag.tag FROM t3_'.$dbid.'_tag AS tag JOIN t3_'.$dbid.' AS content ON tag.pno=content.no WHERE content.is_public=1'.$WHERE_COND.' GROUP BY tag.tag ORDER BY tag.tag asc';}
$result = @mysql_query($sql); while(list($pcnt, $tag) = @mysql_fetch_array($result)){ // Force to Change post count number if(return_authority()) $row = mysql_fetch_row(mysql_query('SELECT count(*) FROM t3_'.$dbid.'_tag WHERE tag=\''.$tag.'\'')); else $row = mysql_fetch_row(mysql_query('SELECT count(*) FROM t3_'.$dbid.'_tag AS tag JOIN t3_'.$dbid.' AS content ON tag.pno=content.no WHERE content.is_public=1 AND tag.tag=\''.$tag.'\'')); $pcnt = $row[0]; // Apply CSS to Font if($pcnt>19) $font='mycloud5'; elseif($pcnt>8) $font='mycloud4'; elseif($pcnt>3) $font='mycloud3'; elseif($pcnt>1) $font='mycloud2'; else $font='mycloud1'; $tags_str .= '<a rel=\'nofollow\' href=\'index.php?stag='.urlencode($tag).'\' title=\''.$tag.' : '.$pcnt.' 건\'><font class=\''.$font.'\'>'.$tag.'</font></a> '; }return $tags_str; }
3. skin.html
// Insert follow string into the place you want (you can change '-' to '_')
[##-tags-##]
4. FeedBack To : http://kebie.linuxstudy.pe.kr/
참고.
최근에 출시된 TatterTools 정식버전에도 태그클라우드가 포함되어 있지만, TatterTools 1.0의 태그클라우드가 아직까지는 관련된 태그를 보여주질 않아서 관련태그목록을 출력할 수 있도록 만들어본 태그클라우드 입니다. 이 팁은 태그클라우드가 없던 TatterTools Classic RC3용 패치였지만, 정식버전의 태그클라우드의 유무와 상관없이 적용할 수 있습니다. 이 팁을 적용한 뒤에는 원하는 태그구름 치환자를 선택해서 쓰시면 됩니다.
태그구름을 사용하면 블로그의 관심사를 보다 쉽게 표현할 수가 있습니다. 예를들면, 구지 프로필을 만들어 "저는 이러한 것에 관심이 있어요" 라는 설명을 달아 놓지 않더라도, 태그구름을 보면 방문객들이 블로그의 관심사를 한눈에 쉽게 파악 할 수 있는 장점이 있습니다. 태그를 선택할때에는, 자신의 관심사를 표현할 수 있는 단어를 태그로 선택하는 방법을 추천합니다. 태깅가이드(?)
2006.02.05 : 위 코드에서는 관련된 태그목록 출력시 선택된 태그와 관련된 태그를 모두 포함하는 글의 개수를 보여주고 있지만, 관련된 태그목록에서는 강조효과가 달라지게 됩니다. 파이어준님의 피드백을 받아 관련된 태그목록에서도 하이라이팅 효과를 강제로 유지할 수 있도록 하는 코드를 급조하였습니다.
2006.02.12 : 하루나기님의 피드백을 받아 클래식 정식버전의 태그클라우드와 겹치는 CSS 이름을 cloud -> mycloud로 변경하였습니다.
2006.02.14 : 비공개글이 없음에도 불구하고 태그구름링크에서 갯수가 올바르게 표기되지 않는 분들은 미루님의 트랙백을 확인해보세요. 원래는 글 삭제시 관련된 태그들도 함께 지워줘야 하지만, 이부분이 태터툴즈에서 구현이 안된 것 같습니다. 따라서, 임시방편으로 글을 삭제하기 전에 글에 달아둔 태그를 먼저 제거하고나서 글을 삭제해야 합니다. 이미 삭제하신 분은 DB의 t3_tts_10ofmg_tag 테이블에서 pno 필드의 값이 삭제한 글의 번호와 일치하는 행을 직접 제거해주셔야 합니다. -> 이런 것이 번거롭다면, 태터툴즈 클래식에 태그삭제기능 추가하기를 참고하세요.
2006.02.15 : 태그구름 링크에서 rel="tag" 옵션을 rel="nofollow" 로 변경하였습니다. rel="tag"에 대해서는 파이어준님의 rel=”tag”코드, 있고 없음의 차이를 참고하세요. |
[+]
태그 : Tag(    ) , TagCloud(    ) , 태터툴즈(    ) , 고쳐쓰기(    )
Tyburn 06/02/03 14:44  |
전 비공개 글에는 태그를 쓰지 않기 때문에 수정은 안해도 될 것 같네요.
정보 제공 감사드립니다. |
 |
 |
|
 |
|
kebie 06/02/03 14:59  |
| 현명한 판단이십니다. 비공개글에 태그를 안쓴다면 기존의 패치와 차이는 없습니다. ^^ |
|
|
 |
|
 |
|
엘리타쥬 06/02/03 15:30  |
저도 비공개글(몇 개 없지만)에는 아직 태그가 없으니, 패스~ 헤헤.
늘 좋은 팁과 정보 감사합니다. (_ _) |
 |
 |
|
 |
|
kebie 06/02/03 21:18  |
| 사실 저도 비공개글에 태그 지정해둔게 별로 없습니다. OTL |
|
|
 |
|
 |
|
kamu 06/02/03 16:11  |
저도 비공개 글에는 태그 적용이 안되어있어서 수정 안 할 듯 싶네요 ^^
감사합니다..^^ |
 |
 |
|
 |
|
kebie 06/02/03 21:22  |
| 생각해보니 버그를 수정한것으로 보기 애매하네요. 안해줘도 문제 없는 패치라... |
|
|
 |
|
 |
|
yoshiya 06/02/03 17:33  |
와, A/S까지 확실하시군요!
고객 감동입니다. ㅠ |
 |
 |
|
 |
|
kebie 06/02/03 21:20  |
| 작년까지만 해도 군수지원 부대에 있었죠. 위병소에 있는 팻말에 이렇게 적혀 있습니다. 고객만족 감동지원. OTL |
|
|
 |
|
 |
|
DARKLiCH 06/02/03 21:11  |
| 수고하셨습니다. 마침 비공개글 몇개에 태그가 적용되 있어서요. ^^; |
 |
 |
|
 |
|
kebie 06/02/03 21:16  |
| 사실 DARKLiCH 님이 남긴 댓글을 보고 작업을 시작했습니다. 어쩌다 보니 DARKLiCH 님을 위한 팁이 되버렸군요. ^^; |
|
|
 |
|
 |
|
파이어준 06/02/05 09:05  |
공개해주신 태그목록 참 유용하게 사용하고 있습니다. 감사합니다. 다름이 아니라 도저히 혼자서 해결하지 못하는 부분이어서 염치없이 문의 드리러 왔답니다. 태그를 클릭한 후에 발생하는 문제인데요. 분명 해당 태그에는 글이 1개 이상의 글이있지만 속해있는 글이 한개로 표시되는 경우가 발생합니다. 그래서인지 하이라이트 또한 오락가락 합니다.
아마도 관련된 태그들 중에서만 카운트하기 때문인것으로 생각하고 where_cond를 열심히(?) 고쳐봤지만 수확이 없었습니다. orz.. 그래서 하이라이트를 만들어주는 별도의 function을 사용하면 될것 같기도 하여 다시금 열심히(?) 만들어봤지만 orz....
해결방법이 있을까요? |
 |
 |
|
 |
|
kebie 06/02/05 09:35  |
| 예 말씀하신대로... 관련된 태그목록에서는 해당태그와 현재 태그 둘다에 해당하는 갯수를 보여주고 있습니다. 가장 쉬운 해결책은 관련된 태그를 보여주지 않는 방법이죠. 다른 해결방법으로는 1. 관련태그를 보여주면서 그 갯수는 해당 태그의 갯수만 보여주도록 하는 방법이나, 2. 둘다에 관련된 태그만 보여주도록 태그링크를 수정하는 방법이 있을 것 같습니다. 관련된 태그를 통하여 글의 범위를 좁혀간다는 쪽에서는 후자의 방법이 더 좋은 것 같다는 생각이 들지만, 아무래도 하이라이팅 효과를 볼 수가 없죠. 일단은 강제로 하이라이팅을 유지할 수 있도록 하는 코드를 본문의 아래쪽에 덧붙였습니다. ^^; |
|
|
 |
|
 |
|
 |
 |
|
 |
|
파이어준 06/02/06 03:57  |
| 대단히 감사합니다. 덕분에 해결할 수 있었습니다. |
|
|
 |
|
 |
|
하루나기 06/02/12 21:03  |
안녕하세요^^; 얼마 전 RC3로 업데이트하면서 우연히 팁을 보게 되어 고맙게 적용하고 사용 중입니다. 어제 클래식 정식 버전으로 업데이트도 했구요. ^^
다시 방문해 보니, RC3나 정식 버전이나 상관없이 적용 가능하다고 하셔서 적용해 봤는데, kebie님께서 알려주신 태그 크라우드는 CSS가 1~4로 하이라이팅이 되는데, 정식 버전의 CSS는 5~1로 돼 있더라구요. 그래서 kebie님의 코드 중 CSS 부분은 정식 버전에 맞게 수정했는데, 정식 버전 크라우드는 관련 글이 1개면 5, 2개면 4, 3개면 3...이런 식으로 적용되는 것 같아요. 그래서 정식판의 추가 메뉴인 태그를 눌러 보면 kebie님의 목록은 1, 3, 8로 하이라이팅이 적용돼 있지만 본문에 나오는 목록은 1,2,3...이렇게 적용된 것 같은데..이런 경우엔 어떤 방법을 적용해야 하나요?
(제가 잘 모르다 보니, 장문인데 핵심은 간단하네요...^^;) |
 |
 |
|
 |
|
kebie 06/02/12 22:33  |
| 하이라이팅을 위한 CSS가 겹치는군요. 그래서 바꿨습니다. get_tags() 함수를 위의 새로운 코드로 바꿔주시면 정식버전의 태그구름과 별개로 하이라이팅이 적용될 것 입니다. 혹시 해결이 안된다면 다시 댓글 남겨주세요. :) |
|
|
 |
|
 |
|
 |
 |
|
 |
|
하루나기 06/02/12 23:34  |
답변 감사합니다. ^^
방금 수정했는데, 별개로 잘 작동하고 있습니다.
정식 버전에서 하이라이팅 단계를 알면 양쪽을 맞춰 보려고 했는데, 정식 버전 소스를 봐도...뭘 건드려야할지 모르겠더라구요^^
빠른 답변 감사합니다. ^^)乃 |
|
|
 |
|
 |
|
 |
 |
|
 |
|
하루나기 06/02/13 01:48  |
저만 그런 것인지는 모르겠습니다만, 계속 로그인 상태로 있어서 몰랐는데, 로그아웃된 상태로 좀 전에 접속해 보니, 태그 목록에 태그가 나오지 않더라구요^^;
그래서 예전 패치로 붙여 넣으면 로그인을 하지 않아도 잘 나오구요.
물론 로그인을 하면 목록이 잘 나오긴 합니다만, 저만 보이는 거였더라구요^^ (저도 좀더 확인해 봐야할 것 같네요^^) |
|
|
 |
|
 |
|
 |
 |
|
 |
|
kebie 06/02/13 11:00  |
| 혹시 오타가 있나 싶어 그대로 드래그해서 적용해봤지만, 하루나기님과 동일한 문제가 발생하질 않아서 원인을 찾을 수가 없네요. 혹시 그당시에는 비공개 글에 태그를 지정하신건 아닌지요? 모든 글에 태그가 적용되었다면, 아마 태그목록이 나오리라고 생각됩니다. |
|
|
 |
|
 |
|
 |
 |
|
 |
|
하루나기 06/02/13 22:50  |
다시 이래저래 해봤는데 안되네요^^; 로그인을 하면 제대로 나오지만, 그냥 접속했을 땐 출력이 안돼서 그냥 예전으로 돌렸습니다.
비공개글은 올해엔 쓰지 않았구요, 위 소스랑 다른 점은 CSS부분만 style에서 지정해서 쓴다는 건데, 이건 상관없는 부분 같구요^^;
위 소스에서 관리자 체크하는 부분만 뺄 수는 없는 건가요? |
|
|
 |
|
 |
|
 |
 |
|
 |
|
kebie 06/02/13 23:41  |
| 혹시 스킨의 <s_ad_div></s_ad_div> 태그사이에 태그구름 치환자를 넣으신 것은 아닌가요? 이 태그 사이에 있으면 관리자로 로그인한 경우에만 보이게 되어 있습니다. 만약, 위 사항에도 해당되지 않으신다면, 우측상단의 주소로 제게 메일주시면, 관리자체크하는 부분을 제거한 코드를 답장으로 보내드리겠습니다. -> 답장 보내드렸습니다. 미루님이 보내주신 트랙백도 참고하시면 도움 되실 것 같네요. :) |
|
|
 |
|
 |
|
하루나기 06/02/14 17:55  |
신경 써 주셔서 고맙습니다. 덕분에 방금 잘 적용하였고, 문제없이 작동합니다. ^^;
저만의 문제인 것 같네요. 고마운 마음을 담아 트랙백 하도록 하겠습니다. ^^a
(트랙백이란 것을 아직 좀 생소하게 생각하고 있어서...^^) |
 |
 |
|
 |
|
kebie 06/02/14 19:25  |
| 트랙백이라는게 뭐 별건가요. 일반 계층형 게시판에서 답글다는 것과 비슷한거죠. ^^; |
|
|
 |
|
 |
|
써머즈 06/02/21 21:51  |
| 예전에 소스를 수정했는데, 지금에서야 답글을 남깁니다. 자투리 팁도 트랙백으로 걸었습니다. 감사합니다. ^^ |
 |
 |
|
 |
|
kebie 06/02/21 23:28  |
| 트랙백과 댓글 남겨주셔서 감사합니다. 태그의 수가 너무 많아서 사이드바에 적용하기 어려운 분들께 유용한 팁이 될 것 같네요. |
|
|
 |
|
 |
|
|
|
|