태그구름(tag clouds)을 적용해보자~

스킨화를하지는 못하였기에 팁란에 올립니다.. 제로보드에 적용된것을 그누보드에 맞게 수정하였으며.. 검색기능과 연계시켰습니다.. 여분필드 wr_10을 사용합니다... 우선...아래의 소스를 tags.php로 만들어 그누보드설치경로에 올립니다..(즉 그누보드의 index.php와 같은곳) "; // 기본 열기 태그 설정(해당 키워드에 기본적으로 태그입히기) $base_tag2 = ""; // 기본 닫기 태그 설정(해당 키워드에 기본적으로 태그입히기) $limit_num = $l_num; // 뽑아올 키워드 개수 $use_tags = array("","","","","","","","","","","","","",""); // 태그 등록(배열로 정확히 등록할것) $board_name = "게시판1,게시판2,게시판3"; // 뽑아올 게시판(컴마 (,) 로 구분) $rate = count($use_tags)+1; // 태그를 적용할 확률(랜덤) 뒤에 숫자가 클수록 확률 적음, 나머진 기본 태그로 보임 $board_name = explode(",",$board_name); for($i=0;$i","",$tmp_tag); $tmp_tag = explode(" ",$tmp_tag); if($tmp_tag[0])$close_tag = ""; else $close_tag = $base_tag2; $space = " | "; $tags[] = "".$open_tag.$tags_value[$k].$close_tag."{$space}"; } $tags = implode("",$tags); echo $tags; } ?> 그리고 태그구름을 적용할 게시판스킨의 write.skin.php의 아래부분에 을 추가합니다.. 그리고..write.skin.php의 트랙백쓰기 위부분에 태그입력:태그(핵심 키워드)를 ,(컴마)로 구분하여 넣으세요! '> 추가해줍니다.. 그리고나서 태그구름을 불러올 파일(예 index.php)의 상단에 제일 처음 만든 tags.php를 인쿠르드시켜줍니다.. 그리고 나서 호출할 위치에 위와 같이 호출해줍니다.. 여기서 주의사항은 갯수를20개로 한다면 20개의 태그가 이미 입력되어 있어야 합니다.. 그리고나서 popular스킨과 search에서 1.popular.skin.php의 하단의 {$list[$i][pp_word]}"; ?> 에 wr_10을 추가합니다.. 다음과 같습니다.. {$list[$i][pp_word]}"; ?> 2.search.skin.php에서 역시 wr_10을 추가해줍니다... 마지막으로.. 적용게시판 스킨의 view.skin.php에서 내용을 불러오는 곳인 를 다음과 같이 바구어줍니다..
icon_tag.gif   여기서 이미지는 만들어서 경로에 올려주시면됩니다.. 적용게시판은 처음에 만든 tags.php에서 설정해주는만큼 적용할수잇습니다.. 참고로 적용된 예는 상단에 링크를 했습니다..
|

댓글 7개

북학인님 수고하셨습니다.. 많은 도움 되었습니다.
스킨에도 문안하게 적용되네요.

** <? tag_cloud(갯수);?>

==>> 정말 주위 ㅠ
<? tag_cloud(갯수);?>

호출시 입력되어진 태그숫자보다 많이 호출하면 무한루프를해버립니다...
입력태그숫자를 늘려가면서...<? tag_cloud(갯수);?> 의 입력갯수를 함게 적정선까지 늘려가셔야합니다
태그갯수이상 입력시 에러 처리를 미리 해야 할듯 하네요.
수고하세요. ^^
글자가 다 깨져서 볼 수가 없네요 - -!!
http://www.sc8000.net/gn/bbs/board.php?bo_table=gn_tip&wr_id=1285&page=4
구글에서 찾았습니다. 글 깨져서 못보셨던 분들 참고하세요~

[SIR > 그누보드4 > 팁] 태그구름(tag clouds)을 적용해보자~ +
글쓴이 : RSS 날짜 : 07-05-02 18:51 조회 : 28
스킨화를하지는 못하였기에 팁란에 올립니다..
제로보드에 적용된것을 그누보드에 맞게 수정하였으며..
검색기능과 연계시켰습니다..
여분필드 wr_10을 사용합니다...

우선...아래의 소스를 tags.php로 만들어 그누보드설치경로에 올립니다..(즉 그누보드의 index.php와 같은곳)
<?

function tag_cloud($l_num) {


$base_tag1 = "<font color=#999999>"; // 기본 열기 태그 설정(해당 키워드에 기본적으로 태그입히기)
$base_tag2 = "</font>"; // 기본 닫기 태그 설정(해당 키워드에 기본적으로 태그입히기)
$limit_num = $l_num; // 뽑아올 키워드 개수
$use_tags = array("<font style='font-family:굴림;color:#CC0000'>","<font style='font-family:굴림;color:#339900'>","<font style='font-family:굴림;color:#0066CC'>","<font style='font-family:굴림;color:#CC00CC'>","<font style='font-family:굴림;color:#339999'>","<span style='font-family:굴림;color:#669933;background-color:#EAF6D7;'>", "<span style='font-family:굴림;color:#6699FF;background-color:#E7F1FE;'>", "<font style='font-family:굴림;font-size:14pt;color:#CC0000'>","<font style='font-family:굴림;font-size:14pt;color:#FFCC00'>","<b>", "<font style='font-family:굴림;font-size:18pt;color:#333366'>","<font style='font-family:굴림;font-size:18pt;color:#996666'>","<font style='font-family:굴림;font-size:18pt;color:#003399'>","<font style='font-family:굴림;font-size:18pt;color:#FF9900'>"); // 태그 등록(배열로 정확히 등록할것)

$board_name = "게시판1,게시판2,게시판3"; // 뽑아올 게시판(컴마 (,) 로 구분)
$rate = count($use_tags)+1; // 태그를 적용할 확률(랜덤) 뒤에 숫자가 클수록 확률 적음, 나머진 기본 태그로 보임

$board_name = explode(",",$board_name);
for($i=0;$i<count($board_name);$i++) {
$sql="select wr_num,wr_10 from g4_write_$board_name[$i] where wr_10!='' order by rand() desc limit $limit_num";

$result=mysql_query($sql);
while($row=mysql_fetch_array($result)) {
$array_tags = explode(",",$row[wr_10]);
$tmp_tags = array();







for($j=0;$j<$limit_num;$j++) {

$rand_num=rand(0,count($array_tags)-1);
if(in_array($array_tags[$rand_num], $tmp_tags)) { continue; }
else {
$tmp_value[] = $array_tags[$rand_num];
$tmp_board[] = $board_name[$i];
}

}

}

}

$tags_value = array();
while(1) {
$rand_num2=rand(0,count($tmp_value)-1);
if(in_array($tmp_value[$rand_num2], $tags_value)) { continue; }
$tags_value[] = $tmp_value[$rand_num2];
$tags_board[] = $tmp_board[$rand_num2];
if(count($tags_value)==$limit_num) break;
}

for($k=0;$k<count($tags_value);$k++) {
$r_num=rand(0,$rate);
$open_tag = $use_tags[$r_num];
if(!$open_tag) $open_tag=$base_tag1;
$tmp_tag = str_replace("<","",$open_tag);
$tmp_tag = str_replace(">","",$tmp_tag);
$tmp_tag = explode(" ",$tmp_tag);
if($tmp_tag[0])$close_tag = "</".$tmp_tag[0].">";
else $close_tag = $base_tag2;





$space = "<span class=tagspace> | </span>";


$tags[] = "<a href='http://그누보드경로/bbs/search.php?sfl=wr_10&sop=and&stx=".$ tags_value[$k]."' class='{$class_tag}'>".$open_tag.$tags_value[$k].$close_tag."</a>{$space}";

}



$tags = implode("",$tags);
echo $tags;

}

?>

그리고 태그구름을 적용할 게시판스킨의 write.skin.php의

<form name="fwrite" method="post" action="javascript-x:fwrite_check(document.fwrite);" enctype="multipart/form-data" style="margin:0px;">
<input type=hidden name=w value="<?=$w?>">
<input type=hidden name=bo_table value="<?=$bo_table?>">
<input type=hidden name=wr_id value="<?=$wr_id?>">
<input type=hidden name=sca value="<?=$sca?>">
<input type=hidden name=sfl value="<?=$sfl?>">
<input type=hidden name=stx value="<?=$stx?>">
<input type=hidden name=spt value="<?=$spt?>">
<input type=hidden name=sst value="<?=$sst?>">
<input type=hidden name=sod value="<?=$sod?>">
<input type=hidden name=page value="<?=$page?>">

아래부분에

<? if ($w == 'u') {?>

<input type=hidden name=wr_10 value="<?=$write[wr_10]?>">
<? }?>
을 추가합니다..

그리고..write.skin.php의 트랙백쓰기 위부분에


<tr><td >태그입력:태그(핵심 키워드)를 ,(컴마)로 구분하여 넣으세요! </td></tr>
<tr> <td> <input type='text'style="width:50%;" size=120 name='wr_10' itemname='태그' value='<?=$write['wr_10']?>'></td>
</tr>

추가해줍니다..


그리고나서

태그구름을 불러올 파일(예 index.php)의 상단에

제일 처음 만든 tags.php를 인쿠르드시켜줍니다..

<?
include_once("./tags.php");
?>

그리고 나서 호출할 위치에

<? tag_cloud(갯수);?>

위와 같이 호출해줍니다..

여기서 주의사항은

갯수를20개로 한다면

20개의 태그가 이미 입력되어 있어야 합니다..

그리고나서

popular스킨과 search에서

1.popular.skin.php의 하단의
<?
echo 어저고저저고<a href='$g4[bbs_path]/search.php?sfl=wr_subject&sop=and&stx=".urlencode($list[$i][pp_word])."'>{$list[$i][pp_word]}</a>";
?>
에 wr_10을 추가합니다..

다음과 같습니다..
<?
echo 어저고저저고<a href='$g4[bbs_path]/search.php?sfl=wr_subject||wr_10&sop=and&stx=".urlencode($list[$i][pp_word])."'>{$list[$i][pp_word]}</a>";
?>

2.search.skin.php에서
역시 wr_10을 추가해줍니다...



마지막으로..
적용게시판 스킨의 view.skin.php에서
내용을 불러오는 곳인 <?=$view[rich_content]?>를

다음과 같이 바구어줍니다..
<?=$view[rich_content]?><p>
<img src="<?=$g4[path]?>/img/icon_tag.gif" border=0>  <?=$view[wr_10]?>

여기서 이미지는 만들어서 경로에 올려주시면됩니다..

적용게시판은 처음에 만든 tags.php에서 설정해주는만큼 적용할수잇습니다..

참고로 적용된 예는 상단에 링크를 했습니다..
http://www.lotsofcode.com/php/tutorials/tag-cloud
php 태그 구름 소스 연구하실 분은 위 싸이트도 좋습니다.
댓글을 작성하시려면 로그인이 필요합니다.

그누4 팁자료실

그누보드4와 관련된 팁을 여러분들과 함께 공유하세요. 나누면 즐거움이 커집니다.

+
제목 글쓴이 날짜 조회
18년 전 조회 3,628
18년 전 조회 7,953
18년 전 조회 3,471
18년 전 조회 2,867
18년 전 조회 4,249
18년 전 조회 3,815
18년 전 조회 1.3만
18년 전 조회 3,513
18년 전 조회 2,920
18년 전 조회 7,182
18년 전 조회 3,673
18년 전 조회 3,163
18년 전 조회 3,332
18년 전 조회 5,531
18년 전 조회 3,410
18년 전 조회 5,154
18년 전 조회 3,057
18년 전 조회 5,777
18년 전 조회 7,896
18년 전 조회 3,574