Witam.
Wszystkiego dobrego w Nowym 2007 Roku.
Odpowiem tak. Nie da siê zrobiæ, aby modu³ dzia³a³ poprawnie pod
Internet Explorerem, dlatego, ¿e wed³ug autora modu³u, on ju¿ dzia³a poprawnie (ale przewrotnie!). Niepoprawnie, dalej wed³ug autora modu³u, dzia³a
Twoja templatka,
moja templatka, i pewnie templatki
paru tysiêcy ludzi, którzy korzystaj± z Joomla. I napiszê przewrotnie, znów, ¿e
autor ma racjê!. Chodzi o tryb pracy
Internet Explorer'a. Mo¿e on pracowaæ w trybie normalnym,
standardowym, lub w tak zwanym trybie "
quirks mode", czyli kompatybilnym "wstecz" z wcze¶niejszymi wersjami IE, np. wersj± 5.5. Po napotkaniu skryptu np. twojej templatki, podaniu analizie,
Internet Explorer wybiera sam sobie tryb odpowiedni do tego, czy twoja templatka spe³nia standardy
WC3, czy nie. Je¶li spe³nia, a s± takie templatki, wówczas pozostaje w trybie "
standard", i modu³ "
RokLatest News" pracuje poprawnie. Widzia³em na w³asne oczy takie strony. Je¿eli natomiast templatka nie spe³nia wymogów
WC3, wówczas
Internet Explorer "prze³±cza" siê w tryb "
quirks mode", i widzisz to, co widzisz, czyli niepoprawnie dzia³aj±cy modu³. I teraz pytanie. Po "kiego" autor napisa³ taki modu³, który pod jedn± przegl±darka "dzia³a" bez zarzutów, a pod inn± nie?. My¶lê, ¿e "
walczy" o zachowywanie, lub bardziej, "
przestrzeganie" standardów WC3 przez u¿ytkowników Joomla. Tylko teraz nastêpne pytanie?. W imiê czego "walczy"?. Przecie¿ "
utrzymanie" standardu WC3 nie jest takie proste. Ja na mojej stronie mam oko³o
100 ostrze¿eñ o b³êdach w kodzie, i to czêsto nie z samej templatki, tylko np. z tekstów pisanych w edytorze i widniej±cych na stronie g³ównej. No có¿. Skoro autor modu³u, wspania³ego modu³u nie chce, aby u¿ywa³o go wiele osób, to ju¿ jego sprawa. To tyle tytu³em wstêpu.
Teraz co do praktycznych porad.
Mo¿emy "
zmusiæ" IE aby nie "
prze³±cza³" siê w tryb "
quirks mode", usuwaj±c z templatki tak zwany
XML Prolog, czyli definicjê wersji
XML, stosowanej na naszej stronie, która to, wed³ug jednych jest wymagana, wed³ug innych nie. U mnie, po "
zaslashowaniu" linijki z
XML Prologiem, modu³ zacz±³ dzia³aæ, ale inne modu³y, boty i komponenty zaczê³y "dziwnie" siê zachowywaæ. Bot
dynamicImage wy¶wietla³ mi obrazki nie tam, gdzie powinien. I wiele innych, dziwnych rzeczy. Ale tylko pod IE. Pod
Firefoxem wszystko by³o w porz±dku. Co nale¿y, lub mo¿na zrobiæ?. Oto kod pierwszych linii mojej templatki:
Kod: |
<?php
defined( '_VALID_MOS' ) or die( 'Direct Access to this location is not allowed.' );
// needed to seperate the ISO number from the language file constant _ISO
$iso = explode( '=', _ISO );
// xml prolog
echo '<?xml version="1.0" encoding="ISO-8859-2"?' .'>';?>
|
Widzimy na dole
XML Prolog. Mozemy zrobiæ tak:
Kod: |
<?php
defined( '_VALID_MOS' ) or die( 'Direct Access to this location is not allowed.' );
// needed to seperate the ISO number from the language file constant _ISO
$iso = explode( '=', _ISO );
// xml prolog
// echo '<?xml version="1.0" encoding="ISO-8859-2"?' .'>';
?>
|
... i w ten sposób linijka z
Prologiem XML bêdzie "
niewidzialna" dla interpretatora PHP oraz przegl±darki, poprzez podwójne znaki "/" (slash), lub zastosowaæ "moj± metodê":
Kod: |
<?php
defined( '_VALID_MOS' ) or die( 'Direct Access to this location is not allowed.' );
// needed to seperate the ISO number from the language file constant _ISO
$iso = explode( '=', _ISO );
// xml prolog
$browser = getenv("HTTP_USER_AGENT"??);
// IE5 // IE6
if (preg_match("/MSIE 5.+Win./", $browser) || preg_match("/MSIE 6.+Win./", $browser)) {
echo ' ';
}else{
echo '<?xml version="1.0" encoding="ISO-8859-2"?' .'>';
}
?>
|
..czyli wstawiamy instrukcjê "warunkow±"
if, aby przy wizycie go¶cia z IE,
XML Prolog nie by³ uwzglêdniany w kodzie naszej templatki, a w pozosta³ych przypadkach by³.
Co jeszcze mo¿emy zrobiæ?.
Mo¿emy zaopatrzyæ siê w templatke spe³niajac± "standardy", tylko trzeba trochê poszukaæ. Ale czy warto dla jednego modu³u?.
Mo¿emy nic nie robiæ, czyli zostawiæ kod templatki "w spokoju", i liczyæ, ¿e odwiedzj±cych nas go¶ci z IE bêdzie jak najmniej, ale to raczej niemo¿liwe.
Mo¿emy nie instalowaæ modu³u. No... Ale to ju¿ tylko w ekstremalnych przypadkach
.
Koncowy tekst. Co do drugiej czê¶ci twojego postu "
pagoad", to modu³u nie da siê "roz³o¿yæ" na czê¶ci, i to te¿ jest pewnie "pomys³" autora
. Jego prawo.
To tyle na temat
RokLatest News. Mo¿e co¶ z nim "pokombinujê", ale dopiero wtedy, jak bêde mia³ wiêcej czasu. Pozdro.
Jokris.