Sziasztok!
A következő problémám van, remélem tudtok segíteni!
Egyik neves - már elhunyt - írónknak, drámaírónknak készítek egy emlékoldalt Drupalban. A sajátos grafika miatt egyedi sminket kellett létrehozni és elég sok böngészőre kellett optimalizálni a site-ot. Többek közt IE6-ra is (ne kérdezzétek miért, muszáj volt). Tképpen a problémám forrása is ez, ugyanis IE6 esetén egy jQuery-t használó kis jscripttel meg kellett piszkálnom az oldal szerkezetet ahhoz, hogy minden ugyanúgy nézzen ki, mint a többi újabb böngészőben. A honlap tartalmaz galériát is, amiben pedig a LightBox-ot, használom, mint modult. Az ezekhez tartózó scripteket a page-default.tpl.php-ban hívom meg:
<?php print $head ?> <?php print $styles ?> <!--[if lt IE 7]> <link href="/sites/...../themes/orkeny/ie.css" type="text/css" rel="stylesheet" /> <![endif]--> <?php print $scripts ?> <script type="text/javascript" src="/sites/...../themes/orkeny/msie6.js"></script>
A print $scripts
hívja meg a Drupalba épített jquery-t, a LightBox-hoz kapcsolódó scripteket stb.
Ha az msie6.js-t a print $scripts
után hívom meg, akkor nem működik a LightBox és még jópár dolog. Ha meg előtte az azért nem jó, mert a jquery függvények később lesznek definiálva, mint az msie6.js, ami ugyebár ezek közül a függvények közül használna jópárat.
A kérdésem tehát a következő:
1. A print $scripts
használatakor mi a Drupal mi alapján és miért olyan sorrendben hív meg scripteket ahogy meghív?
2. Ezt a sorrendet lehet befolyásolni?
3. Az msie6.js-t hogy tudnám ebbe a sorrendbe valahogy beilleszteni?
Elnézést a hosszú felvezető miatt, de így talán jobban érthető a problémám.
Előre is köszönöm a segítséget, a hasznos információkat!
Üdv.: Szabolcs
viszlát ekszplorer
Először a core majd a modulok és a sminkek scriptjeit helyezi el az oldal forrásában. A modulok esetében a súllyal játszva lehet, hogy változik ez a sorrend is. A sminknél pedig az .info fájlban beállított sorrend érvényesül. Ott kéne beállítanod az msie6.js scriptedet.
Mindenesetre itt is leírom, ahogy már máshol is, hogy a jó megoldás nem az IE6 bugjainak saját kezű foltozgatása, hanem a felhasználó figyelmének felhívása, hogy teljesen elavult, szabványokat nem követő, kicsit sem biztonságos böngészőt használ és erősen ajánlott a frissítés egy újabb illetve másik böngészőre.
Ajánlom például a Goodbye Internet Explorer 6 scriptjét.
Nem gondolom, hogy jó megoldás
Nem gondolom, hogy jó megoldás lenne amit írtál.
Én is utálom az IE6-ot, rengeteget szívok miatta, de attól még sokan használják, és az a réteg aki használja egy felugró figyelmeztetéstől megijed és elhagyja az oldalt.
Persze ez függ a tartalomtól is, mert nyilván a weblabort nem IE6-ban nézik, de pl. ott van az agykontroll weblapja. Itt a látogatók kb 80%-a IE6-ot használ. Az ügyfél igénye az, hogy feliratkozzanak a hírlevélre és vásároljanak a webshopban, nem pedig hogy az ügyfélköre lecserélje a böngészőt (jogosan). Ha itt belőnénk egy Goodbye Internet Explorer 6 sctiptet, akkor a feliratkozások és vásárlások letöbbsége megszűnne.
Ahogy a gépek fejlődnek és kijönnek az újabb windows-ok úgy fog majd eltűnni a köztudatból az IE6 ahogy az elődei is tették, de addig nem hinném hogy meg tudjuk váltani a világot, max lecsökkentjük a weboldal látogatottságát.
Én személy szerint nem találkoztam még olyan IE6 buggal amit nem lehetett volna megoldani, valamit sok szívás, valamit pár perc, de megoldás mindig volt.
Hosszu Kálmán
http://twitter.com/kalmanhosszu
http://www.kalman-hosszu.com/
http://premiumcmsthemes.com/
én sem gondolom, hogy jó megoldás amit írtál
Én nem utálom az IE6-ot. Szerintem remek böngésző. Volt még 2001-ben. A megoldás nem a foltozgatás és a felhasználók "kényelmének" biztosítása mindenáron, hanem a frissítés, ami nem csak a fejlesztők, hanem a felhasználók nyilvánvaló érdeke is.
A továbbiakkal sem értek egyet. Lásd a norvégok által indított kampányt, vagy a Google és a Facebook figyelem felhívását az IE6 frissítésére, de vannak számtalan más kisebb-nagyobb oldalak, amik megteszik ezt. A megoldás, ha ehhez minél többen csatlakoznak.
Jelzem a felhasználót még úgy is értesítheted, hogy elavult böngészőt használ, hogy mellette befoltozgatod az IE6 bugjait, ha ragaszkodik hozzá hadd nézze azzal, de a minimum, hogy értesíted a problémáról.
Ez ilyen
Hát erről akkor teljesen másképp gondolgodunk, nem gond ez.
Az én eddigi tapasztalataim szerint az ügyfelek lesz*rják, hogy milyen böngészőt használ a felhasználó, a lényeg hogy értékesíthesse a termékét a weben, és ha figyelmeztetéstől távozik a user, akkor figyelmeztesse más, hiszen az értékesítésből él, nem pedig reklámból.
Részemről erről ennyit.
Hosszu Kálmán
http://twitter.com/kalmanhosszu
http://www.kalman-hosszu.com/
http://premiumcmsthemes.com/
IE6
Köszönöm a választ. Sajnos az IE6-ot, bármennyire is nem szeretjük, nem hagyhatom én sem figyelmen kívül, mert vélhetően a most készülő honlap látogatóinak a 15%-a ezt a böngészőt fogja használni. A figyelmet persze fel lehet hívni, a frissítésre, de csak diszkréten, nem tolakodva, mert nem illik a készülő honlap arculatához, szellemiségéhez.
$type szerint van csoportosítva
Olyan sorrendbe kerülnek be ahogy a különböző modulokat berántja. A drupal_add_js $type változójában megadhatod hogy core, module vagy theme típusú a scripted. Ez annyiban befolyásolja a script beszúrási helyét, hogy elsőnek a core másodiknak a module és végül a theme scriptek kerülnek ki az oldalra. Ezen belül nem tudsz sorrendet állítani. Ha fontos, hogy mindenképpen elsőnek kerüljön be a js-ed, akkor beteheted a page.tpl.php-ba oda ahová szeretnéd... Én azért megpróbálkoznék a core típussal az minden modul js elé fog kerülni.
http://api.drupal.org/api/function/drupal_add_js
--
IE doesn't support internet
Probléma megoldva
Köszönöm a korrekt, lényegretörő és gyors választ. Nagyon hasznos volt, a problémák 90%-át ezzel sikerült is megoldani. Ami maradt, az már nem ezzel függ össze.