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
  #17  
Old 02-12-2004, 07:41 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, all you query junkies! New version uploaded to first post. One more query deleted from this hack. Now uses serialize to store the data.
Reply With Quote
  #18  
Old 02-12-2004, 08:50 PM
Mike Gaidin's Avatar
Mike Gaidin Mike Gaidin is offline
 
Join Date: Oct 2001
Location: Michigan
Posts: 247
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Upgraded. Good job Bob.
Reply With Quote
  #19  
Old 02-12-2004, 09:15 PM
Boofo's Avatar
Boofo Boofo is offline
 
Join Date: Mar 2002
Location: Des Moines, IA (USA)
Posts: 15,776
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Thanks, Mike!
Reply With Quote
  #20  
Old 02-13-2004, 03:05 AM
Alien's Avatar
Alien Alien is offline
 
Join Date: Oct 2001
Posts: 827
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by Boofo
You can add whatever you want to it. The possibilities are endless.
Awesome work. How do the queries work overall? I understand it just grabs data at intervals or whatever, but after it does and someone loads the forumhome how many queries max extra are they running at that particular moment? Just curious!

[high]* Alien clicks install.[/high]
Reply With Quote
  #21  
Old 02-13-2004, 03:20 AM
Boofo's Avatar
Boofo Boofo is offline
 
Join Date: Mar 2002
Location: Des Moines, IA (USA)
Posts: 15,776
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

This hack will add 1 query to what you already have (for the new threads and new posts since you last logged on). This can't be cached because it is per user. If you have 10 you will now have 11 when reading from the cache. Since the cache is serialized, there is no query there. So the update to the hack dropped one query. When it updates the cache, it will add 9 queries for all of the stats being updated. So you would then have 20 queries. But the 20 queries only runs at whatever interval you have set (default is 10 minutes). Once the cache is updated, you are back down to 11 queries until the next update. This way you can have numerous stats on your forumhome and not have to worry about a lot of server load at all times. With the serialzation, you can use these same stats on other ares of the board by just including the statscache in the special templates section of the file you want to use them in and you won't have you worry about any queries there (if I understand serialization, right, anyway).

Does that help to understand this a little better.
Reply With Quote
  #22  
Old 02-15-2004, 09:00 PM
Mike Gaidin's Avatar
Mike Gaidin Mike Gaidin is offline
 
Join Date: Oct 2001
Location: Michigan
Posts: 247
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Nice addition to the latest version Bob.
Reply With Quote
  #23  
Old 02-24-2004, 09:21 PM
Moosehunter Moosehunter is offline
 
Join Date: Dec 2003
Posts: 14
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

I have a vbrc3 tables prefix that i edited it to the queries. Now i get this message:

Invalid SQL:
SELECT COUNT(*) AS referrals, user.username, user.userid
FROM vb3_user AS users
LEFT JOIN vb3_user ON (users.referrerid = user.userid)
WHERE users.referrerid <> 0
GROUP BY users.referrerid
ORDER BY referrals DESC
LIMIT 1

mysql error: Unknown table 'user' in field list

mysql error number: 1109

Is there anything to edit to get rid of this message?
Reply With Quote
  #24  
Old 02-24-2004, 09:46 PM
Boofo's Avatar
Boofo Boofo is offline
 
Join Date: Mar 2002
Location: Des Moines, IA (USA)
Posts: 15,776
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Try this:

PHP Code:
 $ref $DB_site->query_first("
   SELECT COUNT(*) AS referrals, user.username, user.userid
   FROM " 
TABLE_PREFIX "user AS users
   LEFT JOIN " 
TABLE_PREFIX "user ON (users.referrerid = user.userid)
   WHERE users.referrerid <> 0
   GROUP BY users.referrerid
   ORDER BY referrals
   DESC LIMIT 1
  "
); 
Reply With Quote
  #25  
Old 02-24-2004, 10:55 PM
Moosehunter Moosehunter is offline
 
Join Date: Dec 2003
Posts: 14
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Thanks for the quick reply. That never worked. So i took that whole referrer thing out and it is now working. I do not use the referer system anyways. Once again boofo thanks for the quick reply.
Reply With Quote
  #26  
Old 02-24-2004, 11:20 PM
Boofo's Avatar
Boofo Boofo is offline
 
Join Date: Mar 2002
Location: Des Moines, IA (USA)
Posts: 15,776
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

That's strange. Optimize your tables in the Admin CP and try it again. There is no way that that shouldn't work unless you have a table a little messed up.

No problem on the reply. I just try to support my hacks as best I can.

Don't forget to click install.
Reply With Quote
  #27  
Old 03-04-2004, 10:40 AM
Steve123 Steve123 is offline
 
Join Date: Sep 2002
Posts: 105
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Hey Boofo thanks for the hack ..

To tell you the truth i was thinking of making something like this a few days ago (with my limited php knowlege tho) hehe..

With my header i display total posts, members and threads on the forum.

Instead of adding statscache to every file (pain in the ass) i was thinking maybe adding that code (main code) to the phpinclude or even trying to add statscache to the specialtemplates using the phpinclude (possible?), im not to sure with this new vb3 where the phpincludes comes into play so yeh dunno if it would be possible...(havnt had time to look)

What do you guys and gals think?

Thanks
Reply With Quote
  #28  
Old 03-04-2004, 10:49 AM
Boofo's Avatar
Boofo Boofo is offline
 
Join Date: Mar 2002
Location: Des Moines, IA (USA)
Posts: 15,776
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

I would leave it on the forumhome. You'd be adding a lot of unneccessay queries when the cache updates to all of your pages.

But if you wanted to add the stats themselves to different pages and have the forumhome updated them as needed, then all you have the do is add $statscache to the specialtemplates of whatever page you want them on and do un unserialize and it would do no queries that way.
Reply With Quote
  #29  
Old 03-04-2004, 10:59 AM
Steve123 Steve123 is offline
 
Join Date: Sep 2002
Posts: 105
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

I would perfer it to be on the header, same way as i had it on vb2... (used to it now hehe)

The only parts i use are total threads, posts and members. Ive edited the rest out of your script.

I was going to set it to update every 20mins, therefor it would only run thoes 3-4 queries every 20mins, which isent so bad considering they are only quick ones..

im just trying to think of the best way of doing it ?.

Wow you do reply fast
Reply With Quote
  #30  
Old 03-04-2004, 11:00 AM
Steve123 Steve123 is offline
 
Join Date: Sep 2002
Posts: 105
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

==================

thats good and all, but if its in my header.. well thats alot of files.. hehe
Reply With Quote
  #31  
Old 03-04-2004, 11:07 AM
Boofo's Avatar
Boofo Boofo is offline
 
Join Date: Mar 2002
Location: Des Moines, IA (USA)
Posts: 15,776
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Give it a shot and let me know how it goes. I've never tried doing it that way before.

If I was going to add it to my header, I would run the hack on the forumhome and let it do all of the updating and then just unserialize it. But to tell you the truth, I'm not sure what file I would have to do that in. Maybe init.php?
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 07:20 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.06874 seconds
  • Memory Usage 2,371KB
  • Queries Executed 30 (?)
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)bbcode_php
  • (1)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
  • (3)pagenav_pagelink
  • (1)pagenav_pagelinkrel
  • (16)post_thanks_box
  • (16)post_thanks_button
  • (1)post_thanks_javascript
  • (1)post_thanks_navbar_search
  • (16)post_thanks_postbit_info
  • (15)postbit
  • (16)postbit_onlinestatus
  • (16)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