Végső csapás az IE6-ra

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.

ie_killer.zip

letöltve: 20x

Kapcsolódó anyagok:



Népszerű cikkek


Legutóbbi hozzászólások

  • himi: Sziasztok! Van olyan fw. amiben van...
  • ito: Sziasztok ! Van olyan fw. ami tartalmaz...
  • stibi: Maxx köszi a választ
  • Koni: Sziasztok! Tudd valaki segíteni ?...
  • stibi: Sziasztok Honnan tudhatom.hogy melyik...
  • Janó: Nocsak, nocsak, plágium? Vagy csak...
  • subijoe: Sziasztok! Érdeklődéssel olvastam,...
  • apu: Letöltöttem. Használom köszönöm.
  • Boci: Hello a külső usb wifi csatolásról lesz...
  • charlie: a csipes dolog nem hülyeség, én...



Archívum

Kategóriák