Bonjour,
Je souhaiterai savoir si il existe un plugin qui permet de voir les connecté en ligne, avec la date, l'heure et leur adresse ip.
L'affichage des renseignement se ferai seulement en mode administrateur.
J'ai vu qu'il existait un plugin "OnlineStats" le probleme c'est qui fonctionne avec tous les utilisateurs alors que j'aimerai qu'il affiche les résultats seulement en Mode Administrateur...
Merci d'avance pour votre aide
c'est possible en ajoutant une condition dans le fichier codebase.php du plugin dans la fonction online_mainpage()
il faut ajouter
if (GALLERY_ADMIN_MODE){
juste avant
if (defined('UDB_INTEGRATION')){
sans oublier de fermer la condition avec un { à la fin de la fonction
j'ai ajouté la condition sur la fonction :
function online_mainpage():
if (GALLERY_ADMIN_MODE){
}
if (defined('UDB_INTEGRATION')){
$CONFIG['TABLE_USERS'] = $cpg_udb->usertable;
$user_id = $cpg_udb->field['user_id'];
$user_name = $cpg_udb->field['username'];
} else {
$user_id = 'user_id';
$user_name = 'user_name';
}
Mais rien ne se passe comme prévu, car quandd je me place en Utilisateur Registered , on voit comme même ceux qui sont connectéx.
Alors que je souhaiterai que seul les administrateurx puissent voir...
une petite aide ne serait pas de refus...
merci de votre aide
[edit by PYAP]Faites attention à l'orthographe ! C'est très pénible de lire des POST avec 10000 fautes et de devoir les corriger pour que les autres Utilisateurs comprennent[/edit]
dsl pour les fautes d'orthographes
c'est normal:
il faut mettre
if (GALLERY_ADMIN_MODE){
if (defined('UDB_INTEGRATION')){
$CONFIG['TABLE_USERS'] = $cpg_udb->usertable;
$user_id = $cpg_udb->field['user_id'];
$user_name = $cpg_udb->field['username'];
} else {
$user_id = 'user_id';
$user_name = 'user_name';
}
}
la condition était fermée trop top dans votre code
bonjour,
j'ai essayé avec le nouveau code en fermant la condition à l'endroit où vous m'avez dit,mais le probleme reste le même.
Qd je me connecte en tant que Utilisateur "Registered", on voit tjrs les connectés. j'ai bien modifié la page "codebase.php" qui se trouve dans le repoitoire "plugins\onlinestats".
Voici le code:
function online_mainpage()
{
global $CONFIG, $cpg_udb, $matches, $lang_plugin_onlinestats, $lang_plugin_onlinestats_date_fmt ;
require ('./plugins/onlinestats/include/init.inc.php');
if($matches[1] != 'onlinestats') {
return $matches;
}
if (GALLERY_ADMIN_MODE){
if (defined('UDB_INTEGRATION')){
$CONFIG['TABLE_USERS'] = $cpg_udb->usertable;
$user_id = $cpg_udb->field['user_id'];
$user_name = $cpg_udb->field['username'];
} else {
$user_id = 'user_id';
$user_name = 'user_name';
}
}
if (defined('UDB_INTEGRATION')){
$CONFIG['TABLE_USERS'] = $cpg_udb->usertable;
$user_id = $cpg_udb->field['user_id'];
$user_name = $cpg_udb->field['username'];
} else {
$user_id = 'user_id';
$user_name = 'user_name';
}
Merci d'avance pour votre aide....
il faut fermer la balise à la fin de la fonction
function online_mainpage()
{
global $CONFIG, $cpg_udb, $matches, $lang_plugin_onlinestats, $lang_plugin_onlinestats_date_fmt ;
require ('./plugins/onlinestats/include/init.inc.php');
if($matches[1] != 'onlinestats') {
return $matches;
}
if (GALLERY_ADMIN_MODE){
if (defined('UDB_INTEGRATION')){
$CONFIG['TABLE_USERS'] = $cpg_udb->usertable;
$user_id = $cpg_udb->field['user_id'];
$user_name = $cpg_udb->field['username'];
} else {
$user_id = 'user_id';
$user_name = 'user_name';
}
$result = cpg_db_query("SELECT COUNT(*) FROM {$CONFIG['TABLE_USERS']}");
$num_users = mysql_fetch_array($result);
$num_users = $num_users[0];
$result = cpg_db_query("SELECT COUNT(*) FROM {$CONFIG['TABLE_ONLINE']}");
$num_online = mysql_fetch_array($result);
$num_online = $num_online[0];
$result = cpg_db_query("SELECT COUNT(*) FROM {$CONFIG['TABLE_ONLINE']} WHERE user_id <> 0");
$num_reg_online = mysql_fetch_array($result);
$num_reg_online = $num_reg_online[0];
$result = cpg_db_query("SELECT $user_id, $user_name FROM {$CONFIG['TABLE_USERS']} ORDER BY $user_id DESC LIMIT 1");
$row = mysql_fetch_row($result);
$newest_user_name = $row[1];
$newest_user_id = $row[0];
$result = cpg_db_query("SELECT user_id, user_name FROM {$CONFIG['TABLE_ONLINE']} WHERE user_id <> 0");
$logged_in_array = array();
while ($row = mysql_fetch_assoc($result)) {
$logged_in_array[] = "<a href=\"profile.php?uid={$row['user_id']}\">{$row['user_name']}</a>";
}
$logged_in_names = implode(', ', array_unique($logged_in_array));
$num_guests = $num_online - $num_reg_online;
// most users online - TND
if ($num_online > $CONFIG['record_online_users'])
{
$time = time() + ($CONFIG['time_offset'] - date("O") / 100) * 3600;
$CONFIG['record_online_date'] = localised_date(-1, $lang_plugin_onlinestats_date_fmt);
$CONFIG['record_online_users'] = $num_online;
$result = cpg_db_query("UPDATE {$CONFIG['TABLE_CONFIG']} SET value = '$num_online' WHERE name = 'record_online_users'");
$result = cpg_db_query("UPDATE {$CONFIG['TABLE_CONFIG']} SET value = '$time' WHERE name = 'record_online_date'");
}
starttable("100%", $lang_plugin_onlinestats['name']);
echo '<tr><td class="tableb">';
echo ($num_users == 1) ? $lang_plugin_onlinestats['have']."<b>1</b>".$lang_plugin_onlinestats['reg_member']."<br />" : $lang_plugin_onlinestats['have']."<b>".$num_users."</b>".$lang_plugin_onlinestats['reg_members']."<br />";
echo $lang_plugin_onlinestats['most_recent']."<a href=\"profile.php?uid={$newest_user_id}\">{$newest_user_name}</a><br />";
echo ($num_online == 1) ? $lang_plugin_onlinestats['is']."<b>1</b>".$lang_plugin_onlinestats['user'] : $lang_plugin_onlinestats['are']."<b>".$num_online."</b>".$lang_plugin_onlinestats['users'];
echo ($num_reg_online == 1) ? ": <b>1</b>".$lang_plugin_onlinestats['reg_member'].$lang_plugin_onlinestats['and'] : ": <b>".$num_reg_online."</b>".$lang_plugin_onlinestats['reg_members'].$lang_plugin_onlinestats['and'];
echo ($num_guests == 1) ? "<b>1</b>".$lang_plugin_onlinestats['guest']."<br />" : "<b>".$num_guests."</b>".$lang_plugin_onlinestats['guests']."<br />";
echo $lang_plugin_onlinestats['record']."<b>". $CONFIG['record_online_users']."</b>" .$lang_plugin_onlinestats['on']."<b>". localised_date($CONFIG['record_online_date'], $lang_plugin_onlinestats_date_fmt ) ."</b><br />";
echo $lang_plugin_onlinestats['reg_members'].$lang_plugin_onlinestats['since'].$CONFIG['mod_updates_duration'].$lang_plugin_onlinestats_config['minute'].": ". $logged_in_names."</td></tr>";
endtable();
}
}
Je vous remercie, pour cette aide précieuse,je n'avais pas compris, qu'il fallait mettre la balise à la fin de la fonction "online_mainpage()".
Merci encore
Pas de quoi, c'est en forgeant qu'on devient forgeron (mais c'est tout de même un peu logique d'inclure le code qui génère l'affichage dans la condition ;))