Membuat Tag/Label Cloud

Kalau korang nak buat tag/label cloud seperti gambar di bawah, pastikan blog korang mempunyai label terlebih dahulu.(label setiap pos)

Jika korang belum ada label, edit pos-pos korang dan masukkan label. Selepas itu add page elements>label. gile



Sudah lama aku mencuba benda ini, kali ini memang luck, so aku nak kongsikan di sini.
Cara-caranya ialah:-

Klik Layout>Edit HTML>Expand Widget Templates

p/s: Pastikan korang dah backup template asal korang untuk mengelakkan sebarang kejadian yang tidak diingini.

Di sini terdapat 3 langkah yang melibatkan kod HTML, jadi korang kena berhati-hati dengan langkah tersebut.

1) Copy kod di bawah dan masukkan betul-betul sebelum ]]></b:skin>

 /* Label Cloud Styles ----------------------------------------------- */ 
#labelCloud {text-align:center;font-family:arial,sans-serif;} #labelCloud
.label-cloud li{display:inline;background-image:none !important;padding:0
5px;margin:0;vertical-align:baseline !important;border:0 !important;} #labelCloud
ul{list-style-type:none;margin:0 auto;padding:0;} #labelCloud a
img{border:0;display:inline;margin:0 0 0 3px;padding:0} #labelCloud a{text-decoration:none} #labelCloud a:hover{text-decoration:underline} #labelCloud li a{} #labelCloud .label-cloud {} #labelCloud .label-count {padding-left:0.2em;font-size:9px;color:#000} #labelCloud .label-cloud li:before{content:&quot;&quot;
!important}


2) Kemudian korang cari kod </head> dan masukkan kod di bawah betul-betul sebelum </head>

 


<script type='text/javascript'>
// Label Cloud User Variables
var cloudMin = 1;
var maxFontSize = 20;
var maxColor = [0,0,255];
var minFontSize = 10;
var minColor = [0,0,0];
var lcShowCount = false;
</script>



3) Cari kod seperti di bawah

<b:widget id='Label1' locked='false' title='Labels' type='Label'>
<b:includable id='main'>
<b:if cond='data:title'>

<h2><data:title/></h2>
</b:if>
<div class='widget-content'>
<ul>
<b:loop values='data:labels' var='label'>
<li>
<b:if cond='data:blog.url == data:label.url'>
<data:label.name/>

<b:else/>
<a expr:href='data:label.url'><data:label.name/></a>
</b:if>
(<data:label.count/>)
</li>
</b:loop>
</ul>

<b:include name='quickedit'/>
</div>
</b:includable>
</b:widget>

Dan korang kena tukarkan kepada kod ini:-

<b:widget id='Label1' locked='false' title='Label Cloud' type='Label'>

<b:includable id='main'>

<b:if cond='data:title'>

<h2><data:title/></h2>


</b:if>



<div class='widget-content'>

<div id='labelCloud'/>

<script type='text/javascript'>



// Don't change anything past this point --------------

// Cloud function s() ripped from del.icio.us


function s(a,b,i,x){

if(a&gt;b){

var m=(a-b)/Math.log(x),v=a-Math.floor(Math.log(i)*m)

}

else{

var m=(b-a)/Math.log(x),v=Math.floor(Math.log(i)*m a)

}

return v


}





var c=[];

var labelCount = new Array();

var ts = new Object;

<b:loop values='data:labels' var='label'>

var theName = &quot;<data:label.name/>&quot;;


ts[theName] = <data:label.count/>;

</b:loop>



for (t in ts){

if (!labelCount[ts[t]]){

labelCount[ts[t]] = new Array(ts[t])

}

}


var ta=cloudMin-1;

tz = labelCount.length - cloudMin;

lc2 = document.getElementById('labelCloud');

ul = document.createElement('ul');

ul.className = 'label-cloud';

for(var t in ts){

if(ts[t] &lt; cloudMin){

continue;


}

for (var i=0;3 &gt; i;i ) {

c[i]=s(minColor[i],maxColor[i],ts[t]-ta,tz)

}

var fs = s(minFontSize,maxFontSize,ts[t]-ta,tz);

li = document.createElement('li');

li.style.fontSize = fs 'px';

li.style.lineHeight = '1';


a = document.createElement('a');

a.title = ts[t] ' Posts in ' t;

a.style.color = 'rgb(' c[0] ',' c[1] ',' c[2] ')';

a.href = '/search/label/' encodeURIComponent(t);

if (lcShowCount){

span = document.createElement('span');

span.innerHTML = '(' ts[t] ') ';

span.className = 'label-count';

a.appendChild(document.createTextNode(t));


li.appendChild(a);

li.appendChild(span);

}

else {

a.appendChild(document.createTextNode(t));

li.appendChild(a);

}

ul.appendChild(li);

abnk = document.createTextNode(' ');


ul.appendChild(abnk);

}

lc2.appendChild(ul);

</script>



<noscript>

<ul>

<b:loop values='data:labels' var='label'>


<li>

<b:if cond='data:blog.url == data:label.url'>

<data:label.name/>

<b:else/>

<a expr:href='data:label.url'><data:label.name/></a>


</b:if>

(<data:label.count/>)

</li>

</b:loop>

</ul>

</noscript>


<b:include name='quickedit'/>

</div>



</b:includable>

</b:widget>



Ok.. setel.. celebrate

Image Hosted by ImageShack.us

6 comments:

Post a Comment