Module d'Analyse du navigateur

Fonctionnalités

Ce module permet d'analyser le navigateur des internautes pour afficher des données spécifiques à ce navigateur.

Il est basé sur les deux excellentes librairies open source PHPBrowscap et WURFL.

L'un des objectif de ce module est de permettre d'identifier facilement un navigateur mobile pour lui fournir du contenu adapté.

Plus précisément, il est possible :

  • d'identifier si un navigateur est mobile ou pas,
  • de connaître le support technologique offert par le navigateur (Javascript, CSS, Iframes, etc.),
  • d'identifier si le navigateur est un robot ou pas,
  • de connaître la résolution disponible sur le navigateur,
  • et bien d'autres informations encore ...

Il est ensuite possible en fonction de toutes ces informations de servir un contenu spécifique en fonction d'un ou plusieurs des critères du navigateur.

 

Toutes ces fonctionnalités reposent sur l'analyse faite par Browscap et WURFL du User Agent envoyé par le navigateur.
Le module ne fait aucune modification de ces données donc si les deux précédentes librairies ne reconnaissent pas ou reconnaissent mal le User Agent concerné, il est possible que le comportement ne soit pas celui souhaité.
En cas de problème, merci de contacter les auteurs de ces librairies pour les en informer.

Attention, ce module ne devrait pas être employé afin de servir un contenu spécifique aux moteurs de recherches. Google, notamment, est très strict à ce sujet.

Installation

Pré requis :

Ce module, en plus des pré-requis de base d'Automne, nécessite la présence des extensions PHP Zip et Curl pour fonctionner sur sur votre serveur.

Installation et mise en route du module :

Le module se présente sous la forme d'un patch Automne. Son installation est donc simple, il vous suffit d'uploader le fichier disponible en téléchargement sur ce site directement dans l'interface d'administration d'Automne pour déclencher son installation automatique.

Pour cela, allez dans l'interface d'administration d'Automne avec un compte administrateur puis, dans le panneau latéral, allez dans "Administration" > "Paramètres Serveur" > "Mises à jour". Fournissez le fichier du module dans le champ "Fichier de mise à jour" puis cliquez sur valider.

Une fois le module installé, il est nécessaire de créer différentes rangées de contenu qui définiront les liens d'export que vous pourrez ensuite insérer dans vos pages. Voir le paragraphe "fonctionnement" ci-dessous pour plus d'informations.

Mise à jour du module :

Pour mettre à jour le module, il vous suffit, comme pour son installation d'uploader le fichier de la dernière version du module dans l'interface d'administration d'Automne. Cela déclenchera sa mise à jour automatique.

Mise à jour de la base de définition de Browscap :

Ce module utilise la base de définition de User Agent "Browscap" traitée à l'aide de la librairie "PHPBrowscap".

Pour conserver une détection optimale des navigateurs, il est nécessaire de disposer d'une version à jour de la base Browscap.

Le module tentera de mettre à jour lui même cette base de définition tous les 5 jours. dans le cas ou cette mise à jour echouerai, il est possible de mettre à jour manuellement la base en remplaçant le fichier /automne/cache/browscap/browscap.ini par la dernière version disponible sur le site de Browscap.

Mise à jour de la base de définition de WURFL :

Ce module utilise la base de définition de User Agent "WURFL" (Wireless Universal Resource File).

Pour conserver une détection optimale des navigateurs, il est nécessaire de disposer d'une version à jour de la base WURFL.

Pour mettre à jour manuellement la base WURFL, téléchargez la dernière base disponible au format ZIP et remplacez le fichier /automne/wurfl/wurfl.zip par celui téléchargé.

Fonctionnement

Ce module permet d'afficher des données provenant du navigateur de l'internaute ou d'effectuer des conditions sur ces données. Les données du navigateur sont disponibles suite à l'analyse du User Agent fourni par le navigateur client.

Il est ainsi possible par exemple, d'identifier facilement si le navigateur est un mobile pour lui fournir un affichage adapté.

Afficher une donnée du navigateur :

Les variables au format {browscap:dataname} et {wurfl:dataname} seront remplacées.
dataname étant le nom de la variable à afficher.

Pour connaitre le nom des variables disponibles, vous pouvez utiliser la variable {ua:datas} qui vous listera l'ensemble des variables disponibles.

Notez que les valeurs retournées par les variables sont directement fournies par les librairies phpbrowscap et WURFL et ne sont pas modifiées par le module. Si certaines d'entre elles sont incorrectes, vous devez vérifier sur le site de la librairie concernée si une mise à jour de leur base est disponible (voir la section mise à jour ci-dessus).

Faire une condition sur une donnée du navigateur :

<atm-if what="condition"> ... </atm-if>
Le contenu de ce tag sera affiché si la condition présente dans l'attribut what est remplie.

  • condition : Condition à remplir pour afficher le contenu du tag. L'usage courant est de valider la présence d'une valeur non nulle. Cette condition peut aussi prendre toutes les formes valides d'une condition PHP (voir : Les structures de contrôle en PHP). La condition sera remplie si la valeur existe ou bien n'est pas nulle ou bien n'est pas égale à faux (false).

Au même titre que le tag atm-ua, les variables au format {browscap:dataname} et {wurfl:dataname} seront aussi remplacées par leurs valeurs à l'intérieur de ce tag.

L'ensemble des valeurs fournies par WURFL sont expliquées sur leur documentation en ligne.

Exemples :

Afficher certaines données uniquement si le navigateur est un navigateur mobile :

<atm-if what="{browscap:isMobileDevice} || {wurfl:is_wireless_device}">
    Je suis un mobile utilisant le navigateur {browscap:Parent}
</atm-if>

Afficher certaines données uniquement si le navigateur n'est pas un navigateur mobile :

<atm-if what="!{browscap:isMobileDevice} &amp;&amp; !{wurfl:is_wireless_device}">
    Je ne suis pas un mobile. J'emploi le navigateur {browscap:Parent}
</atm-if>

Afficher certaines données uniquement si le navigateur est un iPhone :

<atm-if what="{browscap:isMobileDevice} &amp;&amp; {browscap:Parent} == 'iPhone'">
    Je suis un iPhone
</atm-if>

Forcer une valeur pour un navigateur :

Il peut être intéressant de vouloir forcer une valeur pour un navigateur même si ce n'est pas la valeur par défaut de ce navigateur. Cela permet par exemple à un navigateur mobile de pouvoir accéder à la version non mobile du site.
Pour ce faire, il est possible de forcer n'importe quelle valeur retournée par ce module via un paramètre dans l'adresse d'une page utilisant un des tags ci-dessus.

Exemples :

L'adresse suivante permettra de forcer les valeurs de {browscap:isMobileDevice} et de {wurfl:is_wireless_device} à 0 pour ne plus être considéré comme un appareil mobile :

http://www.domain.tld/web/id-ma-page.php?ua[isMobileDevice]=0&ua[is_wireless_device]=0
De même, l'adresse suivante permettra de forcer un affichage mobile :

http://www.domain.tld/web/id-ma-page.php?ua[isMobileDevice]=1&ua[is_wireless_device]=1

Ces paramètres sont stockés dans la session de l'utilisateur. Il n'est donc pas utile de les fournir à chaque pages lors de la navigation. Une seule fois suffit pour toute la navigation de l'internaute.

En savoir plus ...

La création de ce module fait suite à ce sujet sur le forum d'Automne : http://www.automne-cms.org/forum/viewtopic.php?f=2&t=625. Vous y trouverez des informations sur l'usage de ce module.

Opera fourni un nombre importants d'articles de qualité sur les meilleures techniques de développement pour mobile :

Page suivante

Ajouter une contribution :

Les contributions servent à compléter la documentation en détaillant des points précis ou pour donner des exemples. Elles sont modérées et peuvent être supprimées sans préavis.
Pour poser des questions, merci d'employer le forum et pour rapporter un bug, le BugTracker est à votre disposition.








Vous pouvez employer les balises bbcode suivantes :
  • [code-xml] votre code ... [/code-xml] : Pour mettre en forme du code XML / XHTML
  • [code-php] votre code ... [/code-php] : Pour mettre en forme du code PHP
  • [code-js] votre code ... [/code-js] : Pour mettre en forme du code Javascript

Date de votre contribution : 29/05/2017   02:08:50

Haut