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; }

13 commenti per Tag Cloud in ASP
  1. principiante Rispondi

    non ho capito in che pagina devo mettere questo codice!

  2. ...Lord Zarcon Rispondi

    ho messo sul forum il codice che hai pubblicato e spiegazioni per il suo utilizzo.

  3. Llll Rispondi

    credo che questo in questo punto ci sia una distrazione

    If FrequenzaMin < FrequenzaFiltro Then
    FrequenzaMin = FrequenzaFiltro
    End If

    dovrebbe essere

    If FrequenzaMin < FrequenzaFiltro Then
    FrequenzaFiltro = FrequenzaMin
    End If

  4. Marlenek Rispondi

    Ciao Llll, grazie per il suggerimento. Quella riga permette di mostrare solo i tag che hanno una frequenza importante. Quelli inferiori alla frequenza non vengono mostrati, altrimenti la lista sarebbe troppo lunga. La tua modifica è valida se dedichi una pagina solo per il Tag Cloud.

  5. Llll Rispondi

    Prego,senti mi era venuta in mente una cosa ma non so se è precisa non l’ho provata:
    ammesso che abbiamo 5 cssclass 1,2,3,4,5
    assegnamo alla frequenza massima la classe 5
    e alla minima la classe 1
    poi nel ciclo facciamo questo
    class=cint(((ArrayTag(0, I)-FrequenzaMin)/FrequenzaMax)+1)
    Bò forse potrebbe essere una soluzione veloce ma anche una stupidaggine frutto della febbre…

  6. Fabio Rispondi

    Ciao complimenti veramente un bel progetto. Il link che proponi qui (http://www.dblog.it/public/post/articolo.asp?articolo=497) non viene trovato è forse perchè stai convertendo tutto con il metodo rewrite?

  7. Marlenek Rispondi

    Il link proposto è un esempio, lo trovi qui http://www.dblog.it/dblog/articolo.asp?articolo=497

  8. Riccardo Rispondi

    Ma se i tag sono più di una prola per ogni ad esempio articolo? Seper esempio io voglio catalogare questo post come Internet, tag cloud, ricerca, associando quindi 3 parole all’articolo, il programma non funziona?

  9. Carlo Rispondi

    Scusate, ma la tabella Technorati come deve essere realizzata? quali campi e come contenuti?

  10. Marlenek Rispondi

    Carlo: la mia è così… ID contatore, IDArticolo numerico, TAG testo.

  11. free dating Rispondi

    thanks, great info : )

  12. Lucky Luciano Rispondi

    Easy to use and powerful. Clean & compact. thanks

  13. Massimo Rispondi

    Come avete risolto il problema di più parole per tag? Attualmente lo script prende la riga intera senza dividere le parole

Lascia un commento

Il tuo indirizzo mail non verrà pubblicato. Inserisci il tuo nome, la tua mail e il commento.