Go Back   vb.org Archive > vBulletin 3 Discussion > vB3 General Discussions
  #1  
Old 07-13-2006, 02:04 PM
Kriminal's Avatar
Kriminal Kriminal is offline
 
Join Date: Dec 2004
Location: Buenos Aires
Posts: 32
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default How do I fetch info from datastore in a plugin?

I want to show stats from my board, like it's explained in this mod:
But, I want to save 3 of the 5 queries, refreshing stats every 5 minutes.
So, the only two stats whose stays "live" are the "online now"; the other 3 (total threads, total posts and total members) will be updated every 5 minutes and saved in datastore.

I did the following steps:
1) Create a ministats.php inside cron folder:
PHP Code:
  $numbersmembers $vbulletin->db->query_first("SELECT COUNT(*) AS users,MAX(userid) AS max FROM " TABLE_PREFIX "user");  
  
$ministats['numbermembers']= number_format($numbersmembers['users']);  
  
  
$counter $vbulletin->db->query_first("SELECT COUNT(postid) AS posts, COUNT(threadid) AS threads FROM " TABLE_PREFIX "post"); 
  
$ministats['totalposts']=number_format($counter['posts']);  

  
$countthreads $vbulletin->db->query_first("SELECT COUNT(*) AS threads FROM " TABLE_PREFIX "thread"); 
  
$ministats['totalthreads']=number_format($countthreads['threads']);

  
build_datastore('ministats'serialize($ministats)); 
2) Create a cron task to execute the php. I noticed that it works (the stats are saved in datastore table)

3) Create a plugin that:
a - execute a sql query to fetch the online members
b - retrieve info from datastore

The plugins is allocated in "global_start" hook, and this is the code:
PHP Code:
// online users  
$datecut TIMENOW $vbulletin->options['cookietimeout'];  
$headerguests=$db->query_first("SELECT COUNT(*) AS count FROM " TABLE_PREFIX "session WHERE userid=0 AND lastactivity>$datecut");  
$headerusers=$db->query_first("SELECT COUNT(DISTINCT(userid)) AS count FROM " TABLE_PREFIX "session WHERE " TABLE_PREFIX "session.userid>0 AND " TABLE_PREFIX "session.lastactivity>$datecut");  
$headerguests=$headerguests[count];  
$headerusers=$headerusers[count];  
$totalonline=$headerguests+$headerusers;  

// info from datastore
$ministats unserialize($vbulletin->ministats);
$numbermembers $ministats['numbermembers'];
$totalposts $ministats['totalposts'];
$totalthreads $ministats['totalthreads']; 
The online members info retrieves correctly, but the info from datastore not.
So, my question is: how I do to fetch that info in the plugin?

Thanks in advance,

PS: In the topic title, I put a "g" instead a "f". I'm sorry.
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 08:10 PM.


Powered by vBulletin® Version 3.8.12 by vBS
Copyright ©2000 - 2025, vBulletin Solutions Inc.
X vBulletin 3.8.12 by vBS Debug Information
  • Page Generation 0.03666 seconds
  • Memory Usage 2,214KB
  • Queries Executed 13 (?)
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_php
  • (1)footer
  • (1)forumjump
  • (1)forumrules
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (1)navbar
  • (3)navbar_link
  • (120)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)showthread_list
  • (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_threadedmode.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_threaded
  • showthread_threaded_construct_link
  • 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