voir les connectés (OnlineStats) voir les connectés (OnlineStats)
 

News:

cpg1.5.48 Security release - upgrade mandatory!
The Coppermine development team is releasing a security update for Coppermine in order to counter a recently discovered vulnerability. It is important that all users who run version cpg1.5.46 or older update to this latest version as soon as possible.
[more]

Main Menu

voir les connectés (OnlineStats)

Started by maximus86, August 08, 2007, 09:26:01 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

maximus86

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

François Keller

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

maximus86

#2
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]

maximus86


François Keller

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

maximus86

#5
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....

François Keller

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();
}
}
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

maximus86

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

François Keller

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  ;))
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