Respostas:
Uma explicação mais aprofundada deve realmente ser adicionada à wiki IMO do docs, mas compartilhando o que posso via celular agora.
Para compatibilidade com 2.5 e 3.x, você pode usar o JBrowser para detectar o navegador. No entanto, essa classe pode não funcionar bem com navegadores ou versões mais recentes. Para usá-lo para obter o navegador:
$browser = JBrowser::getInstance()->getBrowser();
Para a versão 3.2 e mais recente, você pode usar o JApplicationWebClient, que é uma classe mais nova projetada para ser mais flexível com as opções atuais do navegador. Para usá-lo para obter o navegador:
$client = JFactory::getApplication()->client->browser;
Ambas as classes estão documentadas no site da API, http://api.joomla.org/cms-3/index.html o vinculará à página base para 3.3 documentos.
Além da resposta de Michael, a classe JApplicationWebClient possui algumas outras propriedades úteis:
$client = JFactory::getApplication()->client;
$client->browser;
// The detected browser used by the web client (returns an integer)
$client->browserVersion;
// The detected browser version used by the web client. (string)
$client->mobile;
// True if the web client is a mobile device (Boolean)
$client->platform;
// The detected platform on which the web client runs (integer)
$client->userAgent;
//The web client's user agent string. (string)
$client->robot;
// True if the web client is a robot (Boolean)
JBrowser
, especialmente se você quiser verificar se o dispositivo é móvel ou não ou de que tipo. É realmente de buggy.