Detecção do navegador Joomla

10

Podemos criar uma publicação completa de perguntas / respostas com os principais métodos que permitem a detecção do navegador no Joomla 2.5 e 3? Após uma rápida pesquisa na web, sinto que não há informações suficientes em uma única página para atender ao tópico.

FFrewin
fonte

Respostas:

14

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.

Michael
fonte
3
Eu não usaria JBrowser, especialmente se você quiser verificar se o dispositivo é móvel ou não ou de que tipo. É realmente de buggy.
Valentin Despa
9

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)

Documentação da API da classe JApplicationWebClient

FFrewin
fonte