Для этого есть класс 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; ?>" >

 

 

Никаких мыслей по поводу “Определение параметров браузера и ОС клиента”