Még tavaly májusban szerettem volna blokkolni ezt az Internet Explorer 6-nak nevezett agyrémet, mely mindenki kedvenc Billjének a boszorkánykonyhájából sarjadzott, és mind a mai napig képtelenség kiirtani a Netről.
Többféle lehetőséget is kipróbáltam, de egyik sem oldotta meg olyan elegánsan a problémát, ahogyan én azt elképzeltem magamban.
A JavaScriptes megoldásokat, illetve a Headerben elhelyezett IF függvényes hekkeléseket, no meg a sufnituningos antiIE oldalakra irányító vackokat kilőve alig maradt valami lehetőség. Annyira pedig nem vagyok php- és wp-guru, hogy pikk-pakk összelőjek egy jófajta IE6-killert. Aztán mégiscsak sikerült, méghozzá nagyon egyszerűen….
Én úgy képzeltem el, hogy a legszebb megoldás talán az lehetne, ha a functions.php-ben elhelyezett szkript behív egy teljesen önálló oldalt, mely nem problémás az IE6-nak, majd ezen az oldalon linkeket kapunk, ahonnan korrekt böngészőket tölthet le, aki akar. Aki pedig nem, az egyszerűen nem láthatja a korrekt böngészőknek szánt oldalakat.
Megpróbáltam egy szkriptet átfaragni, ami az alapértelmezett sablonra irányítja a “kedves látogatót” ha öreg a böngészője, de ez sem az igazi, hiszen újabb problémákat generálhat a default sablonban való, de egyedi sablonra szánt megjelenítés… aztán előbújt belőlem a kisördög, és addig nem nyugodtam, míg végre meg nem találtam az igazit!
Az igazat megvallva a szkript nem a saját kútfőmből ered, és talán éppen ezért szinte tökéletes. Különálló pluginként is megállja a helyét, de szerintem a functions.php-be integrálva kényelmesebb megoldás annak, aki amúgy is önmaga építi a WordPress-felületét.
Működése roppant egyszerű: mikor valahol megnyitják a WP blogunkat, a szkript lekérdezi, hogy milyen típusú, és milyen verziójú a böngésző. Ha esetleg IE6-os, vagy alacsonyabb verziószámú, akkor egy különálló oldalra irányít. Ez utóbbit mi magunk is elkészíthetjük, csupán tudatnunk kell rajta a látogatóval, hogy az IE6 már a múlté, és töltsön le jobb böngészőt, vagy rögtön valamelyik korszerű böngésző oldalára irányíthatjuk a látogatót (pl: <meta http-equiv="refresh" content="0;URL=bongeszolinkje.html" />), remélve azt, hogy érti, mit jelent a továbbirányítás (szívem szerint egyébként még az IE7-et is a szarzsákok közé sorolom, de nem akartam ennyire szigorú lenni, így a beállítás a 6-os, vagy kisebb verziójú IE esetén kapcsol át az ie6.php-re).

Érdemes megemlíteni két nevet, mindkettő sajátjának tudja be a szkriptet: Mike Sands és Alen Cvitkovic. Ez utóbbi a hivatalos WordPress bővítmények közt Stop IE6 néven hirdeti (és valószínűleg Ő az eredeti író).
Én azon kívül, hogy a functions.php-be integráltam, és egyedi tájékoztató oldalt és stíluslapot készítettem, semmi egyebet nem változtattam rajta.
Lássuk tehát a részleteket: először is nyisd meg a functions.php fájlt (ha nincs ilyen, akkor készíts egyet <?php vel az elején és ?>-vel a végén, majd másold bele az alábbiakat:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | function detectIE6(){ if (ereg('MSIE ([0-9].[0-9]{1,2})', $_SERVER['HTTP_USER_AGENT'], $log_version)) { if($log_version[1] <= '6') return true; } return false; } function redirect_if_needed(){ if (detectIE6()){ include('ie6.php'); exit; } } add_action('template_redirect', 'redirect_if_needed'); |
Aztán készíts egy ie6.php-t, mely az az oldal kell legyen, ami felhívja a figyelmet a böngészőproblémákra és javaslatot is ad a megoldásra.
Ha minden elkészült (functions.php + ie6.php), akkor töltsd fel a WordPress sablonod mappájába… és készen is vagyunk!
Aki lusta, annak pedig itt tölthető le a csomag:
UPDATE (2010.02.13.):
Végül is időközben bővítmény lett a dologból. Tehát ha ezt a fájlt kicsomagolás után a plugin mappába másolod, majd a vezérlőpulton bekapcsolod az “Internet Explorer blokkoló” plugint, akkor talán egyszerűbb a dolgod, mint szerkesztgetni a functions.php-t.
letöltve: 20x