dBlog CMS Open Source: italiano - english - español - français - deutsch | Laboratorio: template - plug in - translation - extra | Forum | Licenza | Newsletter | Contatti

Clicca sulle stelline per votare
Attualmente voti: 17 media: 8.1  

Tag Cloud in ASP

Di Daniele Vietri @ 07/03/2006 - in Web Development - Commenti (13)
Questo post è stato letto 14036 volte in 1606 giorni.
 

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, FrequenzaFiltro

FrequenzaFiltro = 2

SQLTagCloud = " 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; }


Questo articolo ti è piaciuto?



Se desideri stamparlo clicca qui oppure potresti essere interessato alla sottoscrizione del feed RSS per ricevere gratuitamente nel tuo aggregatore tutti gli aggiornamenti di questo blog.

< Vai al post precedente
Vai al post successivo >

 

Commenti

1
non ho capito in che pagina devo mettere questo codice!


Di principiante il 19/03/2006 @ 09:39:18

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


Di ...Lord Zarcon il 20/03/2006 @ 17:53:24

3
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


Di Llll il 24/03/2006 @ 14:38:52

4
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.


Di Marlenek il 25/03/2006 @ 17:01:54

5
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...


Di Llll il 04/04/2006 @ 15:09:55

6
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?


Di Fabio il 30/05/2006 @ 16:46:32

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


Di Marlenek il 30/05/2006 @ 18:50:42

8
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?


Di Riccardo il 15/11/2006 @ 14:48:20

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


Di Carlo il 27/07/2007 @ 09:38:22

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


Di Marlenek il 25/09/2007 @ 21:41:56

11
thanks, great info : )


Di free dating il 02/10/2007 @ 20:49:44

12
Easy to use and powerful. Clean & compact. thanks


Di Lucky Luciano il 20/12/2007 @ 22:47:29

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


Di Massimo il 10/09/2009 @ 12:32:15



Nuovo commento

Non inserire testo nel campo sotto (altrimenti non riuscirai a commentare)

Testo (max 1000 caratteri)

Nome

e-Mail / Link ("nofollow", "no-rel", non pubblicato)



Disclaimer
L'indirizzo IP del mittente viene registrato, in ogni caso si raccomanda la buona educazione.

Marlenek

Daniele Vietri - Milano, IT

Web Project Manager di sistemi e-Commerce e community, autore di dBlog CMS... [continua]


x Feed RSS dei post
Iscritti su FeedBurner

Daniele Vietri

LinkedIN

Su argomenti simili...

ASP: versione Script Engine

08/11/2007 - in Web Development - Commenti (0)

dBlog: plug-in per Flickr

14/09/2006 - in dBlog - Commenti (7)

ASP: parole troppo lunghe?

26/05/2006 - in Web Development - Commenti (7)

Google Sitemaps per dBlog

24/04/2006 - in Web Development - Commenti (2)

SEO: un Mod Rewrite in ASP

30/03/2006 - in Web Development - Commenti (52)

Corso siti web, in aula a Milano (o altrove, su richiesta)

Dall'autore di questo blog un corso completo per sviluppare semplici siti web e diventare webmaster:
Corso di HTML

Scopri: Info | Date e città | Argomenti | Destinatari | Blog