Определение параметров браузера и ОС клиента
Для этого есть класс JApplicationWebClient
libraries/joomla/application/web/client.php
$client = new JApplicationWebClient();
Свойства класса:
/** * Class to model a Web Client. * * @property-read integer $platform Платформа, на которой работает веб клиент. * @property-read boolean $mobile Значение true, если веб-клиент мобильного устройства. * @property-read integer $engine Движок браузера * @property-read integer $browser Браузер. * @property-read string $browserVersion Версия браузера . * @property-read array $languages Порядок использования языков браузером. * @property-read array $encodings Порядок использования кодировки клиента. * @property-read string $userAgent Необработанная строка User Agen веб-клиента * @property-read string $acceptEncoding Строка принятой кодировки веб-клиента . * @property-read string $acceptLanguage Строка языков веб-клиента . * @property-read array $detection Массив флагов , определяющих, была лизапущена функция обнаружения . * @property-read boolean $robot Значение true, если веб-клиент — робот * */
Константы определенные в классе:
const WINDOWS = 1; const WINDOWS_PHONE = 2; const WINDOWS_CE = 3; const IPHONE = 4; const IPAD = 5; const IPOD = 6; const MAC = 7; const BLACKBERRY = 8; const ANDROID = 9; const LINUX = 10; const TRIDENT = 11; const WEBKIT = 12; const GECKO = 13; const PRESTO = 14; const KHTML = 15; const AMAYA = 16; const IE = 17; const FIREFOX = 18; const CHROME = 19; const SAFARI = 20; const OPERA = 21; const ANDROIDTABLET = 22;
Определение мобильности:
if ($client->mobile){ ... }
Для получения информации о платформе:
$platform = $client->platform;
Для получения типа браузера:
$browser = $client->browser;
Комплексный вариант для шаблона
// Определение параметров клиента, типа браузера, ОС, и тд. $client = new JApplicationWebClient(); $client_classes = ConstWebClient($client->platform).' '. ConstWebClient($client->engine).' '. ConstWebClient($client->browser).' '. 'version_'.$client->browserVersion.' '. (($client->mobile)?'mobile':''). (isset($client->languages[0])?' '.$client->languages[0]:''); function ConstWebClient($key) { switch ($key) { case JApplicationWebClient::WINDOWS: return 'WINDOWS'; case JApplicationWebClient::WINDOWS_PHONE: return 'WINDOWS_PHONE'; case JApplicationWebClient::WINDOWS_CE: return 'WINDOWS_CE'; case JApplicationWebClient::IPHONE: return 'IPHONE'; case JApplicationWebClient::IPAD: return 'IPAD'; case JApplicationWebClient::IPOD: return 'IPOD'; case JApplicationWebClient::MAC: return 'MAC'; case JApplicationWebClient::BLACKBERRY: return 'BLACKBERRY'; case JApplicationWebClient::ANDROID: return 'ANDROID'; case JApplicationWebClient::LINUX: return 'LINUX'; case JApplicationWebClient::TRIDENT: return 'TRIDENT'; case JApplicationWebClient::WEBKIT: return 'WEBKIT'; case JApplicationWebClient::GECKO: return 'GECKO'; case JApplicationWebClient::PRESTO: return 'PRESTO'; case JApplicationWebClient::KHTML: return 'KHTML'; case JApplicationWebClient::AMAYA: return 'AMAYA'; case JApplicationWebClient::IE: return 'IE'; case JApplicationWebClient::FIREFOX: return 'FIREFOX'; case JApplicationWebClient::CHROME: return 'CHROME'; case JApplicationWebClient::SAFARI: return 'SAFARI'; case JApplicationWebClient::OPERA: return 'OPERA'; case JApplicationWebClient::ANDROIDTABLET: return 'ANDROIDTABLET'; default: return 'default'; } }
Переменная выводится в теге html
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="<?php echo $this->language; ?>" lang="<?php echo $this->language; ?>" dir="<?php echo $this->direction; ?>" class="<?php echo $client_classes; ?>" >