Rev. 2.73

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

태그클라우드.png

태그목록 표시를 구현하기 위해 밤낮으로 삽질하던 중에 kebie님께 목말라하던 트랙백을 받았습니다. 태그기능을 거의 완벽하게 구현하셨더군요. 특히, 태그를 선택하면 관련된 태그만 출력되는 것은 너무도 훌륭합니다. 하던 작업을 때려치우고, kebie님의 소스를 바탕으로 표시되는 순서와, 하이라이트 등과 관련된 부분을 재가공하여 아래와 같이 적용하였습니다.

수정전

$sql = 'SELECT count(*), tag from t3_'.$dbid.'_tag'.$WHERE_COND.' GROUP BY tag ORDER BY tag asc';
$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;
}

수정후

unset($p);
$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_##]치환자를 추가하시면 되겠습니다.

if (strpos($d1, "[##_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

RC3에서 발견된 버그
- 태그목록 조회시 항상 내용이 함께 펼처짐(관리자 옵션 필요함) : 내용을 표시하지 않게 수정
- 태그목록에서 글표시 개수보다 태가가 많을경우 페이징 안됨 : 내용이 나오지 않음으로 무효
- 갤러리 두번째 장부터 캡션이 없어도 공백 한줄이 아래로 밀리는 현상있음 : div를 table 로 변경하여 해결
- 갤러리 두번째 장부터 캡션이 있으면 자바스크립트 오류 : 개인적으로 추가한 스크립트와의 충돌로 일어남 문제의 스크립트 교체로 해결
- 검색하여 포스트 관람 후 이전페이지로 이동하면 만료된 페이지 : if ($search) 추가로 해결
- 태그 리스트에서 글을 조회할 경우 다음페이지로 연결되지 않음 : $add_val 및 '|| ($stag && !$pl)'코드 추가로 해결
- 메인페이지에 갤러리가 한건이상 있는경우 이미지 크기오류 : 스크립트상 max_height값의 충돌로 생기는 버그임 max_height<?=$snum?> 추가로 해결.
- 링크 및 [코드] 그리고 [html] 에는 키워드가 적용되지 않도록 할 것.
- 하나의 글에 태그가 중복으로 입력되는 버그
- 태그가 입력된 포스트를 삭제할경우 태그가 삭제되지 않는 버그

플러그인에서 발견된 버그
- 태그를 누르면 글 목록 깨짐, 카테고리 표시에 버그 있음 : '|| $stag' 코드 삽입으로 해결
- 태그 목록에서 2페이지 부터 리스팅이 되지 않음 : '|| $stag' 코드 삽입으로 해결
- 이미지 그래프 카운터 작동 이상있음 : 깜장여우님의 해결방법으로 해결
- MSN알리미 한글깨짐현상 : 해결방법
- 태그를 클릭하여 나온 목록에서 2페이지로 밀릴경우 링크 안걸림 : $add_val 추가로 해결
- 태그를 누를경우 내용이 표시되지 않음 : '|| ($stag && !$pl)'코드 추가로 해결

1.0에서 새로 구현된(할) 작업목록
- 모든 글에 태그달기
- 카테고리 표시방법 변경
- inc_plugin.php 최근 태그목록 표시 : 구현완료(테스트 완료 / 공개완료)
- keyword.php 관리자 > 키워드 목록에서 키워드 및 내용 '검색하기' 추가(공개완료)
- keyword.php 관리자 > 키워드 목록에서 총 키워드 수 추가(공개완료)
- inc_function.php 갤러리, 이미지 클릭으로 다음장 넘김 및 툴바 위치 변경 (이곳 참고)
- 키워드, 메모장, 한줄메모, 트래픽조회, 트랙백 발송, 갤러리 이미지뷰 등에 DHTML Window 적용
- 미니 메모장 추가
- 한줄 카테고리 구현(New이미지 작동)(공개완료)
- 툴팁 스크립트 변경
- 슬라이드 최근 썸네일 갤러리 구현
- 최근 글, 댓글, 트랙백, 방명록에 New아이콘 대신 텍스트 색상변하도록 변경
- 한줄메모, 인기글목록, 아카이브 리스트 New아이콘 대신 텍스트 색상 변하도록 변경
- 아카이브 리스트에 인기도 반영된 하이라이트 표현(공개완료)
- 전테 태그목록 페이지 추가(테스트 및 공개완료)
- 지역, 키워드, 이웃 RSS 페이퍼의 페이지 및 관련 스크립트 제거
- 자체 갤러리 버그 수정 및 개조(테스트중)
- 태그관리페이지 추가 : 일괄삭제, 일괄변경, 부분삭제, 부분변경, 검색(진행중)
- 오피셜 기능 업어오기 : WYSIWYG 에디터(진행중)
- 팝에디터 : 단축키 반영, 플래시MP3플레이어 추가, 예쁜 글상자 추가(진행중)
- 코멘트 및 트랙백 리스트 역순 정렬하기(진행중)
- 지역별, 이웃로그, 키워드 관련 기능 제거
- 댓글 알리미 노출시키기 or MSN알리미와 연동
- 배포한 스킨들 클래식용으로 업데이트
- 파이어폭스 지원(모질라 지원 스크립트 및 CSS 교체)

※ 최종 업데이트 2006-02-04

Comments