Détection du navigateur Joomla

10

Pouvons-nous créer un poste complet de questions / réponses avec les méthodes de base qui permettent la détection du navigateur dans Joomla 2.5 et 3? Après une recherche rapide sur le Web, j'estime qu'il n'y a pas suffisamment d'informations sur une seule page pour répondre au sujet.

FFrewin
la source

Réponses:

14

Une marche à pied plus approfondie devrait vraiment être ajoutée au wiki IMO des documents, mais partager ce que je peux via mobile maintenant.

Pour la compatibilité 2.5 et 3.x, vous pouvez utiliser JBrowser pour effectuer une détection de navigateur. Cependant, cette classe peut ne pas fonctionner correctement avec les nouveaux navigateurs ou versions. Pour l'utiliser pour obtenir le navigateur:

$browser = JBrowser::getInstance()->getBrowser();

Pour 3.2 et plus récent, vous pouvez utiliser JApplicationWebClient, qui est une classe plus récente conçue pour être plus flexible avec les options du navigateur d'aujourd'hui. Pour l'utiliser pour obtenir le navigateur:

$client = JFactory::getApplication()->client->browser;

Les deux classes sont documentées sur le site de l'API, http://api.joomla.org/cms-3/index.html vous reliera à la page de base de la documentation 3.3.

Michael
la source
3
Je n'utiliserais pas JBrowser, surtout si vous voulez vérifier si l'appareil est mobile ou non ou de quel type. C'est vraiment buggé.
Valentin Despa
9

En plus de la réponse de Michael, la classe JApplicationWebClient a quelques autres propriétés utiles:

$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)

Documentation de l'API de classe JApplicationWebClient

FFrewin
la source