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:
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.