Comptabiliser le nb de connexion d'un membre

Forum consacré à phpBB lui même. Comment tirer le meilleur de ce puissant forum.
Veuillez noter que ce forum n'est pas un forum de support officiel, il s'agit ici plus de partager que de demander.

Modérateur: Modérateurs

Comptabiliser le nb de connexion d'un membre

Messagede zach » Mar Mai 12, 2009 6:36 pm

Bonjour,

Je suis à la recherche d'un mod permettant de comptabiliser le nb de connexions pour chaque membre, après plusieurs jours de recherches, je n'ai rien trouvé du genre (j'ai bien vu des mods de statistiques, mais ils semblent ne pas donner cette info, mais des infos générales)

le seul qui se rapproche le plus est ce mod qui permet de comptabiliser le tps de connexion des membres

Y a t'il possibilité de l'adapter, ou faudrait'il créer un code spécifique, cela serait'il difficile pour un débutant ?

Merci d'avance
zach
PR4
PR4
 
Messages: 404
Inscription: Ven Oct 17, 2008 4:00 pm
Localisation: France sud est

Publicité

Re: Comptabiliser le nb de connexion d'un membre

Messagede dcz » Sam Mai 16, 2009 9:09 am

Il me semble que Elglobo a fait un mod qui loggue plein de trucs sur phpBB-fr.com, c'est peut être une solution.

++
Useful links :
SEO Forum || SEO Directory || SEO phpBB || Search
____________________

Liens Utiles :
Forum référencement || Annuaire référencement || Référencement phpBB || Recherche
dcz
Admin
Admin
 
Messages: 21406
Inscription: Ven Avr 28, 2006 9:03 pm

Re: Comptabiliser le nb de connexion d'un membre

Messagede zach » Sam Mai 16, 2009 12:28 pm

dcz a écrit:Il me semble que Elglobo a fait un mod qui loggue plein de trucs sur phpBB-fr.com, c'est peut être une solution.

++


Merci dcz

J'ai bien trouvé ce mod par rapport à ton message, mais il semble simplement laisser des traces de connexions ds le journal des logs, ca ne serait pas exactement le but recherché à moins qu'il ne soit adaptable avec un code additif

La fonction que je recherche serait plutôt d'avoir pour chaque membre un compteur de connexions (un peu comme le compteur de messages, visible ds le profil par exemple),

dans l'idée je souhaite mieux quantifier l'activité de membres (apparemment inactifs car pas/peu de messages), mais qui se connectent très régulièrement :wink:
zach
PR4
PR4
 
Messages: 404
Inscription: Ven Oct 17, 2008 4:00 pm
Localisation: France sud est

Re: Comptabiliser le nb de connexion d'un membre

Messagede zach » Lun Mai 18, 2009 9:05 am

Bon, ben reste plus qu'a essayer de créer un mod "en développement" du coup, :D

je vais essayer d'avancer, en espérant avoir un peu d'aide (sachant que je n'ai aucune base en php, mais que ça m'intéresse) :oops: :lol:

1) Création d'un nouveau champs "user_online_count" (ds la table phpbb_users) pour comptabiliser les connexions pour chaque membre

SQL
*** I have considered the table prefix as "phpbb_". If your table prefix is different the replace accordingly.

Code: Tout sélectionner
ALTER TABLE phpbb_users ADD user_online_count mediumint(8) UNSIGNED NOT NULL DEFAULT 0;


2) Emplacement du compteur dans le profil des membres

Open: styles/prosilver/template/memberlist_view.html

Find
Tip: This may be a partial find and not the whole line.
Code: Tout sélectionner
<dt>{L_VISITED}:</dt> <dd>{VISITED}</dd>


Add after
Tip: Add these lines on a new blank line after the preceding line(s) to find.
Code: Tout sélectionner
<dt>{L_TOTAL_ONLINE_COUNT_LEGEND}:</dt> <dd>{TOTAL_ONLINE_COUNT}</dd>


3) Variable texte

Open: language/fr/memberlist.php
Find
Tip: This may be a partial find and not the whole line.

Code: Tout sélectionner
'SORT_POST_COUNT'   => 'Nombre de messages',


Add after
Tip: Add these lines on a new blank line after the preceding line(s) to find.

Code: Tout sélectionner
//MOD User Online Count
'TOTAL_ONLINE_COUNT_LEGEND'   => 'Nombre de connexions',
'TOTAL_ONLINE_COUNT'         => '1 connexion',   
'TOTAL_ONLINE_COUNTS'         => '%d connexions',   
//END MOD


Arrêtez moi en cas d'erreur :wink:
Dernière édition par zach le Lun Mai 18, 2009 10:31 am, édité 4 fois.
zach
PR4
PR4
 
Messages: 404
Inscription: Ven Oct 17, 2008 4:00 pm
Localisation: France sud est

Re: Comptabiliser le nb de connexion d'un membre

Messagede zach » Lun Mai 18, 2009 9:43 am

Étapes délicates (pour un débutant) :mrgreen: :

4) requête pour afficher la valeur du champs "user_online_count" au travers de la variable "{TOTAL_ONLINE_COUNT}"

Code à inclure dans memberlist.php ?

Code: Tout sélectionner
// Dump it out to the template
return array(
'TOTAL_ONLINE_COUNT'   => ($user_online_count == 1) ? $user->lang[TOTAL_ONLINE_COUNT'] : sprintf($user->lang['TOTAL_ONLINE_COUNTS'], $user_online_count),
);


5) incrémenter le champs "user_online_count" de chaque membre à chacune de ses connexions

Code ds includes/session.php ?
zach
PR4
PR4
 
Messages: 404
Inscription: Ven Oct 17, 2008 4:00 pm
Localisation: France sud est

Re: Comptabiliser le nb de connexion d'un membre

Messagede SeO » Lun Mai 18, 2009 5:21 pm

C'est correct, pour le point 5), je pense que le plus simple serait de le faire dans includes/functions.php, dans le code de login_box, genre ajouter :
Code: Tout sélectionner
         $sql = "UPDATE " . USERS_TABLE . "
            SET user_online_count = user_online_count + 1
            WHERE user_id = " . (int) $result['user_row']['user_id'];
         $db->sql_query($sql);


Après :
Code: Tout sélectionner
         // Special case... the user is effectively banned, but we allow founders to login
         if (defined('IN_CHECK_BAN') && $result['user_row']['user_type'] != USER_FOUNDER)
         {
            return;
         }


;)
SeO
Admin
Admin
 
Messages: 6334
Inscription: Mer Mar 15, 2006 9:41 pm

Re: Comptabiliser le nb de connexion d'un membre

Messagede zach » Lun Mai 18, 2009 9:58 pm

Merci seo,

Voila le mod complet avec quelques corrections mineures sur l'affichage,

MOD USER COUNT : EXCLUSIVITE PHPBB SEO :D

Description: affiche un compteur dans le profil chaque membre, qui comptabilise ses connexions

FAIRE UN BACKUP COMPLET DE VOS FICHIERS ET BASE SQL AVANT

1) Création d'un nouveau champs "user_online_count" (ds la table phpbb_users) pour comptabiliser les connexions pour chaque membre

SQL
*** I have considered the table prefix as "phpbb_". If your table prefix is different the replace accordingly.

Code: Tout sélectionner
ALTER TABLE phpbb_users ADD user_online_count mediumint(8) UNSIGNED NOT NULL DEFAULT 0;


2) Emplacement du compteur dans le profil des membres

Open: styles/prosilver/template/memberlist_view.html

Find
Tip: This may be a partial find and not the whole line.
Code: Tout sélectionner
<dt>{L_VISITED}:</dt> <dd>{VISITED}</dd>


Add after
Tip: Add these lines on a new blank line after the preceding line(s) to find.
Code: Tout sélectionner
<dt>{L_TOTAL_ONLINE_COUNT_LEGEND}:</dt> <dd>{TOTAL_ONLINE_COUNT}</dd>


3) Variable texte

Open: language/fr/common.php
Find
Tip: This may be a partial find and not the whole line.
Code: Tout sélectionner
'TOTAL_NO_PM'      => '0 message privé',


Add after
Tip: Add these lines on a new blank line after the preceding line(s) to find.

Code: Tout sélectionner
//START MOD USER COUNT
'TOTAL_ONLINE_COUNT_LEGEND'   => 'Connexions',
//END MOD  MOD USER COUNT


4) requête pour afficher la valeur du champs "user_online_count" au travers de la variable "{TOTAL_ONLINE_COUNT}"

Open: memberlist.php
Find
Tip: This may be a partial find and not the whole line.
Code: Tout sélectionner
'LOCATION'      => ($data['user_from']) ? $data['user_from'] : '',


Add after
Tip: Add these lines on a new blank line after the preceding line(s) to find.
Code: Tout sélectionner
// START MOD USER COUNT
'TOTAL_ONLINE_COUNT'   => $data['user_online_count'],
// END MOD USER COUNT


5) incrémenter le champs "user_online_count" de chaque membre à chacune de ses connexions

Open: includes/functions.php
Find
Tip: This may be a partial find and not the whole line.
Code: Tout sélectionner
// Special case... the user is effectively banned, but we allow founders to login
if (defined('IN_CHECK_BAN') && $result['user_row']['user_type'] != USER_FOUNDER)
{
return;
}


Add after
Tip: Add these lines on a new blank line after the preceding line(s) to find.

Code: Tout sélectionner
// STARD MOD USER COUNT
$sql = "UPDATE " . USERS_TABLE . "
SET user_online_count = user_online_count + 1
WHERE user_id = " . (int) $result['user_row']['user_id'];
$db->sql_query($sql);
// END MOD USER COUNT


Voila tout marche parfaitement :wink:
zach
PR4
PR4
 
Messages: 404
Inscription: Ven Oct 17, 2008 4:00 pm
Localisation: France sud est

Re: Comptabiliser le nb de connexion d'un membre

Messagede zach » Mer Mai 20, 2009 5:33 pm

Aie parlé un peu vite, apparemment le compteur reste à 0 pour certains membres (4 ou 5 cas constatés) qui se sont connectés,

J'ai vérifié le champs "user_online_count" de la table reste à 0 pour ceux la, :| et s'incrémente bien pour d'autre :lol:

peut etre qu'ils se connectent pas par le même chemin, bizarre j'en ai essayé plusieurs (portail, lien vers page de connexion ds header, loginbox sur forum, connexion à partir d'un sujet ) et ça semble fonctionner pourtant me concernant

Une idée de ce qui pourrait bloquer ?

Merci d'avance
zach
PR4
PR4
 
Messages: 404
Inscription: Ven Oct 17, 2008 4:00 pm
Localisation: France sud est

Re: Comptabiliser le nb de connexion d'un membre

Messagede zach » Mer Mai 20, 2009 6:36 pm

Je suis en train de penser, peut etre qu'ils n'ont pas besoin de se connecter, s'ils ont gardé le cookie de connexion ds les fichiers temporaire du navigateur, et qu'ils ne se déconnectent jamais, mais ferment juste la page internet

Ce qui expliquerait que je vois bien la dernière visite "Dernière visite" ds le profil), mais pour autant ds ce cas, ça ne peut être comptabilisé pour une connexion :idea:

Y aurai t'il moyen d'en tenir compte dans le compteur du coup, si c'est bien ca ?

Merci d'avance
zach
PR4
PR4
 
Messages: 404
Inscription: Ven Oct 17, 2008 4:00 pm
Localisation: France sud est

Re: Comptabiliser le nb de connexion d'un membre

Messagede dcz » Lun Mai 25, 2009 8:48 am

Oui, c'est certainement l'auto login, qui ne passe pas par login_box.

Du coup pour prendre ce cas en compte, il faudrait virer le code de login_box, et ajouter :

Code: Tout sélectionner
      // STARD MOD USER COUNT
      if ($this->data['is_registered']) {
         $sql = "UPDATE " . USERS_TABLE . "
            SET user_online_count = user_online_count + 1
            WHERE user_id = " . (int)  $this->data['user_id'];
         $db->sql_query($sql);
      }
      // END MOD USER COUNT

après :
Code: Tout sélectionner
      $this->data['is_registered'] = (!$bot && $this->data['user_id'] != ANONYMOUS && ($this->data['user_type'] == USER_NORMAL || $this->data['user_type'] == USER_FOUNDER)) ? true : false;
      $this->data['is_bot'] = ($bot) ? true : false;

Dans includes/session.php.

Ça devrait le faire ;)

++
Useful links :
SEO Forum || SEO Directory || SEO phpBB || Search
____________________

Liens Utiles :
Forum référencement || Annuaire référencement || Référencement phpBB || Recherche
dcz
Admin
Admin
 
Messages: 21406
Inscription: Ven Avr 28, 2006 9:03 pm

Re: Comptabiliser le nb de connexion d'un membre

Messagede zach » Mar Mai 26, 2009 8:43 am

Merci Dcz,

J'ai essayé plusieurs modifs ds session.php avec :

Code: Tout sélectionner
// STARD MOD USER COUNT
if ($this->data['is_registered'])
{
$sql = "UPDATE " . USERS_TABLE . "
SET user_online_count = user_online_count + 1
WHERE user_id = " . (int)  $this->data['user_id'];
$db->sql_query($sql);
}
// END MOD USER COUNT


Mais à priori ca ne semble pas comptabiliser les sessions (je ferme le navigateur et le réouvre sur le site en étant "auto loggé" grâce au cookie, le compteur ne bouge pas) :(

J'ai aussi essayé :

Code: Tout sélectionner
// STARD MOD USER COUNT
if ($this->data['user_type'] == USER_NORMAL || $this->data['user_type'] == USER_FOUNDER)
{
$sql = "UPDATE " . USERS_TABLE . "
SET user_online_count = user_online_count + 1
WHERE user_id = " . (int)  $this->data['user_id'];
$db->sql_query($sql);
}
// END MOD USER COUNT


Mais la c'est le contraire, le compteur bouge de +1 à chaque action faite (click menu, click profil ...) donc plusieurs fois ds une meme session :lol:
zach
PR4
PR4
 
Messages: 404
Inscription: Ven Oct 17, 2008 4:00 pm
Localisation: France sud est


Retourner vers Le Forum phpBB

 


  • Articles en relation
    Réponses
    Vus
    Dernier message

Qui est en ligne

Utilisateurs parcourant ce forum: Bing [Bot], VoilaBot [Bot] et 6 invités


 
cron