Go Back   vb.org Archive > vBulletin 3 Discussion > vB3 Programming Discussions
  #1  
Old 09-19-2009, 01:44 PM
HeyMe HeyMe is offline
 
Join Date: Mar 2008
Posts: 31
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default Exclude Users Posts in Some Forums from Stats?

Hello,

1st even if I mentioning a mod here, I don't think this issue belongs to mod support because there's nothing wrong with the mod.

I wanted the Top Posters stats in "Cyb's Advanced Stats" to show total posts excluding those made in the "Forums excluded from stats".

So with my very limited knowledge in PHP/mySQL, I opened the XML file & tried some things.

1st I found lines like these:
PHP Code:
$cybexclfids ','.$vbulletin->options['cybtopstats_excl_forums']; 
PHP Code:
$cybexclforums_topforums "AND thread.forumid NOT IN($cybexclfids)"

I tried to add a variable like $cybexclforums_topforums called $cybexclforums_toppost & added it here:
PHP Code:
                if ($cybstats_posters_tcenabled)
                {
                    
$get_stats_posters $vbulletin->db->query_read("
                        SELECT COUNT(post.postid) AS posts, post.userid, post.dateline, user.usergroupid, user.displaygroupid, user.username
                        FROM " 
TABLE_PREFIX "post AS post
                        LEFT JOIN " 
TABLE_PREFIX "user AS user ON (post.userid = user.userid)
                        LEFT JOIN " 
TABLE_PREFIX "thread AS thread ON (thread.threadid = post.threadid)
                        LEFT JOIN " 
TABLE_PREFIX "forum AS forum ON (forum.forumid = thread.forumid)
                        WHERE user.userid > 0 AND posts > 0 AND post.visible= 1 AND (forum.options & 4096) 
$cybexclforums_toppost $cybexclgroups $cybtopstats_timecut_toppost
                        GROUP BY post.userid
                        ORDER BY posts DESC
                        LIMIT 0, 
$resultsnr
                    "
);
                } 

I tried also to edit my $cybexclforums_toppost value, replacing thread.forumid with post.forumid then forumid , but it doesn't seem to work.


Any enlightenment?
Reply With Quote
  #2  
Old 09-19-2009, 01:55 PM
Lynne's Avatar
Lynne Lynne is offline
 
Join Date: Sep 2004
Location: California/Idaho
Posts: 41,180
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

You said you tried to add a variable "like $cybexclforums_topforums called $cybexclforums_toppost" but then you never posted what that variable looked like. And when you said it doesn't seem to work, what is the result? What makes you think it isn't working?

And, if you are doing this on your test site (which you should be), then turn on debug mode and take a look at the query and see if it's correct.
Reply With Quote
  #3  
Old 09-19-2009, 02:26 PM
HeyMe HeyMe is offline
 
Join Date: Mar 2008
Posts: 31
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Hi Lynne

Like $cybexclforums_topforums means it has the same value, then I tried replacing thread.forumid with post.forumid then forumid, I tried these 3 versions:
PHP Code:
$cybexclforums_toppost "AND thread.forumid NOT IN($cybexclfids)"
PHP Code:
$cybexclforums_toppost "AND post.forumid NOT IN($cybexclfids)"
PHP Code:
$cybexclforums_toppost "AND forumid NOT IN($cybexclfids)"

How I know it doesn't work? Because in the Top Posters stats I see that users still have all their posts counted.

The trick worked though with the "Top Thread Starters" stats.
Reply With Quote
  #4  
Old 09-19-2009, 03:23 PM
Lynne's Avatar
Lynne Lynne is offline
 
Join Date: Sep 2004
Location: California/Idaho
Posts: 41,180
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

There is no such thing as post.forumid and forumid is ambiguous cuz there is a thread.forumid and a forum.forumid. It seems to me that thread.forumid is the correct variable. What are you trying to grab that is different than what he is doing?
Reply With Quote
  #5  
Old 09-19-2009, 03:52 PM
HeyMe HeyMe is offline
 
Join Date: Mar 2008
Posts: 31
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Thanks for your time

The query I posted above seems to grab posts counts from users to rank them in the "Top Posters" stats, I wanted to exclude posts in some forums from the count so I added that $cybexclforums_toppost to the query in this line:
Code:
WHERE user.userid > 0 AND posts > 0 AND post.visible= 1 AND (forum.options & 4096) $cybexclforums_toppost $cybexclgroups $cybtopstats_timecut_toppost

I added similar variable to the query that works with the "Top Thread Starters" stats, now I see that threads made by users in the excluded forums are deducted from the count. But posts are still all counted

BtW I did try debug mode, I couldn't see the query for some reason, but I know it works as "Top Posters" are displayed, it just doesn't work as I want it to..
Reply With Quote
  #6  
Old 09-19-2009, 04:19 PM
Lynne's Avatar
Lynne Lynne is offline
 
Join Date: Sep 2004
Location: California/Idaho
Posts: 41,180
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Queries are not my strong point, but I think what you may need to do is change the JOIN and exclude threads in that forum there. I really don't know exactly, sorry. (It's what I would try anyway.)
Reply With Quote
  #7  
Old 09-19-2009, 07:28 PM
HeyMe HeyMe is offline
 
Join Date: Mar 2008
Posts: 31
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Thanks again

I think I did it, I just hope my hack doesn't have some nasty side effects

There's a place where it was saying $cybstats_posters_tcenabled = false; I changed false to true & it seems to work
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 07:29 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.06790 seconds
  • Memory Usage 2,231KB
  • Queries Executed 11 (?)
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)ad_showthread_firstpost
  • (1)ad_showthread_firstpost_sig
  • (1)ad_showthread_firstpost_start
  • (1)bbcode_code
  • (6)bbcode_php
  • (1)footer
  • (1)forumjump
  • (1)forumrules
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (1)navbar
  • (3)navbar_link
  • (120)option
  • (7)post_thanks_box
  • (7)post_thanks_button
  • (1)post_thanks_javascript
  • (1)post_thanks_navbar_search
  • (7)post_thanks_postbit_info
  • (7)postbit
  • (7)postbit_onlinestatus
  • (7)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
  • tag_fetchbit_complete
  • forumrules
  • navbits
  • navbits_complete
  • showthread_complete