Náhodou sem včera narazil na chybku v aplikace TMEP, jenž postihuje jak originální aplikaci, tak verzi pro GIOM 3000.
Jednoduše nefunguje automatické přesměrování uživatele, jenž přistupuje z mobilního zařízení, na mobilní verzi aplikace.
Je to způsobeno jednak chybějícím konfiguračním parametrem v souboru nastaveni.php, tak nevhodnou konstrukcí vlastního přesměrování, jenž PHP aktuální verze prostě „nežere“ 🙂
Připravil sem pro Vás následující kousky kódu, pro opravu souboru nastaveni.php a index.php. Oprava je již zaintegrována do *.zip souboru, který je zde na blogu ke stažení.
Na konec nastaveni.php je třeba přidat následující, aby se přesměrování povolilo :
$presmerovavatMobily = true; // CZ: Presmerovavat na mobilni verzi ?
// EN: Redirect to mobile version ?
Soubor index.php je třeba kolem řádku 34-tého nahradit :
if (($ipod !== false || $iphone !== false || $android !== false) && $presmerovavatMobily == 1 && $_GET['nemobile'] == 0)
{
Header('Location: mobile.php', 301, true);
exit();
}
… za opravenou a rozšířenou verzi :
// rozpoznani o jake jde zarizeni ... verze 2.0 (240912)
$aMobile = array("iphone", "ipod", "ipad",
"android", "htc", "samsung",
"nokia", "symbian", "blackberry",
"iemobile", "opera mini", "htc",
"samsung", "silk", "kindle",
"hp-tablet", "hpwos", "j2me/midp");
for ($i = 0; $i < count($aMobile); $i++)
{
if (stripos($_SERVER['HTTP_USER_AGENT'], $aMobile[$i]) !== false && $presmerovavatMobily == true && $_GET['nemobile'] == 0)
{
$aDir = explode("/", __DIR__);
$sRedirect = "Location: http://".$_SERVER["SERVER_NAME"]."/".$aDir[count($aDir)-1]."/mobile.php";
Header($sRedirect, TRUE, 301);
exit();
}
}
// rozpoznani zarizeni - konec
Nyní by už přesměrování mělo makat 🙂 Pokud máte mobil jiné platformy než Apple a přesměrování stále nefunguje, dejte mi vědet, či zkuste zjistit co prohlížeč vrací v poli $_SERVER[‚HTTP_USER_AGENT‘] … Díky !
Aktualizace : Našel sem na netu seznam User-Agent-IDs pro další platformy/prohlížeče na mobilních zařízeních, tedy sem udělal další edit/opravu archivu ke stažení a kódu zde na stránce. Navíc sem našel chybu v jpgraphs (jde o definici cesty k fontům, lze nastavit dle vašeho prostředí), oprava je taktéž v archivu a zde:
Soubor skripty/jpgraph/jpgraph.php – řádek 202 :
//define('TTF_DIR','/usr/share/fonts/truetype/');
define('TTF_DIR','./fonts/');
… řádek 222 :
//define('MBTTF_DIR','/usr/share/fonts/truetype/');
define('MBTTF_DIR','./fonts/');
Aktualizace 25.10.2012 a 26.10.2012 : Odstranil sem z výčtu uset-agent tagů „trident“, což mělo totiž za následek, že mobilní verzi webu viděli i lidi co stále používají InternetExplorer a zároveň sem část kódu odpovědnou za tuto funkci přesunul do souboru skripty/fce.php … Archiv byl upraven taky. Dne 26.10. sem celé přesměrování kapku přepsal znovu a je otestováno, že funguje bez chyb – v případě, že nějakou chybu najdete, tak pište 🙂 A archiv je aktualizován taky, jako vždy.
Přidáno dne 24. září 2012 by lwq | Komentáře nejsou povolené u textu s názvem Oprava TMEP 4.2 – přesměrování na mobilní verzi