SPIP-Contrib

SPIP-Contrib

عربي | Deutsch | English | Español | français | italiano | Nederlands

286 Plugins, 197 contribs sur SPIP-Zone, 265 visiteurs en ce moment

Accueil > Outils pour plugins > Le Couteau Suisse > Compter les visiteurs connectés

Compter les visiteurs connectés

25 février 2010 – par Patrice Vanneufville – 20 commentaires

23 votes

Une fonctionnalité du Couteau Suisse qui compte simplement le nombre de visiteurs connectés au même moment.

Présentation

Cet outil est une fonctionnalité du plugin Le Couteau Suisse que vous pouvez trouver ici : Le Couteau Suisse. Pour avoir accès aux fonctionnalités décrites dans cet article, il vous faut donc avoir préalablement installé ce plugin.

Ensuite, une fois l’outil Affichage public > Visiteurs connectés activé sur la page d’administration du plugin en espace privé, vous avez donc la possibilité d’afficher n’importe où dans votre squelette le nombre de visiteurs connectés en même temps.

Le principe est très simple : il consiste à compter le nombre de fichiers présents dans le dossier tmp/visites/, équivalent au nombre de visiteurs présents sur votre site. Il me semble que SPIP conserve le fichier d’un visiteur pendant 30 minutes.

Pour que la noisette fonctionne, veillez que les statistiques soient bien activées dans votre site (SPIP privé : Configuration > Fonctions Avancées > Statistiques).

Notez le travail similaire effectué précédemment dans un plugin autonome par phil : Nombres de visiteurs connectés. Voici le code très simple du filtre réutilisé ici :

  1. function cs_compter_visiteurs(){
  2. return count(preg_files(_DIR_TMP.'visites/','.'));
  3. }

Télécharger

Utilisation

A l’instar de toutes les noisettes [1] SPIP, ajoutez simplement l’expression dynamique <INCLURE{fond=fonds/visiteurs_connectes}> dans votre squelette, une fois que l’outil a été activé.

L’avantage d’utiliser un INCLURE à chevrons est l’indépendance des caches. Pour obtenir un résultat en temps presque réel, il faut en effet un cache plus court au fragment inclu (60 secondes par défaut) qu’à la page elle-même (24 heures le plus souvent).

Comme expliqué sur cette page :

<INCLURE{fond=..}> et [(#INCLURE{fond=..})] ont des fonctionnements différents :
-  avec <INCLURE{fond=..}>, chaque squelette inclus a un cache indépendant ;
-  avec [(#INCLURE{fond=..})], la page principale appelante contient, en cache, l’intégralité du code généré, et les fichiers inclus n’ont pas de cache séparé.

La noisette [1] en détail

Le fond HTML utilisé par le plugin est : fonds/visiteurs_connectes.html. Il contient trois paramétrages : le cache (durée en secondes), le paragraphage (oui/non) et la chaine de langue utilisée.

Voici le code natif de ce fond (au 25/02/2010) :

  1. #CACHE{#ENV*{cache,60}}
  2. [(#VAL{_CS_visiteurs_connectes}|defined|oui)
  3. #SET{nb,#REM|filtrer{cs_compter_visiteurs}|cs_span{class='cs_nb_visiteurs'}}
  4. #SET{ch,couteau:visiteurs_connectes}
  5. [(#VAL{visiteurs_connectes}|_T|=={visiteurs connectes}|non)#SET{ch,visiteurs_connectes}]
  6. [[(#ENV*{p,1}|oui)<p class='cs_visiteurs'>](#GET{ch}|_T{#ARRAY{nb,#GET{nb}}})[(#ENV*{p,1}|oui)</p>]]
  7. ]

Télécharger

Le cache est fixé sur la première ligne à 60 secondes, sauf si une autre valeur cache a été trouvée dans l’INCLURE. Exemple désactivant totalement le cache : <INCLURE{fond=fonds/visiteurs_connectes}{cache=0}>

Sur la 2e ligne, on commence par vérifier que l’outil « Affichage public > Visiteurs connectés » est bien activé grâce à : (#VAL{_CS_visiteurs_connectes}|defined|oui)

Puis, on initialise la variable nb grâce à la fonction cs_compter_visiteurs() et insère le nombre produit d’un <span class=’cs_nb_visiteurs’>, histoire de permettre par exemple de le styliser par CSS. Notez au passage que SPIP 2.1 exige qu’un filtre soit toujours connu. Hors, si l’outil est inactif, la fonction cs_compter_visiteurs n’est pas définie et le compilateur n’est pas content. La solution est donc de passer par |filtrer.

Ensuite, on recherche la chaine de langue ’visiteurs_connectes’ stockée dans la variable ch. Si cette chaine n’est pas trouvée, alors celle du Couteau Suisse sera utilisée : ’Visiteurs connectés : @nb@’. Notez que cette chaine doit obligatoirement contenir la séquence @nb@ afin que le plugin puisse y insérer le nombre de visiteurs. Pour utiliser votre propre chaine de langue, passez par les fichiers personnalisés dossier_de_mon_squelette/lang/local_XX.php (où XX représente la langue en question) et insérez par exemple la ligne suivante :

'visiteurs_connectes' => 'Il y a @nb@ visiteurs connect&eacute;s en ce moment.',

Voici le rendu HTML français obtenu par défaut :

  1. <p class='cs_visiteurs>Visiteurs connectés : <span class='cs_nb_visiteurs'>25</span></p>

Pour éviter l’insertion du paragraphe, alors il faut ajouter le paramètre {p=0} dans l’INCLURE. Par exemple : <INCLURE{fond=fonds/visiteurs_connectes}{p=0}>

Voici ce que devient le rendu HTML dans ce cas :

  1. Visiteurs connectés : <span class='cs_nb_visiteurs'>35</span>

Surcharge du fond

Si ce fond ne vous convient pas, il vous suffit alors de recopier le fichier correspondant dans votre squelette (dossier_de_mon_squelette/fonds/visiteurs_connectes.html) puis de le modifier à votre guise.

Exemple : il est tout à fait possible de le réduire au minimum, un simple nombre sans cache :

  1. #CACHE{0}[(#REM|cs_compter_visiteurs)]

Bonus

Un petit gadget a été ajouté à cet outil. L’URL spip.php ?action=visiteurs_connectes vous permettra de récupérer directement le nombre de visiteurs connectés, ça peut toujours servir, notamment en JavaScript.

Vous souhaitez par exemple une mise à jour dynamique toutes les 15 secondes ? Voici le code jQuery :

  1. function Timer_visiteurs_connectes(){
  2. jQuery("span.cs_nb_visiteurs")
  3. .load("spip.php?action=visiteurs_connectes");
  4. setTimeout("Timer_visiteurs_connectes()",15000);
  5. }
  6. jQuery(document).ready(function(){
  7. if(jQuery("span.cs_nb_visiteurs").length)
  8. Timer_visiteurs_connectes();
  9. });

Télécharger

Attention, ceci est un cas d’école... Votre serveur risque de ne pas supporter autant de hits en si peu de temps !!!

Notes

[1terme habituellement utilisé pour nommer un fragment de squelette SPIP (fichier .html)

Dernière modification de cette page le 2 juillet 2011

Retour en haut de la page

Vos commentaires

  • Le 9 mai 2015 à 12:40, par Julien En réponse à : Compter les visiteurs connectés

    Bonjour,

    est-il possible dans l’inclure, de récupérer les noms des visiteurs connectés ?

    Merci par avance.

    Julien

    • Le 11 juin 2015 à 12:21, par Aurigeft En réponse à : Compter les visiteurs connectés

      Salut,

      Heu, non ce n’est pas possible puisque les visiteurs connectés correspondent aux visiteurs qui passent sur le site et non ceux qui y sont inscrits. Visiter un site, c’est s’y connecter via un navigateur, rien à voir avec une inscription et autres connexions internes au site lui-même.
      J’ai aussi tendance à faire erreur dans le jargon utilisé, pas facile lorsque l’on est novice.
      Bonne journée.

    Répondre à ce message

  • Le 11 juin 2015 à 12:13, par Aurigeft En réponse à : Compter les visiteurs connectés

    Bonjour,

    Après mise à jour de la v1.9.7 à v1.9.8, et après avoir suivi les instructions « Dysfonctionnements »,
    pas d’affichage du nombre des visiteurs connectés.
    De plus j’ai changé dans le fichier lang fr du couteau, 'visiteurs connectés : @nb@' pour 'Ravers On @nb@', cela fonctionnait bien jusqu’à la mise à jour, là, le inclure continue de m’indiquer « visiteurs connectés » (sans le nombre).
    Suite à vos indications ci-dessus, j’ai créé un fichier local_fr dans lang/, copié visiteurs_connectes dans modeles/, mis <INCLURE{fond=modeles/visiteurs_connectes}{p=0}> sur ma page stats, vidé les caches internet et spip, et il n’y a que « visiteurs connectes » qui s’affiche alors que sur les fichiers lang fr, ce n’est plus cela.

    Pourquoi le nombre se s’affiche plus, le bon énoncé non plus et d’où cela vient, le plugin ou une mauvaise manip de ma part ?

    Merci d’avance,
    Cordialement

    Répondre à ce message

  • Le 7 janvier 2015 à 16:22, par Traore En réponse à : Compter les visiteurs connectés

    salut à tous et toutes ;
    j’ai essayé avec la version 3 ça marche bien mais quand tenter avec un de mes sites conçu avec la version 2 de spip, ça ne marche pas, il écrit (visiteurs connectes) et en haut "Erreur : filtre « visiteurs_connectes_compter » non défini".
    Merci pour votre considération ! ( voici le site new.greatmali.net)

    Répondre à ce message

  • Le 4 juin 2010 à 18:23, par paolo En réponse à : Compter les visiteurs connectés

    il consiste à compter le nombre de fichiers présents dans le dossier tmp/visites/, équivalent au nombre de visiteurs présents sur votre site.

    Je n’ai pas de dossier de ce nom dans /tmp (SPIP 2.1 SVN). Est-ce qu’il faut activer les statistiques de SPIP pour que cela marche ? Ou s’agit-il d’autre chose ?

    • Le 2 juillet 2011 à 10:01, par mybeau En réponse à : Compter les visiteurs connectés

      Bonjour,

      idem (en configuration de test local sur mon disque dur) SPIP 2.1.10 Version locale : 1.8.41.03
      Révision : 49007
      alors que la précédente version marche.
      Il n’y a pas de dossier visites dans tmp/
      J’en ai mis un, cela ne change rien.

      J’ai essayé aussi (#INCLUREfond=fonds/visiteurs_connectes...
      idem

      Une idée ? Merci

    • Le 2 juillet 2011 à 12:43, par Pat En réponse à : Compter les visiteurs connectés

      Bonjour.

      Pour que cette lame fonctionne sur un SPIP 2.1 et que le dossier tmp/visites/ soit effectivement créé, il faut que les statistiques soient actives (plugin statistiques). Est-ce bien le cas ?

      Peut-être faudrait-il que le CS palie à une absence éventuelle de ce plugin... Le code n’est pas très lourd, qu’en pense le lecteur ?

    • Le 2 juillet 2011 à 13:32, par mybeau En réponse à : Compter les visiteurs connectés

      Re bonjour,
      Merci de votre réponse rapide.

      Effectivement, je suis en train de tester en local, le passage à SPIP2.1.10 ainsi que la mise à jour de tous les plugins. J’aurais dû mieux comparer la config avec celle de mon site :-(
      J’ai tout simplement oublié d’activer les statistiques (SPIP privé : Configuration > Fonctions Avancées > Statistiques). Au temps pour moi.

      Quand à charger CS de se substituer au défaut d’activation des statistiques ce n’est peut-être pas nécessaire ? On pourrait se contenter de signaler dans la description de la lame qu’il faut activer les Stat.

      En tout cas merci encore et bravo pour le CS et la réactivité
      .

    • Le 2 juillet 2011 à 14:07, par paolo En réponse à : Compter les visiteurs connectés

      Merci de votre réponse rapide.

      En effet... après seulement 13 mois ;)

      Pour ma part, je tiens à ne pas activer les statistiques SPIP qui ne me sont pas nécessaire et qui feraient rallentir le site. Si le CS inclut le code nécessaire avec moindre coût de vitesse au site, alors je l’utiliserai.

    • Le 2 juillet 2011 à 14:19, par mybeau En réponse à : Compter les visiteurs connectés

      En effet... après seulement 13 mois ;)

      Non non Paolo, Je viens de poster ma demande. :-)

      Cela dit je me pose le question. Pourquoi ne pas compter plutôt le nombre de fichiers présents dans « sessions » si cela peut répondre à un besoin de connaitre le nombre de personnes connectées en temps réel ?

      Lors de mes tests en local, le CS compte 4 visiteurs connectés alors qu’il n’en reste plus qu’un seul. Les sessions sont maj de façon plus réactive. Du moins il me semble (je n’ai plus que 1 fichier de session) et toujours 4 « visiteurs connectés »

    • Le 2 juillet 2011 à 14:37, par Pat En réponse à : Compter les visiteurs connectés

      SPIP s’arrange pour maintenir le dossier tmp/visites/ pendant 30 minutes. CRON s’occupe de ça : du coup c’est à peu près 30 minutes, le temps exact n’est pas fondamental.

      @mybeau : as-tu étudié la façon dont les sessions fonctionnent ? Je viens de regarder et j’ai des sessions datées de 2010... Sur un site où il y a actuellement 5 connectés, j’ai 50 fichiers de session !

      @Paolo : oups, j’avais pas dû voir passer ton message !

      @Paolo : oui le code serait minimal, a priori 2 fichiers du plugin statistiques semblent suffire pour renseigner sur les visiteurs connectés, celui qui gère le dossier tmp/visites à chaque hit et celui qui surveille les 30 minutes (genie).

    • Le 2 juillet 2011 à 17:23, par mybeau En réponse à : Compter les visiteurs connectés

      Ah ?

      J’ai un dossier sessions hyperclean..... Mais je sais pas dire pquoi.
      Pourtant j’ai pas mal d’assoc. qui rentrent pour créer leurs articles.
      Depuis 2010 il aurait du y en avoir un certain nombre.. ?
      De plus j’ai « vu » des fichiers de session disparaître sous mon nez si j’ose dire.....
      C pas grave comme je l’ai dit.

      Je ne vois pas d’inconvénient aux statistiques (pour moi et dans mon cas de figure)
      On me les demanderait s’il n’y en avait pas. (Comme on est censé en avoir personne ne demande ... of course.)

      statistiques est un plugin ?
      sans doute un de ceux ajoutés systématiquement par SPIP ?

    • Le 2 juillet 2011 à 19:07, par Patrice Vanneufville En réponse à : Compter les visiteurs connectés

      SPIP 2.1 possède encore des statistiques en core, il faut juste les activer. C’est SPIP 3 qui les a déportées en extension...

      La lame prévient désormais s’il y a un problème d’activation ;-)

    Répondre à ce message

  • Le 15 avril 2010 à 23:25, par aldebaran1976 En réponse à : Compter les visiteurs connectés

    Bonjour,

    je dois être extrêmement bête (ou extrêmement débutant) mais j’aimerais comprendre ce que veut dire ceci :

    A l’instar de toutes les noisettes [1] SPIP, ajoutez simplement l’expression dynamique visiteurs_connectes}> dans votre squelette, une fois que l’outil a été activé.

    Que veut dire « insérer dans un squelette » : faut-il uploader un fichier particulier, l’ouvrir avec le notepad et insérer cette ligne de code n’importe où dans le texte ?

    • Le 16 avril 2010 à 01:29, par Patrice Vanneufville En réponse à : Compter les visiteurs connectés

      Salut,

      Oui, il faut bien éditer un des fichiers du squelette et ajouter l’expression d’inclusion que tu cites.

    • Le 16 avril 2010 à 09:22, par aldebaran1976 En réponse à : Compter les visiteurs connectés

      Merci,

      mais alors, le problème est : quel fichier remodeler ? (je suppose que çà doit être celui générant la page sur laquelle on veut faire afficher le compteur des visites... index.php par exemple ? si on veut faire apparaitre le compteur sur la page d’accueil ?)... ou alors un autre fichier du squelette. Mais de quel squelette parle-t-on ? celui de la distribution ou ceux que l’on peut ajouter par FTP dans le répertoire /squelettes/ sachant que si j’ai bien compris, les versions les plus récentes de spip ont tendance à utiliser de moins en moins ce répertoire /squelettes/ et utilisent plutôt des plugins.

      Je sais que çà fait beaucoup de questions mais j’aimerais comprendre.

      D’avance merci !

    • Le 16 avril 2010 à 15:45, par Patrice Vanneufville En réponse à : Compter les visiteurs connectés

      Tous les fichiers copiés dans squelettes/ seront prioritaires par rapport aux autres. Donc n’hésitez pas à y copier les vôtres et à les modifier comme bon vous semble ;-)

      Il s’agit bien sûr de fichiers html, la page d’accueil étant : sommaire.html.

    • Le 17 avril 2010 à 22:06, par aldebaran1976 En réponse à : Compter les visiteurs connectés

      Merci,

      c’est maintenant clair comme de l’eau de roche !!!

    Répondre à ce message

  • Le 9 mars 2010 à 10:57, par ? En réponse à : Compter les visiteurs connectés

    Pourquoi tant de colère ? Un ami m’a dit un jour :
    « Le côté obscur de la Force, redouter tu dois. »

    Il est vrai que j’ai du mal à identifier les singularités de cette contrib qui permettraient de justifier sa coexistence avec l’autre...

    En même temps, le couteau suisse, dans son principe (rassembler un max d’outil en 1 plugin), me facilite bien la vie...

    Salomon conclurait ainsi : « Il faut que le couteau suisse soit ouvert à tous les contributeurs de la communauté ! Au lieu d’y ajouter toujours plus de fonctionnalités, Patrice devrait le rendre plus modulaire et plus ouvert. »

    Peace and love...

    • Le 9 mars 2010 à 11:39, par Patrice Vanneufville En réponse à : Compter les visiteurs connectés

      A propos de la modularité du Couteau Suisse, celui-ci accepte les outils en plusieurs formats :
      -  variable globale définie dans config/mes_options.php
      -  fichier de config de type outils/mon_outil_config.php
      -  fichier de config de type outils/mes_outils_config.xml
      -  + des fichiers distants afin d’éviter la duplication des codes.

      A propos de la contribution décrite ci-dessus et sujet à cette trop longue discussion pour du code trop simpliste, j’aimerais rappeler qu’il s’agit d’une fonction d’une ligne !!

    Répondre à ce message

Répondre à cet article

Qui êtes-vous ?

Pour afficher votre trombine avec votre message, enregistrez-la d’abord sur gravatar.com (gratuit et indolore) et n’oubliez pas d’indiquer votre adresse e-mail ici.

Ajoutez votre commentaire ici Les choses à faire avant de poser une question (Prolégomènes aux rapports de bugs. )
Ajouter un document

Retour en haut de la page

Ça discute par ici

  • Mailsubscribers

    16 janvier 2013 – 274 commentaires

    Ce plugin permet de gérer les inscriptions (ou abonnements) à la diffusion de contenu par email. Mailsubscribers permet de gérer les inscriptions par Opt-in simple ou double et la désinscription par URL. Ce plugin gère également plusieurs listes (...)

  • noiZetier v2

    9 novembre 2012 – 36 commentaires

    Le noiZetier offre une interface d’administration permettant d’insérer au choix des éléments modulaires de squelettes (noisettes) et de les ajouter ainsi à ses squelettes. Compatibilité La version 2 du noizetier fonctionne sous SPIP 3. Elle est (...)

  • cirr : plugin « rédacteur restreint »

    29 octobre 2010 – 60 commentaires

    Ce plugin « cirr : rédacteur restreint » permet d’affecter des rubriques aux rédacteurs et modifie les droits afin qu’un rédacteur restreint (ou un administrateur restreint) voit dans l’espace privé uniquement les rubriques qui lui sont affectées (et leur (...)

  • Un retour d’expérience d’utilisation de Formidable

    26 octobre – commentaires

    Il s’agissait de créer un formulaire d’inscription à un évènement modérer les inscriptions dans le privé publier les inscriptions dans le public Nous avons discuté de cette présentation lors de l’apéro SPIP du 15 février 2016 à la Cantine (...)

  • Métas +

    3 décembre – 14 commentaires

    Améliorez l’indexation de vos articles dans les moteurs et leur affichage sur les réseaux sociaux grâce aux métadonnées Dublin Core, Open Graph et Twitter Card. Installation Activer le plugin dans le menu dédié. Dans le panel de configuration, (...)

Ça spipe par là