%
'dBlog 2.0 CMS Open Source
'Versione file 2.0.0
'FUNZIONE: questo script è una libreria di funzioni utilizzate in tutta la piattaforma
'Impostazione internazionale italiana
Session.LCID = 1040
'Imposto la durata della sessione in minuti
Session.Timeout = 20
'Conversione dal formato data (gg/mm/aaaa) al formato stringa (aaaammgg)
Function DataToStr(Data)
Dim Anno, Mese, Giorno
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
DataToStr = Anno & Mese & Giorno
End Function
'Conversione dal formato stringa (aaaammgg) al formato data (gg/mm/aaaa)
Function StrToData(Stringa)
Dim Anno, Mese, Giorno
Anno = Mid(Stringa, 1, 4)
Mese = Mid(Stringa, 5, 2)
Giorno = Mid(Stringa, 7, 2)
If IsDate(Giorno & "/" & Mese & "/" & Anno) = True Then
StrToData = cDate(Giorno & "/" & Mese & "/" & Anno)
Else
StrToData = Date
End If
End Function
'Conversione dal formato ora (hh:mm:ss) al formato stringa (hhmmss)
Function OraToStr(Ora)
Dim Ore, Minuti, Secondi
Ore = cStr(Hour(Ora))
Minuti = cStr(Minute(Ora))
Secondi = cStr(Second(Ora))
If Len(Ore) = 1 Then
Ore = "0" & Ore
End If
If Len(Minuti) = 1 Then
Minuti = "0" & Minuti
End If
If Len(Secondi) = 1 Then
Secondi = "0" & Secondi
End If
OraToStr = Ore & Minuti & Secondi
End Function
'Conversione dal formato stringa (hhmmss) al formato ora (hh:mm:ss)
Function StrToOra(Stringa)
Dim Ore, Minuti, Secondi
Ore = Mid(Stringa, 1, 2)
Minuti = Mid(Stringa, 3, 2)
Secondi = Mid(Stringa, 5, 2)
StrToOra = Ore & ":" & Minuti & ":" & Secondi
End Function
'Estrae da un file di testo il contenuto e lo inserisce in una variabile stringa
Function FileToVar(NomeFile, NumeroCaratteri)
Dim FilTxt, FilContenuto, FilContenutoTemp
Set FilTxt = CreateObject("Scripting.FileSystemObject")
If FilTxt.FileExists(Server.MapPath(NomeFile)) Then
Set FilContenuto = FilTxt.OpenTextFile(Server.MapPath(NomeFile))
FilContenutoTemp = FilContenuto.ReadAll
Set FilContenuto = Nothing
Set FilTxt = Nothing
If NumeroCaratteri = 0 Then
FileToVar = FilContenutoTemp
Else
FileToVar = Left(FilContenutoTemp, NumeroCaratteri)
End If
Else
Set FilTxt = Nothing
FileToVar = "#nd#"
End If
End Function
'Invia mail in base al componente attivo
Sub InviaMail(SMTP, Mittente, Destinatario, Titolo, Testo)
Dim Mail
Select Case LCase(Componente_Mail)
Case "aspemail"
Set Mail = Server.CreateObject("Persits.MailSender")
Mail.Host = SMTP
Mail.From = Mittente
Mail.AddAddress Destinatario
Mail.Subject = Titolo
Mail.Body = Testo
On Error Resume Next
Mail.Send
Set Mail = Nothing
Case "cdonts"
Set Mail = Server.CreateObject("CDONTS.NewMail")
Mail.From = Mittente
Mail.To = Destinatario
Mail.Subject = Titolo
Mail.Body = Testo
On Error Resume Next
Mail.Send
Set Mail = Nothing
Case "cdosys"
Set Mail = Server.CreateObject("CDO.Message")
Mail.From = Mittente
Mail.To = Destinatario
Mail.Subject = Titolo
Mail.TextBody = Testo
On Error Resume Next
Mail.Send
Set Mail = Nothing
End Select
End Sub
'Decodifica i caratteri Entity HTML nel loro formato originale (es. à --> à)
Function DecodeEntities(stIn)
'HTML Entity Decoding - http://www.Planet-Source-Code.com/vb/scripts/ShowCode.asp?txtCodeId=7816&lngWId=4
Dim entitylist, entityvalue, lpos, lpos1, lfound, findstr
entitylist = ",nbsp,iexcl,curren,cent,pound,yen,brvbar,sect,umi,copy,ordf,laquo,not,shy,reg,macr,deg,plusmn,sup2,sup3,acute,micro,para,middot,cedil,sup1,ordm,raquo,frac14,frac12,frac34,iquest,times,divide,"
entityvalue = ",160 ,161 ,164 ,162 ,163 ,165,166 ,167 ,168,169 ,170 ,171 ,172,172,174,175 ,176,177 ,178 ,179 ,180 ,181 ,182 ,183 ,184 ,185 ,186 ,187 ,188 ,189 ,190 ,191 ,215 ,247 ,"
entitylist = entitylist & "Agrave,Aacute,Acirc,Atilde,Aumi,Aring,Aelig,Ccedil,Egrave,Eacute,Ecirc,Euml,Igrave,Iacute,Icirc,Iuml,ETH,Ntilde,Ograve,Oacute,Ocirc,Otilde,Ouml,Oslash,Ugrave,Uacute,Ucirc,Uuml,Yacute,THORN,szlig,agrave,aacute,acirc,atilde,auml,aring,aelig,ccedil,egrave,eacute,ecirc,euml,igrave,iacute,icirc,iuml,eth,ntilde,ograve,oacute,ocirc,otilde,ouml,oslash,ugrave,uacute,ucirc,uuml,yacute,thorn,yuml,"
entityvalue = entityvalue & "192 ,193 ,194 ,195 ,196 ,197 ,198 ,199 ,200 ,201 ,202 ,203 ,204 ,205 ,206 ,207 ,208,209 ,210 ,211 ,212 ,213 ,214 ,216 ,217 ,218 ,219 ,220 ,221 ,222 ,223 ,224 ,225 ,226 ,227 ,228 ,229 ,230 ,231 ,232 ,233 ,234 ,235 ,236 ,237 ,238 ,239 ,240,241 ,242 ,243 ,244 ,245 ,246 ,248 ,249 ,250 ,251 ,252 ,253 ,254 ,255 ,"
DecodeEntities = stIn
lpos = InStr(1, DecodeEntities, "&")
Do While lpos > 0
lpos1 = InStr(lpos, DecodeEntities, ";")
If lpos1 > 0 Then
findstr = "," & Mid(DecodeEntities, lpos + 1, lpos1 - lpos - 1) & ","
lfound = InStr(1, entitylist, findstr, vbBinaryCompare)
If lfound > 0 Then
'can still be improved for more efficiency. Pls contact me for tips to improve the efficiency for large strings
DecodeEntities = Mid(DecodeEntities, 1, lpos - 1) & ChrW(cLng(Mid(entityvalue, lfound + 1, 3))) & Mid(DecodeEntities, lpos1 + 1)
End If
End If
lpos = InStr(lpos + 1, DecodeEntities, "&")
Loop
End Function
'Elimina i tag HTML da una stringa
Function NoHTML(Stringa)
Dim RegEx, Risultato
Set RegEx = New RegExp
RegEx.Pattern = "<[^>]*>"
RegEx.Global = True
RegEx.IgnoreCase = True
Risultato = RegEx.Replace(Stringa, "")
Set RegEx = Nothing
Risultato = DecodeEntities(Risultato)
NoHTML = Risultato
End Function
'Sostituisce caratteri con smile e codifiche html
Function SostituisciCaratteri(Testo, PermettiTag)
Dim Risultato
Risultato = Testo
If PermettiTag = "No" Then
Risultato = NoHTML(Risultato)
End If
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, "E-)", "")
Risultato = Replace(Risultato, ":-)", "
")
Risultato = Replace(Risultato, "S-(", "
")
Risultato = Replace(Risultato, ":-(", "
")
Risultato = Replace(Risultato, ":-\", "
")
Risultato = Replace(Risultato, ":-o", "
")
Risultato = Replace(Risultato, ":-Z", "
")
Risultato = Replace(Risultato, ":-*", "
")
Risultato = Replace(Risultato, ":-P", "
")
Risultato = Replace(Risultato, "X-|", "
")
Risultato = Replace(Risultato, "8-)", "
")
Risultato = Replace(Risultato, ";-)", "
")
Risultato = Replace(Risultato, ":-D", "
")
SostituisciCaratteri = Risultato
End Function
'Esegue il controllo per evitare SQL Injection
Function ControlloSQLInjection(Testo)
Dim Risultato
Risultato = Testo
Risultato = Replace(Risultato, "[", "[[" & Chr(0))
Risultato = Replace(Risultato, "]", "[]]")
Risultato = Replace(Risultato, "[[" & Chr(0), "[[]")
Risultato = Replace(Risultato, "'", "''")
Risultato = Replace(Risultato, "%", "[%]")
Risultato = Replace(Risultato, "_", "[_]")
Risultato = Replace(Risultato, "#", "[#]")
ControlloSQLInjection = Risultato
End function
'Prepara i campi per l'inserimento nel DataBase
Function DoppioApice(Testo)
Dim Risultato
Risultato = Testo
Risultato = Replace(Risultato, "'", "''")
DoppioApice = Risultato
End function
'Genera il trailer di un testo
Function Trailer(Testo, Link, Attiva)
Dim Risultato, FinoADove
If Attiva Then
FinoADove = 0
Risultato = Testo
If Abilita_Trailer Then
FinoADove = InStr(Risultato, Tag_Trailer) - 1
If FinoADove < 0 Then
FinoADove = Len(Risultato)
End If
If FinoADove <> Len(Risultato) Then
Risultato = Left(Risultato, FinoADove)
Risultato = Risultato & "...