Go Back   vb.org Archive > vBulletin Modifications > Archive > vB.org Archives > vBulletin 2.x > vBulletin 2.x Full Releases
FAQ Community Calendar Today's Posts Search

Reply
 
Thread Tools
Number of users browsing current forum Details »»
Number of users browsing current forum
Version: 1.00, by Zzed Zzed is offline
Developer Last Online: Feb 2012 Show Printable Version Email this Page

Version: 2.2.x Rating:
Released: 04-28-2002 Last Update: Never Installs: 5
 
No support by the author.

This is a really simple hack that displays the number of users browsing the current forum along
with the list of users.

It requires no template changes.

In forumdisplay.php

find:
PHP Code:
if ($showforumusers) {
        
$datecut $ourtimenow $cookietimeout;
        
$browsers '';
        
$comma '';
        
$forumusers $DB_site->query("SELECT username, invisible, userid
                                                FROM user
                                                WHERE  inforum = 
$foruminfo[forumid]
                                                        AND lastactivity > 
$datecut
                                                        AND lastvisit <> lastactivity"
);
        while (
$forumuser $DB_site->fetch_array($forumusers)) {
                if ((!
$forumuser['invisible'] or $bbuserinfo['usergroupid'] == 6) and $bbuserinfo['userid'] != $forumuser['userid']) {
                        
$userid $forumuser['userid'];
                        
$username $forumuser['username'];
                        if (
$forumuser['invisible'] == 1) { // Invisible User but show to Admin
                                
$invisibleuser '*';
                        } else {
                                
$invisibleuser '';
                        }
                        eval(
"\$browsers .= \"".$comma.gettemplate('forumdisplay_loggedinuser')."\";");
                        
$comma ', ';
                }
        }
        
// Don't ask the DB for the user that is viewing the page as they wouldn't be here if they weren't! DOH!
        // This way our query up above can hit the inforum index so don't change unless you know what you are doing.
        
if ((!$bbuserinfo['invisible'] or $bbuserinfo['usergroupid'] == 6) and $bbuserinfo['userid'] <> 0) {
                
$userid $bbuserinfo['userid'];
                
$username $bbuserinfo['username'];
                if (
$bbuserinfo['invisible'] == 1) { // Admin is invisible but show himself to himself, get it!
                        
$invisibleuser '*';
                } else {
                        
$invisibleuser '';
                }
                eval(
"\$browsers .= \"".$comma.gettemplate('forumdisplay_loggedinuser')."\";");
        }
        if (
$browsers) {
                if (!
$moderatedby) {
                        
$onlineusers "<br>";
                }
                eval(
"\$onlineusers .= \"".gettemplate('forumdisplay_loggedinusers')."\";");
        }

And replace it with:
PHP Code:
if ($showforumusers) {
        
$datecut $ourtimenow $cookietimeout;
        
$browsers '';
        
$comma '';
        
$usercount 0;
        
$forumusers $DB_site->query("SELECT username, invisible, userid
                                                FROM user
                                                WHERE  inforum = 
$foruminfo[forumid]
                                                        AND lastactivity > 
$datecut
                                                        AND lastvisit <> lastactivity"
);
        while (
$forumuser $DB_site->fetch_array($forumusers)) {
                if ((!
$forumuser['invisible'] or $bbuserinfo['usergroupid'] == 6) and $bbuserinfo['userid'] != $forumuser['userid']) {
                        
$userid $forumuser['userid'];
                        
$username $forumuser['username'];
                        if (
$forumuser['invisible'] == 1) { // Invisible User but show to Admin
                                
$invisibleuser '*';
                        } else {
                                
$invisibleuser '';
                        }
                        eval(
"\$browsers .= \"".$comma.gettemplate('forumdisplay_loggedinuser')."\";");
                        
$comma ', ';
                        
$usercount++;
                }
        }
        
// Don't ask the DB for the user that is viewing the page as they wouldn't be here if they weren't! DOH!
        // This way our query up above can hit the inforum index so don't change unless you know what you are doing.
        
if ((!$bbuserinfo['invisible'] or $bbuserinfo['usergroupid'] == 6) and $bbuserinfo['userid'] <> 0) {
                
$userid $bbuserinfo['userid'];
                
$username $bbuserinfo['username'];
                if (
$bbuserinfo['invisible'] == 1) { // Admin is invisible but show himself to himself, get it!
                        
$invisibleuser '*';
                } else {
                        
$invisibleuser '';
                }
                
$usercount++;
                eval(
"\$browsers .= \"".$comma.gettemplate('forumdisplay_loggedinuser')."\";");
        }
        if (
$browsers) {
                
$browsers "<b>($usercount users)</b> $browsers";
                if (!
$moderatedby) {
                        
$onlineusers "<br>";
                }
                eval(
"\$onlineusers .= \"".gettemplate('forumdisplay_loggedinusers')."\";");
        }

You can see a sample of this at my site: http://www.ls1.com/forums/index.php

Show Your Support

  • This modification may not be copied, reproduced or published elsewhere without author's permission.

Comments
  #2  
Old 04-29-2002, 05:12 AM
Neo's Avatar
Neo Neo is offline
 
Join Date: Oct 2001
Location: Anywhere
Posts: 1,817
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

It would be better if the number could be showen on the main forum page
Reply With Quote
  #3  
Old 04-29-2002, 06:41 AM
Floris Floris is offline
 
Join Date: Jan 2002
Posts: 1,898
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

I had the same idea :P

So, this only adds the number of people right? Because vB 2.2.5 already has 'Users browsing this forum: nick1, nick2, ..' by default.
Reply With Quote
  #4  
Old 04-29-2002, 06:58 AM
Neo's Avatar
Neo Neo is offline
 
Join Date: Oct 2001
Location: Anywhere
Posts: 1,817
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

I will make this tonight if I am not to lazy :P
Reply With Quote
  #5  
Old 04-29-2002, 08:23 AM
Zzed's Avatar
Zzed Zzed is offline
 
Join Date: Feb 2002
Location: Glendale, CA, USA
Posts: 463
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally posted by xiphoid
I had the same idea :P

So, this only adds the number of people right? Because vB 2.2.5 already has 'Users browsing this forum: nick1, nick2, ..' by default.
Yes, it adds the number of people to the list.

Like this:
Quote:
(Users Browsing this Forum: (11 users) mrgto*, Mikesbird, ghetto808, INSSANE, 1BADFIREHAWK, oxide, 00camaroSS, TGrits10, Big Spanky, Amuka, Zed*)
Reply With Quote
  #6  
Old 04-29-2002, 11:53 PM
RDX1 RDX1 is offline
 
Join Date: Apr 2002
Posts: 497
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

i dont get what this hack does
Reply With Quote
  #7  
Old 04-30-2002, 04:56 AM
Zzed's Avatar
Zzed Zzed is offline
 
Join Date: Feb 2002
Location: Glendale, CA, USA
Posts: 463
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Look at the bold text in my previous reply.
Reply With Quote
  #8  
Old 04-30-2002, 07:43 PM
TECK's Avatar
TECK TECK is offline
 
Join Date: Nov 2001
Location: Canada
Posts: 4,182
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

this is a great hack.. and it doesnt require to add a new field.. however i'm concerned with the extra query? how is the server load doing?
Reply With Quote
  #9  
Old 04-30-2002, 07:47 PM
Zzed's Avatar
Zzed Zzed is offline
 
Join Date: Feb 2002
Location: Glendale, CA, USA
Posts: 463
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

There is no extra query. The counting is being done within the loop. It should have zero effect on the server.
Reply With Quote
  #10  
Old 04-30-2002, 11:05 PM
yasunari yasunari is offline
 
Join Date: Mar 2002
Posts: 18
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

I found that it won't count the Guest on the forum?
It would be great if it can count how many guest in each forum :P
Reply With Quote
Reply


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT. The time now is 11:18 AM.


Powered by vBulletin® Version 3.8.12 by vBS
Copyright ©2000 - 2024, vBulletin Solutions Inc.
X vBulletin 3.8.12 by vBS Debug Information
  • Page Generation 0.05326 seconds
  • Memory Usage 2,346KB
  • Queries Executed 23 (?)
More Information
Template Usage:
  • (1)SHOWTHREAD
  • (1)ad_footer_end
  • (1)ad_footer_start
  • (1)ad_header_end
  • (1)ad_header_logo
  • (1)ad_navbar_below
  • (1)ad_showthread_beforeqr
  • (2)bbcode_php
  • (2)bbcode_quote
  • (1)footer
  • (1)forumjump
  • (1)forumrules
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (1)modsystem_post
  • (1)navbar
  • (6)navbar_link
  • (120)option
  • (1)pagenav
  • (1)pagenav_curpage
  • (2)pagenav_pagelink
  • (10)post_thanks_box
  • (10)post_thanks_button
  • (1)post_thanks_javascript
  • (1)post_thanks_navbar_search
  • (10)post_thanks_postbit_info
  • (9)postbit
  • (10)postbit_onlinestatus
  • (10)postbit_wrapper
  • (1)spacer_close
  • (1)spacer_open
  • (1)tagbit_wrapper 

Phrase Groups Available:
  • global
  • inlinemod
  • postbit
  • posting
  • reputationlevel
  • showthread
Included Files:
  • ./showthread.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/functions_bigthree.php
  • ./includes/class_postbit.php
  • ./includes/class_bbcode.php
  • ./includes/functions_reputation.php
  • ./includes/functions_post_thanks.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
  • showthread_start
  • showthread_getinfo
  • forumjump
  • showthread_post_start
  • showthread_query_postids
  • showthread_query
  • bbcode_fetch_tags
  • bbcode_create
  • showthread_postbit_create
  • postbit_factory
  • postbit_display_start
  • post_thanks_function_post_thanks_off_start
  • post_thanks_function_post_thanks_off_end
  • post_thanks_function_fetch_thanks_start
  • post_thanks_function_fetch_thanks_end
  • post_thanks_function_thanked_already_start
  • post_thanks_function_thanked_already_end
  • fetch_musername
  • postbit_imicons
  • bbcode_parse_start
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • postbit_display_complete
  • post_thanks_function_can_thank_this_post_start
  • pagenav_page
  • pagenav_complete
  • tag_fetchbit_complete
  • forumrules
  • navbits
  • navbits_complete
  • showthread_complete