Site icon Tosolini.info

WordPress: intercettare vecchi IE

Si tratta di uno dei crucci dei programmatori web dello scorso, e di questo decennio. Ad un certo punto non ha più senso tenere in piedi il supporto ai vecchi browser, in particolare quelli di Internet Explorer. Questo perché le visualizzazioni sono una manciata ogni mese, per contro ogni volta che si mette mano a qualcosa, tocca perdere davvero troppo tempo dietro a Browser vecchi e “stizzosi” che non ne vogliono sapere di visualizzare le cose così come le abbiamo pensate. Ecco quindi che si decide di abbandonare quella tal versione al suo destino.

Nel mio caso sono le versioni di Internet Explorer inferiori alla 9. Tuttavia rimane la scocciatura di quei pochi che arrivando sul sito, vedono tutto sbilenco, con javascript che non funzionano e pensano “guarda che pessimo sito, si vede malissimo e non funziona nulla!“, invece sono quei pochi ad usare un “pleurosauro” per Browser.

La questione diciamo è filosofica, e internet è pieno di queste elucubrazioni, sta di fatto che è il webmaster a decidere. “I have the power..” La soluzione è quella di notificare all’utente che  sta ancora girando con la clava mentre noi siamo nell’era degli smartphone.

In giro ho visto che la soluzione più gettonata è quella di utilizzare javaScript. Sicuramente è più preciso nel riconoscere l’user Agent che identifica il tipo e versione del Browser utilizzato. Personalmente invece ho scelto di far fare questo lavoro a PHP per due motivi. Il primo è che il numero di librerie e script stava cominciando a lievitare un po’ troppo, secondo perché attraverso PHP si risolve tutto con due righe, mentre la controparte JS richiede un po’ più di lavoro. Siccome abbiamo detto che non ci frega molto degli abitanti del pleistocene è assurdo mettere in piedi una cattedrale nel deserto.

Vediamo il codice che ho utilizzato e che ho inserito dopo il tag HTML  [textmarker color=”gray”] <body> [/textmarker] nel file header.php:

if(preg_match('/(?i)msie [1-8]/',$_SERVER['HTTP_USER_AGENT'])){
 require_once(get_template_directory()."/iereietto.php");
 }

Analizzando il codice si vede che abbiamo utilizzato il match di una espressione regolare che intercetta l’user agent, che per Internet Explorer è MSIE, dalle versioni che vanno dalla 1 alla 8. Queste informazioni le preleviamo interrogando la variabile predefinita superglobals di PHP, ovvero $_SERVER. Questa in realtà è un ARRAY e contiene molte informazioni, tra le quali quella di nostro interesse, ovvero HTTP_USER_AGENT.

Il tutto è racchiuso in una condizione IF, ovvero se il browser che visita il nostro sito ha come User Agent MSIE tra la versione 1 e la 8, allora mostreremo il nostro bel messaggio. Nel caso specifico è un file, in tal modo evitiamo di caricare ogni volta codice non necessario. Qui si ricorre a require_once per caricare il file, mentre con get_template_directory chiediamo a WordPress di fornire il path  del nostro tema grafico. Completiamo la direttiva di require_once aggiungendo alla fine il nome del file dove fisicamente inseriremo l’HTML del nostro messaggio.

La parte del file che mostra il messaggio la lascio alla vostra creatività, si tratta solo di una piccola porzione di file HTML, qualche DIV e un messaggio di cortesia che invita ad aggiornare il Browser al fine di utilizzare il nostro sito così come è stato pensato.

P.s. Rispettosi saluti agli abitanti del pleistocene..

Exit mobile version