Joomla: Hacking e Defacing, come e perchè
13 Maggio 2013
Alcuni articoli utili per proteggere il proprio sito sviluppato su Joomla 1.5
22 Agosto 2013
Joomla: Hacking e Defacing, come e perchè
13 Maggio 2013
Alcuni articoli utili per proteggere il proprio sito sviluppato su Joomla 1.5
22 Agosto 2013
Mostra tutto

Foto da Fotolia

Da un po’ di tempo non facevo nottata su un problema, mi è capitato oggi.

Questo è il contesto: lo sviluppo di un configuratore di prodotto basato su un certo numero di files SVG che vengono inseriti-gestiti all’interno di un componente Joomla.

Tutto funziona regolarmente fino a che non ho avuto l’ardire di attivare le funzionalità SEO di Joomla: dopo aver corretto le cose “facili” (perchè attivare il SEO significa cambiare pesantemente le URL delle pagine), mi trovo di fronte da un problema stranissimo: i file SVG che senza SEO venivano visualizzati correttamente, con il SEO attivo risultano completamente stravolti, in particolare per ciò che riguarda le aree di clip.

Inutile dire che le ho provate tutte:

  • confrontare, utilizzando Firefox e Firebug i sorgenti SVG nelle due pagine (quella corretta e quella no) per vedere se ci sono differenze. Inutile dire che i due sorgenti erano perfettamente identici
  • Provare, tramite modifiche al file .htaccess, a dare un URL più semplice alla pagina in questione: questa strada sembrava risolutiva, peccato che si creasse un altro problema (anch’esso così strano da meritare una articolo a se) nell’ultima revisione di Joomla 2.5

Niente da fare. L’unica soluzione valida era disabilitare il SEO di Joomla.

Dopo diverse ore di tentativi, mi è venuta l’illuminazione di controllare l’intera pagina prodotta da Joomla, non solo la parte relativa all’SVG. Ho così scoperto che Joomla, quando il SEO è attivato, aggiunge un tag <base> nell’header dell’HTML: questo tag influisce nei collegamenti interni del file SVG (anche se non dovrebbe), rendendoli inutilizzabili.

A questo punto la soluzione è semplice: aggiungere nel codice PHP del mio componente i comandi per azzerare questo tag base

$document = JFactory::getDocument();
$document->setBase("");

e tutto a ripreso a funzionare a meraviglia.

Inutile dire che questo problema è evidenziato in rete e che se ne trova una valida descrizione facilmente, una volta che si sa cosa cercare, ad esempio qui.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *