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
  #272  
Old 04-09-2004, 08:37 AM
Boofo's Avatar
Boofo Boofo is offline
 
Join Date: Mar 2002
Location: Des Moines, IA (USA)
Posts: 15,776
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Yes, they do. Add the posts and threads together before you divide.

2322 + 595 = 2917

200 / 2917 = 0.0685636

0.0685636 = 6.85 %
Reply With Quote
  #273  
Old 04-09-2004, 11:39 AM
Nj?rd Eriksson Nj?rd Eriksson is offline
 
Join Date: Jul 2003
Location: Midg?rd
Posts: 55
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by Boofo
The post above has been updated to count the Total Game Plays now. To add this, just redo the code that you added to the forumhome template.
You are the man.
Reply With Quote
  #274  
Old 04-09-2004, 11:55 AM
BarBeQue's Avatar
BarBeQue BarBeQue is offline
 
Join Date: Nov 2001
Location: The Netherlands
Posts: 96
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by Boofo
Yes, they do. Add the posts and threads together before you divide.

2322 + 595 = 2917

200 / 2917 = 0.0685636

0.0685636 = 6.85 %

wtf that's so wrong

ADD threads and posts???
that's double counting

if you have an empty board (like my test board) and make 1 thread, then you will have 1 thread, 1 post, BBQ posted 1 post (50%)

Now, that's just wrong. There is only 1 post and that's the thread post. You don't add threads and posts together
Reply With Quote
  #275  
Old 04-09-2004, 01:00 PM
Boofo's Avatar
Boofo Boofo is offline
 
Join Date: Mar 2002
Location: Des Moines, IA (USA)
Posts: 15,776
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Look at how vBulletin counts them before you claim anything is wrong.

PHP Code:
$totalthreads += $forum['threadcount'];
$totalposts += $forum['replycount']; 
All I did was follow their way of doing it.

If you think it is wrong, just take out the code for the percentages. I'm going to remove it in the update, anyway.

And give me a link to your test board in pm so I can check it out.
Reply With Quote
  #276  
Old 04-09-2004, 02:29 PM
BarBeQue's Avatar
BarBeQue BarBeQue is offline
 
Join Date: Nov 2001
Location: The Netherlands
Posts: 96
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Take out the percentages?

Nah, i just fixed your formule (yes fixed )
$statscache['topposterpercent'] = round(100 * ($topposter[posts] / ($totalposts)), 2);

now it's right again
Reply With Quote
  #277  
Old 04-09-2004, 06:00 PM
Boofo's Avatar
Boofo Boofo is offline
 
Join Date: Mar 2002
Location: Des Moines, IA (USA)
Posts: 15,776
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

First of all this satement is wrong:

HTML Code:
$statscache['topposterpercent'] = round(100 * ($topposter[posts] / ($totalposts)), 2);
If should be:

HTML Code:
$statscache['topposterpercent'] = round(100 * ($topposter[posts] / $totalposts), 2);
Second of all, if you have read the thread, you would see that this only works on small boards. On bigger boards you will get something like 15,300 % (your number would be different, but you get the idea) with your code.

And third, you are only counting replies this way, so you should call it Top Replier.

Do what you want, but the code will come out of it in the next update. It's not worth messing with anymore.
Reply With Quote
  #278  
Old 04-09-2004, 06:52 PM
surfhog's Avatar
surfhog surfhog is offline
 
Join Date: Aug 2003
Location: England
Posts: 69
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

hey boofo I'm back for round 2 attempt lol oh no he says...........

when i run the query iget error:
#1146 - Table **********.datastore' doesn't exist

so i guess i am missing something, should i be changing the title of the query?

please and thanks
Reply With Quote
  #279  
Old 04-09-2004, 07: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

Don't worry about the first query (the one with datastore in it). The datastore entries will be made when you install the code in the index.php and run the hack for the first time.
Reply With Quote
  #280  
Old 04-09-2004, 09:57 PM
surfhog's Avatar
surfhog surfhog is offline
 
Join Date: Aug 2003
Location: England
Posts: 69
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

lol lol

I have a different error now boofo, would you have any ideas please? seem like 1 error is solved then i get another........ lol

At least this time I did see the template, before i got the error lol

Database error in vBulletin 3.0.0:

Invalid SQL:
SELECT profileviews,username,userid
FROM vb3_user
ORDER BY profileviews
DESC LIMIT 1

mysql error: Unknown column 'profileviews' in 'field list'

mysql error number: 1054
Reply With Quote
  #281  
Old 04-09-2004, 10:27 PM
BarBeQue's Avatar
BarBeQue BarBeQue is offline
 
Join Date: Nov 2001
Location: The Netherlands
Posts: 96
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by Boofo
And third, you are only counting replies this way, so you should call it Top Replier.
[high]* BarBeQue gives up.... how can he convince boofo that adding posts with threads is doublecounting......
[/high]

I counted each post on my board damnit and you do NOT add the threads to it cause threadposts are already included in the postcount

Make a new thread and you'll notice your postcount go up by 1.
Reply With Quote
  #282  
Old 04-09-2004, 10:30 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 surfhog
lol lol

I have a different error now boofo, would you have any ideas please? seem like 1 error is solved then i get another........ lol

At least this time I did see the template, before i got the error lol

Database error in vBulletin 3.0.0:

Invalid SQL:
SELECT profileviews,username,userid
FROM vb3_user
ORDER BY profileviews
DESC LIMIT 1

mysql error: Unknown column 'profileviews' in 'field list'

mysql error number: 1054
You need to run Query #2 for the profileviews, just not the datastore one.
Reply With Quote
  #283  
Old 04-09-2004, 10:32 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 BarBeQue
[high]* BarBeQue gives up.... how can he convince boofo that adding posts with threads is doublecounting......
[/high]

I counted each post on my board damnit and you do NOT add the threads to it cause threadposts are already included in the postcount

Make a new thread and you'll notice your postcount go up by 1.
You're wrong on that. Posts are replies and threads are threads. You better read the code a little more before you start spouting off.

You count it however you want to. I do it the way vbulletin does it. As long as it works for you the way you want it to now, what's the big deal?
Reply With Quote
  #284  
Old 04-09-2004, 10:38 PM
surfhog's Avatar
surfhog surfhog is offline
 
Join Date: Aug 2003
Location: England
Posts: 69
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

I realized that I didnt do that

so i did that and get this error when I run the query:

#1146 - Table '*********_******.user' doesn't exist

sorry to keep asking boofo
Reply With Quote
  #285  
Old 04-09-2004, 11:03 PM
Boofo's Avatar
Boofo Boofo is offline
 
Join Date: Mar 2002
Location: Des Moines, IA (USA)
Posts: 15,776
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Don't worry. we'll get you going.

Ok, run the following query in the Admin CP >Import and Maintenance > Execute SQL Query (unless you are using phpmyadmin):

[sql]ALTER TABLE " . TABLE_PREFIX . "user ADD profileviews int(10) unsigned NOT NULL default '0'[/sql]

and let me know if that runs allright.
Reply With Quote
  #286  
Old 04-09-2004, 11:41 PM
surfhog's Avatar
surfhog surfhog is offline
 
Join Date: Aug 2003
Location: England
Posts: 69
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

yes boofo I use phpadmin for queries, so would i run the same or would it be different script please. omg it's late here 01:40, I must be keen or just nutz lol

nope I tried the query and no it did not work same error

boofo are you on chat or would you have a spare moment to browse what i have done?
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 01:28 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.06134 seconds
  • Memory Usage 2,380KB
  • 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
  • (2)bbcode_html
  • (1)bbcode_php
  • (5)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
  • (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