vb.org Archive

vb.org Archive (https://vborg.vbsupport.ru/index.php)
-   vBulletin 2.x Full Releases (https://vborg.vbsupport.ru/forumdisplay.php?f=4)
-   -   Who was online today [available in english & german] (https://vborg.vbsupport.ru/showthread.php?t=34014)

Rand M 02-24-2004 10:31 AM

After changing the function from 'mktime' to 'gmmktime' I checked through results for different timezones , all showed correctly from -12 to +5.5 any timezone after +5.5 showed nil members .... which isn't correct. It was if the hack was compensating for the servers timezone offset.

I then had to change a little more from the hack to get it to display the correct number of members from -12 to +12 timezones.

I have no idea how correct these changes are to the hack but they do work on my forum (at the moment) when prior to these changes I wasn't seeing any members displayed.

The other part of the hack I changed was deleting the "$timeoffset" and replacing it with a "0" :

Changed:
WHERE lastactivity > " . (mktime(0,0,0,date("m"),date("d"),date("Y")) + (($bbuserinfo['timezoneoffset']-$timeoffset)*3600)) . "

To:
WHERE lastactivity > " . (gmmktime(0,0,0,date("m"),date("d"),date("Y")) + (($bbuserinfo['timezoneoffset']-0)*3600)) . "

I am still testing these changes, they may be a complete red herring but so far so good.

Rand M 02-25-2004 08:21 AM

24 hours have gone by and the 'hack' is working without problems. I'm still seeing 'members names' who have already visited the board today and corrected if I log in from a different time zone :)

Its working so well that I've added back the "Number of Active Users Today" ;)

Emmy2 02-27-2004 03:25 PM

Rand, I've been following your time adjustment system with interest, kinda hoping others would report in on how well it works before I try it myself. Is it still working well for you? Does it affect the timestamp on user's posts? For example, my webhost is on the west cost (-8 from GMT) so I have the time adjusted in my Admin CP to -8. Then, I'm on the east coast so I have to adjust my personal time zone in my Control Panel to -5 and somehow that all spits out the correct time on the board when I log in.

If I make the changes you've mentioned (to correct the Visited Today statistics) will it affect the time on the board itself? Will I have to change that -8 in the admin Control Panel, or the -5 in my user control panel? Will I have to ask my members to adjust their timezones?

It's so confusing! lol!

Rand M 03-01-2004 10:13 AM

Hi Emmy,

No problems so far with the little changes to the hack.

We just moved our site from NY to Dallas and changed timezones in the process. I just changed the vB offset from -5 to -6 and everything still worked. Post times are still correct for GMT. No changes needed for 'user cp'.

I dont know how relevant the fact is that our site uses GMT as its timezone, all I can say is that the hack now works perfectly for our site :)

Emmy2 03-01-2004 02:21 PM

Thanks for the reply Rand. I've made the changes and I'll let you know how it goes for my site. Right away my "visted today" jumped from 33 to 74 (which is I assume, the difference between members who visited since 6am this morning and members who visited in the last 24 hours). I need to let it run for a day or two to get a sense of what it's doing and how it's working.

Thanks for the help!

blakkboy 03-03-2004 03:42 AM

aww i got a lil problem

there are people online but the users online is not listing them below

Khashyar 08-12-2005 09:28 AM

Great Hack, Mystics... And great suggestions, Rand M...

The one thing that confuses me a bit is that when I am logged into my forum (and my user time is adjusted for Pacific S.T.,), then it shows 71 members at the moment.

However, when I log out, the time becomes GMT time on my board, and it shows 43 members... (but it shows 71 as the max users online in one day).

Should the users who have logged on in the past 24 hours be the same number, whether you are logged on or not?

I know that I am dragging an old thread out of the dark, but one of my VB boards still runs with 2.3.4, because I have many hacked and archive add-ons that I want to keep because they are serving me well.

I feel like the solution to the timezone consistency issue is in these lines of code:

Quote:

$todayloggedinusers = "";
$numbertodayonline = 0;
$numbertodayonlineinvisible = 0;

$todayusers=$DB_site->query("SELECT userid, username, usergroupid, lastactivity, invisible FROM user
WHERE lastactivity > " . (gmmktime(0,0,0,date("m"),date("d"),date("Y")) + (($bbuserinfo['timezoneoffset']-0)*3600)) . "
ORDER BY username");
Thanks for any ideas or thought as how I can keep the users who have been online in the past 24 hours the same whether a person is logged on or not.

Thanks,

Khashyar

Khashyar 08-12-2005 09:53 AM

I think I figured it out...

To use GMT to decide who logged in the past day, wether you are logged in or logged out:

replace Rand M's code:

Quote:

WHERE lastactivity > " . (gmmktime(0,0,0,date("m"),date("d"),date("Y")) + (($bbuserinfo['timezoneoffset']-0)*3600)) . "
with this slightly altered code:
Quote:

WHERE lastactivity > " . (gmmktime(0,0,0,date("m"),date("d"),date("Y"))) . "
So far, at 3:53 in the morning, the figure for who has been online today is the same whether I am logged in or out......

I just wonder if it will set itself back to zero when it reaches midnight GMT or not? :)

I'll have to wait and see...

Khashyar

MRGTB 08-18-2005 10:27 PM

I really like this hack, it's one my very favourates. But I have a question that I need an answer to please. I installed this on vBulletin 2.3.7 and it is working fine.

But there is a section in the mod readme file which says search for this in you index.php file:

Code:

if ((int)$maxusers[0] <= $totalonline) {
    $time = time();
    $maxloggedin = "$totalonline " . $time;
    $DB_site->query("UPDATE template SET template='$maxloggedin' WHERE title='maxloggedin'");
    $maxusers[0] = $totalonline;
    $maxusers[1] = $time;
  }

and replace with this:

Code:

// today online hack begin
  if ((int)$maxusers[0] <= $totalonline) {
    $time = time();
    $maxloggedin = "$totalonline " . $time . " " . $maxusers[2] . " " . $maxusers[3];
    $DB_site->query("UPDATE template SET template='$maxloggedin' WHERE title='maxloggedin'");
    $maxusers[0] = $totalonline;
    $maxusers[1] = $time;
  }

  $todayloggedinusers = "";
  $numbertodayonline = 0;
  $numbertodayonlineinvisible = 0;

  $todayusers=$DB_site->query("SELECT userid, username, usergroupid, lastactivity, invisible FROM user
                WHERE lastactivity > " . (mktime(0,0,0,date("m"),date("d"),date("Y")) + (($bbuserinfo['timezoneoffset']-$timeoffset)*3600)) . "
                ORDER BY username");
  while ($todayuser=$DB_site->fetch_array($todayusers)) {
    $numbertodayonline++;
    $invisibleuser = '';
    $userid = $todayuser['userid'];
    $lastactivetime = vbdate($timeformat, $todayuser[lastactivity]);
    if ($todayuser['invisible']==1 and $bbuserinfo['usergroupid']!=6) {
      $numbertodayonlineinvisible++;
      continue;
    }
    if ($todayuser['invisible'] == 1) { // Invisible User but show to Admin
      $invisibleuser = '*';
    }
    if ($todayuser['usergroupid'] == 6 and $highlightadmin) {
      $username = "<b><i>$todayuser[username]</i></b>";
    } else if (($mod["$userid"] or $todayuser['usergroupid'] == 5) and $highlightadmin) {
      $username = "<b>$todayuser[username]</b>";
    } else {
      $username = $todayuser['username'];
    }
    if (!$todayloggedinuser) {
      eval("\$todayloggedinuser = \"".gettemplate('forumhome_todayloggedinuser')."\";");
    } else {
      eval("\$todayloggedinuser .= \", ".gettemplate('forumhome_todayloggedinuser')."\";");
    }
  }

  $DB_site->free_result($todayusers);

  if ($bbuserinfo[usergroupid] == 6) {
    $todayonline = $numbertodayonline;
  } else {
    $todayonline = $numbertodayonline - $numbertodayonlineinvisible;
  }
 
  if ((int)$maxusers[2] <= $numbertodayonline) {
    $time = time();
    $maxloggedin = $maxusers[0] . " " . $maxusers[1] . " $numbertodayonline " . $time;
    $DB_site->query("UPDATE template SET template='$maxloggedin' WHERE title='maxloggedin'");
    $maxusers[2] = $numbertodayonline;
    $maxusers[3] = $time;
  }
 
  $todayrecordusers = $maxusers[2];
  $todayrecorddate = vbdate($dateformat,$maxusers[3]);
 
  eval("\$todayloggedinusers = \"".gettemplate('forumhome_todayloggedinusers')."\";");
//today online hack end

------------------------------------------

But the code in my index.php file looks like this instead:

Code:

if (($maxusers[0] <= $totalonline AND $maxusers[0] > 0) OR sizeof($maxusers) == 1) {
    $time = time();
    $maxloggedin = intval($totalonline) . ' ' . $time;
    $DB_site->query("UPDATE template SET template='$maxloggedin' WHERE title='maxloggedin'");
    $maxusers[0] = $totalonline;
    $maxusers[1] = $time;
  }

Which is different from the code your asked to search for and replace in the index.php. While I still replaced it anyway as a test and it works fine. I would like to know if I should have changed anything first in the code that replaced mine from the mod seeing as my code was different.

If I should have made some changes can you please post the whole code corrected that I need to use instead. Because I'm not a coder to do it myself.

thanks!

kittykattjess 08-24-2005 10:09 AM

Actually I dont have forumhome_loggedinuser,forumhome_loggedinusers in my index.php, I cant find it either with "find" help.. so where do i pu/change it to the forumhome_todayloggedinuser,forumhome_todayloggedi nusers,forumhome_loggedinuser, forumhome_loggedinusers ?


All times are GMT. The time now is 03:29 AM.

Powered by vBulletin® Version 3.8.12 by vBS
Copyright ©2000 - 2025, vBulletin Solutions Inc.

X vBulletin 3.8.12 by vBS Debug Information
  • Page Generation 0.01607 seconds
  • Memory Usage 1,762KB
  • Queries Executed 10 (?)
More Information
Template Usage:
  • (1)ad_footer_end
  • (1)ad_footer_start
  • (1)ad_header_end
  • (1)ad_header_logo
  • (1)ad_navbar_below
  • (3)bbcode_code_printable
  • (3)bbcode_quote_printable
  • (1)footer
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (6)option
  • (1)pagenav
  • (1)pagenav_curpage
  • (3)pagenav_pagelink
  • (1)pagenav_pagelinkrel
  • (1)post_thanks_navbar_search
  • (1)printthread
  • (10)printthreadbit
  • (1)spacer_close
  • (1)spacer_open 

Phrase Groups Available:
  • global
  • postbit
  • showthread
Included Files:
  • ./printthread.php
  • ./global.php
  • ./includes/init.php
  • ./includes/class_core.php
  • ./includes/config.php
  • ./includes/functions.php
  • ./includes/class_hook.php
  • ./includes/modsystem_functions.php
  • ./includes/class_bbcode_alt.php
  • ./includes/class_bbcode.php
  • ./includes/functions_bigthree.php 

Hooks Called:
  • init_startup
  • init_startup_session_setup_start
  • init_startup_session_setup_complete
  • cache_permissions
  • fetch_threadinfo_query
  • fetch_threadinfo
  • fetch_foruminfo
  • style_fetch
  • cache_templates
  • global_start
  • parse_templates
  • global_setup_complete
  • printthread_start
  • pagenav_page
  • pagenav_complete
  • bbcode_fetch_tags
  • bbcode_create
  • bbcode_parse_start
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • printthread_post
  • printthread_complete