asp

Google Sitemaps per dBlog

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

Qualche tempo fa Google ha rilasciato un sistema, chiamato Google Sitemaps, che permette ai webmaster di indicare allo spider quali sono le pagine che compongono il proprio sito web, in maniera da agevolare e velocizzare l’indicizzazione, fornendo anche dettagli sull’importanza di ogni singola pagina. Google indica questo servizio come un “esperimento”, ma gli dedica spazio e risorse, tanto che nel giro di poche ore il file XML generato viene subito dato in pasto ai crawler.

Un Sitemaps che si rispetti deve essere sempre aggiornato fornendo i link a tutti gli ultimi contenuti del blog, proprio per questo motivo è scomodo doverlo modificare ad ogni aggiornamento. La soluzione è quella di creare uno script che esegua per noi questo compito in automatico.

Ecco quindi come creare un Google Sitemaps in ASP per il vostro dBlog. Prima di tutto è necessario informarsi sul progetto leggendo le pagine ufficiali in italiano, poi occorre:

  1. creare nella root del vostro blog un file chiamato sitemaps.asp ed inserire il codice che segue
  2. creare un account o eseguire l’accesso al servizio dalla pagina ufficiale di Google Sitemaps
  3. per inserire il link del vostro sitemaps e seguire la procedura indicata
  4. attendere e verificare che lo spider Google venga ad analizzare il vostro file per la prima volta

Ecco il codice da inserire nello script ASP sitemaps.asp e da posizionare nella root (cartella principale) del vostro hosting:

<!–#include virtual=”/mdb-database/inc_costanti.asp”–>
<!–#include virtual=”/dblog/inc_db.asp”–>
<!–#include virtual=”/dblog/inc_funzioni.asp”–>
<%
‘dBlog 2.0 CMS Open Source
‘FUNZIONE: questo script si occupa di generare la Google SiteMaps

‘Nell’ordine: <loc>, max 2048 caratteri <lastmod>, formato ISO8601 <changefreq>, validi always, hourly, daily, weekly, monthly, yearly, never <priority>, da 0.1 a 1.0 default 0.5
Function NodoURL(URL, UltimaModifica, FrequenzaModifica, Priorita)
Dim Risultato

Risultato = “”
Risultato = Risultato & ” <url>” & VbCrLf
Risultato = Risultato & ”  <loc>”& URL &”</loc>” & VbCrLf
Risultato = Risultato & ”  <lastmod>”& UltimaModifica &”</lastmod>” & VbCrLf
Risultato = Risultato & ”  <changefreq>”& FrequenzaModifica &”</changefreq>” & VbCrLf
Risultato = Risultato & ”  <priority>”& Priorita &”</priority>” & VbCrLf
Risultato = Risultato & ” </url>” & VbCrLf

NodoURL = Risultato
End Function

Function DataISO(Data)
Dim Risultato, Anno, Mese, Giorno

Risultato = “”

If IsDate(Data) Then
Anno = cStr(Year(Data))
Mese = cStr(Month(Data))
If Len(Mese) = 1 Then
Mese = “0” & Mese
End If
Giorno = cStr(Day(Data))
If Len(Giorno) = 1 Then
Giorno = “0” & Giorno
End If

Risultato = Anno & “-” & Mese & “-” & Giorno
End If

DataISO = Risultato
End Function

Function RecuperaDataDaFile(PercorsoRelativo)
Dim Risultato, FSO, F

Risultato = “”
Set FSO = CreateObject(“Scripting.FileSystemObject”)
If FSO.FileExists(Server.MapPath(PercorsoRelativo)) Then
Set F = FSO.GetFile(Server.MapPath(PercorsoRelativo))
Risultato = DataISO(F.DateLastModified)
End If
Set F = Nothing
Set FSO = Nothing

RecuperaDataDaFile = Risultato
End Function

Dim SQL, RS, DataUltimoContributo, DataUltimoArticolo, DataUltimaFotografia, DataUltimoLinkLog, ArrayGiorniPieni, I, DataGiaPresente

DataUltimoContributo = DataToStr(Date())
DataUltimoArticolo = DataToStr(Date())
DataUltimaFotografia = DataToStr(Date())
DataUltimoLinkLog = DataToStr(Date())

SQL = ” SELECT TOP 1 Data FROM Articoli WHERE NOT Articoli.Bozza AND Articoli.Data <= ‘”& DataToStr(Date()) &”‘ ORDER BY Articoli.Data DESC “
Set RS = Server.CreateObject(“ADODB.Recordset”)
RS.Open SQL, Conn, 1, 3

If NOT RS.EOF Then
DataUltimoArticolo = RS(“Data”)
End If

RS.Close
Set RS = Nothing

SQL = ” SELECT TOP 1 Data FROM Fotografie WHERE NOT Fotografie.Bozza AND Fotografie.Data <= ‘”& DataToStr(Date()) &”‘ ORDER BY Fotografie.Data DESC “
Set RS = Server.CreateObject(“ADODB.Recordset”)
RS.Open SQL, Conn, 1, 3

If NOT RS.EOF Then
DataUltimaFotografia = RS(“Data”)
End If

RS.Close
Set RS = Nothing

SQL = ” SELECT TOP 1 Data FROM LinkLog WHERE LinkLog.Data <= ‘”& DataToStr(Date()) &”‘ ORDER BY LinkLog.Data DESC “
Set RS = Server.CreateObject(“ADODB.Recordset”)
RS.Open SQL, Conn, 1, 3

If NOT RS.EOF Then
DataUltimoLinkLog = RS(“Data”)
End If

RS.Close
Set RS = Nothing

If DataUltimoContributo <= DataUltimoArticolo Then
DataUltimoContributo = DataUltimoArticolo
End If
If DataUltimoContributo <= DataUltimaFotografia Then
DataUltimoContributo = DataUltimaFotografia
End If
If DataUltimoContributo <= DataUltimoLinkLog Then
DataUltimoContributo = DataUltimoLinkLog
End If

DataUltimoArticolo = StrToData(DataUltimoArticolo)
DataUltimoArticolo = DataISO(DataUltimoArticolo)
DataUltimaFotografia = StrToData(DataUltimaFotografia)
DataUltimaFotografia = DataISO(DataUltimaFotografia)
DataUltimoLinkLog = StrToData(DataUltimoLinkLog)
DataUltimoLinkLog = DataISO(DataUltimoLinkLog)
DataUltimoContributo = StrToData(DataUltimoContributo)
DataUltimoContributo = DataISO(DataUltimoContributo)

Response.ContentType = “text/xml”
Response.Write “<?xml version=””1.0″” encoding=””UTF-8″”?>” & VbCrLf
Response.Write “<urlset xmlns=””http://www.google.com/schemas/sitemap/0.84“”>” & VbCrLf

‘\
Response.Write NodoURL(URL_Sito & “/default.asp”, RecuperaDataDaFile(“/default.asp”), “monthly”, “0.9”)

‘\dblog
SQL = ” SELECT Articoli.Sezione FROM Articoli WHERE Articoli.Data <= ‘”& DataToStr(Date()) &”‘ AND Articoli.Bozza = False GROUP BY Articoli.Sezione “
Set RS = Server.CreateObject(“ADODB.Recordset”)
RS.Open SQL, Conn, 1, 3

Do While NOT RS.EOF
Response.Write NodoURL(URL_Blog & “storico.asp?s=” & Server.URLEncode(RS(“Sezione”)), DataUltimoArticolo, “daily”, “0.7”)
RS.MoveNext
Loop

RS.Close
Set RS = Nothing

SQL = ” SELECT ID, Titolo, Data FROM Articoli WHERE Articoli.Data <= ‘”& DataToStr(Date()) &”‘ AND NOT Articoli.Bozza ORDER BY Articoli.Data DESC, Articoli.Ora DESC “
Set RS = Server.CreateObject(“ADODB.Recordset”)
RS.Open SQL, Conn, 1, 3

Do While NOT RS.EOF
Response.Write NodoURL(URL_Blog & “articolo.asp?articolo=” & RS(“ID”), DataISO(StrToData(RS(“Data”))), “hourly”, “1.0”)
RS.MoveNext
Loop

RS.Close
Set RS = Nothing

SQL = ” SELECT Nick  FROM Autori ORDER BY Autori.Nick “
Set RS = Server.CreateObject(“ADODB.Recordset”)
RS.Open SQL, Conn, 1, 3

Do While NOT RS.EOF
Response.Write NodoURL(URL_Blog & “autori.asp?chi=” & Server.URLEncode(RS(“Nick”)), DataUltimoContributo, “monthly”, “0.6”)
RS.MoveNext
Loop

RS.Close
Set RS = Nothing

Response.Write NodoURL(URL_Blog & “classifica.asp”, DataUltimoContributo, “hourly”, “0.5”)
Response.Write NodoURL(URL_Blog & “default.asp”, DataUltimoContributo, “always”, “1.0”)
Response.Write NodoURL(URL_Blog & “feedatom.asp”, DataUltimoContributo, “hourly”, “1.0”)
Response.Write NodoURL(URL_Blog & “feedrss.asp”, DataUltimoContributo, “hourly”, “1.0”)

SQL = ” SELECT Sezione FROM Fotografie WHERE Fotografie.Data <= ‘”& DataToStr(Date()) &”‘ GROUP BY Sezione ORDER BY Sezione ASC “
Set RS = Server.CreateObject(“ADODB.Recordset”)
RS.Open SQL, Conn, 1, 3

Do While NOT RS.EOF
Response.Write NodoURL(URL_Blog & “foto.asp?s=” & Server.URLEncode(RS(“Sezione”)), DataUltimaFotografia, “daily”, “0.7”)
RS.MoveNext
Loop

RS.Close
Set RS = Nothing

SQL = ” SELECT Fotografie.ID, Fotografie.Data FROM Fotografie WHERE Fotografie.Data <= ‘”& DataToStr(Date()) &”‘ AND NOT Fotografie.Bozza ORDER BY Fotografie.Data DESC, Fotografie.Ora DESC “
Set RS = Server.CreateObject(“ADODB.Recordset”)
RS.Open SQL, Conn, 1, 3

Do While NOT RS.EOF
Response.Write NodoURL(URL_Blog & “fotografia.asp?id=” & RS(“ID”), DataISO(StrToData(RS(“Data”))), “hourly”, “1.0”)
RS.MoveNext
Loop

RS.Close
Set RS = Nothing

Response.Write NodoURL(URL_Blog & “linklog.asp”, DataUltimoContributo, “hourly”, “0.7”)

ReDim ArrayGiorniPieni(0, -1)

SQL = ” SELECT Data FROM Articoli WHERE NOT Articoli.Bozza AND Articoli.Data <= ‘”& DataToStr(Date()) &”‘ ORDER BY Articoli.Data DESC “
Set RS = Server.CreateObject(“ADODB.Recordset”)
RS.Open SQL, Conn, 1, 3

Do While NOT RS.EOF
ReDim Preserve ArrayGiorniPieni(0, UBound(ArrayGiorniPieni, 2) + 1)
ArrayGiorniPieni(0, UBound(ArrayGiorniPieni, 2)) = RS(“Data”)
RS.MoveNext
Loop

RS.Close
Set RS = Nothing

SQL = ” SELECT Data FROM Fotografie WHERE NOT Fotografie.Bozza AND Fotografie.Data <= ‘”& DataToStr(Date()) &”‘ ORDER BY Fotografie.Data DESC “
Set RS = Server.CreateObject(“ADODB.Recordset”)
RS.Open SQL, Conn, 1, 3

Do While NOT RS.EOF
DataGiaPresente = False
For I = 0 To UBound(ArrayGiorniPieni, 2)
If ArrayGiorniPieni(0, I) = RS(“Data”) Then
DataGiaPresente = True
Exit For
End If
Next

If NOT DataGiaPresente Then
ReDim Preserve ArrayGiorniPieni(0, UBound(ArrayGiorniPieni, 2) + 1)
ArrayGiorniPieni(0, UBound(ArrayGiorniPieni, 2)) = RS(“Data”)
End If

RS.MoveNext
Loop

RS.Close
Set RS = Nothing

For I = 0 To UBound(ArrayGiorniPieni, 2)
Response.Write NodoURL(URL_Blog & “pubblicazioni.asp?d=” & ArrayGiorniPieni(0, I), DataISO(StrToData(ArrayGiorniPieni(0, I))), “daily”, “0.7”)
Next

SQL = ” SELECT ID FROM Sondaggio ORDER BY Sondaggio.ID DESC “
Set RS = Server.CreateObject(“ADODB.Recordset”)
RS.Open SQL, Conn, 1, 3

Do While NOT RS.EOF
Response.Write NodoURL(URL_Blog & “risultati.asp?id=” & RS(“ID”), DataUltimoContributo, “hourly”, “0.6”)
RS.MoveNext
Loop

RS.Close
Set RS = Nothing

Response.Write “</urlset>”

Conn.Close
Set Conn = Nothing
%>

Si tratta di un codice esemplificativo ma funzionante, per qualsiasi miglioramento o segnalazione utilizzate il Forum tecnico (discontinued) dove già si discute della cosa.

SEO: un Mod Rewrite in ASP

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

Sappiamo tutti che i principali motori di ricerca non gradiscono indicizzare le pagine che contengono dei parametri nell’indirizzo (url), in particolare pagine dinamiche con parametri numerici, come gli ID.

Per risolvere questo problema gli sviluppatori hanno adottato diverse tecniche tra cui quella di modificare dinamicamente l’indirizzo di una pagina web in maniera da farla sembrare “statica” e senza parametri. Questa soluzione si chiama “rewrite” ed indica l’utilizzo di un software, installato sul Web Server, in grado di modificare l’url di una pagina web con lo scopo (prevalente) di migliorare l’indicizzazione sui motori di ricerca.

Grazie all’utilizzo di questo metodo possiamo partire da un indirizzo come

http://www.dblog.it/dblog/articolo.asp?articolo=510

per arrivare ad ottenere un indirizzo come

http://www.dblog.it/dblog/viva-il-peru.asp

sicuramente più apprezzato dagli spider perché non ci sono parametri numerici ed inoltre il nome del file contiene alcune parole importanti per identificare il contenuto della pagina stessa.

Questa tecnica viene sfruttata principalmente sul Web Server Apache perché dispone di un rewrite engine chiamato “mod_rewrite“. Sui Web Server IIS invece occorre installare un filtro ISAPI come ad esempio il motore “ISAPI_rewrite” o “URL Replacer“. Ma nel caso in cui il provider non abbia la minima intenzione di installare questi software su Internet Information Server? Nessun problema: rimbocchiamoci le maniche e proviamo a confezionare la nostra soluzione 🙂

Per sviluppare un semplice motore di URL Rewriting in ASP con VBSCript dobbiamo partire da una considerazione di fondo: non potendo gestire la traduzione dinamica degli indirizzi web né la loro interpretazione (compiti demandati ad una libreria del Web Server IIS a cui, tramite ASP, non abbiamo accesso) un possibile escamotage consiste nella creazione di pagine fittizie collegate al contenuto reale.

L’idea è quella di sfruttare i contenuti dinamici memorizzati nel database, ma far credere agli spider che non sia così; allo stesso tempo dobbiamo però mantenere la comodità di una struttura gestibile da Pannello di controllo remoto. Per offrire questa garanzia non possiamo salvare il testo all’interno delle pagine fittizie, bisogna trovare un modo per collegarle al DataBase. Una soluzione è quella di salvare l’ID dell’articolo come variabile direttamente nella pagina fittizia e poi sfruttare una query per recuperare i dati e mostrarli nella pagina. Idee confuse? 😀 Passiamo a qualcosa di più pratico per semplificare.

Per una struttura di articoli servono:
– un database con la tabella articoli
– nella tabella articoli un campo ID univoco/contatore, un campo titolo e un campo testo
– una cartella con permessi di scrittura (es. \public) dove salvare le pagine fittizie

Supponendo di sfruttare un database già disponibile e di aver inserito la connessione nel file chiamato inc_db.asp, possiamo passare alla creazione del nostro primo script, il più importante, da salvare nella root insieme ad inc_db.asp:

inc_pagina.asp

<!–#include virtual=”/inc_db.asp”–><%

If VarID <= 0 Then

VarID = 0

End If SQL = ” SELECT Titolo, Testo FROM Tabella WHERE Tabella.ID = “& VarID &” “

Set RS = Server.CreateObject(“ADODB.Recordset”)

RS.Open SQL, Conn, 1, 3

If NOT RS.EOF Then

RSTitolo = RS(“Titolo”)

RSTesto = RS(“Testo”)

Else

RSTitolo = “”

RSTesto = “”

End If

RS.Close

Set RS = Nothing

Conn.Close

Set Conn = Nothing

%>

<html>

<head>

<title><%=RSTitolo%></title>

</head>

<body>

<strong><%=RSTitolo%></strong>

<br /><%=RSTesto%>

</body>

</html>

Lo script inc_pagina.asp verrà automaticamente incluso nelle pagine fittizie e lavorerà in modo da sfruttare la variabile VarID, valorizzata in maniera statica dentro ognuna di queste pagine. In sostanza non fa nient’altro che leggere la VarID ed utilizzarla per recuperare Titolo/Testo dalla tabella Articoli, per poi mostrarli nella pagina come se si trattasse di un semplice HTML statico.

Nella cartella \public avremo ovviamente salvato tutte le pagine fittizie i cui nomi saranno composti secondo la sintassi IDNumerico-titolo-dell-articolo.asp, ad esempio:

510-viva-il-peru.asp

<%VarID = 510

%>

<!–#include virtual=”/inc_pagina.asp”–>

Mancano infine i due script nel Pannello di controllo per la creazione di un nuovo articolo e la modifica di uno già esistente. Nel primo caso è molto semplice: si procederà con il classico inserimento nel DataBase ed aggiungeremo la successiva creazione della pagina fittizia.

aggiungi.asp

 ‘…’In precedenza abbiamo inserito il record nel DataBase Set FSO = CreateObject(“Scripting.FileSystemObject”)

Set Documento = FSO.OpenTextFile(Server.MapPath(“/public/”) & “\” & ConvertiTitoloInNomeScript(FTitolo, IDArticolo), 2, True)

ContenutoFile = “”

ContenutoFile = ContenutoFile & “<” & “%” & vbCrLf

ContenutoFile = ContenutoFile & “VarID = “& IDArticolo &”” & vbCrLf

ContenutoFile = ContenutoFile & “%” & “>” & vbCrLf

ContenutoFile = ContenutoFile & “<!–#include virtual=””/inc_pagina.asp””–>”

Documento.Write ContenutoFile

Set FSO = Nothing

In sostanza si crea un normale file di testo con estensione .asp nella cartella \public e si inserisce dentro una stringa di testo che andrà a comporre il codice ASP, come se l’avessimo scritto a mano. La funzione ConvertiTitoloInNomeScript si occupa invece di creare il nome per il file partendo dal Titolo dell’articolo e dall’ID, per recuperarlo in modo univoco quando necessario. Ecco un primo esempio, assolutamente da ampliare, per questa funzione:

Function NoHTML(Stringa)Set RegEx = New RegExp

RegEx.Pattern = “<[^>]*>”

RegEx.Global = True

RegEx.IgnoreCase = True

NoHTML = RegEx.Replace(Stringa, “”)

End Function

Function ConvertiTitoloInNomeScript(Titolo, IDArticolo)

Risultato = Titolo

Risultato = NoHTML(Risultato)

Risultato = LCase(Risultato)

Risultato = Replace(Risultato, ” “, “-“)

Risultato = Replace(Risultato, “\”, “-“)

Risultato = Replace(Risultato, “/”, “-“)

Risultato = Replace(Risultato, “:”, “-“)

Risultato = Replace(Risultato, “*”, “-“)

Risultato = Replace(Risultato, “?”, “-“)

Risultato = Replace(Risultato, “<“, “-“)

Risultato = Replace(Risultato, “>”, “-“)

Risultato = Replace(Risultato, “|”, “-“)

Risultato = Replace(Risultato, “”””, “”)

Risultato = Replace(Risultato, “‘”, “-“)

‘…ulteriori controlli a piacere, il migliore include solo a..z e 0..9

Risultato = IDArticolo & “-” & Risultato & “.asp”

ConvertiTitoloInNomeScript = Risultato

End Function

Infine la pagina di modifica di un articolo già presente nel DataBase conterrà del codice aggiuntivo solo nel caso in cui venga modificato il Titolo. Nello specifico dovrà eseguire una query per caricare i dati necessari (quindi ID e Titolo dell’articolo) ad identificare in modo univoco la pagina fittizia collegata, procedere alla cancellazione della vecchia pagina e quindi alla creazione di quella nuova, così:

modifica.asp

 ‘…’In precedenza abbiamo controllato che il titolo sia stato modificato e quindi effettuato la query di Update Set FSO = CreateObject(“Scripting.FileSystemObject”)

If FSO.FileExists(Server.MapPath(“/public/”) & “\” & ConvertiTitoloInNomeScript(FTitoloVecchio, QSID)) Then

Set Documento = FSO.GetFile(Server.MapPath(“/public/”) & “\” & ConvertiTitoloInNomeScript(FTitoloVecchio, QSID))

Documento.Delete

Set Documento = Nothing

End If

Set Documento = FSO.OpenTextFile(Server.MapPath(“/public/”) & “\” & ConvertiTitoloInNomeScript(FTitolo, QSID), 2, True)

ContenutoFile = “”

ContenutoFile = ContenutoFile & “<” & “%” & vbCrLf

ContenutoFile = ContenutoFile & “VarID = “& QSID &”” & vbCrLf

ContenutoFile = ContenutoFile & “%” & “>” & vbCrLf

ContenutoFile = ContenutoFile & “<!–#include virtual=””/inc_pagina.asp””–>”

Documento.Write ContenutoFile

Set Documento = Nothing

Set FSO = Nothing

Nella nuova veste del mio blog personale ho utilizzato proprio questa tecnica, modellandola sulle mie necessità e per adesso non ho riscontrato nessun tipo di problema.
Mi piacerebbe sentire cosa ne pensate, a voi la parola.

Qui una versione scaricabile del codice Mod Rewrite ASP.
Nel sito di Wikipedia maggiori dettagli sul Mod Rewrite (in inglese).

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

ASP: componente per il resize delle immagini

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

Trovare un componente ASP per ridimensionare in automatico le immagini non è cosa facile… Ho cercato in lungo ed in largo per molto tempo senza risultati rilevanti a parte componenti DLL da installare sul server (cosa che di solito non è permessa). Il meglio che ho visto si chiama “Image resizer” ed è una ISAPI fornita gratuitamente da CrazyBeaver Software , purtroppo però funziona solo su server Windows 2000, quindi col 2003 si torna punto e a capo. Conoscete altro con queste due caratteristiche (free e no dll)?

1 2 3  Torna su