Author Topic: Req: More detailed who online list  (Read 72490 times)

0 Members and 1 Guest are viewing this topic.

Offline TheOracle

  • Hero Member
  • *****
  • Posts: 875
    • View Profile
Re: Req: More detailed who online list
« Reply #15 on: January 16, 2006, 01:53:56 AM »
First, I will try to re-build what's from the screenshot. ;)

Offline Stoleti

  • Hero Member
  • *****
  • Posts: 574
    • View Profile
Re: Req: More detailed who online list
« Reply #16 on: January 16, 2006, 03:07:23 AM »
First, I will try to re-build what's from the screenshot. ;)

Yea , i totally agree  :mrgreen: , first try make work the same from screenshot , and after modifications  8)

Offline TheOracle

  • Hero Member
  • *****
  • Posts: 875
    • View Profile
Re: Req: More detailed who online list
« Reply #17 on: January 16, 2006, 03:07:38 AM »
Ok, so let's try the very basic way first. If you do see the picture beside the username (in a most cheap way I must say "for now") then it means it's working perfectly (in case you wonder why the presentation might be a little funky for the first time).

Assuming you're using the original block of 4images from your includes/sessions.php file, make a backup of it first.

Then, find :

Quote

if (defined("GET_USER_ONLINE") && ($config['display_whosonline'] == 1 || $user_info['user_level'] == ADMIN)) {
  $time_out = time() - 300;
  $sql = "SELECT s.session_user_id, s.session_lastaction, s.session_ip".get_user_table_field(", u.", "user_id").get_user_table_field(", u.", "user_level").get_user_table_field(", u.", "user_name").get_user_table_field(", u.", "user_invisible")."
     FROM ".SESSIONS_TABLE." s
     LEFT JOIN ".USERS_TABLE." u ON (".get_user_table_field("u.", "user_id")." = s.session_user_id)
     WHERE s.session_lastaction >= $time_out
     ORDER BY ".get_user_table_field("u.", "user_id")." ASC, s.session_ip ASC";
  $result = $site_db->query($sql);
  while ($row = $site_db->fetch_array($result)) {
    if ($row['session_user_id'] != GUEST && (isset($row['user_id']) && $row['user_id'] != GUEST)) {
      if (!isset($prev_user_ids[$row['session_user_id']])) {
        $is_invisible = (isset($row[$user_table_fields['user_invisible']]) && $row[$user_table_fields['user_invisible']] == 1) ? 1 : 0;
        $invisibleuser = ($is_invisible) ? "*" : "";
        $username = (isset($row[$user_table_fields['user_level']]) && $row[$user_table_fields['user_level']] == ADMIN && $config['highlight_admin'] == 1) ? sprintf("<b>%s</b>", $row[$user_table_fields['user_name']]) : $row[$user_table_fields['user_name']];
        if (!$is_invisible || $user_info['user_level'] == ADMIN) {
          $user_online_list .= ($user_online_list != "") ? ", " : "";
          $user_profile_link = (!empty($url_show_profile)) ? preg_replace("/{user_id}/", $row['session_user_id'], $url_show_profile) : ROOT_PATH."member.php?action=showprofile&amp;".URL_USER_ID."=".$row['session_user_id'];
          $user_online_list .= "<a href=\"".$site_sess->url($user_profile_link)."\">".$username."</a>".$invisibleuser;
        }
        (!$is_invisible) ? $num_visible_online++ : $num_invisible_online++;
        $num_registered_online++;
      }
      $prev_user_ids[$row['session_user_id']] = 1;
    }
    else {
      if (!isset($prev_session_ips[$row['session_ip']])) {
        $num_guests_online++;
      }
    }
    $prev_session_ips[$row['session_ip']] = 1;
  }
  $num_total_online = $num_registered_online + $num_guests_online;
  //$num_invisible_online = $num_registered_online - $num_visible_online;

  $site_template->register_vars(array(
    "num_total_online" => $num_total_online,
    "num_invisible_online" => $num_invisible_online,
    "num_registered_online" => $num_registered_online,
    "num_guests_online" => $num_guests_online,
    "user_online_list" => $user_online_list
  ));
  $whos_online = $site_template->parse_template("whos_online");
  $site_template->register_vars("whos_online", $whos_online);
  unset($whos_online);
  unset($prev_user_ids);
  unset($prev_session_ips);
}


replace with :

Code: [Select]

if (defined("GET_USER_ONLINE") && ($config['display_whosonline'] == 1 || $user_info['user_level'] == ADMIN)) {
  $time_out = time() - 300;
  $sql = "SELECT s.session_user_id, s.session_lastaction, s.session_ip".get_user_table_field(", u.", "user_id").get_user_table_field(", u.", "user_level").get_user_table_field(", u.", "user_name").get_user_table_field(", u.", "userpic").get_user_table_field(", u.", "user_invisible")."
  FROM ".SESSIONS_TABLE." s
  LEFT JOIN ".USERS_TABLE." u ON (".get_user_table_field("u.", "user_id")." = s.session_user_id)
  WHERE s.session_lastaction >= $time_out
  ORDER BY ".get_user_table_field("u.", "user_id")." ASC, s.session_ip ASC";
  $result = $site_db->query($sql);
  while ($row = $site_db->fetch_array($result)) {
    if ($row['session_user_id'] != GUEST && (isset($row['user_id']) && $row['user_id'] != GUEST)) {
      if (!isset($prev_user_ids[$row['session_user_id']])) {
        $is_invisible = (isset($row[$user_table_fields['user_invisible']]) && $row[$user_table_fields['user_invisible']] == 1) ? 1 : 0;
        $invisibleuser = ($is_invisible) ? REPLACE_EMPTY : "";
        $username = (isset($row[$user_table_fields['user_level']]) && $row[$user_table_fields['user_level']] == ADMIN && $config['highlight_admin'] == 1 && !empty($row[$user_table_fields['userpic']])) ? sprintf("<b>%s</b>", $row[$user_table_fields['userpic']]. $row[$user_table_fields['user_name']]) : (!empty($row[$user_table_fields['userpic']])) ? $row[$user_table_fields['userpic']]. $row[$user_table_fields['user_name']] : $row[$user_table_fields['user_name']];
        if (!$is_invisible || $user_info['user_level'] == ADMIN) {
          $user_online_list .= ($user_online_list != "") ? ", " : "";
          $user_profile_link = (!empty($url_show_profile)) ? str_replace("{user_id}", $row['session_user_id'], $url_show_profile) : ROOT_PATH."index.php?pg=member_profile&action=showprofile&amp;".URL_USER_ID."=".$row['session_user_id'];
          $user_online_list .= "<a href=\"".$site_sess->url($user_profile_link)."\">".$username."</a>".$invisibleuser;
        }
        (!$is_invisible) ? $num_visible_online++ : $num_invisible_online++;
        $num_registered_online++;
      }
      $prev_user_ids[$row['session_user_id']] = 1;
    }
    else {
      if (!isset($prev_session_ips[$row['session_ip']])) {
        $num_guests_online++;
      }
    }
    $prev_session_ips[$row['session_ip']] = 1;
  }
  $num_total_online = $num_registered_online + $num_guests_online;
  //$num_invisible_online = $num_registered_online - $num_visible_online;

  $site_template->register_vars(array(
    "num_total_online" => $num_total_online,
    "num_invisible_online" => $num_invisible_online,
    "num_registered_online" => $num_registered_online,
    "num_guests_online" => $num_guests_online,
    "user_online_list" => $user_online_list
  ));
  $whos_online = $site_template->parse_template("whos_online");
  $site_template->register_vars("whos_online", $whos_online);
  unset($whos_online);
  unset($prev_user_ids);
  unset($prev_session_ips);
}


Offline Stoleti

  • Hero Member
  • *****
  • Posts: 574
    • View Profile
Re: Req: More detailed who online list
« Reply #18 on: January 16, 2006, 03:18:20 AM »
this is my block of code with modifications (i've not the original,because i've installed some MOD's)

Quote
if (defined("GET_USER_ONLINE") && ($config['display_whosonline'] == 1 || $user_info['user_level'] == ADMIN)) {
  $time_out = time() - 300;
  $sql = "SELECT s.session_user_id, s.session_lastaction, s.session_ip".get_user_table_field(", u.", "user_id").get_user_table_field(", u.", "user_level").get_user_table_field(", u.", "user_name").get_user_table_field(", u.", "userpic").get_user_table_field(", u.", "user_invisible")."
     FROM ".SESSIONS_TABLE." s
     LEFT JOIN ".USERS_TABLE." u ON (".get_user_table_field("u.", "user_id")." = s.session_user_id)
     WHERE s.session_lastaction >= $time_out
     ORDER BY ".get_user_table_field("u.", "user_id")." ASC, s.session_ip ASC";
  $result = $site_db->query($sql);
  while ($row = $site_db->fetch_array($result)) {
    if ($row['session_user_id'] != GUEST && (isset($row['user_id']) && $row['user_id'] != GUEST)) {
      if (!isset($prev_user_ids[$row['session_user_id']])) {
        $is_invisible = (isset($row[$user_table_fields['user_invisible']]) && $row[$user_table_fields['user_invisible']] == 1) ? 1 : 0;
        $invisibleuser = ($is_invisible) ? REPLACE_EMPTY : "";
        $username = (isset($row[$user_table_fields['user_level']]) && $row[$user_table_fields['user_level']] == ADMIN && $config['highlight_admin'] == 1 && !empty($row[$user_table_fields['userpic']])) ? sprintf("<b>%s</b>", $row[$user_table_fields['userpic']]. $row[$user_table_fields['user_name']]) : (!empty($row[$user_table_fields['userpic']])) ? $row[$user_table_fields['userpic']]. $row[$user_table_fields['user_name']] : $row[$user_table_fields['user_name']];
        if (!$is_invisible || $user_info['user_level'] == ADMIN) {
          $user_online_list .= ($user_online_list != "") ? ", " : "";
          $user_profile_link = (!empty($url_show_profile)) ? str_replace("{user_id}", $row['session_user_id'], $url_show_profile) : ROOT_PATH."index.php?pg=member_profile&action=showprofile&amp;".URL_USER_ID."=".$row['session_user_id'];
          /*
  MOD VISITORS COUNTRY FLAGS
  START INSERT
*/
        $cid = geoip_country_code_by_addr($gi, $row['session_ip']);
        if (empty($cid)) $cid = "lan";
        $countries[$cid] = isset($countries[$cid]) ? $countries[$cid]+1 : 1;
        $username = "<img src=\"".ROOT_PATH."flags/".strtolower($cid).".png"."\" alt=\"".(($cid != "lan") ? $gi->GEOIP_COUNTRY_NAMES[$gi->GEOIP_COUNTRY_CODE_TO_NUMBER[$cid]] : "Unknown or LAN")."\" border=0> ".$username;
/*
  MOD VISITORS COUNTRY FLAGS
  END INSERT
*/   
           $user_online_list .= "<a href=\"".$site_sess->url($user_profile_link)."\">".$username."</a>".$invisibleuser;
        }
        (!$is_invisible) ? $num_visible_online++ : $num_invisible_online++;
        $num_registered_online++;
      }
      $prev_user_ids[$row['session_user_id']] = 1;
    }
    else {
      if (!isset($prev_session_ips[$row['session_ip']])) {
        $num_guests_online++;
        /*
  MOD VISITORS COUNTRY FLAGS
  START INSERT
*/
        $cid = geoip_country_code_by_addr($gi, $row['session_ip']);
        if (empty($cid)) $cid = "lan";
        $countries[$cid] = isset($countries[$cid]) ? $countries[$cid]+1 : 1;
        $invitado_online_list  = "<font color=\"#00FFFF\">".$num_guests_online."</font><img src=\"".ROOT_PATH."flags/".strtolower($cid).".png"."\" alt=\"".(($cid != "lan") ? $gi->GEOIP_COUNTRY_NAMES[$gi->GEOIP_COUNTRY_CODE_TO_NUMBER[$cid]] : "Unknown or LAN")."\" border=0> ".$invitado_online_list ;
/*
  MOD VISITORS COUNTRY FLAGS
  END INSERT
*/
if ($num_guests_online > 1){
$invitado_online_list .= " , ";
}
      }
    }
    $prev_session_ips[$row['session_ip']] = 1;
  }
  $num_total_online = $num_registered_online + $num_guests_online;
  //$num_invisible_online = $num_registered_online - $num_visible_online;

  $site_template->register_vars(array(
    "num_total_online" => $num_total_online,
    "num_invisible_online" => $num_invisible_online,
    "num_registered_online" => $num_registered_online,
    "num_guests_online" => $num_guests_online,
    "user_online_list" => $user_online_list
  ));
  $whos_online = $site_template->parse_template("whos_online");
  $site_template->register_vars("whos_online", $whos_online);
  unset($whos_online);
  unset($prev_user_ids);
  unset($prev_session_ips);
}

i've added your code already here  8)

Offline TheOracle

  • Hero Member
  • *****
  • Posts: 875
    • View Profile
Re: Req: More detailed who online list
« Reply #19 on: January 16, 2006, 03:23:52 AM »
Quote

i've added your code already here


Ok so ... what's the status ?

Offline Stoleti

  • Hero Member
  • *****
  • Posts: 574
    • View Profile
Re: Req: More detailed who online list
« Reply #20 on: January 16, 2006, 03:50:51 AM »
{lang_user_online}


Doesn't work  8O

Offline TheOracle

  • Hero Member
  • *****
  • Posts: 875
    • View Profile
Re: Req: More detailed who online list
« Reply #21 on: January 16, 2006, 03:51:31 AM »
Quote

Doesn't work


Specifics please !!!

Offline Stoleti

  • Hero Member
  • *****
  • Posts: 574
    • View Profile
Re: Req: More detailed who online list
« Reply #22 on: January 16, 2006, 03:57:15 AM »
well just not show "empty space"  :|

Offline TheOracle

  • Hero Member
  • *****
  • Posts: 875
    • View Profile
Re: Req: More detailed who online list
« Reply #23 on: January 16, 2006, 04:05:30 AM »
And, just to check, you do have the userpic row under your USERS_TABLE right ?

If so, in the mean time, I just noticed I made a slight mistake from my last post.

Find this line :

Quote

$username = (isset($row[$user_table_fields['user_level']]) && $row[$user_table_fields['user_level']] == ADMIN && $config['highlight_admin'] == 1 && !empty($row[$user_table_fields['userpic']])) ? sprintf("<b>%s</b>", $row[$user_table_fields['userpic']]. $row[$user_table_fields['user_name']]) : (!empty($row[$user_table_fields['userpic']])) ? $row[$user_table_fields['userpic']]. $row[$user_table_fields['user_name']] : $row[$user_table_fields['user_name']];


replace with :

Code: [Select]

$username = (isset($row[$user_table_fields['user_level']]) && $row[$user_table_fields['user_level']] == ADMIN && $config['highlight_admin'] == 1 && !empty($row[$user_table_fields['userpic']])) ? sprintf("<b>%s</b>", "<img src=\"".ROOT_PATH."data/userpic/".$row[$user_table_fields['userpic']]."\">".REPLACE_EMPTY. $row[$user_table_fields['user_name']]) : (!empty($row[$user_table_fields['userpic']])) ? "<img src=\"".ROOT_PATH."data/userpic/".$row[$user_table_fields['userpic']]."\">".REPLACE_EMPTY. $row[$user_table_fields['user_name']] : $row[$user_table_fields['user_name']];


Keep me posted on this.

Offline Stoleti

  • Hero Member
  • *****
  • Posts: 574
    • View Profile
Re: Req: More detailed who online list
« Reply #24 on: January 16, 2006, 04:51:37 AM »
yes it's under "4images_users"  8) ( i hope i've understand what u mean ...)  :roll:

Offline TheOracle

  • Hero Member
  • *****
  • Posts: 875
    • View Profile
Re: Req: More detailed who online list
« Reply #25 on: January 16, 2006, 12:44:03 PM »
Ok so ... did the latest codings showed you the userpic ?  :roll:

Offline Stoleti

  • Hero Member
  • *****
  • Posts: 574
    • View Profile
Re: Req: More detailed who online list
« Reply #26 on: January 16, 2006, 04:00:27 PM »
no , this have just show the users list with country flags (MOD before installed)  :?

Offline TheOracle

  • Hero Member
  • *****
  • Posts: 875
    • View Profile
Re: Req: More detailed who online list
« Reply #27 on: January 16, 2006, 04:21:02 PM »
It's obvious that if you already installed a MOD over the original codings before, it will be harder for you to make the replacement (rather than just replacing the original codings). ;)

Offline Stoleti

  • Hero Member
  • *****
  • Posts: 574
    • View Profile
Re: Req: More detailed who online list
« Reply #28 on: January 16, 2006, 05:02:21 PM »
maybe you take a look into my sessions.php (now without any of this changes) ... only modifications by another mod's ..(country flags,lightbox..) !


Offline TheOracle

  • Hero Member
  • *****
  • Posts: 875
    • View Profile
Re: Req: More detailed who online list
« Reply #29 on: January 16, 2006, 05:22:05 PM »
I'm not sure what you're asking ... you wish, for me, to investigate the country, flags, lightbox you installed ? If so, I don't think so. ;)