tag cloud

Tag Cloud in ASP

0.00 avg. rating (0% score) - 0 votes

Partendo dal codice in Cold Fusion presente qui sul blog Edit e da quello in PHP qui su blog di Augusto ho scritto velocemente qualche riga per realizzare una Tag Cloud in ASP, come accennavo in un post di qualche giorno fa.

Il codice si basa sulla presenza di una tabella chiamata “Technorati” contenente tutti i Tag utilizzati. Lo script è sicuramente migliorabile (specie nel doppio ciclo), quindi se fate qualche modifica segnalatela nei commenti così da poter aggiornare il tutto ed ottimizzare la routine. Ecco il codice in VBScript:

Dim SQLTagCloud, RSTagCloud, ArrayTag, I, FrequenzaMin, FrequenzaMax, FrequenzaDiff, FrequenzaDistrib, CSSClass, FrequenzaFiltroFrequenzaFiltro = 2SQLTagCloud = ” SELECT COUNT(Tag) AS Frequenza, Tag FROM Technorati GROUP BY Tag “
Set RSTagCloud = Server.CreateObject(“ADODB.Recordset”)
RSTagCloud.Open SQLTagCloud, Conn, 1, 3

If NOT RSTagCloud.EOF Then
ArrayTag = RSTagCloud.GetRows
Else
ReDim ArrayTag(1, -1)
End If

RSTagCloud.Close
Set RSTagCloud = Nothing

If UBound(ArrayTag, 2) > -1 Then
FrequenzaMin = 1
FrequenzaMax = 1

For I = 0 To UBound(ArrayTag, 2)
If ArrayTag(0, I) < FrequenzaMin Then
FrequenzaMin = ArrayTag(0, I)
End If
If ArrayTag(0, I) > FrequenzaMax Then
FrequenzaMax = ArrayTag(0, I)
End If
Next

If FrequenzaMin < FrequenzaFiltro Then
FrequenzaMin = FrequenzaFiltro
End If

FrequenzaDiff = FrequenzaMax – FrequenzaMin
FrequenzaDistrib = FrequenzaDiff / 5

For I = 0 To UBound(ArrayTag, 2)
If ArrayTag(0, I) >= FrequenzaFiltro Then
If ArrayTag(0, I) = FrequenzaMin Then
CSSClass = “tcmpiccolo”
ElseIf ArrayTag(0, I) = FrequenzaMax Then
CSSClass = “tcmgrande”
ElseIf ArrayTag(0, I) > FrequenzaMin + (FrequenzaDistrib * 2) Then
CSSClass = “tcgrande”
ElseIf ArrayTag(0, I) > FrequenzaMin + FrequenzaDistrib Then
CSSClass = “tcmedio”
Else
CSSClass = “tcpiccolo”
End If

Response.Write “<a href=””cerca.asp?cosa=”& Server.URLEncode(ArrayTag(1, I)) &””” title=””Tag: “& Server.HTMLEncode(ArrayTag(1, I)) &” | Frequenza: “& ArrayTag(0, I) &””” class=”””& CSSClass &”””>” & ArrayTag(1, I) & “</a> “
End If
Next
End If

Invece nel foglio di stile andranno aggiunte le seguenti righe:

  a.tcmpiccolo { font-size: xx-small; }
a.tcpiccolo { font-size: small; }
a.tcmedio { font-size: medium; }
a.tcgrande { font-size: large; }
a.tcmgrande { font-size: xx-large; }
 Torna su