Scritto da davidonzo il 11/02/2007, in OpenSource
ATTENZIONE!
L'articolo che stai leggendo è stato scritto 556 giorni orsono.
Le informazioni presenti potrebbero non essere aggiornate!
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 : - )
Hai trovato l'articolo interessante?
Sottoscrivi il Feed RSS per essere informato automaticamente degli ultimi aggiornamenti!
 
.Commenti rss
# 1
seu site e' muito bom, agradeço a todos por terem acessado à este maravilhoso blog, para não dizer "o melhor" !!
Di Anonimo  (Inviato il 02/03/2007 @ 23:20:31)
# 2
Grazie per la dritta, l'ho installata senza problemi anche se ancora non ho verificato, ma non ho dubbi, che funzioni.
Di mago28  (Inviato il 25/03/2007 @ 20:12:34)
# 3
Salve,
ho eseguito tutte le modifiche al mio dblog, ma il link non è assoluto, resta sempre relativo. Devo modificare qualche altra impostazione? Grazie
Di Anonimo  (Inviato il 01/06/2007 @ 13:51:16)
# 4
@ Anonimo: rivedi il tutto, avrai dimenticato qualcosa...
Di davidonzo  (Inviato il 01/06/2007 @ 15:20:29)
# 5
Girovagando ho trovato le istruzioni per aggiornare FCKeditor e adesso faccio anche questa modifica, come suggerito nelle istruzioni :-D

Grazie davido :-*
Di AlienmaN  (Inviato il 16/10/2007 @ 11:47:36)
# 6
Di niente tesoro :-*
Di davidonzo  (Inviato il 16/10/2007 @ 11:50:21)
# 7
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
Di AlienmaN  (Inviato il 16/10/2007 @ 12:45:52)
# 8
Detto una cazzata <_<
Scusate <_<
Di AlienmaN  (Inviato il 16/10/2007 @ 12:46:19)
# 9
Visto cosa fa non aggiornare mai giorno per giorno? :D

Il mio dblog era una quasi final...
Di davidonzo  (Inviato il 16/10/2007 @ 12:48:15)
# 10
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
Di AlienmaN  (Inviato il 16/10/2007 @ 13:26:42)
# 11
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!!
Di gianluca  (Inviato il 23/11/2007 @ 21:49:51)
# 12
[b]
Di ilenia  (Inviato il 19/12/2007 @ 10:53:08)
# 13
bello
Di mik  (Inviato il 23/12/2007 @ 13:33:41)
# 14
A me non funziona..... e ho controllato e ricontrollato il codice.... boh! :-(
Di Mattia  (Inviato il 31/01/2008 @ 16:27:49)


I commenti possono essere moderati.
Se non lo vedi comparire subito non reinserirlo più volte.
Grazie per la gentile collaborazione.