Определение параметров браузера и ОС клиента
Для этого есть класс 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; ?>" >