Prohlížení webového obsahu na displeji i postaršího mobilního telefonu není žádná novinka, prohlížeč Opera Mini existuje již ve své třetí verzi a to jak pro platformu MIDP-1, tak i MIDP-2. Architektura typu C-S tohoto prohlížeče provádí jakési základní optimalizace stránek, ale proč neoptimalizovat přímo daný web (budu uvažovat Drupal) pro konkrétní zařízení a nezvýšit tak uživatelský komfort ještě o pár příček výš?
Možnost, jak určit, jaký druh obsahu zobrazit je na základě adresy (čili www.mojeadresa.cz vs. mobile.mojeadresa.cz). Pro tento způsob asi většina lidí sáhne po následujícím kousku kódu:
$parts = explode('.', $_SERVER['HTTP_HOST']);
if ($parts[0] == 'mobile') {
$GLOBALS['theme_custom'] = 'mobile';
$base_url = $_SERVER['HTTP_HOST'];
}
Ovšem pro použití na freewebech, kdy je adresa tvořena ve třetím řádu již samotným názvem webu tento způsob není možné využít. Pokud má někdo vlastní doménu a tento způsob by mu vyhovoval, nechť tedy pokračuje na stránky Drupalu, kde se tento způsob řeší. Můj způsob spočívá v detekování prohlížeče, pomocí skriptů Skiffieho (který má funkčnost vysvětlenu i s příklady na svém blogu).
Pro jednoduché stránky se jeví jako ideální zdetekovat, jaký prohlížeč přistupuje a na základě této informace mu podstrčit kaskádový styl optimalizovaný pro tento prohlížeč. Drupalu je možné na základě této informace předhodit konkrétní téma, které má využít. Protože se jedná o mobilní zařízení, budu uvažovat téma mobile. Ovšem téma v Drupalu není jenom změna stylu, je možné odebírat jednotlivé bloky…
Sprovoznění je více než jednoduché. Stačí nainstalovat téma mobile, povolit jeho používání a v adresáři /sites/default/ přidat na konec souboru settings.php jednoduchou podmínku a nakopírovat a přiložit Skiffieho skripty.
include "accessibility.php";
if (is_mobi())
$conf = array(
'theme_default'
=> 'mobile',
'anonymous'
=> 'mobileVisitor'
);
Možná by ještě nebylo od věci přidat rozšíření switchtheme, kdyby přece jenom detekce nebyla stoprocentní. Potom je možné přepnout aktuální téma pomocí url, kam se přidá ?q=node&theme=nazevtematu.