Thread: vBindex v2.1
View Single Post
  #641  
Old 10-09-2002, 05:41 AM
Kohhal's Avatar
Kohhal Kohhal is offline
 
Join Date: Feb 2002
Location: Dublin, Ireland
Posts: 170
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

First off, great hack

I'm running v2.1 RC1 with vBulletin 2.2.2 successfully for the past week but just noticed one problem today, the "Most users ever online" is getting overwritten from vbIndex somehow.

I've noticed some duplication between what's in my "Original vBulletin code" section and the "Users online today" section which may or may not be causing the problem. It could be because my original code is from v2.2.2 and maybe I should delete some or all of the maxloggedin code?

PHP Code:
// start vBulletin original 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')."\";");
}
// -------------------------
// end vBulletin original code

// users online today by Mystics
// -------------------------
  
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")) . "
                ORDER BY username"
);
  while (
$todayuser=$DB_site->fetch_array($todayusers)) {
    
$numbertodayonline++;
    if (
$todayuser['invisible']==and $bbuserinfo['usergroupid']!=6) {
      
$numbertodayonlineinvisible++;
      continue;
    }
  }

  
$DB_site->free_result($todayusers);

  if (
$bbuserinfo[usergroupid] == 6) {
    
$todayonline $numbertodayonline;
  } else {
    
$todayonline $numbertodayonline $numbertodayonlineinvisible;
  }
// -------------------------
// end users online today 
As you can see the UPDATE query for maxloggedin is duplicated so I know something's definetly wrong here. I found a thread on vBulletin.com which seems to indicate the problem is with this hack.
So should I remove some or all of the maxloggedin code? From both sections or just the "original code" part?

Thanks and once again, great hack :classic:
Reply With Quote
 
X vBulletin 3.8.12 by vBS Debug Information
  • Page Generation 0.01326 seconds
  • Memory Usage 1,853KB
  • Queries Executed 11 (?)
More Information
Template Usage:
  • (1)SHOWTHREAD_SHOWPOST
  • (1)ad_footer_end
  • (1)ad_footer_start
  • (1)ad_header_end
  • (1)ad_header_logo
  • (1)ad_navbar_below
  • (1)bbcode_php
  • (1)footer
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (6)option
  • (1)post_thanks_box
  • (1)post_thanks_button
  • (1)post_thanks_javascript
  • (1)post_thanks_navbar_search
  • (1)post_thanks_postbit_info
  • (1)postbit
  • (1)postbit_onlinestatus
  • (1)postbit_wrapper
  • (1)spacer_close
  • (1)spacer_open 

Phrase Groups Available:
  • global
  • postbit
  • reputationlevel
  • showthread
Included Files:
  • ./showpost.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_postinfo_query
  • fetch_postinfo
  • fetch_threadinfo_query
  • fetch_threadinfo
  • fetch_foruminfo
  • style_fetch
  • cache_templates
  • global_start
  • parse_templates
  • global_setup_complete
  • showpost_start
  • bbcode_fetch_tags
  • bbcode_create
  • postbit_factory
  • showpost_post
  • 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
  • showpost_complete