Go Back   vb.org Archive > vBulletin 3 Discussion > vB3 Programming Discussions
  #1  
Old 01-23-2003, 08:31 AM
shoreham1 shoreham1 is offline
 
Join Date: Jan 2003
Posts: 3
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default Help !!!!

Not sure if anyone can help but I'm trying to add a "whos online now" (with usernames & number of guests) section on my www........com/index.php NOT in my www......com/forums/index.php.
Does anyone know of a script that does this ? I'm VERY new to both php & vbulletin so any help at all would be gratefully appreciated.
Reply With Quote
  #2  
Old 01-23-2003, 08:42 AM
Neo's Avatar
Neo Neo is offline
 
Join Date: Oct 2001
Location: Anywhere
Posts: 1,817
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

well that would take porting over the code that does the whos online

and it would be this..

PHP Code:
$activeusers "";
$loggedinusers "";
if (
$displayloggedin) {
  
$datecut=time()-$cookietimeout;

  
$loggedins=$DB_site->query_first("SELECT COUNT(*) AS sessions FROM session WHERE userid=0 AND lastactivity>$datecut");
  
$numberguest=$loggedins['sessions'];

  
$numbervisible=0;
  
$numberregistered=0;

  
$loggedins=$DB_site->query("SELECT DISTINCT session.userid,username,invisible,usergroupid
                              FROM session
                              LEFT JOIN user ON (user.userid=session.userid)
                              WHERE session.userid>0 AND session.lastactivity>
$datecut
                              ORDER BY invisible ASC, username ASC"
);
  if (
$loggedin=$DB_site->fetch_array($loggedins)) {
    
$numberregistered++;
    if (
$loggedin['invisible']==or $bbuserinfo['usergroupid']==6) {
      
$numbervisible++;
      
$userid $loggedin['userid'];
      if (
$loggedin['invisible'] == 1) { // Invisible User but show to Admin
        
$invisibleuser '*';
      } else {
        
$invisibleuser '';
      }
      if (
$loggedin['usergroupid'] == and $highlightadmin) {
          
$username "<b><i>$loggedin[username]</i></b>";
      } else if ((
$mod["$userid"] or $loggedin['usergroupid'] == 5) and $highlightadmin) {
          
$username "<b>$loggedin[username]</b>";
      } else {
                
$username $loggedin['username'];
            }
      eval(
"\$activeusers = \"".gettemplate('forumhome_loggedinuser')."\";");
    }

    while (
$loggedin=$DB_site->fetch_array($loggedins)) {
      
$numberregistered++;
      
$invisibleuser '';
      if (
$loggedin['invisible']==and $bbuserinfo['usergroupid']!=6) {
        continue;
      }
      
$numbervisible++;
      
$userid=$loggedin['userid'];
      if (
$loggedin['invisible'] == 1) { // Invisible User but show to Admin
        
$invisibleuser '*';
      }
      if (
$loggedin['usergroupid'] == and $highlightadmin) {
        
$username "<b><i>$loggedin[username]</i></b>";
            } else if ((
$mod["$userid"] or $loggedin['usergroupid'] == 5) and $highlightadmin) {
                
$username "<b>$loggedin[username]</b>";
            } else {
                
$username $loggedin['username'];
            }
      eval(
"\$activeusers .= \", ".gettemplate('forumhome_loggedinuser')."\";");
    }
  }
  
$DB_site->free_result($loggedins);

  
$totalonline=$numberregistered+$numberguest;
  
$numberinvisible=$numberregistered-$numbervisible;

  
$maxusers=explode(" "gettemplate('maxloggedin',0,0));
  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;
  }
  
$recordusers $maxusers[0];
  
$recorddate vbdate($dateformat,$maxusers[1]);
  
$recordtime vbdate($timeformat,$maxusers[1]);
  eval(
"\$loggedinusers = \"".gettemplate('forumhome_loggedinusers')."\";");

but first you want to place this (i think)

PHP Code:
require("./../global.php"); 
to connect to the database...

and you can place $loggedinusers anywhere you want the whos online to show up..
Reply With Quote
  #3  
Old 01-23-2003, 11:06 AM
shoreham1 shoreham1 is offline
 
Join Date: Jan 2003
Posts: 3
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

NEO,
Many thanks for this - as I said I'm VERY new to both PHP & VB , but I placed require("./../global.php"); into my www.shorehambysea.com/index.php page without a porblem. However I'm not too sure where to place the other "$activeusers = "";" script.
Sorry to be a pain, but again help would be appreciated.
Cheers
Reply With Quote
  #4  
Old 01-25-2003, 06:07 AM
Sebastian's Avatar
Sebastian Sebastian is offline
 
Join Date: Oct 2002
Location: America
Posts: 488
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Hi.

I have this hack a long time ago, you will have to use only the parts you want.

this hack will display

1) total registered members using variable: $totalmembers
2) show total threads using variable: $totalthreads
3) show total post made today using variable : $totalpoststoday
4) show total post using variable: $totalposts
5) show TOTAL users online using variable: $totalon

If you want to show how many user and guest seperate then use: $regmemberson for members online, and $guestson for guests online.

all you have to do is copy the code into a file then include(); it and use the variables above to show what you want.

PHP Code:
<?php
$usernames 
"off"// this will show their names if they are registered
$path "/forums/admin"// path to forum/admin directory
$dbservertype='mysql';
$servername='localhost';
$dbusername='****';
$dbpassword='****';
$dbname='vbulletin'// database name

$db=mysql_connect($servername,$dbusername,$dbpassword);
mysql_select_db($dbname);

if(isset(
$bbuserinfo["username"]) && ($bbuserinfo["username"] != "Unregistered")) { 
}
$username $bbuserinfo["username"];

$cookievalue mysql_query("SELECT value FROM setting WHERE varname = 'cookietimeout'") or die("Error");
$cookietimeout mysql_result($cookievalue00);
$datecut time()-$cookietimeout;

$invisibleregmember "0";

if (
$usernames == "on") {
    
$regmembers mysql_query("SELECT DISTINCT username,invisible FROM user,session WHERE session.userid=user.userid AND session.lastactivity>$datecut AND invisible='0' ORDER BY username ASC") or die("Error");
    while(
$regmember mysql_fetch_array($regmembers)):
        ++
$regmembercomma;
        if (
$regmember[invisible] == 0) {
            
$regmemberson .= $regmember[username];
        } else {
            ++
$regmembercomma;
        }
        if (
$regmembercomma mysql_num_rows($regmembers)):
            
$regmemberson .= ", ";
        endif;
    endwhile;
} else {

  
$regmemberson=0;
  
$loggedins=mysql_query("SELECT DISTINCT session.userid,username,invisible,usergroupid FROM session LEFT JOIN user ON (user.userid=session.userid) WHERE session.userid>0 AND session.lastactivity>$datecut ORDER BY invisible ASC, username ASC");
  while (
$loggedin=mysql_fetch_array($loggedins)) {
    
$regmemberson++;}
}

// get who is online
$guests mysql_query("SELECT COUNT(userid) AS guestsonline FROM session WHERE userid=0 AND lastactivity>$datecut") or die("oops3");
while(
$guest mysql_fetch_array($guests)):
    
$guestson number_format($guest[guestsonline]);
endwhile;
$totalon $regmemberson+$guestson;

// get total posts
$countposts mysql_query("SELECT COUNT(postid) AS posts FROM post");
while(
$countpost mysql_fetch_array($countposts)):
    
$totalposts number_format($countpost[posts]);
endwhile;

$countthreads mysql_query("SELECT COUNT(threadid) AS threads FROM thread");
while(
$countthread mysql_fetch_array($countthreads)):
    
$totalthreads number_format($countthread[threads]);
endwhile;

// number of posts today
$datecut mktime(0,0,0,date("m"), date("d"), date("y"));
$getpoststoday mysql_query("SELECT count(postid) AS count FROM post WHERE dateline>='$datecut'");
while(
$getposttoday mysql_fetch_array($getpoststoday)):
    
$totalpoststoday number_format($getposttoday[count]);
endwhile;

?>
Reply With Quote
  #5  
Old 01-25-2003, 08:30 AM
shoreham1 shoreham1 is offline
 
Join Date: Jan 2003
Posts: 3
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Seb,
Your a star !!!!!!
Many thanks
Reply With Quote
Reply

Thread Tools
Display Modes

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 02:04 PM.


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.03697 seconds
  • Memory Usage 2,261KB
  • Queries Executed 11 (?)
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
  • (1)ad_showthread_firstpost
  • (1)ad_showthread_firstpost_sig
  • (1)ad_showthread_firstpost_start
  • (3)bbcode_php
  • (1)footer
  • (1)forumjump
  • (1)forumrules
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (1)navbar
  • (3)navbar_link
  • (120)option
  • (5)post_thanks_box
  • (5)post_thanks_button
  • (1)post_thanks_javascript
  • (1)post_thanks_navbar_search
  • (5)post_thanks_postbit_info
  • (5)postbit
  • (5)postbit_onlinestatus
  • (5)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
  • tag_fetchbit_complete
  • forumrules
  • navbits
  • navbits_complete
  • showthread_complete