Et ça marche ! :chope: Il faut dire que la modification n'est pas compliquée ;-) Elle consiste en un copier-coller suivi de quleques modifications de caractères et voici le résultat dans les statistiques détaillées :





Et le résultat dans les statistiques globales :



Vous noterez que ces plugins sont très bien conçus, car il prennent en compte, directement et sans modifications, Internet Explorer 7, et de ce que j'ai vu dans le code source les versions prises en charge peuvent aller jusqu'à Internet Explorer 9.10 ... :P (Enfin, je crois, j'ai toujours un peu de mal avec les expressions régulières ;-) )
Si quelqu'un peut le confirmer, voici l'expression utilisée :

"\(compatible; MSIE[ /]([0-9.]{1,10})" => "\\1"

J'en déduis que l'on peut aller à la version 9.10 ... Je me trompe ? :hein: Certainement ! Mais ce n'est pas le sujet du billet et je ne me suis pas encore plongé dans les ER :P


Trois points importants à noter :

  1. Je ne me suis pas emmerdé embêté à changer les icônes et j'ai conservé les icônes normalement attribuées à Windows XP
  2. Windows XP x64 et Windows 2003 (32 ou 64 bits) sont regroupés, car ils ont exactement le même user-agent, composé de Windows NT 5.2 et aucune chaine de caractères ne permet de les distinguer. On peut, à la rigueur, détécter les versions 64 bits des deux OS, mais il faut que le navigateur utilisé soit 32 bits. Dans ce cas-là, la mention WOW64 apparait dans l'user-agent. Mais ...car il y a un mais, avec, par exemple toujours, la version 64 Bits de DeerPark Alpha 1 (ou Firefox 1.5 Alpha), cette mention disparait :grr:
  3. Windows Vista est, quand à lui, plus simple à identifier car l'user-agent mentionne Windows NT 6.0

Voici donc les fichiers modifiés à mettre en place sur votre installation Dotclear :

  1. Copier ce fichier dans le dossier {Racine de Dotclear}/ecrire/tools/bbclone/lib en ayant pris soin de sauvegarder l'ancien ... au cas où :P .
  2. Penser à supprimer l'extension .txt pour que le fichier soit exécuté par le moteur PHP.
  1. Copier ce fichier dans le dossier {Racine de Dotclear}/ecrire/tools/bbclonerss/lib en ayant pris soin de sauvegarder l'ancien ... au cas où :P .
  2. Penser à supprimer l'extension .txt pour que le fichier soit exécuté par le moteur PHP.

Pourquoi deux fichiers différents ? Parce que sur mon installation, ces deux fichiers ne sont pas strictement identiques, et comme je n'avais pas envie de les éplucher pour voir les différences potentielles, je les ai personalisés tous les deux.
Vous trouverez la modification apportée à chaque fichier en faisant une recherche sur la chaine de caractères Thierry, car j'ai pris soin de les commenter pour revenir en arrière facilement.

Pour information, la portion de code suivante :


"windows2003" => array(
"icon" => "windowsxp",
"title" => "Windows 2003",
"rule" => array(
"wi(n|ndows)[ \-]?(2003|nt[ /]?5\.2)" => ""
)
),


Est remplacée par ce bloc de code :


// Modif Thierry pour prise en compte des x64
"windows2003" => array(
"icon" => "windowsxp",
"title" => "Windows 2003 ou XP x64",
"rule" => array(
"wi(n|ndows)[ \-]?(2003|nt[ /]?5\.2)" => ""
)
),

// Ajout Thierry pour prise en compte de Windows Vista
"windowsvista" => array(
"icon" => "windowsxp",
"title" => "Windows Vista (Longhorn)",
"rule" => array(
"wi(n|ndows)[ \-]?(2003|nt[ /]?6\.0)" => ""
)
),


Lorsque vous aurez copié ou modifié ces deux fichiers, la détection de ces deux OS est immédiate, même pour les visites antérieures à cette modif, car les fichiers de statistiques (access.php et last.php) sont parsés à chaque consultation des stats.

Si quelqu'un se sent l'âme de créer deux nouvelles icônes et/ou de distinguer Win2003 de Win XP x64 ... je suis preneur pour en faire l'intégration. Pour le deuxième choix, je ne pense pas qu'il y ait de solution, mais je ne suis pas infaillible et j'ai peut-être loupé une chaine ou une condition permettant de le faire ...

J'avais déjà mentionné ce problème de numéro de version lors de mes premiers essais logiciels sous Windows x64. Mais, apparement, comme on dit chez MS : it's by design ... Et, à ma connaissance, il n'existe pour l'instant pas de solution de contournement, du moins pour l'user-agent. Car, pour ce qui est des programmes exécutables, il est toujours possible de récupérer plus d'infos sur le système hôte pour détecter si l'on est en présence d'un Windows 2003 ou d'un XP X64.

Pour ceux qui seraient intéressés par l'étude de ce problème, je peux fournir des extraits de mes fichiers logs IIS, avec différentes versions de navigateurs sous Win2K3 32 ou 64 bits et Win XP Pro 32 ou 64 bits ... ;-)
Il faudra juste me laisser le temps de monter une version 64 bits de Win2003 :ange:

Thierry.