[dBlog] – Link assoluto per le immagini

Uno dei problemi più noiosi di dblog è legato al suo editor visuale che non permette il linkaggio assoluto delle immagini.
Mi spiego meglio: usando la funzione upload del pannello di controllo di dblog, nel momento in cui scriviamo l’articolo con l’editor visuale FCKeditor, per inserire un’immagine nell’articolo ci basterà cliccare sull’apposito tasto e scegliere dall’elenco a tendina l’immagine. Penserà il sistema a leggere tutte le immagini disponibili contenute nella directory "Path_DirPublic" (che per molti di noi è /public/).
Il risultato in HTML sarà:

<img src="/public/immagine.png" alt="Testo alternativo" />

Seppur codice perfettamente funzionante, questo può creare problemi a chi legge il blog via feed. Su feedburner le immagini negli articoli del mio blog avevano un indirizzo del genere:

<img src="http://feeds.feedburner.com/public/immagine.png" alt="Testo alternativo" />

Indirizzo inesistente ed impossibilità del lettore di leggere al meglio, se non cliccando sul collegamento e portarlo all’articolo originale.

Per risolvere il problema basta fare un paio di cambiamenti a tre file di sistema del blog, evitando di toccare FCKeditor che è pur sempre un componente di parti terze : - ) .
I file necessario sono:

  1. inc_funzioni.asp (locato in /dblog/)
  2. articoli_aggiungi.asp (locato in /dblog/admin/)
  3. articoli_modifica.asp (locato in /dblog/admin/)

Aggiungiamo una funzione per il linking assoluto delle immagini
Nel file inc_funzioni.asp andiamo ad aggiungere la seguente funzione.

Function ImgToAll(Stringa)
    Dim RegEx
    Set RegEx = New RegExp
    RegEx.Pattern = "<img src="""&Path_DirPublic&"(.*?)"" alt=""(.*?)"" />"
    RegEx.Global = True
    RegEx.IgnoreCase = True
    Risultato = RegEx.Replace(Stringa, "<img src=""http://" & Request.ServerVariables("HTTP_HOST") & Path_DirPublic & "$1"" alt=""$2"" />")
    Set RegEx = Nothing
    ImgToAll = Risultato
End Function

La funzione si occupa di cercare i tag relativi alle immagini linkate in maniera relativa e rimpiazza il tutto con il link assoluto. Badate bene, per funzionare il tutto i link alle immagini devono essere scritti con codice valido!
Dblog già di suo usa codice XHTML, per cui la chiusura del tag img l’avrete sempre. Quello che NON dovete dimenticare è aggiungere il tag alt (ovvero la voce Testo Alternativo nella finestra di aggiunta immagine dell’editor visuale).
Avrei potuto evitare la cosa, ma in questo modo siete costretti a scrivere codice valido e la cosa non fa mai male : - ) .

Usiamo la funzione
Nei file articoli_aggiungi.asp e articoli_modifica.asp cerchiamo la stringa:

FTesto = SostituisciCaratteri(Request.Form("Testo"), "Si")

E subito sotto aggiungiamo:

FTesto = ImgToAll(FTesto)

Il risultato dovrà essere questo:

FTesto = SostituisciCaratteri(Request.Form("Testo"), "Si")
FTesto = ImgToAll(FTesto)

Tutto qua! Da ora in poi le immagini verrano linkate con l’indirizzo assoluto e i lettori esterni riusciranno a leggerle senza problemi!

Faccine
Lo stesso problema si rileva anche per le emoticons. Basta adottare una soluzione molto simile a quella vista sopra.
Nella funzione SostituisciCaratteri(Testo, PermettiTag) abbiamo una serie di righe simili a questa:

Risultato = Replace(Risultato, ": – (", "<img src="""& Path_Skin &"smile_triste.gif"" alt="": – ("" />")

Basta sostituire il tutto con righe di questo genere:

Risultato = Replace(Risultato, ": – (", "<img src=""http://" & Request.ServerVariables("HTTP_HOST")& Path_Skin &"smile_triste.gif"" alt="": – ("" />")

Dovrebbe essere tutto abbastanza intuitivo : - )

14 thoughts on “[dBlog] – Link assoluto per le immagini”

  1. seu site e’ muito bom, agradeço a todos por terem acessado à este maravilhoso blog, para não dizer “o melhor” !!

  2. Salve,

    ho eseguito tutte le modifiche al mio dblog, ma il link non è assoluto, resta sempre relativo. Devo modificare qualche altra impostazione? Grazie

  3. Girovagando ho trovato le istruzioni per aggiornare FCKeditor e adesso faccio anche questa modifica, come suggerito nelle istruzioni 😀

    Grazie davido :-*

  4. In articoli_aggiungi.asp la riga è

    FTesto = DoppioApice(SostituisciCaratteri(Request.Form("Testo"), "Si"))

    Ovviamente è facilmente intuibile leggendo il codice, ma facendo una ricerca del testo al primo colpo mi è venuto il panico, non trovando la stringa dichiarata LOL

  5. Nono, ho sbagliato io a prendere il file ASP :doh:

    Ho preso autori_aggiungi.asp invece di articoli_aggiungi.asp 🙁

    Devo chiedere con fermezza che mi cambino il monitor al lavoro…oltre a prenotare una visita dall'oculista gh

  6. uhm…

    non mi funzionava…

    poi ho "scoperto" che la stringa da incollare in inc_function va incollata prima del "%>"…

    certo che sono proprio un geniaccio a sperimentare tutto senza prima leggermi un cavolo.

    comunque grazie per il plug!!

Comments are closed.