Utilisateur le plus présent Utilisateur le plus présent
 

News:

CPG Release 1.6.26
Correct PHP8.2 issues with user and language managers.
Additional fixes for PHP 8.2
Correct PHP8 error with SMF 2.0 bridge.
Correct IPTC supplimental category parsing.
Download and info HERE

Main Menu

Utilisateur le plus présent

Started by easyjava, February 12, 2007, 11:21:06 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

easyjava

--- post original : http://forum.coppermine-gallery.net/index.php?topic=18405.0 ---

Voici comment calculer le temps passé par les utilisateurs sur votre site.

1- Exécuter dans mysql :

CREATE TABLE cpg145_onlinetimer (
  uid int(11) NOT NULL default '0',
  lastaction int(11) NOT NULL default '0',
  cumulative int(11) NOT NULL default '0',
  PRIMARY KEY  (uid),
  KEY cumulative (cumulative)
);


2 - Editer include/init.inc.php
Ajouter avant ?>

// calculateur de présence
if (USER_ID){
cpg_db_query("INSERT IGNORE INTO cpg145_onlinetimer (uid, lastaction) VALUES ('$user_id', UNIX_TIMESTAMP())");
cpg_db_query("UPDATE cpg145_onlinetimer SET cumulative = cumulative + (UNIX_TIMESTAMP() - lastaction) WHERE uid = '$user_id' AND lastaction > UNIX_TIMESTAMP() - 300");
cpg_db_query("UPDATE cpg145_onlinetimer SET lastaction = UNIX_TIMESTAMP() WHERE uid = '$user_id'");
}

La valeur 300 est le temps en secondes avant qu'une "session" se termine si aucunne action n'est effecutée

3 - anycontent.php

starttable("100%", "Utilisateurs présents",2);

$result = cpg_db_query("SELECT user_name, user_id, group_name, cumulative FROM {$CONFIG['TABLE_USERS']}, {$CONFIG['TABLE_USERGROUPS']}, cpg145_onlinetimer WHERE user_id = uid AND user_group = group_id ORDER BY cumulative DESC LIMIT 5");

$i = 1;
while ($row = mysql_fetch_assoc($result)){
$online = ($row['cumulative'] > 86400 ? floor($row['cumulative'] / 86400) . ' j. ': '') .
($row['cumulative'] > 3600 ? floor(($row['cumulative'] % 86400) / 3600). ' h. ' : '') .
($row['cumulative'] > 60 ? floor(($row['cumulative'] % 3600) / 60) . ' m. ' : '' ). 
($row['cumulative'] % 60) . ' s.';

echo "<tr><td class=\"tableb\" >" . $i++ . ") <a href=\"profile.php?uid={$row['user_id']}\">{$row['user_name']}</a> </td><td class=\"tableb\">$online</a></td></tr>";
}

endtable();

Pour afficher les 5 plus présents.

Amusez vous bien  ;D

François Keller

Merci pour cette traduction.
Attention, vous utilisez un préfixe de table propre à votre installation de Coppermine. Chacun devra l'ajuster à la sienne.

Il serait intéressant de transformer ce MOD en plugin  ;) ou d'inclure cette fonction au plugin onlinestats
Avez vous lu la DOC ? la FAQ ? et cherché sur le forum avant de poster ?
Did you read the DOC ? the FAQ ? and search the board before posting ?
Mon Blog

easyjava

Oui malheureusement je ne maîtrise pas assé la création de plugin pour en faire un !
Si quelqu'un veut se lancer... avis aux amateurs.

François Keller

Quote from: easyjava on February 13, 2007, 08:38:36 AM
Oui malheureusement je ne maîtrise pas assé la création de plugin pour en faire un !
Si quelqu'un veut se lancer... avis aux amateurs.
c'est sur ma désormais très longue to do list  ;)
Avez vous lu la DOC ? la FAQ ? et cherché sur le forum avant de poster ?
Did you read the DOC ? the FAQ ? and search the board before posting ?
Mon Blog