Gestion base de donnée, utilisateurs connectés & timeout

Réduire
X
 
  • Filtrer
  • Heure
  • Afficher
Tout effacer
nouveaux messages

  • Gestion base de donnée, utilisateurs connectés & timeout

    Bonjour,

    j'ai eu la problématique suivante dernièrement: "comment updater ma base de donnée (db) quand un utilisateur se délogue OU timeout". Pourquoi? Parce que je voulais savoir quand une catégorie spécifique d'utilisateur (usergroup) était loguée, pour afficher le nombre de personne de cette catégorie sur mon site, et changer des valeurs de la table "maTable" dans ma base de donnée. Je propose ci-dessous une réponse, je laisse les experts la commenter!


    Au début, je pensais qu'on pouvait détecter quand un utilisateur timeout et updater un champ de ma db à ce moment là. Exécuter une action de cette manière n'est pas possible à ce que je sache, par contre ce qu'on peut faire et qui revient quasiment au même c'est d'aller regarder dans la base de donnée les utilisateurs qui ont une session (dans la table #__session), au moment où on voulait utiliser les fameux champs. De là on peut regarder quel est leur usergroupe, puis gérer l'affichage.

    En gros: "updater le champ A lorsque un utilisateur se déconnecte ou timeout" revient à peu près à "updater le champ A lorsqu'on le consulte (pour l'affichage par exemple), en consultant la table #__session préalablement".

    De plus, dans mon cas, le usergroup n'est pas indiqué dans #__session, ce qui impliquerait de faire une seconde requête pour aller chercher le groupe de chaque utilisateur (un peu lourd...) Ma solution complète est donc de faire un "user" plugin, utiliser la fonction onUserLogin (joomla 2.5 je précise) pour updater un champ "usergroup" que j'ai rajouté à la table #__session. Ensuite, on regarde les utilisateurs qui ont une session et qui ont le bon usergroup pour afficher le nombre d'utilisateur .

    Voilà pour ce sujet!

  • #2
    Re : Gestion base de donnée, utilisateurs connectés & timeout

    Bonjour,

    Il n'est pas conseillé du tout d'aller rajouter des champs dans les tables système de Joomla!.

    La bonne solution, sans rien toucher aux tables de Joomla! consiste en une requête SQL avec jointure vers la table users ou user_group_map
    Pas de demande de support par MP.
    S'il n'y a pas de solution, c'est qu'il n'y a pas de problème (Devise Shadok)

    Commentaire


    • #3
      Re : Gestion base de donnée, utilisateurs connectés & timeout

      Merci pour la remarque! J'ai corrigé, et ça m'a permis de réviser les jointures au passage.

      Commentaire

      Annonce

      Réduire
      Aucune annonce pour le moment.

      Partenaire de l'association

      Réduire

      Hébergeur Web PlanetHoster
      Travaille ...
      X