Validare i template Warp di YOOtheme
I template di YOOtheme hanno a volte problemi di validazione HTML. Beh il tema è forse di lana caprina, visto che i template YOOtheme per Joomla 2.5 creano output HTML5, che non dispone ancora di Document Type Definition. Vabbè, evitiamo troppa carne al fuoco e torniamo al discorso di partenza.
Quando si cerca di validare un sito Joomla 2.5 con template YOOtheme, si ottengono generalmente i seguenti errori:
Il primo errore compare una sola volta, il secondo una o più volte.
Per eliminare gli errori si ricorre alla tecnica dell'override, descritta in un articolo precedente.
Anzitutto, dobbiamo copiare i file del motore base del template dalla cartella di sistema dello stesso a quella del template. I template recenti di YOOtheme, infatti, si basano su un motore proprietario definito Warp, giunto ormai alla versione 6.3.
I file da copiare sono i seguenti:
templates\yoo_master\warp\systems\joomla\layouts\com_content\archive\default_items.php da copiare in templates\yoo_master\layouts\com_content\archive\default_items.php templates\yoo_master\warp\systems\joomla\layouts\com_content\article\default.php da copiare in templates\yoo_master\layouts\com_content\article\default.php templates\yoo_master\warp\systems\joomla\layouts\com_content\category\blog_item.php da copiare in templates\yoo_master\layouts\com_content\category\blog_item.php templates\yoo_master\warp\systems\joomla\layouts\com_content\featured\default_item.php da copiare in templates\yoo_master\layouts\com_content\featured\default_item.php
Occorre poi aprire con un editor di testo tutti i file copiati (non gli originali!!) ed eliminare, dove appare, il testo pubdate.
Questa modifica elimina gli errori Attribute pubdate not allowed on element time at this point., causati dal fatto che l'attributo pubdate è stato modificato e rimosso come attributo del tag time.
Il secondo errore, Bad value X-UA-Compatible for attribute http-equiv on element meta, è causato da un tag meta incluso per compatibilità con Internet Explorer (e ti pareva...).
Il metodo "brutale" per eliminare la mancata validazione è prevede una modifica a un file del sistema Warp. Al solito, copiamo un file:
templates\yoo_master\warp\systems\joomla\layouts\head.php da copiare in templates\yoo_master\layouts\head.php
Apriamo poi il file head.php (la copia, non l'originale!!) con un editor di testo e commentiamo la riga seguente:
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
aggiungendo i tag di commento:
<!--<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">-->
Salviamo il file e il gioco è fatto.
La parte che segue, evidenziata nel box con sfondo grigio, è obsoleta, da quando ho cambiato host da Joomlafree a Altervista. Vedrete infatti che ora la validazione riesce senza richiedere modifiche.
Potete testarla anche facendo clic sul link HMTL5 che trovate nel footer di ogni pagina.
Lascio la nota successiva come riferimento per chi pubblica il proprio sito su Joomlafree.
Un'ultima cosa per voi diffidenti. So che avete appena provato a validare questa pagina, scoprendo che non passa la validazione. Orrore, orrore!
Ma, cari i miei Tommaso, c'è una cosa che non sapete. Forse, se non foste troppo presi a farmi le pulci (e lasciatele vivere!), avreste notato che il sito è pubblicato su Joomlafree, provider che fornisce un servizio gratuito a chi, come il sottoscritto, è desideroso solo di testare, studiare ed apprendere.
Ok, adesso che vi siete ripresi dall'accesso convulso di sghignazzate, vi spiego. Avrete anche notato il banner che ogni tanto si intromette nella vostra navigazione mentre visitate il mio sito. È gestito da un codice che Joomlafree "appende" ad ogni pagina, ed è quello che compromette la validazione.
Visto che siete ancora scettici, fate questo test: aprite il sorgente HTML di questa pagina (se non sapete come si fa dubito siate arrivati a leggere sin qui...), andate in fondo e individuate queste righe:
.... </script> </body> </html><html> <script type="text/javascript" charset="utf-8" src="http://adv.joomlafree.it/spot.js"></script> </html>
Eliminate tutta la parte dopo </html>
, copiate tutto quanto rimane, andate alla pagina del Validator by input, incollate tutto il testo copiato e fate clic su Check.
Sorpresa, sorpresa! La pagina valida correttamente. Eh sì cari i miei diffidenti: quello che vi ho fatto eliminare è il codice aggiunto da Joomlafree.