News:

Bored?  Looking to kill some time?  Want to chat with other SMF users?  Join us in IRC chat or Discord

Main Menu

Script de detection de navigateur pour SMF

Started by Percherie, July 04, 2004, 09:22:37 AM

Previous topic - Next topic

Percherie

Bonjour à tous,


Je viens de finir mon script, voici ce qu'il fait :

- Detection des navigateur IE, Mozilla, Firefox, Netscape, Opera
- Detection de leurs versions
- Affichage des informations dans une popup DHTML (une fausse popup)


En ce qui concerne le fonctionnement de la popup, elle s'affiche uniquement si :

- Le navigateur n'est pas à jour
- Le navigateur n'est pas compatible avec le site ou n'est pas du tout reconnu (trops vieux ou exotique)
- Le navigateur est IE car ce navigateur date de 2001 (trops vieux) et propose la visite d'une page explicative
- S'affiche qu'une seul fois par session
- L'utilisateur peut desactiver definitivement l'affichage de la popup (utilisation de cookie)
- On peut la deplacer et un bouton dans le coin suppérieure droit permet de la fermer
- On peut modifier sa couleur, taille et position d'affichage


Il me manque un tout petit detail et là je me tourne vers vous mais aussi si Ap2 peut ce renseigner auprés de personne comme les devellopeur :

- J'essais de récuperer les infos des styles CSS des themes pour utiliser les parametre de couleur et des polices pour une adaptation parfaite et ceci en valeur HTML comme par exemple #FFFFFF ou #CCFFCC


Si cette solution n'est pas possible je posterai un lien de téléchargement dès confirmation sinon je continuerai ce script :P
Visitez :
Le site site des chépers du web et ToutenKamion, le blog de voyage autour du monde en camion

Alexandre P.

Normalement, le style.css du thème en cours (du thème par défaut pour le cas des invités) sera utilisé.
Aucun support par M.P., courriel ou messagerie instantanée / No support by P.M., email or I.M.

Percherie

ba tient comme tu est là je vais tenter de m'expliquer de façon moins simpliste pour que tu comprenne ce qui ce passe

La popup s'affiche en javascript grace à la fonction document.write ('texte à afficher');

je l'ai combiné avec du PHP grâce à des variables que l'on définie manuellement en tout debut de sript un peut comme le fichier Settings.php du forum ce qui donne

echo ("document.write ('mon texte" . $variable . "suite du texte');");

Pour l'instant les variables sont definie comme ceci : $variable = '#CCFFCC';

Ce que j'aimerai c'est récuperer des parametres de certains style CSS definie dans le theme en cour pour definir les variables

Un peut tordue, sur l'editeurjavascript on m'a regarder avec de gros yeux sans comprendre de que je voulais en faire mais je pensse que depuis le temp que j'ai pas eu de réponse ce ne soit pas possible, je vais donc essayer d'integrer directement les sytles CSS mais j'ai des doutes sur la compatibilité des languages entre eux

Si quelqu'un à une solution qu'il me fasse signe
Visitez :
Le site site des chépers du web et ToutenKamion, le blog de voyage autour du monde en camion

Alexandre P.

Oula, c'est du JavScript, tu me perds ;D  J'y connais rien en JavaScript...

Si tu veux récupérer uniquement les codes couleur, je crois que ça n'est pas possible, sinon d'une manière très compliquée qui échape à mon esprit :P
Aucun support par M.P., courriel ou messagerie instantanée / No support by P.M., email or I.M.

Percherie

J'ai du faire sans... ça aurrait mieux si le script s'adaptait directement aux themes mais bon, c pas trops grave

Voici le lien pour le télécharger : http://osiris.luck.free.fr/SMF/detect_nav.rar

Je n'ai pas fait de fichier readme.txt ou autre truc comme ça mais toute les info sont dans le fichier index.php avec notice explicative, d'installation, info sur les parametres

Il faut imperativement suivre les instruction d'installation sinon avec IE (y a que lui qui pose problème) au premier chargement tous vos caractère prendron un autre style mais ça ne concerne que la premiere page... ensuite le script ne s'execute plus

En cas de soucis je suis là moi je vais prendre une douche bien fraiche, j'en peut plus de réflechir comme ça
Visitez :
Le site site des chépers du web et ToutenKamion, le blog de voyage autour du monde en camion

[Unknown]

I'm not sure what this is about, can't read French, but is the $context['browser'] array useful at all?

if ($context['browser']['is_opera6'])
   echo 'Why are you using Opera 6?  Upgrade, would you?!';

-[Unknown]

Alexandre P.

* Dans l'installation, ça ne devrait pas être2 - editez votre template et ajoutez include ('../../script/index.php'); aprés :
function template_main_above()
{
et non ././script/index.php, puisque on souhaite remonter de deux répertoires ;)
De même, puisque tu veux aller au dossier racine du forum, tu pourrais utiliser la variable $boardurl définie dans Settings.php.

* La dernière version française de Mozilla est la 1.7, et non la 2.6 ( ??? ) (ligne 58, $Moz = '2.6';  //http://www.mozilla-europe.org/fr/)

Quote from: [Unknown] on July 05, 2004, 11:39:19 AM
I'm not sure what this is about, can't read French, but is the $context['browser'] array useful at all?

if ($context['browser']['is_opera6'])
   echo 'Why are you using Opera 6?  Upgrade, would you?!';

-[Unknown]
SMF permet déjà de détecter le navigateur :)  Dans le fichier /Sources/Load.php, vers la ligne 738, il y a un tableau (array) qui recense les différents navigateurs.  Ça pourrait être utile :)
Aucun support par M.P., courriel ou messagerie instantanée / No support by P.M., email or I.M.

Percherie

#7
Oups en effet en local j'avais effectuer les modif mais je n'ai pas répercuter tous ça sur les instruction d'installation

Pour l'adresse ('././script/index.php'); c'est bien la bonne, moi aussi au début j'ai crus qu'il falait mettre deux point mais ça ne fonctionne pas, je n'ai pas chercher à comprendre et j'ai donc modifier l'adresse de tel façon pour que ça fonctionne

Par contre je suis interesser par ce que tu me raconte sur la detection par SMF, peut tu m'en dire plus et comment utiliser les données?

Ps : Je viens de mettre le fichier à jour, il est maintenant correct
Visitez :
Le site site des chépers du web et ToutenKamion, le blog de voyage autour du monde en camion

Alexandre P.

Ben, je sais pas trop...

Dans /Index.php, à la ligne 49, SMF inclut /Sources/Load.php.
Dans /Sources/Load.php, à partir de la ligne 738, il y a une fonction qui détecte le navigateur du visiteur.

La valeur est rendue sous forme de tableau (la fonction array() ).  Pour récupérer la valeur, c'est sous la forme $context['browser']['is_NAVIGATEUR']

Les valeurs possibles:

  • $context['browser']['is_ie'] pour Internet Explorer
  • $context['browser']['is_ie4'] pour Internet Explorer 4
  • $context['browser']['is_ie5'] pour Internet Explorer 5
  • $context['browser']['is_ie5.5'] pour Internet Explorer 5.5
  • $context['browser']['is_ie6'] pour Internet Explorer 6
  • $context['browser']['is_safari'] pour Safari
  • $context['browser']['is_gecko'] pour les navigateurs Gecko en général (Netscape, Mozilla, Firefox, Galeon, Konqueror, etc.)
  • $context['browser']['is_opera'] pour Opera
  • $context['browser']['is_opera6'] pour Opera 6

N'empêche, je ne sais pas s'il fait une distinction, par exemple, entre NS 6 et NS 7, par exemple...

~~~~~~~~

If [Unknown] is passing here: does the browser detection makes a difference between, like, Netscape 6 and Netscape 7 and Mozilla 1.7 ?  I believe the answer is no, but just to be sure...  Because we all know there were a lot of evolution between all those versions.
Aucun support par M.P., courriel ou messagerie instantanée / No support by P.M., email or I.M.

[Unknown]

Quote from: Ap2 on July 06, 2004, 07:02:19 PM
If [Unknown] is passing here: does the browser detection makes a difference between, like, Netscape 6 and Netscape 7 and Mozilla 1.7 ?  I believe the answer is no, but just to be sure...  Because we all know there were a lot of evolution between all those versions.

Currently, it does not... but I can easily make it do so if necessary.  Especially if I had all the user agent strings in front of me.

-[Unknown]

Percherie

Je pense pas que je vais utiliser cette fonction car par exemple pour les navigateur qui utilise le moteur Gecko il n'y a que netscape qui n'est pas compatible et il faut donc le traiter à part pour la popup
Visitez :
Le site site des chépers du web et ToutenKamion, le blog de voyage autour du monde en camion

Percherie

il semble qu'il y ai quelques problème avec IE, je compte m'en occuper d'ici quelques temp le temp de contacter tous les membres de mon forum et de dresser la liste des config qui pose problème

Je compte aussi modifier le cookie de tel sorte qu'il soit accepter en "sécurité haute" dans IE
Visitez :
Le site site des chépers du web et ToutenKamion, le blog de voyage autour du monde en camion

Advertisement: