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

Reply
 
Thread Tools
vB3 Forumhome Stats Cache Serialize hack v2.2 Details »»
vB3 Forumhome Stats Cache Serialize hack v2.2
Version: 1.00, by Boofo Boofo is offline
Developer Last Online: Jun 2012 Show Printable Version Email this Page

Version: 3.0.0 Rating:
Released: 02-10-2004 Last Update: Never Installs: 108
 
No support by the author.

vB3 Forumhome Stats Cache Serialize hack
Version 2.2
(By Boofo)

What does this hack do?
This hack will add some forum statistics to your forumhome that will be cached (to reduce the query load) for a certain amount of time that can be set to whatever you want. This covers most of the stats any forum Admin would use on his site.

Note: This is the setting for the time interval (in minutes) that you want the cache to be updated on. The default value is 10 minutes. The following code is in the index.php part of this hack.

$updatetime = 10;

Once you install the Admin CP setting (at the end of this file), you will be able to update this from the Admin CP vBulletin Options settings.

Credits:
I want to thank Tigga for the original Forumhome Statistics Cache hack for vB2, partly on what this hack is based. I also want to thank EvilLS1 for his time and patience in helping put this hack together. Another thank you goes out to Mike Gaidin for testing this thoroughly while I was putting together this install file. And, finally, thank you goes out to NTLDR, for helping me track down a very stupid mistake on my part which I had overlooked.

Version 2.0 credits go out to g-force2k2 for getting me started on the datastore version of this hack and guiding me through some of the rough parts in the beginning. And also to KirbyDE for answering all of my dummy questions while writing this version and verifying the code when I figured out all of my mistakes. This is my first attempt at using the datastore function but it seems to work better and be easier to code than the older way of doing things.

Version Information:
Version 1.0
--Initial release
Version 2.0 --Completely rewritten using the datastore function for vB3. It now uses "serialize" to store the data and "unserialize" to retrieve the data. There is also now 1 less query when reading from the cache.
Version 2.1 --Combined the "new threads since last visit" and "new posts since last visit" queries into 1 query, thus eliminating another query on cache hits. Thanks goes out to g_force2k2 for this one. Also added Admin CP setting code so you can change the time interval between cache updates via the Forum Display Option setting in the vBulletin Option in the Admin CP. That code to add is at the end of this file.
Version 2.2 --Added "Top Reputation" statistic (requested by rinkrat ) and totally re-did the template. It looks cleaner now.

New Installation:
Do all of the steps in this file.

To Update Version 1.0 to Version 2.0:
To update this hack you will need to do everything in this file over again except the second query (Query #2). After you have this hack up and running again and you have made sure it is running to your satisfaction, you can drop the statscache table (from version one of this hack) completely. It is no longer needed.

To Update Version 2.0 to Version 2.1:
You will need to re-add the code for the index.php and go to the end of this file and add the setting for the Admin CP.

To Update Version 2.1 to Version 2.2:
You will need to re-add the code for the index.php and replace the code for the forumhome template.

Installation overview:
Queries to run:
(2)
Files to edit: (2)
--index.php
--member.php
Templates to edit: (1)
--forumhome
Settings to add: (1)
--forumhomecachetime

vB3 Arcade hack stats addon:
https://vborg.vbsupport.ru/showpost....&postcount=262

The first attachment shows the Guest loggedin and the second attachment show the Registered Member and above loggedin.

Show Your Support

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

Comments
  #62  
Old 03-23-2004, 10:50 PM
wrongful wrongful is offline
 
Join Date: Apr 2003
Location: Atlanta, Georgia
Posts: 88
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

I seem to be having some major problems with this hack.

First, the total registrations count is more than double what my actual registrations are. Also, how are active members calculated as opposed to people who are a part of the total registrations, and can this be modified. Also, my top referer isn't showing up as you can see in this screenshot. I am using vB3 Gold if that makes any difference.
Reply With Quote
  #63  
Old 03-23-2004, 10:51 PM
Alex Alex is offline
 
Join Date: Oct 2001
Posts: 57
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Ok, here is the piece of code
Code:
// <!-- TOP POSTER -->
	$topposter = $DB_site->query_first("
		SELECT username,posts,userid
		FROM " . TABLE_PREFIX . "user
		ORDER BY posts
		DESC LIMIT 1
	");

	// <!-- TOP THREAD STARTER -->
	$topstarter=$DB_site->query_first("
		SELECT COUNT(*) AS count,postuserid,postusername
		FROM " . TABLE_PREFIX . "thread
		GROUP BY postuserid
		ORDER BY count
		DESC LIMIT 1
	");
At least I think it is...

BTW, I tried to set my lanuage to english but even though, the link to the members profile is still wrong. The link doesn't show up like:
www.forum.url/forum/member.php?u=3512
it shows like:
www.forum.url/forum/member.php?u=3,512 (<-- see the comma?)

When I turn it back to german, I have a dot there instead of the comma, which is the german separator for a thousand.

This also happens with topposter, Most Viewed Profile and Top Referrer. With the welcome newest member it is fine. In both languages.
Reply With Quote
  #64  
Old 03-23-2004, 11:27 PM
Boofo's Avatar
Boofo Boofo is offline
 
Join Date: Mar 2002
Location: Des Moines, IA (USA)
Posts: 15,776
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Ok, change this query:

PHP Code:
    // <!-- TOP THREAD STARTER -->
    
$topstarter=$DB_site->query_first("
        SELECT COUNT(*) AS count,postuserid,postusername
        FROM " 
TABLE_PREFIX "thread
        GROUP BY postuserid
        ORDER BY count
        DESC LIMIT 1
    "
); 
to this:

PHP Code:
    // <!-- TOP THREAD STARTER -->
    
$topstarter=$DB_site->query_first("
            SELECT COUNT(*) AS count,postuserid,postusername
            FROM " 
TABLE_PREFIX "thread
            WHERE postuserid <> 0
            GROUP BY postuserid
            ORDER BY count
            DESC LIMIT 1
        "
); 
As far as the uderids going to an error page, delete the following from the index.php:

PHP Code:
    $statscache['topposterid'] = vb_number_format($statscache['topposterid']);
    
$statscache['topstartid'] = vb_number_format($statscache['topstartid']);
    
$statscache['getfileviewsid'] = vb_number_format($statscache['getfileviewsid']);
    
$statscache['topreferrerid'] = vb_number_format($statscache['topreferrerid']);
    
$statscache['toprepid'] = vb_number_format($statscache['toprepid']); 
I forgot to take that code out when I released the hack. Sorry about that. That should fix everything. Let me know for sure.
Reply With Quote
  #65  
Old 03-23-2004, 11:35 PM
Boofo's Avatar
Boofo Boofo is offline
 
Join Date: Mar 2002
Location: Des Moines, IA (USA)
Posts: 15,776
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by wrongful
I seem to be having some major problems with this hack.

First, the total registrations count is more than double what my actual registrations are. Also, how are active members calculated as opposed to people who are a part of the total registrations, and can this be modified. Also, my top referer isn't showing up as you can see in this screenshot. I am using vB3 Gold if that makes any difference.
Support is only being provided to those who click the install button. That is something that is being ignored on this site and needs to be taken care of by anyone who installs the hacks made here. I hope you can understand.
Reply With Quote
  #66  
Old 03-23-2004, 11:39 PM
wrongful wrongful is offline
 
Join Date: Apr 2003
Location: Atlanta, Georgia
Posts: 88
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by Boofo
Support is only being provided to those who click the install button. That is something that is being ignored on this site and needs to be taken care of by anyone who installs the hacks made here. I hope you can understand.
Ok I didn't click it initially because it wasn't working right and I normally don't click install until I have a hack completely working, but if you insist.
Reply With Quote
  #67  
Old 03-23-2004, 11:54 PM
Boofo's Avatar
Boofo Boofo is offline
 
Join Date: Mar 2002
Location: Des Moines, IA (USA)
Posts: 15,776
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Thank you.

Ok, the Total Registrations are the total regsitrations you have EVER had on your board. When you delete accounts for whatever reason, the Active Registrations are what is left. That is the ACTUAL number of memebers on your site. Does that make any sense.

As far as the userids not being correct, follow the instructions above and delete those lines and when the next cache update is run, it should straighten everything out for the userids.

Also, make sure you have the referrer sysem enabled in the Admin CP. If it is, then you missed a piece of code when installing the hack. Look at the spot where the name should be in the code and tell me what is there right now.
Reply With Quote
  #68  
Old 03-24-2004, 12:01 AM
Alex Alex is offline
 
Join Date: Oct 2001
Posts: 57
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by Boofo
Ok, change this query:

PHP Code:
    // <!-- TOP THREAD STARTER -->
    
$topstarter=$DB_site->query_first("
        SELECT COUNT(*) AS count,postuserid,postusername
        FROM " 
TABLE_PREFIX "thread
        GROUP BY postuserid
        ORDER BY count
        DESC LIMIT 1
    "
); 
to this:

PHP Code:
    // <!-- TOP THREAD STARTER -->
    
$topstarter=$DB_site->query_first("
            SELECT COUNT(*) AS count,postuserid,postusername
            FROM " 
TABLE_PREFIX "thread
            WHERE postuserid <> 0
            GROUP BY postuserid
            ORDER BY count
            DESC LIMIT 1
        "
); 
As far as the uderids going to an error page, delete the following from the index.php:

PHP Code:
    $statscache['topposterid'] = vb_number_format($statscache['topposterid']);
    
$statscache['topstartid'] = vb_number_format($statscache['topstartid']);
    
$statscache['getfileviewsid'] = vb_number_format($statscache['getfileviewsid']);
    
$statscache['topreferrerid'] = vb_number_format($statscache['topreferrerid']);
    
$statscache['toprepid'] = vb_number_format($statscache['toprepid']); 
I forgot to take that code out when I released the hack. Sorry about that. That should fix everything. Let me know for sure.
Now I get this:
Code:
Database error in vBulletin 3.0.0:

Invalid SQL:  
        SELECT COUNT(*) AS count,postuserid,postusername 
        FROM thread 
        WHERE usergroupid IN (2,5,6,7) 
        GROUP BY postuserid 
        ORDER BY count 
        DESC LIMIT 1 
    
mysql error: Unknown column 'usergroupid' in 'where clause'

mysql error number: 1054

Date: Wednesday 24th of March 2004 03:03:48 AM
Script: http://www.spassforen.de/forum/index.php?
Username: Alex
IP Address: xxx.xxx.xxx.xxx
Reply With Quote
  #69  
Old 03-24-2004, 12:04 AM
Boofo's Avatar
Boofo Boofo is offline
 
Join Date: Mar 2002
Location: Des Moines, IA (USA)
Posts: 15,776
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Ok, redo the code with the query from the post above again (you will notice it is different now). I had to change it and you had already re-done it before the post edit. Sorry about that.
Reply With Quote
  #70  
Old 03-24-2004, 12:07 AM
Alex Alex is offline
 
Join Date: Oct 2001
Posts: 57
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by Boofo
Ok, redo the code with the query from the post above again (you will notice it is different now). I had to change it and you had already re-done it before the post edit. Sorry about that.
lol... ok, mom
Reply With Quote
  #71  
Old 03-24-2004, 12:10 AM
Alex Alex is offline
 
Join Date: Oct 2001
Posts: 57
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Now we're talking. Thanx dude! Oh, and if you have a minute, phrasing all that stuff into the vB's Phrase System would be nice. I do that one now on my own.

Thanks again!
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 04:16 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.05699 seconds
  • Memory Usage 2,345KB
  • Queries Executed 25 (?)
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_code
  • (6)bbcode_php
  • (4)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
  • (4)pagenav_pagelink
  • (1)pagenav_pagelinkrel
  • (11)post_thanks_box
  • (11)post_thanks_button
  • (1)post_thanks_javascript
  • (1)post_thanks_navbar_search
  • (11)post_thanks_postbit_info
  • (10)postbit
  • (11)postbit_onlinestatus
  • (11)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