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!
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!
Commentaire